// Copyright 2009 University of Otago. All rights reserved.
//
+#import "NJHIDManager.h"
+
@class NJDevice;
@class NJInput;
+@class NJInputPathElement;
@class NJMappingsController;
-@class NJOutputController;
-@interface NJDeviceController : NSObject <NSOutlineViewDataSource, NSOutlineViewDelegate> {
- IBOutlet NSOutlineView *outlineView;
- IBOutlet NJOutputController *outputController;
+@protocol NJDeviceControllerDelegate;
+
+@interface NJDeviceController : NSObject <NJHIDManagerDelegate> {
IBOutlet NJMappingsController *mappingsController;
- IBOutlet NSButton *translatingEventsButton;
- IBOutlet NSMenuItem *translatingEventsMenu;
}
-@property (nonatomic, readonly) NJInput *selectedInput;
+@property (nonatomic, weak) IBOutlet id <NJDeviceControllerDelegate> delegate;
+
@property (nonatomic, assign) NSPoint mouseLoc;
-@property (nonatomic, assign) BOOL translatingEvents;
+@property (nonatomic, assign) BOOL simulatingEvents;
+@property (nonatomic, readonly) NSArray *devices;
+
+- (NJInputPathElement *)elementForUID:(NSString *)uid;
+
+@end
-- (void)setup;
-- (NJDevice *)findDeviceByRef:(IOHIDDeviceRef)device;
+@protocol NJDeviceControllerDelegate
-- (IBAction)translatingEventsChanged:(id)sender;
+- (void)deviceController:(NJDeviceController *)dc didAddDevice:(NJDevice *)device;
+- (void)deviceController:(NJDeviceController *)dc didRemoveDeviceAtIndex:(NSInteger)idx;
+- (void)deviceController:(NJDeviceController *)dc didInput:(NJInput *)input;
+- (void)deviceControllerDidStartHID:(NJDeviceController *)dc;
+- (void)deviceControllerDidStopHID:(NJDeviceController *)dc;
+- (void)deviceController:(NJDeviceController *)dc didError:(NSError *)error;
@end