bool ofxTobiiEyeX::registerGazePointEventHandler(const string& InteractorId, TX_GAZEPOINTDATAMODE mode) { auto& handle = mGazePointHandle; handle.hConnectionStateChangedTicket = TX_INVALID_TICKET; handle.hEventHandlerTicket = TX_INVALID_TICKET; TX_CONSTSTRING ID = InteractorId.c_str(); TX_GAZEPOINTDATAPARAMS params = { mode }; TX_HANDLE hInteractor = TX_EMPTY_HANDLE; bool success = true; success &= txCreateContext(&handle.hContext, TX_FALSE) == TX_RESULT_OK; success &= txCreateGlobalInteractorSnapshot(handle.hContext, ID, &handle.hGlobalInteractorSnapshot, &hInteractor) == TX_RESULT_OK; success &= txCreateGazePointDataBehavior(hInteractor, ¶ms) == TX_RESULT_OK; success &= txReleaseObject(&hInteractor) == TX_RESULT_OK; success &= txRegisterConnectionStateChangedHandler(handle.hContext, &handle.hConnectionStateChangedTicket, OnEngineConnectionStateChanged, handle.hGlobalInteractorSnapshot) == TX_RESULT_OK; success &= txRegisterEventHandler(handle.hContext, &handle.hEventHandlerTicket, HandleEvent, nullptr) == TX_RESULT_OK; success &= txEnableConnection(handle.hContext) == TX_RESULT_OK; if (!success) { ofLogError(smAddonName, "Registing gaze point data event handler was failed."); } return success; }
bool Tobii::InitializeGlobalInteractorSnapshot(TX_CONTEXTHANDLE hContext) { TX_HANDLE hInteractor = TX_EMPTY_HANDLE; bool success; success = txCreateGlobalInteractorSnapshot( hContext, InteractorId, &g_hGlobalInteractorSnapshot, &hInteractor) == TX_RESULT_OK; TX_FIXATIONDATAPARAMS fixationParams = { TX_FIXATIONDATAMODE_SLOW }; success &= txCreateFixationDataBehavior(hInteractor, &fixationParams) == TX_RESULT_OK; TX_GAZEPOINTDATAPARAMS gazeParams = { TX_GAZEPOINTDATAMODE_LIGHTLYFILTERED }; success &= txCreateGazePointDataBehavior(hInteractor, &gazeParams) == TX_RESULT_OK; TX_HANDLE hBehaviorWithoutParameters = TX_EMPTY_HANDLE; success &= txCreateInteractorBehavior(hInteractor, &hBehaviorWithoutParameters, TX_BEHAVIORTYPE_EYEPOSITIONDATA) == TX_RESULT_OK; txReleaseObject(&hInteractor); return success; }
BOOL InitializeGlobalInteractorSnapshot(TX_CONTEXTHANDLE hContext) { TX_HANDLE hInteractor = TX_EMPTY_HANDLE; TX_GAZEPOINTDATAPARAMS params = { TX_GAZEPOINTDATAMODE_LIGHTLYFILTERED }; BOOL success; success = txCreateGlobalInteractorSnapshot(hContext, InteractorId, &g_hGlobalInteractorSnapshot, &hInteractor) == TX_RESULT_OK; success &= txCreateGazePointDataBehavior(hInteractor, ¶ms) == TX_RESULT_OK; txReleaseObject(&hInteractor); return success; }
/* * Initializes g_hGlobalInteractorSnapshot with an interactor that has the Fixation, Gaze and Position Data behavior. */ BOOL InitializeGlobalInteractorSnapshot(TX_CONTEXTHANDLE hContext) { TX_HANDLE hInteractor = TX_EMPTY_HANDLE; TX_HANDLE hBehavior = TX_EMPTY_HANDLE; TX_FIXATIONDATAPARAMS paramsF = { TX_FIXATIONDATAMODE_SENSITIVE }; TX_GAZEPOINTDATAPARAMS paramsG = { TX_GAZEPOINTDATAMODE_LIGHTLYFILTERED }; BOOL success; success = txCreateGlobalInteractorSnapshot( hContext, InteractorId, &g_hGlobalInteractorSnapshot, &hInteractor) == TX_RESULT_OK; success &= txCreateFixationDataBehavior(hInteractor, ¶msF) == TX_RESULT_OK; success &= txCreateGazePointDataBehavior(hInteractor, ¶msG) == TX_RESULT_OK; success &= txCreateInteractorBehavior(hInteractor, &hBehavior, TX_BEHAVIORTYPE_EYEPOSITIONDATA) == TX_RESULT_OK; txReleaseObject(&hBehavior); txReleaseObject(&hInteractor); return success; }