diff options
Diffstat (limited to 'hid')
-rw-r--r-- | hid/patch.py | 2 | ||||
-rw-r--r-- | hid/patches/optional-serial.patch | 53 | ||||
-rw-r--r-- | hid/patches/serial.patch | 24 |
3 files changed, 54 insertions, 25 deletions
diff --git a/hid/patch.py b/hid/patch.py index 4892d4b2..2e6213b0 100644 --- a/hid/patch.py +++ b/hid/patch.py @@ -33,7 +33,7 @@ def _patch(path: str, patch_path: str) -> None: # ===== -_patch(_get_pkg_path("framework-arduino-avr"), "patches/serial.patch") +_patch(_get_pkg_path("framework-arduino-avr"), "patches/optional-serial.patch") _patch(_get_pkg_path("framework-arduino-avr"), "patches/get-plugged-endpoint.patch") _libs = _get_libs() diff --git a/hid/patches/optional-serial.patch b/hid/patches/optional-serial.patch new file mode 100644 index 00000000..94dd1d72 --- /dev/null +++ b/hid/patches/optional-serial.patch @@ -0,0 +1,53 @@ +https://github.com/arduino-libraries/MIDIUSB/issues/50#issuecomment-451427496 +--- a/cores/arduino/PluggableUSB.cpp 2019-05-16 15:52:01.000000000 +0300 ++++ b/cores/arduino/PluggableUSB.cpp 2020-11-14 21:14:03.084063731 +0300 +@@ -103,8 +103,13 @@ + return obj; + } + ++#ifndef NO_SERIAL + PluggableUSB_::PluggableUSB_() : lastIf(CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT), + lastEp(CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT), ++#else ++PluggableUSB_::PluggableUSB_() : lastIf(0), ++ lastEp(1), ++#endif + rootNode(NULL) + { + // Empty +diff -u -r a/cores/arduino/USBCore.cpp b/cores/arduino/USBCore.cpp +--- a/cores/arduino/USBCore.cpp 2019-09-20 15:48:38.000000000 +0300 ++++ b/cores/arduino/USBCore.cpp 2020-11-14 21:08:27.473519254 +0300 +@@ -329,9 +329,11 @@ + { + 0, // Control Endpoint + ++#ifndef NO_SERIAL + EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM + EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT + EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN ++#endif + + // Following endpoints are automatically initialized to 0 + }; +@@ -375,8 +377,10 @@ + { + u8 i = setup.wIndex; + ++#ifndef NO_SERIAL + if (CDC_ACM_INTERFACE == i) + return CDC_Setup(setup); ++#endif + + #ifdef PLUGGABLE_USB_ENABLED + return PluggableUSB().setup(setup); +@@ -466,7 +470,9 @@ + { + u8 interfaces = 0; + ++#ifndef NO_SERIAL + CDC_GetInterface(&interfaces); ++#endif + + #ifdef PLUGGABLE_USB_ENABLED + PluggableUSB().getInterface(&interfaces); diff --git a/hid/patches/serial.patch b/hid/patches/serial.patch deleted file mode 100644 index 16ba3811..00000000 --- a/hid/patches/serial.patch +++ /dev/null @@ -1,24 +0,0 @@ -https://github.com/arduino/Arduino/issues/6387 ---- a/cores/arduino/USBCore.cpp 2019-09-20 15:48:38.000000000 +0300 -+++ b/cores/arduino/USBCore.cpp 2020-11-11 19:56:49.233690476 +0300 -@@ -375,8 +375,10 @@ - { - u8 i = setup.wIndex; - -+#ifndef NO_SERIAL - if (CDC_ACM_INTERFACE == i) - return CDC_Setup(setup); -+#endif - - #ifdef PLUGGABLE_USB_ENABLED - return PluggableUSB().setup(setup); -@@ -466,7 +468,9 @@ - { - u8 interfaces = 0; - -+#ifndef NO_SERIAL - CDC_GetInterface(&interfaces); -+#endif - - #ifdef PLUGGABLE_USB_ENABLED - PluggableUSB().getInterface(&interfaces); |