for (int i = 0; i < CFArrayGetCount(elements); i++) {
IOHIDElementRef element = (IOHIDElementRef)CFArrayGetValueAtIndex(elements, i);
int type = IOHIDElementGetType(element);
- int usage = IOHIDElementGetUsage(element);
- int usagePage = IOHIDElementGetUsagePage(element);
- int max = IOHIDElementGetPhysicalMax(element);
- int min = IOHIDElementGetPhysicalMin(element);
+ unsigned usage = IOHIDElementGetUsage(element);
+ unsigned usagePage = IOHIDElementGetUsagePage(element);
+ long max = IOHIDElementGetPhysicalMax(element);
+ long min = IOHIDElementGetPhysicalMin(element);
CFStringRef elName = IOHIDElementGetName(element);
JSAction *action = nil;
action.cookie = IOHIDElementGetCookie(element);
[children addObject:action];
}
+
+ CFRelease(elements);
return children;
}
-@implementation Joystick
-
-@synthesize vendorId;
-@synthesize productId;
-@synthesize productName;
-@synthesize index;
-@synthesize device;
-@synthesize children;
+@implementation Joystick {
+ int vendorId;
+ int productId;
+}
- (id)initWithDevice:(IOHIDDeviceRef)dev {
if ((self = [super init])) {
self.device = dev;
self.productName = (__bridge NSString *)IOHIDDeviceGetProperty(dev, CFSTR(kIOHIDProductKey));
- self.vendorId = [(__bridge NSNumber *)IOHIDDeviceGetProperty(dev, CFSTR(kIOHIDVendorIDKey)) intValue];
- self.productId = [(__bridge NSNumber *)IOHIDDeviceGetProperty(dev, CFSTR(kIOHIDProductIDKey)) intValue];
+ vendorId = [(__bridge NSNumber *)IOHIDDeviceGetProperty(dev, CFSTR(kIOHIDVendorIDKey)) intValue];
+ productId = [(__bridge NSNumber *)IOHIDDeviceGetProperty(dev, CFSTR(kIOHIDProductIDKey)) intValue];
self.children = ActionsForElement(dev, self);
}
return self;
}
- (NSString *)name {
- return [NSString stringWithFormat:@"%@ #%d", productName, index];
+ return [NSString stringWithFormat:@"%@ #%d", _productName, _index];
}
- (id)base {
}
- (NSString *)uid {
- return [NSString stringWithFormat: @"%d:%d:%d", vendorId, productId, index];
+ return [NSString stringWithFormat: @"%d:%d:%d", vendorId, productId, _index];
}
-- (JSAction *)findActionByCookie:(void *)cookie {
- for (JSAction *child in children)
+- (JSAction *)findActionByCookie:(IOHIDElementCookie)cookie {
+ for (JSAction *child in _children)
if (child.cookie == cookie)
return child;
return nil;
- (JSAction *)actionForEvent:(IOHIDValueRef)value {
IOHIDElementRef elt = IOHIDValueGetElement(value);
- void *cookie = IOHIDElementGetCookie(elt);
+ IOHIDElementCookie cookie = IOHIDElementGetCookie(elt);
return [self findActionByCookie:cookie];
}