-MODULE_DEFINE(0, VERSION, USB_HID, HID_Initialise, NULL, "USB_Core", NULL);
+MODULE_DEFINE(0, VERSION, USB_HID, HID_Initialise, NULL, "USB_Core", "Keyboard", "Mouse", NULL);
tUSBDriver gHID_USBDriver = {
.Name = "HID",
.Match = {.Class = {0x030000, 0xFF0000}},
tUSBDriver gHID_USBDriver = {
.Name = "HID",
.Match = {.Class = {0x030000, 0xFF0000}},
info->DataAvail(Dev, EndPt, Length, Data);
}
info->DataAvail(Dev, EndPt, Length, Data);
}
// --- Read and parse report descriptor ---
// NOTE: Also does sub-driver selection and initialisation
// --- Read and parse report descriptor ---
// NOTE: Also does sub-driver selection and initialisation
USB_ReadDescriptor(Dev, 0x1022, 0, report_len, report_data);
HID_int_ParseReport(Dev, report_data, report_len, &gHID_RootCallbacks);
USB_ReadDescriptor(Dev, 0x1022, 0, report_len, report_data);
HID_int_ParseReport(Dev, report_data, report_len, &gHID_RootCallbacks);
_AddItem(&local_state.Usages, val);
break;
case 0x18: // Range start
if( (byte & 3) != 3 ) val |= global_state.UsagePage;
_AddItem(&local_state.Usages, val);
break;
case 0x18: // Range start
if( (byte & 3) != 3 ) val |= global_state.UsagePage;
local_state.UsageMin = val;
break;
case 0x28: // Range end (apply)
if( (byte & 3) != 3 ) val |= global_state.UsagePage;
local_state.UsageMin = val;
break;
case 0x28: // Range end (apply)
if( (byte & 3) != 3 ) val |= global_state.UsagePage;
_AddItems(&local_state.Usages, local_state.UsageMin, val);
break;
// - Designators (Index into Physical report)
_AddItems(&local_state.Usages, local_state.UsageMin, val);
break;
// - Designators (Index into Physical report)