| 5631 | } |
| 5632 | |
| 5633 | XN_C_API XnStatus xnRegisterHandCallbacks(XnNodeHandle hInstance, XnHandCreate CreateCB, XnHandUpdate UpdateCB, XnHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback) |
| 5634 | { |
| 5635 | XN_VALIDATE_INTERFACE_TYPE(hInstance, XN_NODE_TYPE_HANDS); |
| 5636 | XN_VALIDATE_OUTPUT_PTR(phCallback); |
| 5637 | XnHandsGeneratorInterfaceContainer* pInterface = (XnHandsGeneratorInterfaceContainer*)hInstance->pModuleInstance->pLoaded->pInterface; |
| 5638 | XnModuleNodeHandle hModuleNode = hInstance->pModuleInstance->hNode; |
| 5639 | |
| 5640 | HandCookie* pHandCookie; |
| 5641 | XN_VALIDATE_ALLOC(pHandCookie, HandCookie); |
| 5642 | pHandCookie->createHandler = CreateCB; |
| 5643 | pHandCookie->updateHandler = UpdateCB; |
| 5644 | pHandCookie->destroyHandler = DestroyCB; |
| 5645 | pHandCookie->hNode = hInstance; |
| 5646 | pHandCookie->pUserCookie = pCookie; |
| 5647 | |
| 5648 | XnStatus nRetVal = pInterface->Hands.RegisterHandCallbacks(hModuleNode, xnHandCreateCB, xnHandUpdateCB, xnHandDestroyCB, pHandCookie, &pHandCookie->hCallback); |
| 5649 | if (nRetVal != XN_STATUS_OK) |
| 5650 | { |
| 5651 | xnOSFree(pHandCookie); |
| 5652 | return (nRetVal); |
| 5653 | } |
| 5654 | |
| 5655 | *phCallback = pHandCookie; |
| 5656 | |
| 5657 | return (XN_STATUS_OK); |
| 5658 | } |
| 5659 | XN_C_API void xnUnregisterHandCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback) |
| 5660 | { |
| 5661 | XN_VALIDATE_INTERFACE_TYPE_RET(hInstance, XN_NODE_TYPE_HANDS, ); |
no test coverage detected