diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2018-02-16 12:39:32 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2018-02-16 12:56:49 +0100 |
commit | d9b56a39bf966e3eddf35b02a9400a3556823750 (patch) | |
tree | df3d9b85993647b31d3d275d8a25ba1addf0454d | |
parent | c011007165a6dee12f0b856411a8c8deaeb2d289 (diff) |
proto/ft: fix idempotent dataid for freetrackclient
It can cause problems for `freetrackclient.dll'
consumers. This fix is better than modulo rand().
-rw-r--r-- | proto-ft/ftnoir_protocol_ft.cpp | 5 | ||||
-rw-r--r-- | proto-ft/ftnoir_protocol_ft.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/proto-ft/ftnoir_protocol_ft.cpp b/proto-ft/ftnoir_protocol_ft.cpp index d240cc8d..0c97ffd2 100644 --- a/proto-ft/ftnoir_protocol_ft.cpp +++ b/proto-ft/ftnoir_protocol_ft.cpp @@ -97,7 +97,10 @@ void freetrack::pose(const double* headpose) const std::int32_t id = load(ft->GameID); - store(data->DataID, 60 * 5); + data_id++; + data_id %= 128; + + store(data->DataID, 60 * 5 + data_id); if (intGameID != id) { diff --git a/proto-ft/ftnoir_protocol_ft.h b/proto-ft/ftnoir_protocol_ft.h index ac82bbd9..843d1f34 100644 --- a/proto-ft/ftnoir_protocol_ft.h +++ b/proto-ft/ftnoir_protocol_ft.h @@ -54,6 +54,7 @@ private: int intGameID = -1; QString connected_game; QMutex game_name_mutex; + unsigned data_id = 0; void start_dummy(); static float degrees_to_rads(double degrees); |