1/*
2 * Copyright 2011 Michael Lotz <mmlr@mlotz.ch>
3 * Distributed under the terms of the MIT license.
4 */
5#ifndef USB_HID_QUIRKY_DEVICES
6#define USB_HID_QUIRKY_DEVICES
7
8#include "Driver.h"
9
10class HIDWriter;
11
12typedef status_t (*quirky_init_function)(usb_device device,
13	const usb_configuration_info *config, size_t interfaceIndex);
14typedef status_t (*quirky_build_descriptor)(HIDWriter &writer);
15
16struct usb_hid_quirky_device {
17	uint16					vendor_id;
18	uint16					product_id;
19
20	uint8					device_class;
21	uint8					device_subclass;
22	uint8					device_protocol;
23
24	quirky_init_function	init_function;
25	quirky_build_descriptor	build_descriptor;
26};
27
28extern usb_hid_quirky_device gQuirkyDevices[];
29extern int32 gQuirkyDeviceCount;
30
31#endif // USB_HID_QUIRKY_DEVICES
32