X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=JoystickController.m;h=6acc5456a197e8c8d377f492bcdef9cbaa0b0216;hp=0675075f158545ed1fba58d7e7cd7b2e95cc964e;hb=ada313d7e31dd509c8c7be01f364c9a2ad9860d4;hpb=9480992fac2c0b71851db8e4906e77e2128d8919 diff --git a/JoystickController.m b/JoystickController.m index 0675075..6acc545 100644 --- a/JoystickController.m +++ b/JoystickController.m @@ -18,10 +18,10 @@ @implementation JoystickController { IOHIDManagerRef hidManager; NSTimer *continuousTimer; + NSMutableArray *runningTargets; } @synthesize joysticks; -@synthesize runningTargets; @synthesize selectedAction; @synthesize frontWindowOnly; @synthesize mouseLoc; @@ -47,8 +47,9 @@ } - (void)addRunningTarget:(Target *)target { - if (![runningTargets containsObject:target]) + if (![runningTargets containsObject:target]) { [runningTargets addObject:target]; + } if (!continuousTimer) { continuousTimer = [NSTimer scheduledTimerWithTimeInterval:1.f/60.f target:self @@ -130,11 +131,13 @@ static void remove_callback(void *ctx, IOReturn inResult, void *inSender, IOHIDD - (void)updateContinuousActions:(NSTimer *)timer { self.mouseLoc = [NSEvent mouseLocation]; - for (Target *target in [self.runningTargets copy]) { - if (![target update:self]) - [self.runningTargets removeObject:target]; + for (Target *target in [runningTargets copy]) { + if (![target update:self]) { + [runningTargets removeObject:target]; + NSLog(@"Removing action, now running %lu.", runningTargets.count); + } } - if (!self.runningTargets.count) { + if (!runningTargets.count) { [continuousTimer invalidate]; continuousTimer = nil; NSLog(@"Unscheduled continuous target timer.");