Commit Graph

175 Commits

Author SHA1 Message Date
rdb dc599901bc Work around shutdown hang when compiling with SIMPLE_THREADS=1
This is a workaround for a specific case of #508
2019-08-12 19:37:11 +02:00
rdb 932e981572 device: fix deadlock when building with SIMPLE_THREADS=1
GetMessage blocks without yielding, so we need to use an alternative message pump using PeekMessage instead.

Fixes #704
2019-08-12 19:34:17 +02:00
rdb 750afbb188 device: Linux fixes for Trust GXT 24 and a few other cheap gamepads
Fixes #576
2019-05-12 20:34:19 +02:00
rdb 7f0ac22ca5 device: fix mappings for various generic gamepads on Windows
See also #576
2019-05-02 21:32:31 +02:00
Sebastian Hoffmann 16c3ca5c87 device: Fix swapped axes on right stick for Jess Colour Rumble Pad
Closes #639
2019-05-01 17:19:18 +02:00
Rishabh Tewari bfb50ab7ff device: don't crash on Linux if no devices are found
Fixes #634
Closes #635
2019-04-29 00:32:34 +02:00
rdb 239dc40032 device: fix crash when unplugging certain devices on macOS
Fixes #621
2019-04-14 22:11:20 +02:00
rdb 1a9867ae2e device: remove executable permissions from inputDeviceSet.* 2019-04-02 02:08:47 +02:00
Sam Edwards c63562088b device: Fix missing include 2019-03-18 04:10:35 -06:00
rdb 45778b9e9f device: use threaded message loop on Windows (see #562) 2019-03-04 16:20:52 +01:00
rdb 7f4491cb98 device: disable message loop in WinInputDeviceManager for now
This was a change in aadc62a96c but seems to cause other problems, see #562
2019-03-02 12:39:42 +01:00
rdb 3875cc8259 device: add proper mapping for 8bitdo N30 Pro Controller on Linux 2019-02-07 22:28:04 +01:00
rdb 0ef9f9bef5 device: various button/axis mapping fixes in Windows raw impl
Now uses a table like on Linux with the various mappings.
2019-02-06 22:06:43 +01:00
rdb f8d7941fe8 device: fix a bad axis mapping on Linux 2019-02-06 22:03:44 +01:00
rdb 1b4035f29a device: move HID API definitions to separate header file 2019-02-06 21:56:47 +01:00
rdb aadc62a96c device: fix inability to detect devices with pipelining enabled
This is because the message window is being created in the main thread, but there is nothing processing messages in the main thread.
2019-02-06 21:51:06 +01:00
rdb 22cac1cdf9 device: fix stack corruption crashes on 32-bit Windows 2019-01-31 18:23:29 +01:00
rdb 9d12a4c437 general: improvements to doxygen API reference:
* In C++ reference, only pick up classes defined in .h file
* Add a few excludes to C++ reference that aren't public API
* On class index pages, reduce number of columns
* Add @since for some methods/classes that are new in 1.10.0
* Fix/improve a few docstrings here and there
2019-01-23 22:24:02 +01:00
rdb 66655aae85 device: fix incorrect features when printing InputDevice 2019-01-21 15:32:22 +01:00
rdb d106fd6a3a device: added checks, robustness, debug output for Windows raw input 2019-01-05 22:00:34 +01:00
rdb 7e562b0eb3 device: remove unused variables on Windows 2019-01-03 16:01:10 +01:00
rdb 8cdeb9b60b device: fix a case issue in include statement 2019-01-03 15:34:30 +01:00
rdb c365beaf11 device: hide Steam Controller on Linux while Steam is running
When Steam runs, it mutes all input from the Steam Controller and instead registers a virtual gamepad that obeys the Big Picture controller remapping.  We want to make sure to pick that one, since the "real" Steam Controller doesn't report any events while the virtual device is active.  So we carefully consider the "real" Steam Controller "inactive" if the presence of the virtual device is detected, until the virtual device is disconnected (ie. when Steam is closed) or if it turns out that it is generating events after all, in which case it gets automatically reactivated.

This is a bit of a hack, maybe there is a cleaner way of doing this.
2019-01-02 00:56:40 +01:00
rdb a02920bb42 device: detect XInput devices on start-up
This is needed to handle cases where XInput is being emulated, such as when running via Steam with the Steam Controller active.  Steam's shim does not send out WM_INPUT_DEVICE_CHANGE events.
2019-01-01 16:27:55 +01:00
rdb 2bde2baed2 device: a couple of fixes with Windows device input 2019-01-01 16:23:16 +01:00
rdb f3ba1d317c device: support for Steam Controller on Linux
Adds lgrip and rgrip button handles, which are present on Steam Controller but also on the Oculus Touch
2018-12-31 16:10:56 +01:00
rdb 8119547e90 device: add hacky detection of Trust GXT 24 as gamepad for now 2018-12-31 13:12:40 +01:00
Sam Edwards bc2450441d device: Fix some includes 2018-12-28 20:59:09 -07:00
rdb 7ed8b01a84 Merge branch 'input-overhaul' 2018-11-30 22:04:13 +01:00
rdb 585ba2d647 Prepare input API for multipointer support 2018-11-30 20:54:37 +01:00
rdb 29170278e9 device: a few InputDevice API tweaks
find_button() and find_axis() should not error since there is no way to find out whether a button/axis exists or not
2018-11-30 20:54:35 +01:00
rdb 2087d8ee84 device: change InputDevice enums to enum classes 2018-11-30 20:41:06 +01:00
rdb 26fcf131c9 Merge branch 'master' into input-overhaul 2018-11-25 17:10:31 +01:00
Sam Edwards a9dfd8352e general: Distinguish local/system includes
This changes includes so that local includes are consistently
#include "localFile.h"
while system and third-party includes are consistently
#include <systemFile.h>

This commit mostly converts the former to the latter; the two
exceptions are in android_main.cxx and fmodAudioSound.h, where
the reverse was necessary.
2018-11-10 18:00:10 -07:00
rdb ada3fa5513 Compile fixes on input-overhaul branch 2018-10-08 01:44:17 +02:00
rdb 9618cd2193 device: ensure libputil is initialized before scanning devices 2018-10-07 21:06:24 +02:00
rdb 4b77812b35 device: fix inverted flight stick throttle on Linux 2018-10-07 20:49:13 +02:00
rdb f518b9aaf1 device: fixes to sporadic device class detection on Linux 2018-10-07 20:48:39 +02:00
rdb 85752b06f5 device: delete InputDevice copy ctor / assign operator 2018-09-28 17:32:38 +02:00
rdb 9b85a28861 putil: rename MouseData to PointerData to be more inclusive 2018-09-28 17:18:38 +02:00
rdb 8edc019307 device: overhaul InputDevice API:
- Rename "controls" terminology for analog inputs to "axes"
- Change some naming of accessors
- Unexpose methods where they are available as properties
- Add serial_number field
- Put battery levels under a "battery" field
2018-09-16 20:22:22 +02:00
rdb 8d8c5a546d input: rename "action_x" button handles to "face_x" 2018-09-16 14:50:00 +02:00
rdb e30b597926 Merge branch 'master' into input-overhaul 2018-09-16 12:28:22 +02:00
Sam Edwards 4695557a5d general: Don't require BUILDING_* for static builds 2018-08-31 23:54:32 -06:00
rdb 7cc100c38c device: change ControlAxis enum to an Axis enum class 2018-08-26 21:18:29 +02:00
rdb 11723b27ee device: various warning fixes for input-overhaul on Linux 2018-06-23 23:30:44 +02:00
rdb 234fd675b1 Merge branch 'master' into input-overhaul 2018-06-23 23:24:09 +02:00
Sam Edwards b2bfb31114 general: Remove `using std::*` from headers
Also remove most `using namespace std;` statements. The only one that remains is in py_panda.h.

Closes #350
Closes #335
2018-06-14 16:04:49 +02:00
rdb ba2de46beb Merge branch 'master' into input-overhaul 2018-06-08 15:23:47 +02:00
Sam Edwards 7790f8429d general: Fully qualify header references into the std namespace
Closes #341
2018-06-07 10:35:12 +02:00