#ifndef _IOKIT_HID_IOHIDDEVICESHIM_H
#define _IOKIT_HID_IOHIDDEVICESHIM_H
#include "IOHIDDevice.h"
#include "IOHIDevice.h"
#define kIOHIDAppleVendorID 1452
typedef enum IOHIDTransport {
kIOHIDTransportNone = 0,
kIOHIDTransportUSB,
kIOHIDTransportADB,
kIOHIDTransportPS2
} IOHIDTransport;
class IOHIDDeviceShim : public IOHIDDevice
{
OSDeclareDefaultStructors( IOHIDDeviceShim )
private:
IOService * _device;
IOHIDevice * _hiDevice;
IOHIDTransport _transport;
UInt32 _location;
protected:
virtual bool handleStart( IOService * provider );
public:
virtual IOReturn newReportDescriptor(
IOMemoryDescriptor ** descriptor ) const = 0;
virtual bool initWithLocation(UInt32 location = 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