#ifndef _IOKIT_HID_IOHIDDEVICESHIM_H
#define _IOKIT_HID_IOHIDDEVICESHIM_H
#include "IOHIDDevice.h"
#include "IOHIDevice.h"
#define kIOHIDAppleVendorID 1452
typedef enum IOHIDTransport {
kIOHIDTransportUSB = 1,
kIOHIDTransportADB,
kIOHIDTransportPS2
} IOHIDTransport;
class IOHIDDeviceShim : public IOHIDDevice
{
OSDeclareDefaultStructors( IOHIDDeviceShim )
private:
IOService * _device;
IOHIDevice * _hiDevice;
IOHIDTransport _transport;
protected:
virtual bool handleStart( IOService * provider );
public:
virtual IOReturn newReportDescriptor(
IOMemoryDescriptor ** descriptor ) const = 0;
virtual bool init( OSDictionary * dictionary = 0 );
virtual IOHIDTransport transport() {return _transport;};
virtual OSString * newTransportString() const;
virtual OSString * newProductString() const;
virtual OSString * newManufacturerString() const;
virtual OSNumber * newVendorIDNumber() const;
virtual OSNumber * newProductIDNumber() const;
virtual OSNumber * newLocationIDNumber() const;
virtual OSString * newSerialNumberString() const;
};
#endif