Difference between revisions of "Gasync"

From GIMX
Jump to: navigation, search
(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/>
The libusb 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 with the kernel.
+
* 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.