Tobii Pro SDK C API
user_position_guide.c
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
#if _WIN32 || _WIN64
#include <windows.h>
static void sleep_ms(int time) {
Sleep(time);
}
#else
#include <unistd.h>
static void sleep_ms(int time) {
usleep(time * 1000);
}
#endif
void user_position_guide_callback(TobiiResearchUserPositionGuide* user_position_guide, void* user_data) {
memcpy(user_data, user_position_guide, sizeof(*user_position_guide));
}
void user_position_guide_example(TobiiResearchEyeTracker* eyetracker) {
TobiiResearchUserPositionGuide user_position_guide;
char* serial_number;
tobii_research_get_serial_number(eyetracker, &serial_number);
printf("Subscribing to user position guide for eye tracker with serial number %s.\n", serial_number);
user_position_guide_callback, &user_position_guide);
if (status != TOBII_RESEARCH_STATUS_OK)
return;
/* Wait while some user position guide is collected. */
sleep_ms(2000);
status = tobii_research_unsubscribe_from_user_position_guide(eyetracker, user_position_guide_callback);
printf("Unsubscribed from user position guide with status %i.\n", status);
printf("Last received gaze package:\n");
printf("Left eye 3D gaze point user position: (%f, %f, %F)\n",
user_position_guide.left_eye.user_position.x,
user_position_guide.left_eye.user_position.y,
user_position_guide.left_eye.user_position.z);
printf("Right eye 3D gaze point user position: (%f, %f, %f)\n",
user_position_guide.right_eye.user_position.x,
user_position_guide.right_eye.user_position.y,
user_position_guide.right_eye.user_position.z);
/* Wait while some data is collected. */
sleep_ms(2000);
}