#include <IOKit/adb/IOADBDevice.h>
#include <IOKit/hidsystem/IOHIPointing.h>
#define TRUE 1
#define FALSE 0
class AppleADBMouse: public IOHIPointing
{
OSDeclareDefaultStructors(AppleADBMouse);
protected:
IOADBDevice * adbDevice;
IOFixed _resolution;
IOItemCount _buttonCount;
public:
virtual IOService * probe(IOService * provider, SInt32 * score);
virtual bool start(IOService * provider);
virtual UInt32 interfaceID(void);
virtual UInt32 deviceType(void);
virtual IOFixed resolution(void);
virtual IOItemCount buttonCount(void);
virtual void packet(UInt8 adbCommand, IOByteCount length, UInt8 * data);
};
class AppleADBMouseType1 : public AppleADBMouse
{
OSDeclareDefaultStructors(AppleADBMouseType1);
public:
virtual IOService * probe(IOService * provider, SInt32 * score);
virtual bool start(IOService * provider);
};
class AppleADBMouseType2 : public AppleADBMouse
{
OSDeclareDefaultStructors(AppleADBMouseType2);
public:
virtual IOService * probe(IOService * provider, SInt32 * score);
virtual bool start(IOService * provider);
};
class AppleADBMouseType4 : public AppleADBMouse
{
OSDeclareDefaultStructors(AppleADBMouseType4);
private:
bool Clicking, Dragging, DragLock, typeTrackpad;
virtual IOReturn setParamProperties( OSDictionary * dict );
bool enableEnhancedMode();
protected:
UInt32 deviceSignature;
UInt16 deviceResolution;
UInt8 deviceClass;
UInt8 deviceNumButtons;
public:
virtual IOService * probe(IOService * provider, SInt32 * score);
virtual bool start(IOService * provider);
virtual void packet(UInt8 adbCommand, IOByteCount length, UInt8 * data);
virtual OSData * copyAccelerationTable();
};