IOHIDDeviceClass.h [plain text]
#ifndef IOHIDDeviceClass_h
#define IOHIDDeviceClass_h
#import "IOHIDIUnknown2.h"
#import <IOKit/hid/IOHIDElement.h>
#import <IOKit/hid/IOHIDValue.h>
#import <IOKit/hid/IOHIDDevicePlugIn.h>
@class IOHIDQueueClass;
enum {
kHIDSetElementValuePendEvent = 0x00010000,
kHIDGetElementValueForcePoll = 0x00020000,
kHIDGetElementValuePreventPoll = 0x00040000,
};
enum {
kHIDCopyMatchingElementsDictionary = 0x1
};
@interface IOHIDDeviceClass : IOHIDPlugin {
IOHIDDeviceTimeStampedDeviceInterface *_device;
io_service_t _service;
io_connect_t _connect;
mach_port_t _port;
CFMachPortRef _machPort;
CFRunLoopSourceRef _runLoopSource;
BOOL _opened;
BOOL _tccRequested;
BOOL _tccGranted;
mach_vm_address_t _sharedMemory;
mach_vm_size_t _sharedMemorySize;
IOHIDQueueClass *_queue;
NSMutableArray *_elements;
NSMutableArray *_sortedElements;
NSMutableArray *_reportElements;
NSMutableDictionary *_properties;
IOHIDReportCallback _inputReportCallback;
IOHIDReportWithTimeStampCallback _inputReportTimestampCallback;
void *_inputReportContext;
uint8_t *_inputReportBuffer;
CFIndex _inputReportBufferLength;
}
- (void)initQueue;
- (IOReturn)open:(IOOptionBits)options;
- (IOReturn)close:(IOOptionBits)options;
- (IOReturn)copyMatchingElements:(NSDictionary * _Nullable)matching
elements:(CFArrayRef _Nonnull * _Nonnull)pElements
options:(IOOptionBits)options;
- (IOReturn)setInputReportCallback:(uint8_t * _Nonnull)report
reportLength:(CFIndex)reportLength
callback:(IOHIDReportCallback _Nonnull)callback
context:(void * _Nullable)context
options:(IOOptionBits)options;
- (IOReturn)setReport:(IOHIDReportType)reportType
reportID:(uint32_t)reportID
report:(const uint8_t * _Nonnull)report
reportLength:(CFIndex)reportLength
timeout:(uint32_t)timeout
callback:(IOHIDReportCallback _Nullable)callback
context:(void * _Nullable)context
options:(IOOptionBits)options;
- (IOReturn)getReport:(IOHIDReportType)reportType
reportID:(uint32_t)reportID
report:(uint8_t * _Nonnull)report
reportLength:(CFIndex * _Nonnull)pReportLength
timeout:(uint32_t)timeout
callback:(IOHIDReportCallback _Nullable)callback
context:(void * _Nullable)context
options:(IOOptionBits)options;
- (IOReturn)getValue:(IOHIDElementRef _Nonnull)element
value:(IOHIDValueRef _Nonnull * _Nonnull)pValue
timeout:(uint32_t)timeout
callback:(IOHIDValueCallback _Nullable)callback
context:(void * _Nullable)context
options:(IOOptionBits)options;
- (IOReturn)setValue:(IOHIDElementRef _Nonnull)element
value:(IOHIDValueRef _Nonnull)value
timeout:(uint32_t)timeout
callback:(IOHIDValueCallback _Nullable)callback
context:(void * _Nullable)context
options:(IOOptionBits)options;
- (IOHIDElementRef _Nullable)getElement:(uint32_t)cookie;
@property (readonly) mach_port_t port;
@property (readonly, nullable) CFRunLoopSourceRef runLoopSource;
@property (readonly) io_connect_t connect;
@property (readonly) io_service_t service;
@end
#endif