@implementation NJInput
-- (id)initWithName:(NSString *)newName base:(id <NJInputPathElement>)newBase {
- if ((self = [super init])) {
- self.name = newName;
- self.base = newBase;
+- (id)initWithName:(NSString *)name
+ eid:(NSString *)eid
+ element:(IOHIDElementRef)element
+ parent:(NJInputPathElement *)parent
+{
+ NSString *elementName = (__bridge NSString *)IOHIDElementGetName(element);
+ if (elementName.length)
+ name = [name stringByAppendingFormat:@"- %@", elementName];
+ if ((self = [super initWithName:name eid:eid parent:parent])) {
+ _cookie = IOHIDElementGetCookie(element);
}
return self;
}
return nil;
}
-- (NSString *)uid {
- return [NSString stringWithFormat:@"%@~%@", _base.uid, _name];
-}
-
- (void)notifyEvent:(IOHIDValueRef)value {
[self doesNotRecognizeSelector:_cmd];
}
-- (BOOL)isEqual:(id)object {
- return [object isKindOfClass:NJInput.class]
- && [[object uid] isEqualToString:self.uid];
-}
-
-- (NSUInteger)hash {
- return self.uid.hash;
-}
-
-- (id <NJInputPathElement>)elementForUID:(NSString *)uid {
- if ([uid isEqualToString:self.uid])
- return self;
- else {
- for (id <NJInputPathElement> elem in self.children) {
- id <NJInputPathElement> ret = [elem elementForUID:uid];
- if (ret)
- return ret;
- }
- }
- return nil;
-}
-
@end