Remove website, now in yukkurigames.com repository.
[enjoyable.git] / Classes / NJInputController.h
1 //
2 // NJInputController.h
3 // Enjoyable
4 //
5
6 #import "NJHIDManager.h"
7
8 @class NJDevice;
9 @class NJInput;
10 @class NJInputPathElement;
11 @class NJMapping;
12
13 @protocol NJInputControllerDelegate;
14
15 @interface NJInputController : NSObject <NJHIDManagerDelegate>
16
17 @property (nonatomic, weak) IBOutlet id <NJInputControllerDelegate> delegate;
18
19 @property (nonatomic, assign) NSPoint mouseLoc;
20 @property (nonatomic, assign) BOOL simulatingEvents;
21 @property (nonatomic, readonly) NSArray *devices;
22
23 @property (nonatomic, readonly) NJMapping *currentMapping;
24 @property (nonatomic, readonly) NSArray *mappings;
25
26 - (NJMapping *)mappingForKey:(NSString *)name;
27 - (NSInteger)indexOfMapping:(NJMapping *)mapping;
28
29 - (void)addMapping:(NJMapping *)mapping;
30 - (void)insertMapping:(NJMapping *)mapping atIndex:(NSInteger)idx;
31 - (void)removeMappingAtIndex:(NSInteger)idx;
32 - (void)mergeMapping:(NJMapping *)mapping intoMapping:(NJMapping *)existing;
33 - (void)moveMoveMappingFromIndex:(NSInteger)fromIdx toIndex:(NSInteger)toIdx;
34 - (void)renameMapping:(NJMapping *)mapping to:(NSString *)name;
35
36 - (void)activateMapping:(NJMapping *)mapping;
37 - (void)activateMappingForProcess:(NSRunningApplication *)app;
38
39 - (void)save;
40 - (void)load;
41
42 - (NJInputPathElement *)elementForUID:(NSString *)uid;
43
44 @end
45
46 @protocol NJInputControllerDelegate
47
48 - (void)inputController:(NJInputController *)ic didAddDevice:(NJDevice *)device;
49 - (void)inputController:(NJInputController *)ic didRemoveDeviceAtIndex:(NSInteger)idx;
50 - (void)inputController:(NJInputController *)ic didInput:(NJInput *)input;
51 - (void)inputControllerDidStartHID:(NJInputController *)ic;
52 - (void)inputControllerDidStopHID:(NJInputController *)ic;
53 - (void)inputController:(NJInputController *)ic didError:(NSError *)error;
54
55 @end