IOHIDEventDriver.h [plain text]
#ifndef _IOKIT_HID_IOHIDEVENTDRIVER_H
#define _IOKIT_HID_IOHIDEVENTDRIVER_H
#include <IOKit/IOService.h>
#include <IOKit/hidsystem/IOHIDTypes.h>
#include <IOKit/hid/IOHIDInterface.h>
#include <IOKit/hidevent/IOHIDEventService.h>
struct IOHIDReportHandler;
class IOHIDEventDriver: public IOHIDEventService
{
OSDeclareDefaultStructors( IOHIDEventDriver )
private:
IOHIDInterface * _interface;
IOHIDReportHandler * _reportHandlers;
IOHIDElement * _ledElements[2];
OSArray * _supportedElements;
UInt32 _bootSupport;
bool _multipleReports;
bool _relativeButtonCollection;
UInt32 _cachedButtonState;
bool _cachedRangeState;
struct ExpansionData {
};
ExpansionData * _reserved;
bool findElements ( OSArray * elementArray, UInt32 bootProtocol );
bool storeReportElement ( IOHIDElement * element );
void handleBootPointingReport (
IOMemoryDescriptor * report,
SInt32 * dX,
SInt32 * dY,
UInt32 * buttonState);
static void _handleInterruptReport (
OSObject * target,
AbsoluteTime timeStamp,
IOMemoryDescriptor * report,
IOHIDReportType reportType,
UInt32 reportID,
void * refcon);
protected:
virtual void free();
virtual OSArray * getReportElements();
virtual bool handleStart( IOService * provider );
virtual void handleStop( IOService * provider );
virtual void handleInterruptReport (
AbsoluteTime timeStamp,
IOMemoryDescriptor * report,
IOHIDReportType reportType,
UInt32 reportID);
virtual OSString * getTransport ();
virtual UInt32 getLocationID ();
virtual UInt32 getVendorID ();
virtual UInt32 getVendorIDSource ();
virtual UInt32 getProductID ();
virtual UInt32 getVersion ();
virtual UInt32 getCountryCode ();
virtual OSString * getManufacturer ();
virtual OSString * getProduct ();
virtual OSString * getSerialNumber ();
virtual void setElementValue (
UInt32 usagePage,
UInt32 usage,
UInt32 value );
virtual UInt32 getElementValue (
UInt32 usagePage,
UInt32 usage );
public:
virtual bool init( OSDictionary * dictionary = 0 );
virtual bool didTerminate(
IOService * provider,
IOOptionBits options,
bool * defer );
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 0);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 1);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 2);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 3);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 4);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 5);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 6);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 7);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 8);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 9);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 10);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 11);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 12);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 13);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 14);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 15);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 16);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 17);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 18);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 19);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 20);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 21);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 22);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 23);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 24);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 25);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 26);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 27);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 28);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 29);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 30);
OSMetaClassDeclareReservedUnused(IOHIDEventDriver, 31);
};
#endif