diff options
| author | shuffle2 <godisgovernment@gmail.com> | 2017-06-05 20:49:02 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-05 20:49:02 -0700 |
| commit | 192fec50b9e3a98aa625684c0a6bd016bfedbcd5 (patch) | |
| tree | 842cb3abfb59fbe8f6938799b305a29475ed8df7 /Source/Core/InputCommon/ControllerInterface | |
| parent | 9a9b0eed7202bd052df92113072ef7e46a0b2582 (diff) | |
| parent | c63925dc218aaa116328716e57af576eb39178bf (diff) | |
Merge pull request #5276 from ligfx/macosheadless
Add headless support on macOS
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
| -rw-r--r-- | Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm | 14 | ||||
| -rw-r--r-- | Source/Core/InputCommon/ControllerInterface/Quartz/Quartz.mm | 3 |
2 files changed, 14 insertions, 3 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm b/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm index 900fc29a70..948e2b85fa 100644 --- a/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm +++ b/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm @@ -173,13 +173,21 @@ static void DeviceMatchingCallback(void* inContext, IOReturn inResult, void* inS // Add a device if it's of a type we want if (IOHIDDeviceConformsTo(inIOHIDDeviceRef, kHIDPage_GenericDesktop, kHIDUsage_GD_Keyboard)) - g_controller_interface.AddDevice(std::make_shared<Keyboard>(inIOHIDDeviceRef, name, g_window)); + { + if (g_window) + g_controller_interface.AddDevice( + std::make_shared<Keyboard>(inIOHIDDeviceRef, name, g_window)); + } #if 0 else if (IOHIDDeviceConformsTo(inIOHIDDeviceRef, kHIDPage_GenericDesktop, kHIDUsage_GD_Mouse)) + { g_controller_interface.AddDevice(new Mouse(inIOHIDDeviceRef, name)); + } #endif else + { g_controller_interface.AddDevice(std::make_shared<Joystick>(inIOHIDDeviceRef, name)); + } NOTICE_LOG(SERIALINTERFACE, "Added device: %s", name.c_str()); g_controller_interface.InvokeHotplugCallbacks(); @@ -187,12 +195,12 @@ static void DeviceMatchingCallback(void* inContext, IOReturn inResult, void* inS void Init(void* window) { + g_window = window; + HIDManager = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone); if (!HIDManager) ERROR_LOG(SERIALINTERFACE, "Failed to create HID Manager reference"); - g_window = window; - IOHIDManagerSetDeviceMatching(HIDManager, nullptr); if (IOHIDManagerOpen(HIDManager, kIOHIDOptionsTypeNone) != kIOReturnSuccess) ERROR_LOG(SERIALINTERFACE, "Failed to open HID Manager"); diff --git a/Source/Core/InputCommon/ControllerInterface/Quartz/Quartz.mm b/Source/Core/InputCommon/ControllerInterface/Quartz/Quartz.mm index a090b421a5..30802182a8 100644 --- a/Source/Core/InputCommon/ControllerInterface/Quartz/Quartz.mm +++ b/Source/Core/InputCommon/ControllerInterface/Quartz/Quartz.mm @@ -12,6 +12,9 @@ namespace Quartz { void PopulateDevices(void* window) { + if (!window) + return; + g_controller_interface.AddDevice(std::make_shared<KeyboardAndMouse>(window)); } |
