IOHIDKeyboardEventDevice.h [plain text]
#ifndef _IOKIT_HID_IOHIDKEYBOARDEVENTDEVICE_H
#define _IOKIT_HID_IOHIDKEYBOARDEVENTDEVICE_H
#include "IOHIDDeviceShim.h"
#include "IOHIKeyboard.h"
class IOHIDKeyboardEventDevice : public IOHIDDeviceShim
{
OSDeclareDefaultStructors( IOHIDKeyboardEventDevice )
private:
IOBufferMemoryDescriptor * _report;
IOHIKeyboard * _keyboard;
UInt8 _cachedLEDState;
UInt32 _lastFlags;
bool _inputReportOnly;
static void _keyboardEvent (
IOHIDKeyboardEventDevice * self,
unsigned eventType,
unsigned flags,
unsigned key,
unsigned charCode,
unsigned charSet,
unsigned origCharCode,
unsigned origCharSet,
unsigned keyboardType,
bool repeat,
AbsoluteTime ts,
OSObject * sender,
void * refcon __unused);
static void _keyboardSpecialEvent(
IOHIDKeyboardEventDevice * self,
unsigned eventType,
unsigned flags,
unsigned key,
unsigned flavor,
UInt64 guid,
bool repeat,
AbsoluteTime ts,
OSObject * sender,
void * refcon __unused);
static void _updateEventFlags(
IOHIDKeyboardEventDevice * self,
unsigned flags,
OSObject * sender,
void * refcon __unused);
protected:
virtual void free();
virtual bool handleStart( IOService * provider );
public:
virtual bool start( IOService * provider );
static IOHIDKeyboardEventDevice * newKeyboardDeviceAndStart(IOService * owner, UInt32 location = 0);
virtual bool initWithLocation( UInt32 location = 0 );
virtual IOReturn newReportDescriptor(IOMemoryDescriptor ** descriptor ) const;
virtual OSString * newProductString() const;
virtual OSNumber * newVendorIDNumber() const;
virtual OSNumber * newProductIDNumber() const;
virtual OSString * newManufacturerString() const;
virtual IOReturn getReport( IOMemoryDescriptor * report,
IOHIDReportType reportType,
IOOptionBits options );
virtual IOReturn setReport( IOMemoryDescriptor * report,
IOHIDReportType reportType,
IOOptionBits options );
virtual void postKeyboardEvent(UInt8 key, bool keyDown);
virtual void postConsumerEvent(UInt8 key, bool keyDown);
virtual void postFlagKeyboardEvent(UInt32 flags);
virtual void setCapsLockLEDElement(bool state);
virtual void setNumLockLEDElement(bool state);
virtual IOReturn message(UInt32 type, IOService * provider, void * argument);
};
#endif