Merge device and mapping controllers into NJInputController.
[enjoyable.git] / Classes / NJInputController.h
1 //
2 // NJDeviceController.h
3 // Enjoy
4 //
5 // Created by Sam McCall on 4/05/09.
6 // Copyright 2009 University of Otago. All rights reserved.
7 //
8
9 #import "NJHIDManager.h"
10
11 @class NJDevice;
12 @class NJInput;
13 @class NJInputPathElement;
14 @class NJMapping;
15
16 @protocol NJInputControllerDelegate;
17
18 @interface NJInputController : NSObject <NJHIDManagerDelegate>
19
20 @property (nonatomic, weak) IBOutlet id <NJInputControllerDelegate> delegate;
21
22 @property (nonatomic, assign) NSPoint mouseLoc;
23 @property (nonatomic, assign) BOOL simulatingEvents;
24 @property (nonatomic, readonly) NSArray *devices;
25
26 @property (nonatomic, readonly) NJMapping *currentMapping;
27 @property (nonatomic, readonly) NSArray *mappings;
28
29 - (NJMapping *)mappingForKey:(NSString *)name;
30 - (NSInteger)indexOfMapping:(NJMapping *)mapping;
31
32 - (void)addMapping:(NJMapping *)mapping;
33 - (void)insertMapping:(NJMapping *)mapping atIndex:(NSInteger)idx;
34 - (void)removeMappingAtIndex:(NSInteger)idx;
35 - (void)mergeMapping:(NJMapping *)mapping intoMapping:(NJMapping *)existing;
36 - (void)moveMoveMappingFromIndex:(NSInteger)fromIdx toIndex:(NSInteger)toIdx;
37 - (void)renameMapping:(NJMapping *)mapping to:(NSString *)name;
38
39 - (void)activateMapping:(NJMapping *)mapping;
40 - (void)activateMappingForProcess:(NSRunningApplication *)app;
41
42 - (void)save;
43 - (void)load;
44
45 - (NJInputPathElement *)elementForUID:(NSString *)uid;
46
47 @end
48
49 @protocol NJInputControllerDelegate
50
51 - (void)deviceController:(NJInputController *)dc didAddDevice:(NJDevice *)device;
52 - (void)deviceController:(NJInputController *)dc didRemoveDeviceAtIndex:(NSInteger)idx;
53 - (void)deviceController:(NJInputController *)dc didInput:(NJInput *)input;
54 - (void)deviceControllerDidStartHID:(NJInputController *)dc;
55 - (void)deviceControllerDidStopHID:(NJInputController *)dc;
56 - (void)deviceController:(NJInputController *)dc didError:(NSError *)error;
57
58 @end