Module: wine Branch: master Commit: c6b3e34b846a9c880ee18618d15a28c78d75140a URL: http://source.winehq.org/git/wine.git/?a=commit;h=c6b3e34b846a9c880ee18618d1...
Author: David Lawrie david.dljunk@gmail.com Date: Mon Jul 11 04:06:03 2016 -0700
winejoystick.drv: Print location ID in debugstr_device on the Mac.
Signed-off-by: David Lawrie david.dljunk@gmail.com Signed-off-by: Ken Thomases ken@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/winejoystick.drv/joystick_osx.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/dlls/winejoystick.drv/joystick_osx.c b/dlls/winejoystick.drv/joystick_osx.c index 12ccff7..bda9163 100644 --- a/dlls/winejoystick.drv/joystick_osx.c +++ b/dlls/winejoystick.drv/joystick_osx.c @@ -121,6 +121,28 @@ typedef struct { static joystick_t joysticks[MAXJOYSTICK]; static CFMutableArrayRef device_main_elements = NULL;
+static long get_device_property_long(IOHIDDeviceRef device, CFStringRef key) +{ + CFTypeRef ref; + long result = 0; + + if (device) + { + assert(IOHIDDeviceGetTypeID() == CFGetTypeID(device)); + + ref = IOHIDDeviceGetProperty(device, key); + + if (ref && CFNumberGetTypeID() == CFGetTypeID(ref)) + CFNumberGetValue((CFNumberRef)ref, kCFNumberLongType, &result); + } + + return result; +} + +static long get_device_location_ID(IOHIDDeviceRef device) +{ + return get_device_property_long(device, CFSTR(kIOHIDLocationIDKey)); +}
static const char* debugstr_cf(CFTypeRef t) { @@ -154,8 +176,9 @@ static const char* debugstr_cf(CFTypeRef t)
static const char* debugstr_device(IOHIDDeviceRef device) { - return wine_dbg_sprintf("<IOHIDDevice %p product %s>", device, - debugstr_cf(IOHIDDeviceGetProperty(device, CFSTR(kIOHIDProductKey)))); + return wine_dbg_sprintf("<IOHIDDevice %p product %s IOHIDLocationID %lu>", device, + debugstr_cf(IOHIDDeviceGetProperty(device, CFSTR(kIOHIDProductKey))), + get_device_location_ID(device)); }
static const char* debugstr_element(IOHIDElementRef element)