Commit graph

5 commits

Author SHA1 Message Date
Lephenixnoir
85d7fcf9e9
libfxlink: fix race condition leading to lost messages
Basically if the calculator sends two messages in a row, it is possible
for a single libusb_handle_events() to get both. And the comm structure
wasn't designed for that, because it could buffer only one message at a
time, which the user needed to read after event handling.

The comm structure now has a 16-message buffer, which should be more
than enough for any single event handling loop. On the user level this
has implications in that fxlink_device_finish_bulk_IN() must be called
*in a loop* after each event handling cycle.

Reported in https://git.planet-casio.com/Lephenixnoir/gint/pulls/27
2024-03-24 19:25:35 +01:00
Lephenixnoir
2d293eeb35
libfxlink: remove confusingly unused IN message 2024-03-24 18:17:18 +01:00
Lephenixnoir
7b77fb9c0b
libfxlink: add status functions to avoid looking into fdev fields 2023-04-01 21:35:28 +02:00
Lephenixnoir
1251ca23ee
libfxlink: return status from fxlink_device_start_bulk_{IN,OUT} 2023-03-27 19:47:08 +02:00
Lephenixnoir
065233387d
split fxlink into library (not installed yet) and executable 2023-03-26 12:20:50 +02:00