This document is intended to help developers transition from older stream engine library 3.x to latest stream engine version 4.0. It is written in the format of a change log with complementary information that will assist developer making a smooth transition.
field_of_use parameter has been added to the
tobii_device_create_ex functions. This forces the developer to make a choice regarding the usage of the eye tracking data:
Device will be created for interactive use. No special license is required for this type of use. Eye tracking data is only used as a user input for interaction experiences and cannot be stored, transmitted, nor analyzed or processed for other purposes.
Device will be created for analytical use. This requires a special license from Tobii. Eye tracking data is used to analyze user attention, behavior or decisions in applications that store, transfer, record or analyze the data.
The firmware upgrade state signaling has been re-designed. The
tobii_device_reconnect functions will now return the error code,
TOBII_ERROR_FIRMWARE_UPGRADE_IN_PROGRESS, when the device is in firmware upgrade state. It is considered best practice to check the return code from these functions and if the device is in firmware upgrade state, continue polling until a
TOBII_ERROR_NO_ERROR error code is recieved.
tobii_get_fiirmware_upgrade_state function that was previously used to query the firmware upgrade state has been removed.
The wearable data stream has been removed and split into two separate streams
wearable_consumer stream includes data suitable for consumer use like combined gaze direction, gaze origin and eyeposition. Where as the
wearable_advanced stream is a superset of the consumer stream and includes per eye gaze data and requires a professional license.
eye_position_validity has been added to the
tobii_gaza_data_t struct. The data field
eye_position_in_track_box_normalized_xyz previously was erroneously grouped with the
gaze_origin_validity but now has it’s own validity flag
Added user data parameters to subscription functions and subscription callbacks in the .NET interop binding. This is to support .NET frameworks that do not support lambdas and are therefore dependent on having the ability to send custom data through the callback interface.