20#ifndef USBHUMANINTERFACEDEVICE_H
21#define USBHUMANINTERFACEDEVICE_H
23#include "pedigree/kernel/compiler.h"
24#include "pedigree/kernel/processor/types.h"
25#include "pedigree/kernel/utilities/String.h"
26#include "pedigree/kernel/utilities/new"
28#include "modules/system/usb/UsbDevice.h"
29#include "modules/system/usb/UsbHub.h"
40 virtual void getName(
String& str) {
41 str.assign(
"USB Human Interface Device", 27);
48 nDescriptorLength = pDescriptor->nDescriptorLength;
54 uint16_t nBcdHidRelease;
57 uint8_t nDescriptorType;
58 uint16_t nDescriptorLength;
61 uint16_t nDescriptorLength;
64 static void callback(uintptr_t pParam, ssize_t ret);
65 void inputHandler(
size_t bytes);
virtual void initialiseDriver()
Implemented by the driver class, initialises driver-specific stuff.
uint8_t * m_pInReportBuffer
Input report buffer.
HidReport * m_pReport
The report instance used for input parsing.
uint8_t * m_pOldInReportBuffer
Old input report buffer.
Endpoint * m_pInEndpoint
The endpoint used to receive input reports from the device.
UsbInterruptInHandle m_InterruptIn
Owns and synchronously cancels the recurring controller callback.