Remove project headers from the prefix header; having everything in the prefix header...
[enjoyable.git] / Target.m
1 //
2 // Target.m
3 // Enjoy
4 //
5 // Created by Sam McCall on 5/05/09.
6 //
7
8 #import "Target.h"
9
10 #import "TargetKeyboard.h"
11 #import "TargetConfig.h"
12 #import "TargetMouseMove.h"
13 #import "TargetMouseBtn.h"
14 #import "TargetMouseScroll.h"
15 #import "TargetToggleMouseScope.h"
16
17 @implementation Target {
18 BOOL running;
19 }
20
21 @synthesize magnitude;
22
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];
40
41 NSParameterAssert(NO);
42 return NULL;
43 }
44
45 - (NSString *)stringify {
46 [self doesNotRecognizeSelector:_cmd];
47 return NULL;
48 }
49
50 - (void)trigger {
51 }
52
53 - (void)untrigger {
54 }
55
56 - (BOOL)update:(JoystickController *)jc {
57 return NO;
58 }
59
60 - (BOOL)isContinuous {
61 return NO;
62 }
63
64 - (BOOL)running {
65 return running;
66 }
67
68 - (void)setRunning:(BOOL)newRunning {
69 if (running != newRunning) {
70 running = newRunning;
71 if (running)
72 [self trigger];
73 else
74 [self untrigger];
75 }
76 }
77
78
79 @end