dinput: 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>
This commit is contained in:
David Lawrie 2016-07-11 04:06:00 -07:00 committed by Alexandre Julliard
parent b69b9a6ead
commit fef170af85
1 changed files with 27 additions and 2 deletions

View File

@ -175,6 +175,30 @@ static HRESULT osx_to_win32_hresult(HRESULT in)
return in; return in;
} }
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 void CFSetApplierFunctionCopyToCFArray(const void *value, void *context) static void CFSetApplierFunctionCopyToCFArray(const void *value, void *context)
{ {
CFArrayAppendValue( ( CFMutableArrayRef ) context, value ); CFArrayAppendValue( ( CFMutableArrayRef ) context, value );
@ -212,8 +236,9 @@ static const char* debugstr_cf(CFTypeRef t)
static const char* debugstr_device(IOHIDDeviceRef device) static const char* debugstr_device(IOHIDDeviceRef device)
{ {
return wine_dbg_sprintf("<IOHIDDevice %p product %s>", device, return wine_dbg_sprintf("<IOHIDDevice %p product %s IOHIDLocationID %lu>", device,
debugstr_cf(IOHIDDeviceGetProperty(device, CFSTR(kIOHIDProductKey)))); debugstr_cf(IOHIDDeviceGetProperty(device, CFSTR(kIOHIDProductKey))),
get_device_location_ID(device));
} }
static const char* debugstr_element(IOHIDElementRef element) static const char* debugstr_element(IOHIDElementRef element)