5 // Created by Sam McCall on 5/05/09.
10 #import "TargetKeyboard.h"
11 #import "TargetConfig.h"
12 #import "TargetMouseMove.h"
13 #import "TargetMouseBtn.h"
14 #import "TargetMouseScroll.h"
15 #import "TargetToggleMouseScope.h"
17 @implementation Target {
21 @synthesize magnitude;
23 // TODO: Should just be NSCoding? Or like a dictionary?
24 +(Target*) unstringify: (NSString*) str withConfigList: (NSArray*) configs {
25 NSArray* components = [str componentsSeparatedByString:@"~"];
26 NSParameterAssert([components count]);
27 NSString* typeTag = components[0];
28 if([typeTag isEqualToString:@"key"])
29 return [TargetKeyboard unstringifyImpl:components];
30 if([typeTag isEqualToString:@"cfg"])
31 return [TargetConfig unstringifyImpl:components withConfigList:configs];
32 if([typeTag isEqualToString:@"mmove"])
33 return [TargetMouseMove unstringifyImpl:components];
34 if([typeTag isEqualToString:@"mbtn"])
35 return [TargetMouseBtn unstringifyImpl:components];
36 if([typeTag isEqualToString:@"mscroll"])
37 return [TargetMouseScroll unstringifyImpl:components];
38 if([typeTag isEqualToString:@"mtoggle"])
39 return [TargetToggleMouseScope unstringifyImpl:components];
41 NSParameterAssert(NO);
45 - (NSString *)stringify {
46 [self doesNotRecognizeSelector:_cmd];
56 - (BOOL)update:(JoystickController *)jc {
60 - (BOOL)isContinuous {
68 - (void)setRunning:(BOOL)newRunning {
69 if (running != newRunning) {