summaryrefslogtreecommitdiffhomepage
path: root/opentrack-logic/win32-joystick.cpp
AgeCommit message (Collapse)Author
2016-07-07logic/dinput: only ever use a single handle to DIRECTINPUT8 COM objectStanislaw Halik
2016-07-07logic/joystick: initialize dinput handle ASAPStanislaw Halik
2016-07-04logic/joystick: don't logspam button pressesStanislaw Halik
On my Saitek X65F there's erratic panel button logspam. The panel's been thrown out since it's useless, and the connector is detached from everything. In any case don't do stderr io overhead for button presses.
2016-06-29logic/joystick: treat each POV hat as 4 buttonsStanislaw Halik
dinput8 has separate logic for pov hats. Before pov hat state was totally ignored. Don't support 8-way buttons. Only one button gets registered after a diagonal pov hat press.
2016-06-28logic/joystick: fix multiple bugsStanislaw Halik
- the enumerator and the handle list are now static; joysticks were erroneously destructed during refresh - setup dinput only once; creating LPDIRECTINPUT8 many times causes Release() to invalidate all handles - don't create joystick handles many times; same thing applies - refresh joy list on failed acquire; usually joystick is unplugged at that moment leading to endless stderr spam - use a static mutex as to avoid dinput races Issue: #315
2016-06-16all: split "api" into "api" and "logic"Stanislaw Halik
Here, the "logic" module has all the stuff for building one's own graphical user interface. The "api" module has stuff used by other trackers. While at it, each of "api", "logic", and "compat" need their own export headers. This is because of preprocessor symbol clashes. This is all because a change in the "gui"-only dependency required a relink of all the trackers, protocols, and flters. It takes too long when building in the release configuration. With the split, only the "gui" module gets rebuilt. Since it has close to no static dependencies, it's fast enough.