Skip to content

auraht/gamepad

Repository files navigation

A cross-platform gamepad library.

This library is intended for another project (closed-source, sorry) which may
require cross-platform gamepad support. Only necessary features are implemented,
i.e.

 - Disambiguating different gamepads.

 - Hotplugging support, with guarentee that the gamepad will not be mixed when
   such event happens.
   
 - Handling axis and button events.

 - Integer output and feature support.

 - (Currently Windows only) Simulating the gamepad using keyboard and mouse.

 - Uses BSD or more flexible license.

The library currently has the following limitations:

 - Only up to 13 specific axes from the Generic Desktop usage page (01) are sup-
   ported per gamepad. They are:
    * X (31), Y (32), Z (33), Rx (34), Ry (35), Rz (36),
    * Vx (41), Vy (42), Vz (43), Vbrx (44), Vbry (45), Vbrz (46), Vno (47)
 - Axes must be in linear scale.
 - The default position of each axis should be in ceil((min+max)/2), otherwise
   you may observe drifting.
 - Calibration is ignored.
 - On Windows, axes must not be specified as a usage array.
 - On Windows, the messages WM_USER+0x493e and WM_USER+0x493f are overridden by
   this library, i.e. user code can no longer receive them.

C++0x is required to compile the library. Only g++ 4.5 or above, or Visual C++
2010 are supported.

About

A cross-platform gamepad library to supplement HIDDriver

Resources

Stars

Watchers

Forks

Packages

No packages published