/* * Handles an event from the Gaze Point data stream. */ void OnGazeDataEvent(TX_HANDLE hGazeDataBehavior) { float data[5] = { 0, 0, 0, 0, 0 }; int iResult; TX_GAZEPOINTDATAEVENTPARAMS eventParams; if (txGetGazePointDataEventParams(hGazeDataBehavior, &eventParams) == TX_RESULT_OK) { /* Every time there is an event, send a package*/ //TCP Preparing data package = #bytes, BehaviorType, X, Y, Timestamp data[0] = 16; // Number of following bytes (4 values * 4 bytes / value) data[1] = eventParams.Timestamp; // Seconds since the System Boot Time data[2] = 1; // Behavior Type, 1 for Gaze data[3] = eventParams.X; data[4] = eventParams.Y; printf("Gaze Data: (%.1f, %.1f) time %.0f ms\n", eventParams.X, eventParams.Y, eventParams.Timestamp); if (streaming) { for (int a = 0; a < 5; a++) //Up tp a < number of elements { SendFloatClientSocket(clientSocket, data[a]); } } } else { printf("Failed to interpret gaze data event packet.\n"); } }
void TX_CALLCONVENTION ofxTobiiEyeX::HandleEvent(TX_CONSTHANDLE hAsyncData, TX_USERPARAM param) { TX_HANDLE hEvent = TX_EMPTY_HANDLE; TX_HANDLE hBehavior = TX_EMPTY_HANDLE; txGetAsyncDataContent(hAsyncData, &hEvent); if (txGetEventBehavior(hEvent, &hBehavior, TX_BEHAVIORTYPE_GAZEPOINTDATA) == TX_RESULT_OK) { if (txGetGazePointDataEventParams(hBehavior, &smGazePointDataEventParams) != TX_RESULT_OK) { ofLogError(smAddonName, "Failed to interpret gaze data event packet."); } } if (txGetEventBehavior(hEvent, &hBehavior, TX_BEHAVIORTYPE_EYEPOSITIONDATA) == TX_RESULT_OK) { if (txGetEyePositionDataEventParams(hBehavior, &smEyePositionEventParams) != TX_RESULT_OK) { ofLogError(smAddonName, "Failed to interpret eye position event packet."); } } if (txGetEventBehavior(hEvent, &hBehavior, TX_BEHAVIORTYPE_FIXATIONDATA) == TX_RESULT_OK) { if (txGetFixationDataEventParams(hBehavior, &smFixationEventParams) != TX_RESULT_OK) { ofLogError(smAddonName, "Failed to interpret fixation event packet."); } } txReleaseObject(&hBehavior); txReleaseObject(&hEvent); }
/* * Handles an event from the Gaze Point data stream. */ void OnGazeDataEvent(TX_HANDLE hGazeDataBehavior) { TX_GAZEPOINTDATAEVENTPARAMS eventParams; if (txGetGazePointDataEventParams(hGazeDataBehavior, &eventParams) == TX_RESULT_OK) { printf("Gaze Data: (%.1f, %.1f) timestamp %.0f ms\n", eventParams.X, eventParams.Y, eventParams.Timestamp); } else { printf("Failed to interpret gaze data event packet.\n"); } }
/* * Handles an event from the Gaze Point data stream. */ void eyeXHost::OnGazeDataEvent(TX_HANDLE hGazeDataBehavior) { TX_GAZEPOINTDATAEVENTPARAMS eventParams; if (txGetGazePointDataEventParams(hGazeDataBehavior, &eventParams) == TX_RESULT_OK) { gazePoint.set(eventParams.X, eventParams.Y); } else { cout << "Failed to interpret gaze data event packet" << "\n"; } }
void OnGazeDataEvent(TX_HANDLE hGazeDataBehavior) { if (txGetGazePointDataEventParams(hGazeDataBehavior, &lastGazeData) == TX_RESULT_OK) { gazeAvailable = true; } else { gazeAvailable = false; } }
/* * Handles an event from the Gaze Point data stream. */ void OnGazeDataEvent(TX_HANDLE hGazeDataBehavior) { TX_GAZEPOINTDATAEVENTPARAMS eventParams; if (txGetGazePointDataEventParams(hGazeDataBehavior, &eventParams) == TX_RESULT_OK) { //mexPrintf("Pushing in Gaze Data: (%.1f, %.1f) Timestamp %.0f ms\n", eventParams.X, eventParams.Y, eventParams.Timestamp); q_push (eventParams, lastKnownEyePositionData); } else { mexPrintf("Failed to interpret gaze data event packet.\n"); } }
void Tobii::OnGazePointDataEvent(TX_HANDLE hGazeDataBehavior) { TX_GAZEPOINTDATAEVENTPARAMS eventParams; if (txGetGazePointDataEventParams(hGazeDataBehavior, &eventParams) == TX_RESULT_OK && BothEyesOpen()) { gazeLoc.x = eventParams.X; gazeLoc.y = eventParams.Y; } }
/* * Handles an event from the Gaze Point data stream. */ void OnGazeDataEvent(TX_HANDLE hGazeDataBehavior) { JNIEnv * env; TX_GAZEPOINTDATAEVENTPARAMS eventParams; if (txGetGazePointDataEventParams(hGazeDataBehavior, &eventParams) == TX_RESULT_OK) { // printf("Gaze Data: (%.1f, %.1f) timestamp %.0f ms\n", eventParams.X, eventParams.Y, eventParams.Timestamp); if (jvm->AttachCurrentThread((void **)&env, NULL) >= 0) { env->CallVoidMethod(hookObj, newEyeDataProc, (jboolean)TRUE, (jint)eventParams.X,(jint)eventParams.Y,(jint)leftEyeX,(jint)leftEyeY); } } else { printf("Failed to interpret gaze data event packet.\n"); } }
/* * Handles an event from the Gaze Point data stream. */ void OnGazeDataEvent(TX_HANDLE hGazeDataBehavior) { TX_GAZEPOINTDATAEVENTPARAMS eventParams; if (txGetGazePointDataEventParams(hGazeDataBehavior, &eventParams) == TX_RESULT_OK) { if (openForData == true) { //mexPrintf("Pushing in Gaze Data: (%.1f, %.1f) Timestamp %.0f ms\n", eventParams.X, eventParams.Y, eventParams.Timestamp); q_push (eventParams, lastKnownEyePositionData); } else { //mexPrintf("Continuing to push data packet, despite currently being queried.\n"); //q_push (eventParams, lastKnownEyePositionData); mexPrintf("Suppressing push of data packet, because currently being queried.\n"); } } else { mexPrintf("Failed to interpret gaze data event packet.\n"); } }