51 Commits

Author SHA1 Message Date
twinaphex
0354ced675 Style nits 2017-01-17 19:02:49 +01:00
twinaphex
e3e8796b2b (iohidmanager_hid.c) Stylistic cleanups 2017-01-15 21:13:01 +01:00
Twinaphex
1544a3d6e1 (OSX) Fix warnings 2017-01-15 21:07:15 +01:00
John Regan
4f352227ea OSX Joypad Improvements
This commit has two main changes to the OSX HID driver:

1.

Some joysticks have invalid/incorrect 'use' assigned to buttons and
axes. For example, my RetroUSB.com Genesis Retroport reports 8 buttons,
but they're reported as 1, 2, 3, 4, 1, 2, 3, 4, and my RetroLink
Gamecube-clone controller reports 2 axes with id 50.

OSX assigns each of these elements a unique cookie value, so it's still
possible to uniquely identify a button. Whenever a controller is
connected, the driver scans for all buttons and axes. When it identifies
a duplicate 'use' id, it reassigns it a new ID.

Whenever the input callback is called, it grabs the cookie value,
finds the input element with a matching cookie, and uses that element's
id instead of the one reported by the device.

The old joystick configs should not be broken by this - I'm using the
existing 'use' value wherever possible, and only changing it when it's
broken.

The 'faked' ids are done in a deterministic way, a joystick will never
have a button's 'faked' id change between launches of RetroArch.

2.

This enables HAT switch input.
2017-01-15 12:17:47 -06:00
twinaphex
ea3dd6a95b Set device name when autoconfig connect task fails for all
other input drivers too
2017-01-13 05:00:13 +01:00
twinaphex
103042de96 Rewrite task_autodetect.c 2016-12-31 07:43:34 +01:00
twinaphex
aafae944cb Don't memset autoconfig_params_t 2016-12-17 14:26:13 +01:00
Twinaphex
db1f3c058a (iohidmanager_hid.c) No longer need to include configuration.h now 2016-12-16 12:36:01 +01:00
twinaphex
d9def056e7 The 'connect' task now sets the device name upon completion 2016-12-16 12:33:56 +01:00
twinaphex
62f5b2d3c3 The disconnect task now clears the device name 2016-12-16 12:20:31 +01:00
Dave Leaver
cd5a5c5fd7 iohidmanager_hid: Remove name from adapters when they are disconnected 2016-12-16 20:17:24 +13:00
twinaphex
e9f853ba93 Move (joykey == NO_BTN ) to input_joypad_driver 2016-12-11 08:44:55 +01:00
Twinaphex
0d79bc754c (OSX) Buildfix 2016-12-01 22:51:46 +01:00
twinaphex
d3c22cb0e4 Move input/input_autodetect.c to tasks/task_autodetect.c 2016-12-01 20:38:20 +01:00
twinaphex
76d0380e45 Rename input_autoconfigure_joypad to input_autoconfigure_connect 2016-12-01 18:57:44 +01:00
twinaphex
e689d55414 Rename autoconfig functions 2016-12-01 18:52:34 +01:00
twinaphex
dad26e0956 Header cleanup 2016-11-05 14:10:30 +01:00
twinaphex
9ee5931c5e Nits 2016-09-14 23:37:20 +02:00
twinaphex
4571dc33fc header include cleanups 2016-09-05 17:29:19 +02:00
twinaphex
40023833e0 (IOHIDManager) Plug another potential leak 2016-05-25 02:35:13 +02:00
Twinaphex
c1e82d3f1a (IOHidManager) Fix adapter leak 2016-05-24 14:01:46 +02:00
twinaphex
4e74a990d4 (IOHIDManager) Free some resource leaks 2016-05-24 13:48:02 +02:00
twinaphex
d3aaa7ac88 Style nits 2016-02-05 14:42:20 +01:00
twinaphex
347a18cb30 Update input headers 2016-01-10 04:33:01 +01:00
twinaphex
697351ee67 (input) Use string_is_empty 2015-12-26 07:54:17 +01:00
twinaphex
d15ad86705 Create hid_driver_get_data 2015-11-29 21:11:57 +01:00
twinaphex
074f14b132 Add verbosity.c/verbosity.h 2015-11-23 12:03:38 +01:00
Twinaphex
e88fff9985 (iohidmanager_hid.c) Fix header dependencies 2015-11-16 06:49:40 +01:00
Twinaphex
5dee9838c4 (iohidmanager_hid.c) remove Cocoa dependencies 2015-11-16 06:48:02 +01:00
twinaphex
08bb85e509 (OSX) apple->buttons refactored away 2015-11-16 06:46:29 +01:00
twinaphex
018db7c081 (IOHIDManager) buildfix 2015-11-16 06:40:07 +01:00
twinaphex
2fa91ba26c (IOHIDManager) Make axes code independent from CocoaTouch 2015-11-16 06:32:25 +01:00
Twinaphex
db35a28e50 Revert "Refactor slots to be a part of input_hid_driver.c now"
This reverts commit 646ded9d1c96f02f1746e4e96572bb1aec60255d.
2015-11-16 03:48:51 +01:00
twinaphex
646ded9d1c Refactor slots to be a part of input_hid_driver.c now 2015-11-16 03:39:40 +01:00
Arche-san
b9a0793444 os x hid : reorder axis (keep compatibility with others platforms) 2015-11-15 13:11:40 +01:00
Arche-san
c47254e64b os x : add right stick support for xbox 360 gamepad (and others hid gamepad with 6 axes instead of 4) 2015-11-14 18:04:07 +01:00
Twinaphex
9bd302b4ec (iohidmanager) Buildfix 2015-10-02 18:24:33 +02:00
twinaphex
87d44af218 Static code analysis cleanups 2015-09-29 18:08:33 +02:00
twinaphex
e986b9e42a Static code analysis cleanups 2015-09-29 17:35:28 +02:00
twinaphex
a79b571d7b Static code analysis fixes 2015-09-28 16:20:26 +02:00
twinaphex
e654c5cb65 Header cleanups 2015-09-05 20:53:56 +02:00
twinaphex
1489839384 (OSX) Add HAVE_COCOA and HAVE_COCOATOUCH ifdefs to iohidmanager_hid.c 2015-08-01 05:19:44 +02:00
slotek
7431529e89 Restore generic Mac OS X joypad functionality 2015-07-29 10:12:31 -06:00
twinaphex
b679f75f91 (iohidmanager_hid.c) Cleanups 2015-06-25 18:27:28 +02:00
Twinaphex
227c986143 More CXX_BUILD fixes 2015-06-25 17:40:09 +02:00
twinaphex
123b85dbb0 Change returntype of pad_connection_init 2015-06-13 01:40:55 +02:00
twinaphex
1a5e16ff99 Create input_config_autoconfigure_disconnect 2015-06-03 18:55:04 +02:00
twinaphex
f02ef849ae (HID) Fixup 2015-05-06 04:10:49 +02:00
twinaphex
f57132ff6f Protect against failed pad init 2015-05-06 04:03:00 +02:00
Twinaphex
1fb00bdac3 Add HAVE_IOHIDMANAGER to qb/config.libs.sh 2015-04-20 12:04:31 +02:00