4 #ifndef SWIFT_INPUT_JOYSTICKMACOS_H
5 #define SWIFT_INPUT_JOYSTICKMACOS_H
9 #include <IOKit/hid/IOHIDManager.h>
16 namespace swift::input
20 class CJoystickDevice :
public QObject
32 bool init(
const IOHIDDeviceRef device);
45 void processButtonEvent(IOHIDValueRef value);
47 static void valueCallback(
void *context, IOReturn result,
void *sender, IOHIDValueRef value);
49 QString m_deviceName =
"unknown";
51 IOHIDDeviceRef m_deviceRef =
nullptr;
74 virtual bool init()
override;
83 void addJoystickDevice(
const IOHIDDeviceRef device);
86 void removeJoystickDevice(
const IOHIDDeviceRef device);
90 static void matchCallback(
void *context, IOReturn result,
void *sender, IOHIDDeviceRef device);
91 static void removeCallback(
void *context, IOReturn result,
void *sender, IOHIDDeviceRef device);
93 IOHIDManagerRef m_hidManager =
nullptr;
94 QVector<CJoystickDevice *> m_joystickDevices;