// Copyright 2009 University of Otago. All rights reserved.
//
-#import <Cocoa/Cocoa.h>
+#import "NJActionPathElement.h"
+
@class JSAction;
-@interface Joystick : NSObject
+@interface Joystick : NSObject <NJActionPathElement>
-@property (assign) int vendorId;
-@property (assign) int productId;
-@property (assign) int index;
-@property (copy) NSString *productName;
-@property (assign) IOHIDDeviceRef device;
-@property (readonly) NSArray *children;
-@property (readonly) NSString *name;
+@property (nonatomic, assign) int index;
+@property (nonatomic, copy) NSString *productName;
+@property (nonatomic, assign) IOHIDDeviceRef device;
+@property (nonatomic, copy) NSArray *children;
+@property (nonatomic, readonly) NSString *name;
+@property (readonly) NSString *uid;
--(void) populateActions;
--(id) handlerForEvent: (IOHIDValueRef) value;
--(id)initWithDevice: (IOHIDDeviceRef) newDevice;
--(JSAction*) actionForEvent: (IOHIDValueRef) value;
+- (id)initWithDevice:(IOHIDDeviceRef)device;
+- (JSAction *)handlerForEvent:(IOHIDValueRef)value;
+- (JSAction *)actionForEvent:(IOHIDValueRef)value;
@end