Commit Graph
20 Commits
Author SHA1 Message Date
clobber e67bd42d09 Mayflash GameCube 2 port USB adapter declares two devices that look exactly the same with the same LocationID, the only thing that differentiates them is there kUSBInterfaceNumber. Use that in the -uniqueIdentifier which is what we use to differentiate devices to assign bindings. This patch also moves the hack to differentiate devices that do not have a LocationID from -locationID to -uniqueIdentifier where we also cache the identifier instead of regenerating it every time the method is called. 2019-12-10 23:29:58 -08:00
Daniele Cattaneo 78fb591775 Add support for handling HID reports on a different thread. 2019-09-13 20:06:33 +02:00
Daniele Cattaneo 5c15314e24 Do not crash when a device is removed from the device manager before it is actually disconnected at the transport layer. 2019-09-12 21:20:22 +02:00
Daniele Cattaneo cf3fcc1683 Export the -OE_removeDeviceHandler: method from OEDeviceManager for internal use 2019-09-10 01:33:17 +02:00
Daniele Cattaneo 75d11f2436 Slight refactoring of -OE_deviceHandlerClassForIOHIDDevice: (and removal of unused functions) 2019-08-31 00:05:24 +02:00
mrvacbob be5ecb6740 Use modern array/dict literal syntax 2019-06-02 04:50:49 -07:00
clobber 835ac771f6 Keep track of the Function (Fn) key state and also allow it to be bound.
This can be used for computer system plugins as a way to ignore system media key presses, so that F1-F12 keys may only register if Fn is pressed. The downside is this does not respect OS keyboard preferences if a user has changed the default settings, but seems to be the best we can do without relying on CGEventTap to track events which will require accessibility access. Attempted app-side workarounds by overriding sendEvent: or checking NSApp.currentEvent to block NSSystemDefined type NSEvent's proved to be useless due to syncing.
2018-10-07 17:44:06 -05:00
clobber df65a130df Ignore events from "unknown usage pages" and other unsupported HID pages. 2016-08-02 01:17:40 -05:00
Christopher Snowhill 0eb5712400 Added a workaround for devices which have a null locationID, but hopefully have unique product identifier strings. Steam Controller's user mode driver emulation has unique names, at least. 2016-07-28 12:11:55 -07:00
clobber 512837ccba Clean up useless code. 2015-12-23 18:29:11 +01:00
clobber 431195e021 Annotate binding and device classes. 2015-11-29 14:05:18 -08:00
clobber 379ee66b5a Fix issue with plugging/unplugging controllers while a game is running.
There are two issues in this case:
1. XPC messages are processed in a private queue making OEDeviceManager calls unsafe when retrieving device handlers. We solve this problem by making thread safe operations.
2. Sometimes we may receive binding updates on the emulator process before the process has had the time to recognize a device that is connected. This is solved by using placeholder device objects that we replace with real devices in OEHIDEvent when the device is finally parsed. This is possible because if a device is added to the UI process it will be added to the emulator process eventually.
2015-11-29 02:15:22 -08:00
clobber 3836c5bf82 Add a unique identifier to OEDeviceHandler. This allows multiple processes to uniquely identify a device across processes, later on OEDeviceHandler will be sent over XPC so we can move event handling in the emulator process instead. 2015-11-28 16:28:28 -08:00
Chloe Stars 4fc6c5392f WIP rumble support added to OEHIDDeviceHandler 2015-10-24 00:49:35 -07:00
clobber 73ea2c9eed Rename OEDeviceHandler name to product. 2014-03-01 23:09:17 -08:00
clobber 843b91d566 Also use device name to get device descriptions. 2014-03-01 17:30:43 -08:00
clobber 46ebe6a419 Send a null-direction axis event if the direction of the newly dispatched event is the opposite of the previously dispatched event. 2014-02-08 13:32:00 -08:00
Remy Demarest 0551f2a83d Dispatch events directly from the source rather than through the responder chain. 2013-09-01 23:55:03 -07:00
Remy Demarest aa192cfce4 Fill up the latestEvents table with off-state events for all the cookies we know about. 2013-04-15 00:09:44 -07:00
Remy Demarest a0434761d7 Move OpenEmuSystem and OpenEmuBase frameworks into their own project. 2013-04-07 00:21:09 -07:00