Difference between revisions of "Gasync"

From GIMX
Jump to: navigation, search
(GNU/Linux implementation)
Line 1: Line 1:
 
The gasync (GIMX asynchronous) library is the evolution of the [[GE|GE (GIMX events) library]].<br />
 
The gasync (GIMX asynchronous) library is the evolution of the [[GE|GE (GIMX events) library]].<br />
 
In addition to input devices, gasync also handles the following components:
 
In addition to input devices, gasync also handles the following components:
* serial ports
+
* serial ports (DIY USB adapter)
* high-resolution timers
+
* high-resolution timers (delayed or periodic tasks)
* USB devices
+
* USB devices (authentication sources)
* HID devices
+
* 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.
 
It also provides a default waiting interface based on poll on GNU/Linux and MsgWaitForMultipleObject on Windows.
 
=GNU/Linux implementation=
 
=GNU/Linux implementation=

Revision as of 21:45, 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 (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
  • 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.