X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=Classes%2FNJHIDManager.m;fp=Classes%2FNJHIDManager.m;h=3dbaec3a6cb87335402790f48a54f5bde99b9a71;hp=5245bf562c41bf749dd30ea269bf5f644d95c8fc;hb=fb780593799014faf609388b479c405ae125b5f4;hpb=479e7966da759a6b113850961bde029407b277be diff --git a/Classes/NJHIDManager.m b/Classes/NJHIDManager.m index 5245bf5..3dbaec3 100644 --- a/Classes/NJHIDManager.m +++ b/Classes/NJHIDManager.m @@ -1,11 +1,3 @@ -// -// NJHIDManager.m -// Enjoyable -// -// Created by Joe Wreschnig on 3/13/13. -// -// - #import "NJHIDManager.h" @implementation NJHIDManager { @@ -27,21 +19,21 @@ [self stop]; } -static void input_callback(void *ctx, IOReturn inResult, void *inSender, IOHIDValueRef value) { +static void _input(void *ctx, IOReturn inResult, void *inSender, IOHIDValueRef value) { NJHIDManager *self = (__bridge NJHIDManager *)ctx; IOHIDDeviceRef device = IOHIDQueueGetDevice(inSender); - [self.delegate hidManager:self valueChanged:value fromDevice:device]; + [self.delegate HIDManager:self valueChanged:value fromDevice:device]; } -static void add_callback(void *ctx, IOReturn inResult, void *inSender, IOHIDDeviceRef device) { +static void _add(void *ctx, IOReturn inResult, void *inSender, IOHIDDeviceRef device) { NJHIDManager *self = (__bridge NJHIDManager *)ctx; - [self.delegate hidManager:self deviceAdded:device]; - IOHIDDeviceRegisterInputValueCallback(device, input_callback, ctx); + [self.delegate HIDManager:self deviceAdded:device]; + IOHIDDeviceRegisterInputValueCallback(device, _input, ctx); } -static void remove_callback(void *ctx, IOReturn inResult, void *inSender, IOHIDDeviceRef device) { +static void _remove(void *ctx, IOReturn inResult, void *inSender, IOHIDDeviceRef device) { NJHIDManager *self = (__bridge NJHIDManager *)ctx; - [self.delegate hidManager:self deviceRemoved:device]; + [self.delegate HIDManager:self deviceRemoved:device]; } - (void)start { @@ -54,14 +46,14 @@ static void remove_callback(void *ctx, IOReturn inResult, void *inSender, IOHIDD NSError *error = [NSError errorWithDomain:NSMachErrorDomain code:ret userInfo:nil]; IOHIDManagerClose(manager, kIOHIDOptionsTypeNone); CFRelease(manager); - [self.delegate hidManager:self didError:error]; + [self.delegate HIDManager:self didError:error]; NSLog(@"Error starting HID manager: %@.", error); } else { _manager = manager; IOHIDManagerScheduleWithRunLoop(_manager, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); - IOHIDManagerRegisterDeviceMatchingCallback(_manager, add_callback, (__bridge void *)self); - IOHIDManagerRegisterDeviceRemovalCallback(_manager, remove_callback, (__bridge void *)self); - [self.delegate hidManagerDidStart:self]; + IOHIDManagerRegisterDeviceMatchingCallback(_manager, _add, (__bridge void *)self); + IOHIDManagerRegisterDeviceRemovalCallback(_manager, _remove, (__bridge void *)self); + [self.delegate HIDManagerDidStart:self]; NSLog(@"Started HID manager."); } } @@ -73,7 +65,7 @@ static void remove_callback(void *ctx, IOReturn inResult, void *inSender, IOHIDD IOHIDManagerClose(_manager, kIOHIDOptionsTypeNone); CFRelease(_manager); _manager = NULL; - [self.delegate hidManagerDidStop:self]; + [self.delegate HIDManagerDidStop:self]; NSLog(@"Stopped HID manager."); } @@ -81,6 +73,13 @@ static void remove_callback(void *ctx, IOReturn inResult, void *inSender, IOHIDD return !!_manager; } +- (void)setRunning:(BOOL)running { + if (running) + [self start]; + else + [self stop]; +} + - (NSArray *)criteria { return _criteria; }