From ca3c821c04399360d1b2a78d6b0ebb95815db861 Mon Sep 17 00:00:00 2001 From: NicoHood Date: Mon, 12 Oct 2015 17:31:35 +0200 Subject: [PATCH] [PHID] Fixes protocol on reenumeration --- libraries/HID/HID.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/HID/HID.cpp b/libraries/HID/HID.cpp index 411529e..be95ec2 100644 --- a/libraries/HID/HID.cpp +++ b/libraries/HID/HID.cpp @@ -54,6 +54,11 @@ int HID_::getDescriptor(USBSetup& setup) return -1; total += res; } + + // Reset the protocol on reenumeration. Normally the host should not assume the state of the protocol + // due to the USB specs, but Windows and Linux just assumes its in report mode. + protocol = HID_REPORT_PROTOCOL; + return total; } @@ -130,7 +135,7 @@ bool HID_::setup(USBSetup& setup) HID_::HID_(void) : PluggableUSBModule(1, 1, epType), rootNode(NULL), descriptorSize(0), - protocol(1), idle(1) + protocol(HID_REPORT_PROTOCOL), idle(1) { epType[0] = EP_TYPE_INTERRUPT_IN; PluggableUSB().plug(this);