Add support for varying HID descriptors
Change-Id: I8ee01045d2b4bcc98bedb615f0af1b26ebbd66f7
diff --git a/motors/usb/hid.h b/motors/usb/hid.h
index 37aa86b..019231c 100644
--- a/motors/usb/hid.h
+++ b/motors/usb/hid.h
@@ -23,6 +23,13 @@
}
~HidFunction() override = default;
+ // Sets the report descriptor. Must be called at least once.
+ //
+ // May only be called during setup.
+ void set_report_descriptor(const ::std::string &report_descriptor) {
+ report_descriptor_ = report_descriptor;
+ }
+
void UpdateReport(const void *data, int length,
const DisableInterrupts &disable_interrupts) {
memcpy(report_tx_buffer_to_fill(disable_interrupts), data, length);
@@ -82,6 +89,9 @@
int in_endpoint_;
const int report_max_size_;
+
+ ::std::string report_descriptor_;
+ UsbDescriptorList hid_descriptor_list_;
};
} // namespace teensy