Commit Graph

206 Commits

Author SHA1 Message Date
clobber ee43b089a6 Use a custom-build runloop in an internally managed thread to handle timing. 2016-07-31 19:57:08 -07:00
clobber fd826593ef Runloop implementation. 2016-07-28 22:19:21 -07:00
clobber 759885214d Throw away useless function. 2016-07-28 22:18:41 -07:00
clobber 5cd5bf0327 Set _lastFrameTime to the time set for the next timer execution. 2016-07-24 23:02:07 -07:00
clobber 8645449ea3 Dispatch queue support 2016-07-24 17:37:34 -07:00
clobber 5450d2c7d2 Merge pull request #14 from CharlesJS/master
Fix issue that caused some Bluetooth mice to break the input system
2016-07-22 23:32:08 -05:00
Charles Srstka 2b1e67e6e9 Fix issue that caused some Bluetooth mice to break the input system 2016-07-17 13:31:58 -05:00
clobber f8b45751af Merge pull request #12 from CharlesJS/master
Fix: hat switch buttons perform wrong actions on third-party controllers
2016-06-29 00:04:21 -05:00
CharlesJS a1ac2a5995 Probably better way to fix this 2016-05-25 16:58:22 -05:00
CharlesJS ec8182b391 Attempt at fixing a bug that was causing crashes with certain controllers 2016-05-25 16:57:11 -05:00
CharlesJS 7219af9005 Fixed a bug involving hat switch handling on external controllers 2016-04-28 03:26:23 -05:00
mrvacbob 6d5a059fe1 Run the HID event loop after the wait, not before
This gives it the most time to collect HID events. Otherwise, input
could arrive while waiting but not be read until after the next frame.

Tried running the event loop for 'advance' seconds but the timer is
too imprecise to work.
2016-03-31 01:51:22 -07:00
mrvacbob 7f0e6e1aa4 Add isPausedExecution API to handle saving in Mupen and Dolphin properly
Mupen always unpaused and paused after saving, which could lead to it
getting out of sync with the UI's play button state. Dolphin has trouble
with the rendering thread deadlocking.
2016-03-31 00:07:08 -07:00
mrvacbob d9c8b8cc74 Rename frameRefreshThread: since it's not a thread 2016-03-21 02:10:29 -07:00
mrvacbob 308f1c1c9f Simplify the number of timing variables used in OEGameCore, remove some unused deprecated ones 2016-03-21 00:03:15 -07:00
mrvacbob adc3a502f7 Remove one thread jump in the input path
Gotta go fast.
2016-03-20 21:57:17 -07:00
mrvacbob 95170da02b Fix video glitches in Mupen64... again. 2016-03-20 21:56:56 -07:00
mrvacbob d5fce4037f Fix thread-safety in init_mach_time() 2016-01-04 01:15:06 -08:00
clobber 512837ccba Clean up useless code. 2015-12-23 18:29:11 +01:00
clobber e5193fe5eb Add support for some consumer keys that we know about. 2015-12-23 18:29:11 +01:00
clobber b7c58e2186 Change bindings folder path. 2015-12-23 10:01:29 -07:00
clobber 265dff1264 Whoops, GD elements are not buttons! 2015-12-23 11:31:33 +01:00
clobber c404312732 Make the oebindings property list easier to read when opening it. 2015-12-23 02:12:53 +01:00
clobber 9cd2d031a2 Fix kHIDUsage_GD_DPadUp, kHIDUsage_GD_DPadDown, kHIDUsage_GD_DPadLeft, kHIDUsage_GD_DPadRight, kHIDUsage_GD_Start, kHIDUsage_GD_Select parsing.
We separate kHIDPage_GenericDesktop and kHIDPage_Button to search for the elements, so we need to use a different array when touching the new usages that are not actually buttons.
2015-12-23 01:20:50 +01:00
clobber b2ca17fe05 Clean up deprecated methods. 2015-12-12 17:06:00 -08:00
clobber 132a27b684 Prevent devices that do not have a location ID from being opened or registered since we can't identify them across processes making them unusable with the new input implementation. 2015-12-02 00:44:37 -08:00
clobber 565527c931 Fix missing elements for generic desktop buttons. 2015-12-01 02:15:47 -06: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 b7f8f68eb9 Fix key description. 2015-11-28 20:10:54 -08:00
clobber f4b40f7d63 Build fix. Use the new property on OESystemController to get the number of controls. 2015-11-28 19:26:19 -08:00
clobber eb765fcfab Stop implementing OESystemBindingsObserver, rename the protocol methods by removing the OESystemBindings argument. This class will receive updates from OpenEmuHelperApp instead on the emulator process side. 2015-11-28 18:42:01 -08:00
clobber 7958b82a50 Add convenience method to know when global event handlers are present in OEDeviceManager. 2015-11-28 18:40:24 -08:00
clobber ac33544f0d Add OEBindingDescription superclass for OEKeyBindingDescription and OEKeyBindingGroupDescription. Move OEBindingDescription creation to OESystemController from OESystemBindings. Add OESystemController as a property of OEBindingDescription so that it can be encoded along with an identifier and recovered in a background process. 2015-11-28 17:35:26 -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
clobber 391ff20dfd Clean up and implement NSSecureCoding so NSEvent for keyboard events can pass through XPC to the core 2015-11-22 02:40:19 -06:00
clobber 78324596d9 Generate NSEvent for keyboard events and add some convenience properties 2015-11-21 17:17:01 -06:00
mrvacbob 2e99400aae Shut up one log line 2015-11-10 00:38:37 -08:00
mrvacbob cb4d30d37f Implement hasAlternateRenderingThread/needsDoubleBufferedFBO in cores 2015-11-08 00:31:52 -08:00
mrvacbob aab71d4efc Add API to expose our dest framebuffer to cores 2015-11-07 14:28:51 -08:00
clobber 897555f3b2 Fixes compat with older compiled cores linked against the framework 2015-10-30 01:17:39 -05:00
mrvacbob 0c189d422b Merge pull request #9 from giggle-engineer/master
WIP rumble support added to OEHIDDeviceHandler
2015-10-24 00:51:57 -07:00
Chloe Stars 4fc6c5392f WIP rumble support added to OEHIDDeviceHandler 2015-10-24 00:49:35 -07:00
Alexander Strange a3006b82fa Remove a log 2015-10-21 03:39:49 -07:00
Alexander Strange 288fcd26a7 Un-deprecate internalPixelFormat, slightly useful 2015-10-20 22:26:43 -07:00
Alexander Strange 60077e74da Fix enum type 2015-10-20 03:21:49 -07:00
Alexander Strange bee40dc496 implement default -internalPixelFormat 2015-10-19 01:20:40 -07:00
Alexander Strange bb13a70b4b Pretty new OEGameCore refactor in preparation for OpenGL3 support. Should not break backwards compatibility. 2015-10-18 17:40:22 -07:00
Alexander Strange da34753f16 Update projects - fix debug builds, make deployment 10.11, enable objc-arc properly, build faster 2015-10-17 13:04:19 -07:00
clobber af8a726282 Fix exception when device has no Product string. Fixes OpenEmu/OpenEmu#1966, Fixes OpenEmu/OpenEmu#2074 2015-10-05 21:53:51 -05:00