ApplePS2SynapticsTouchPad.h [plain text]
#ifndef _APPLEPS2SYNAPTICSTOUCHPAD_H
#define _APPLEPS2SYNAPTICSTOUCHPAD_H
#include <IOKit/ps2/ApplePS2MouseDevice.h>
#include <IOKit/hidsystem/IOHIPointing.h>
class ApplePS2SynapticsTouchPad : public IOHIPointing
{
OSDeclareDefaultStructors( ApplePS2SynapticsTouchPad );
private:
ApplePS2MouseDevice * _device;
bool _interruptHandlerInstalled;
UInt8 _packetBuffer[3];
UInt32 _packetByteCount;
IOFixed _resolution;
UInt16 _touchPadVersion;
UInt8 _touchPadModeByte;
static void handleTrackPadReset( thread_call_param_t param0,
thread_call_param_t param1 );
virtual void dispatchRelativePointerEventWithPacket( UInt8 * packet,
UInt32 packetSize );
virtual void setCommandByte( UInt8 setBits, UInt8 clearBits );
virtual void setTouchPadEnable( bool enable );
virtual UInt32 getTouchPadData( UInt8 dataSelector );
virtual bool setTouchPadModeByte( UInt8 modeByteValue,
bool enableStreamMode = false );
virtual void free();
virtual void interruptOccurred( UInt8 data );
protected:
virtual IOItemCount buttonCount();
virtual IOFixed resolution();
public:
virtual bool init( OSDictionary * properties );
virtual ApplePS2SynapticsTouchPad * probe( IOService * provider,
SInt32 * score );
virtual bool start( IOService * provider );
virtual void stop( IOService * provider );
virtual UInt32 deviceType();
virtual UInt32 interfaceID();
virtual IOReturn setParamProperties( OSDictionary * dict );
};
#endif