Difference between revisions of "Gasync"

From GIMX
Jump to: navigation, search
Line 14: Line 14:
 
|gtimer
 
|gtimer
 
|gusb
 
|gusb
|ghid *
+
|ghid
 
|-
 
|-
 
|[http://man7.org/linux/man-pages/man2/poll.2.html poll]
 
|[http://man7.org/linux/man-pages/man2/poll.2.html poll]
Line 25: Line 25:
 
|-
 
|-
 
|}
 
|}
 +
Notes:
 
* 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.
 
* 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.
Line 40: Line 41:
 
|[https://msdn.microsoft.com/en-us/library/windows/desktop/ms684242%28v=vs.85%29.aspx MsgWaitForMultipleObject]
 
|[https://msdn.microsoft.com/en-us/library/windows/desktop/ms684242%28v=vs.85%29.aspx MsgWaitForMultipleObject]
 
|[https://msdn.microsoft.com/en-us/library/windows/desktop/ms645536%28v=vs.85%29.aspx Raw Input]
 
|[https://msdn.microsoft.com/en-us/library/windows/desktop/ms645536%28v=vs.85%29.aspx Raw Input]
|[https://www.libsdl.org/ libSDL *]
+
|[https://www.libsdl.org/ libSDL]
 
|[https://msdn.microsoft.com/en-us/library/windows/desktop/aa363140%28v=vs.85%29.aspx COM ports]
 
|[https://msdn.microsoft.com/en-us/library/windows/desktop/aa363140%28v=vs.85%29.aspx COM ports]
 
|[https://msdn.microsoft.com/en-us/library/windows/desktop/ms687012%28v=vs.85%29.aspx Waitable Timers]
 
|[https://msdn.microsoft.com/en-us/library/windows/desktop/ms687012%28v=vs.85%29.aspx Waitable Timers]
Line 47: Line 48:
 
|-
 
|-
 
|}
 
|}
 +
Notes:
 
* The libSDL events are processed synchronously.
 
* The libSDL events are processed synchronously.

Revision as of 08:14, 11 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 (DIY USB adapter)
  • high-resolution timers (delayed or periodic tasks)
  • USB devices (authentication sources)
  • HID devices (Logitech Wheels, GPP/Cronus/Titan One)

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

Notes:

  • 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

Notes:

  • The libSDL events are processed synchronously.