Difference between revisions of "Gasync"
(→GNU/Linux implementation) |
(→GNU/Linux implementation) |
||
Line 26: | Line 26: | ||
|} | |} | ||
* ghid is not based on [https://www.kernel.org/doc/Documentation/hid/hidraw.txt hidraw] because write() does not support non-blocking mode.<br/> | * ghid is not based on [https://www.kernel.org/doc/Documentation/hid/hidraw.txt hidraw] because write() does not support non-blocking mode.<br/> | ||
− | + | * Being based on libusb, ghid claims the HID interface and detaches the kernel driver. guhid is a [https://www.kernel.org/doc/Documentation/hid/uhid.txt uhid] wrapper to allow connecting the device back with the kernel. | |
=Windows implementation= | =Windows implementation= |
Revision as of 21:43, 10 May 2016
The gasync (GIMX asynchronous) library is the evolution of the GE (GIMX events) library.
In addition to input devices, gasync also handles the following components:
- serial ports
- high-resolution timers
- USB devices
- HID devices
It also provides a default waiting interface based on poll on GNU/Linux and MsgWaitForMultipleObject on Windows.
GNU/Linux implementation
gpoll | ginput | gserial | gtimer | gusb | ghid * | ||
poll | evdev | jsdev | X.Org Xi2 | termios | timerfd | libusb |
- ghid is not based on hidraw because write() does not support non-blocking mode.
- Being based on libusb, ghid claims the HID interface and detaches the kernel driver. guhid is a uhid wrapper to allow connecting the device back with the kernel.
Windows implementation
gpoll | ginput | gserial | gtimer | gusb | ghid | |
MsgWaitForMultipleObject | Raw Input | libSDL * | COM ports | Waitable Timers | libusb | HID API |
- The libSDL events are processed synchronously.