MCPcopy Create free account
hub / github.com/OpenNI/OpenNI / xnRegisterToUserExit

Function xnRegisterToUserExit

Source/OpenNI/XnOpenNI.cpp:5488–5520  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5486}
5487
5488XN_C_API XnStatus xnRegisterToUserExit(XnNodeHandle hInstance, XnUserHandler handler, void* pCookie, XnCallbackHandle* phCallback)
5489{
5490 XN_VALIDATE_INTERFACE_TYPE(hInstance, XN_NODE_TYPE_USER);
5491 XN_VALIDATE_OUTPUT_PTR(phCallback);
5492 XnUserGeneratorInterfaceContainer* pInterface = (XnUserGeneratorInterfaceContainer*)hInstance->pModuleInstance->pLoaded->pInterface;
5493 XnModuleNodeHandle hModuleNode = hInstance->pModuleInstance->hNode;
5494
5495 UserSingleCookie* pRegCookie;
5496 XN_VALIDATE_ALLOC(pRegCookie, UserSingleCookie);
5497 pRegCookie->handler = handler;
5498 pRegCookie->hNode = hInstance;
5499 pRegCookie->pUserCookie = pCookie;
5500
5501 XnStatus nRetVal = XN_STATUS_OK;
5502 if (pInterface->User.RegisterToUserExit != NULL)
5503 {
5504 nRetVal = pInterface->User.RegisterToUserExit(hModuleNode, xnModuleUserSingle, pRegCookie, &pRegCookie->hCallback);
5505 }
5506 else
5507 {
5508 // Versions before 1.3.2 didn't have this API. Fabricate it.
5509 nRetVal = pInterface->User.RegisterUserCallbacks(hModuleNode, NULL, xnModuleUserSingle, pRegCookie, &pRegCookie->hCallback);
5510 }
5511 if (nRetVal != XN_STATUS_OK)
5512 {
5513 xnOSFree(pRegCookie);
5514 return (nRetVal);
5515 }
5516
5517 *phCallback = pRegCookie;
5518
5519 return XN_STATUS_OK;
5520}
5521XN_C_API void xnUnregisterFromUserExit(XnNodeHandle hInstance, XnCallbackHandle hCallback)
5522{
5523 XN_VALIDATE_INTERFACE_TYPE_RET(hInstance, XN_NODE_TYPE_USER, );

Calls 3

RegisterToUserExitMethod · 0.80
RegisterUserCallbacksMethod · 0.80
xnOSFreeFunction · 0.50

Tested by

no test coverage detected