From b16091659cc9a724a8800f77e631643b4ab089ad Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 18 Aug 2021 18:20:25 +1000 Subject: Move USB Host Shield and Arduino core to `lib/` (#13973) --- tmk_core/protocol/usb_hid.mk | 12 +- .../usb_hid/USB_Host_Shield_2.0/.gitattributes | 23 - .../usb_hid/USB_Host_Shield_2.0/.gitignore | 4 - .../usb_hid/USB_Host_Shield_2.0/.gitmodules | 12 - .../protocol/usb_hid/USB_Host_Shield_2.0/BTD.cpp | 1364 ----------------- .../protocol/usb_hid/USB_Host_Shield_2.0/BTD.h | 620 -------- .../protocol/usb_hid/USB_Host_Shield_2.0/BTHID.cpp | 399 ----- .../protocol/usb_hid/USB_Host_Shield_2.0/BTHID.h | 155 -- .../protocol/usb_hid/USB_Host_Shield_2.0/PS3BT.cpp | 634 -------- .../protocol/usb_hid/USB_Host_Shield_2.0/PS3BT.h | 240 --- .../usb_hid/USB_Host_Shield_2.0/PS3Enums.h | 141 -- .../usb_hid/USB_Host_Shield_2.0/PS3USB.cpp | 572 ------- .../protocol/usb_hid/USB_Host_Shield_2.0/PS3USB.h | 303 ---- .../protocol/usb_hid/USB_Host_Shield_2.0/PS4BT.h | 121 -- .../usb_hid/USB_Host_Shield_2.0/PS4Parser.cpp | 116 -- .../usb_hid/USB_Host_Shield_2.0/PS4Parser.h | 407 ----- .../protocol/usb_hid/USB_Host_Shield_2.0/PS4USB.h | 130 -- .../usb_hid/USB_Host_Shield_2.0/PSBuzz.cpp | 82 - .../protocol/usb_hid/USB_Host_Shield_2.0/PSBuzz.h | 185 --- .../protocol/usb_hid/USB_Host_Shield_2.0/README.md | 351 ----- .../protocol/usb_hid/USB_Host_Shield_2.0/SPP.cpp | 829 ---------- .../protocol/usb_hid/USB_Host_Shield_2.0/SPP.h | 225 --- .../protocol/usb_hid/USB_Host_Shield_2.0/Usb.cpp | 812 ---------- .../protocol/usb_hid/USB_Host_Shield_2.0/Usb.h | 41 - .../protocol/usb_hid/USB_Host_Shield_2.0/UsbCore.h | 298 ---- .../protocol/usb_hid/USB_Host_Shield_2.0/Wii.cpp | 1268 ---------------- .../protocol/usb_hid/USB_Host_Shield_2.0/Wii.h | 518 ------- .../usb_hid/USB_Host_Shield_2.0/WiiCameraReadme.md | 13 - .../usb_hid/USB_Host_Shield_2.0/XBOXOLD.cpp | 337 ----- .../protocol/usb_hid/USB_Host_Shield_2.0/XBOXOLD.h | 185 --- .../usb_hid/USB_Host_Shield_2.0/XBOXONE.cpp | 374 ----- .../protocol/usb_hid/USB_Host_Shield_2.0/XBOXONE.h | 172 --- .../usb_hid/USB_Host_Shield_2.0/XBOXRECV.cpp | 583 ------- .../usb_hid/USB_Host_Shield_2.0/XBOXRECV.h | 276 ---- .../usb_hid/USB_Host_Shield_2.0/XBOXUSB.cpp | 361 ----- .../protocol/usb_hid/USB_Host_Shield_2.0/XBOXUSB.h | 225 --- .../protocol/usb_hid/USB_Host_Shield_2.0/address.h | 282 ---- .../protocol/usb_hid/USB_Host_Shield_2.0/adk.cpp | 371 ----- .../protocol/usb_hid/USB_Host_Shield_2.0/adk.h | 140 -- .../protocol/usb_hid/USB_Host_Shield_2.0/avrpins.h | 1130 -------------- .../usb_hid/USB_Host_Shield_2.0/cdc_XR21B1411.cpp | 211 --- .../usb_hid/USB_Host_Shield_2.0/cdc_XR21B1411.h | 272 ---- .../usb_hid/USB_Host_Shield_2.0/cdcacm.cpp | 331 ---- .../protocol/usb_hid/USB_Host_Shield_2.0/cdcacm.h | 252 ---- .../usb_hid/USB_Host_Shield_2.0/cdcftdi.cpp | 334 ---- .../protocol/usb_hid/USB_Host_Shield_2.0/cdcftdi.h | 145 -- .../usb_hid/USB_Host_Shield_2.0/cdcprolific.cpp | 247 --- .../usb_hid/USB_Host_Shield_2.0/cdcprolific.h | 159 -- .../usb_hid/USB_Host_Shield_2.0/confdescparser.h | 213 --- .../usb_hid/USB_Host_Shield_2.0/controllerEnums.h | 204 --- .../examples/Bluetooth/BTHID/BTHID.ino | 55 - .../examples/Bluetooth/BTHID/KeyboardParser.h | 105 -- .../examples/Bluetooth/BTHID/MouseParser.h | 46 - .../examples/Bluetooth/PS3BT/PS3BT.ino | 188 --- .../examples/Bluetooth/PS3Multi/PS3Multi.ino | 149 -- .../examples/Bluetooth/PS3SPP/PS3SPP.ino | 162 -- .../examples/Bluetooth/PS4BT/PS4BT.ino | 146 -- .../examples/Bluetooth/SPP/SPP.ino | 52 - .../examples/Bluetooth/SPPMulti/SPPMulti.ino | 67 - .../examples/Bluetooth/Wii/Wii.ino | 118 -- .../Bluetooth/WiiBalanceBoard/WiiBalanceBoard.ino | 51 - .../examples/Bluetooth/WiiIRCamera/WiiIRCamera.ino | 133 -- .../examples/Bluetooth/WiiMulti/WiiMulti.ino | 132 -- .../WiiUProController/WiiUProController.ino | 104 -- .../examples/HID/USBHIDBootKbd/USBHIDBootKbd.ino | 129 -- .../USBHIDBootKbdAndMouse.ino | 178 --- .../HID/USBHIDBootMouse/USBHIDBootMouse.ino | 83 - .../examples/HID/USBHIDJoystick/USBHIDJoystick.ino | 38 - .../HID/USBHIDJoystick/hidjoystickrptparser.cpp | 84 -- .../HID/USBHIDJoystick/hidjoystickrptparser.h | 33 - .../examples/HID/USBHID_desc/USBHID_desc.ino | 77 - .../examples/HID/USBHID_desc/pgmstrings.h | 52 - .../examples/HID/le3dp/le3dp.ino | 42 - .../examples/HID/le3dp/le3dp_rptparser.cpp | 43 - .../examples/HID/le3dp/le3dp_rptparser.h | 42 - .../examples/HID/scale/scale.ino | 51 - .../examples/HID/scale/scale_rptparser.cpp | 150 -- .../examples/HID/scale/scale_rptparser.h | 55 - .../USB_Host_Shield_2.0/examples/PS3USB/PS3USB.ino | 148 -- .../USB_Host_Shield_2.0/examples/PS4USB/PS4USB.ino | 133 -- .../USB_Host_Shield_2.0/examples/PSBuzz/PSBuzz.ino | 49 - .../examples/USB_desc/USB_desc.ino | 349 ----- .../examples/USB_desc/pgmstrings.h | 52 - .../examples/Xbox/XBOXOLD/XBOXOLD.ino | 110 -- .../examples/Xbox/XBOXONE/XBOXONE.ino | 106 -- .../examples/Xbox/XBOXRECV/XBOXRECV.ino | 122 -- .../examples/Xbox/XBOXUSB/XBOXUSB.ino | 113 -- .../examples/acm/acm_terminal/acm_terminal.ino | 100 -- .../examples/acm/acm_terminal/pgmstrings.h | 52 - .../adk/ArduinoBlinkLED/ArduinoBlinkLED.ino | 89 -- .../examples/adk/adk_barcode/adk_barcode.ino | 91 -- .../examples/adk/demokit_20/demokit_20.ino | 103 -- .../examples/adk/term_test/term_test.ino | 65 - .../examples/adk/term_time/term_time.ino | 50 - .../examples/board_qc/board_qc.ino | 259 ---- .../cdc_XR21B1411/XR_terminal/XR_terminal.ino | 83 - .../ftdi/USBFTDILoopback/USBFTDILoopback.ino | 98 -- .../examples/ftdi/USBFTDILoopback/pgmstrings.h | 52 - .../examples/hub_demo/hub_demo.ino | 345 ----- .../examples/hub_demo/pgmstrings.h | 52 - .../examples/max_LCD/max_LCD.ino | 29 - .../pl2303_gprs_terminal/pl2303_gprs_terminal.ino | 101 -- .../examples/pl2303/pl2303_gps/pl2303_gps.ino | 88 -- .../pl2303/pl2303_tinygps/pl2303_tinygps.ino | 217 --- .../pl2303_xbee_terminal/pl2303_xbee_terminal.ino | 117 -- .../examples/testusbhostFAT/Makefile | 64 - .../examples/testusbhostFAT/README.md | 29 - .../examples/testusbhostFAT/testusbhostFAT.ino | 736 --------- .../protocol/usb_hid/USB_Host_Shield_2.0/gpl2.txt | 340 ----- .../protocol/usb_hid/USB_Host_Shield_2.0/hexdump.h | 61 - .../protocol/usb_hid/USB_Host_Shield_2.0/hid.cpp | 112 -- .../protocol/usb_hid/USB_Host_Shield_2.0/hid.h | 188 --- .../usb_hid/USB_Host_Shield_2.0/hidboot.cpp | 201 --- .../protocol/usb_hid/USB_Host_Shield_2.0/hidboot.h | 618 -------- .../USB_Host_Shield_2.0/hidescriptorparser.cpp | 1588 -------------------- .../USB_Host_Shield_2.0/hidescriptorparser.h | 176 --- .../usb_hid/USB_Host_Shield_2.0/hiduniversal.cpp | 425 ------ .../usb_hid/USB_Host_Shield_2.0/hiduniversal.h | 108 -- .../usb_hid/USB_Host_Shield_2.0/hidusagestr.h | 977 ------------ .../USB_Host_Shield_2.0/hidusagetitlearrays.cpp | 1048 ------------- .../usb_hid/USB_Host_Shield_2.0/keywords.txt | 371 ----- .../usb_hid/USB_Host_Shield_2.0/library.json | 47 - .../usb_hid/USB_Host_Shield_2.0/library.properties | 9 - .../protocol/usb_hid/USB_Host_Shield_2.0/macros.h | 82 - .../usb_hid/USB_Host_Shield_2.0/masstorage.cpp | 1266 ---------------- .../usb_hid/USB_Host_Shield_2.0/masstorage.h | 571 ------- .../usb_hid/USB_Host_Shield_2.0/max3421e.h | 228 --- .../usb_hid/USB_Host_Shield_2.0/max_LCD.cpp | 255 ---- .../protocol/usb_hid/USB_Host_Shield_2.0/max_LCD.h | 106 -- .../usb_hid/USB_Host_Shield_2.0/message.cpp | 116 -- .../protocol/usb_hid/USB_Host_Shield_2.0/message.h | 78 - .../usb_hid/USB_Host_Shield_2.0/parsetools.cpp | 67 - .../usb_hid/USB_Host_Shield_2.0/parsetools.h | 140 -- .../usb_hid/USB_Host_Shield_2.0/printhex.h | 84 -- .../usb_hid/USB_Host_Shield_2.0/settings.h | 139 -- .../usb_hid/USB_Host_Shield_2.0/sink_parser.h | 41 - .../protocol/usb_hid/USB_Host_Shield_2.0/usb_ch9.h | 166 -- .../protocol/usb_hid/USB_Host_Shield_2.0/usbhost.h | 529 ------- .../usb_hid/USB_Host_Shield_2.0/usbhub.cpp | 425 ------ .../protocol/usb_hid/USB_Host_Shield_2.0/usbhub.h | 252 ---- .../usb_hid/USB_Host_Shield_2.0/version_helper.h | 194 --- .../usb_hid/USB_Host_Shield_2.0/xboxEnums.h | 65 - .../usb_hid/arduino-1.0.1/cores/arduino/Arduino.h | 215 --- .../usb_hid/arduino-1.0.1/cores/arduino/CDC.cpp | 233 --- .../usb_hid/arduino-1.0.1/cores/arduino/Client.h | 26 - .../usb_hid/arduino-1.0.1/cores/arduino/HID.cpp | 520 ------- .../arduino-1.0.1/cores/arduino/HardwareSerial.cpp | 428 ------ .../arduino-1.0.1/cores/arduino/HardwareSerial.h | 81 - .../arduino-1.0.1/cores/arduino/IPAddress.cpp | 56 - .../arduino-1.0.1/cores/arduino/IPAddress.h | 76 - .../usb_hid/arduino-1.0.1/cores/arduino/Platform.h | 23 - .../usb_hid/arduino-1.0.1/cores/arduino/Print.cpp | 263 ---- .../usb_hid/arduino-1.0.1/cores/arduino/Print.h | 78 - .../arduino-1.0.1/cores/arduino/Printable.h | 40 - .../usb_hid/arduino-1.0.1/cores/arduino/Server.h | 9 - .../usb_hid/arduino-1.0.1/cores/arduino/Stream.cpp | 270 ---- .../usb_hid/arduino-1.0.1/cores/arduino/Stream.h | 96 -- .../usb_hid/arduino-1.0.1/cores/arduino/Tone.cpp | 601 -------- .../usb_hid/arduino-1.0.1/cores/arduino/USBAPI.h | 195 --- .../arduino-1.0.1/cores/arduino/USBCore.cpp | 672 --------- .../usb_hid/arduino-1.0.1/cores/arduino/USBCore.h | 303 ---- .../usb_hid/arduino-1.0.1/cores/arduino/USBDesc.h | 63 - .../usb_hid/arduino-1.0.1/cores/arduino/Udp.h | 88 -- .../arduino-1.0.1/cores/arduino/WCharacter.h | 168 --- .../arduino-1.0.1/cores/arduino/WInterrupts.c | 298 ---- .../usb_hid/arduino-1.0.1/cores/arduino/WMath.cpp | 60 - .../arduino-1.0.1/cores/arduino/WString.cpp | 645 -------- .../usb_hid/arduino-1.0.1/cores/arduino/WString.h | 205 --- .../usb_hid/arduino-1.0.1/cores/arduino/binary.h | 515 ------- .../usb_hid/arduino-1.0.1/cores/arduino/main.cpp | 20 - .../usb_hid/arduino-1.0.1/cores/arduino/new.cpp | 18 - .../usb_hid/arduino-1.0.1/cores/arduino/new.h | 22 - .../usb_hid/arduino-1.0.1/cores/arduino/wiring.c | 324 ---- .../arduino-1.0.1/cores/arduino/wiring_analog.c | 282 ---- .../arduino-1.0.1/cores/arduino/wiring_digital.c | 178 --- .../arduino-1.0.1/cores/arduino/wiring_private.h | 69 - .../arduino-1.0.1/cores/arduino/wiring_pulse.c | 69 - .../arduino-1.0.1/cores/arduino/wiring_shift.c | 55 - .../variants/eightanaloginputs/pins_arduino.h | 27 - .../arduino-1.0.1/variants/leonardo/pins_arduino.h | 256 ---- .../arduino-1.0.1/variants/mega/pins_arduino.h | 363 ----- .../arduino-1.0.1/variants/standard/pins_arduino.h | 218 --- 182 files changed, 6 insertions(+), 42441 deletions(-) delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitattributes delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitignore delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitmodules delete mode 100755 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/BTD.cpp delete mode 100755 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/BTD.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/BTHID.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/BTHID.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PS3BT.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PS3BT.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PS3Enums.h delete mode 100755 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PS3USB.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PS3USB.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PS4BT.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PS4Parser.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PS4Parser.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PS4USB.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PSBuzz.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/PSBuzz.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/README.md delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/SPP.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/SPP.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/Usb.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/Usb.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/UsbCore.h delete mode 100755 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/Wii.cpp delete mode 100755 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/Wii.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/WiiCameraReadme.md delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/XBOXOLD.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/XBOXOLD.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/XBOXONE.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/XBOXONE.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/XBOXRECV.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/XBOXRECV.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/XBOXUSB.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/XBOXUSB.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/address.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/adk.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/adk.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/avrpins.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/cdc_XR21B1411.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/cdc_XR21B1411.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/cdcacm.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/cdcacm.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/cdcftdi.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/cdcftdi.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/cdcprolific.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/cdcprolific.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/confdescparser.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/controllerEnums.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/BTHID/BTHID.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/BTHID/KeyboardParser.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/BTHID/MouseParser.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/PS3BT/PS3BT.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/PS3Multi/PS3Multi.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/PS3SPP/PS3SPP.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/PS4BT/PS4BT.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/SPP/SPP.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/SPPMulti/SPPMulti.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/Wii/Wii.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/WiiBalanceBoard/WiiBalanceBoard.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/WiiIRCamera/WiiIRCamera.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/WiiMulti/WiiMulti.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Bluetooth/WiiUProController/WiiUProController.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHIDBootKbd/USBHIDBootKbd.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHIDBootKbdAndMouse/USBHIDBootKbdAndMouse.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHIDBootMouse/USBHIDBootMouse.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHIDJoystick/USBHIDJoystick.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHIDJoystick/hidjoystickrptparser.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHIDJoystick/hidjoystickrptparser.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHID_desc/USBHID_desc.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHID_desc/pgmstrings.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/le3dp/le3dp.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/le3dp/le3dp_rptparser.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/le3dp/le3dp_rptparser.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/scale/scale.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/scale/scale_rptparser.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/PS3USB/PS3USB.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/PS4USB/PS4USB.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/PSBuzz/PSBuzz.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/USB_desc/USB_desc.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/USB_desc/pgmstrings.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Xbox/XBOXOLD/XBOXOLD.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Xbox/XBOXONE/XBOXONE.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Xbox/XBOXRECV/XBOXRECV.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/Xbox/XBOXUSB/XBOXUSB.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/acm/acm_terminal/acm_terminal.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/acm/acm_terminal/pgmstrings.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/adk/ArduinoBlinkLED/ArduinoBlinkLED.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/adk/adk_barcode/adk_barcode.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/adk/demokit_20/demokit_20.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/adk/term_test/term_test.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/adk/term_time/term_time.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/board_qc/board_qc.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/cdc_XR21B1411/XR_terminal/XR_terminal.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/ftdi/USBFTDILoopback/USBFTDILoopback.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/ftdi/USBFTDILoopback/pgmstrings.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/hub_demo/hub_demo.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/hub_demo/pgmstrings.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/max_LCD/max_LCD.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/pl2303/pl2303_gprs_terminal/pl2303_gprs_terminal.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/pl2303/pl2303_gps/pl2303_gps.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/pl2303/pl2303_tinygps/pl2303_tinygps.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/pl2303/pl2303_xbee_terminal/pl2303_xbee_terminal.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/Makefile delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/README.md delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/testusbhostFAT.ino delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/gpl2.txt delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hexdump.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hid.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hid.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hidboot.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hidboot.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hidescriptorparser.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hidescriptorparser.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hiduniversal.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hiduniversal.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hidusagestr.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/hidusagetitlearrays.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/keywords.txt delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/library.json delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/library.properties delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/macros.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/masstorage.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/masstorage.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/max3421e.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/max_LCD.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/max_LCD.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/message.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/message.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/parsetools.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/parsetools.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/printhex.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/settings.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/sink_parser.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/usb_ch9.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/usbhost.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/usbhub.cpp delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/usbhub.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/version_helper.h delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/xboxEnums.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Arduino.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/CDC.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Client.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/HID.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/HardwareSerial.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/HardwareSerial.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/IPAddress.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/IPAddress.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Platform.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Print.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Print.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Printable.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Server.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Stream.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Stream.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Tone.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/USBAPI.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/USBCore.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/USBCore.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/USBDesc.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/Udp.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/WCharacter.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/WInterrupts.c delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/WMath.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/WString.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/WString.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/binary.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/main.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/new.cpp delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/new.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/wiring.c delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/wiring_analog.c delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/wiring_digital.c delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/wiring_private.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/wiring_pulse.c delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino/wiring_shift.c delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/variants/eightanaloginputs/pins_arduino.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/variants/leonardo/pins_arduino.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/variants/mega/pins_arduino.h delete mode 100644 tmk_core/protocol/usb_hid/arduino-1.0.1/variants/standard/pins_arduino.h (limited to 'tmk_core') diff --git a/tmk_core/protocol/usb_hid.mk b/tmk_core/protocol/usb_hid.mk index e720080979..c0c157c043 100644 --- a/tmk_core/protocol/usb_hid.mk +++ b/tmk_core/protocol/usb_hid.mk @@ -1,10 +1,10 @@ USB_HID_DIR = protocol/usb_hid - +USB_HOST_LIB_DIR = $(LIB_PATH)/usbhost # # USB Host Shield # -USB_HOST_SHIELD_DIR = $(USB_HID_DIR)/USB_Host_Shield_2.0 +USB_HOST_SHIELD_DIR = $(USB_HOST_LIB_DIR)/USB_Host_Shield_2.0 USB_HOST_SHIELD_SRC = \ $(USB_HOST_SHIELD_DIR)/Usb.cpp \ $(USB_HOST_SHIELD_DIR)/hid.cpp \ @@ -17,7 +17,7 @@ USB_HOST_SHIELD_SRC = \ # # Arduino # -ARDUINO_DIR = $(USB_HID_DIR)/arduino-1.0.1 +ARDUINO_DIR = $(USB_HOST_LIB_DIR)/arduino-1.0.1 ARDUINO_CORES_DIR = $(ARDUINO_DIR)/cores/arduino ARDUINO_CORES_SRC = \ $(ARDUINO_CORES_DIR)/Print.cpp \ @@ -58,13 +58,13 @@ OPT_DEFS += -DARDUINO=101 # Search Path # VPATH += $(TMK_DIR)/$(USB_HID_DIR) -VPATH += $(TMK_DIR)/$(USB_HOST_SHIELD_DIR) +VPATH += $(USB_HOST_SHIELD_DIR) # for #include "Arduino.h" -VPATH += $(TMK_DIR)/$(ARDUINO_CORES_DIR) +VPATH += $(ARDUINO_CORES_DIR) # for #include "pins_arduino.h" -VPATH += $(TMK_DIR)/$(ARDUINO_DIR)/variants/leonardo +VPATH += $(ARDUINO_DIR)/variants/leonardo # ad hoc workaround for compile problem on Windows: # Windows doesn't know difference between common/print.h and arduino/Print.h. diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitattributes b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitattributes deleted file mode 100644 index 6238b035a3..0000000000 --- a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitattributes +++ /dev/null @@ -1,23 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto -* text eol=lf - -# Custom for Visual Studio -*.cs diff=csharp -*.sln merge=union -*.csproj merge=union -*.vbproj merge=union -*.fsproj merge=union -*.dbproj merge=union - -# Standard to msysgit -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitignore b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitignore deleted file mode 100644 index 7e69f457ba..0000000000 --- a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.bak -*.zip -*.rar -build/ \ No newline at end of file diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitmodules b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitmodules deleted file mode 100644 index 32a0783a89..0000000000 --- a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/.gitmodules +++ /dev/null @@ -1,12 +0,0 @@ -[submodule "examples/testusbhostFAT/generic_storage"] - path = examples/testusbhostFAT/generic_storage - url = https://github.com/xxxajk/generic_storage -[submodule "examples/testusbhostFAT/xmem2"] - path = examples/testusbhostFAT/xmem2 - url = https://github.com/xxxajk/xmem2 -[submodule "examples/testusbhostFAT/Arduino_Makefile_master"] - path = examples/testusbhostFAT/Arduino_Makefile_master - url = https://github.com/xxxajk/Arduino_Makefile_master -[submodule "examples/testusbhostFAT/RTClib"] - path = examples/testusbhostFAT/RTClib - url = https://github.com/xxxajk/RTClib diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/BTD.cpp b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/BTD.cpp deleted file mode 100755 index bcfba14b2b..0000000000 --- a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/BTD.cpp +++ /dev/null @@ -1,1364 +0,0 @@ -/* Copyright (C) 2012 Kristian Lauszus, TKJ Electronics. All rights reserved. - - This software may be distributed and modified under the terms of the GNU - General Public License version 2 (GPL2) as published by the Free Software - Foundation and appearing in the file GPL2.TXT included in the packaging of - this file. Please note that GPL2 Section 2[b] requires that all works based - on this software must also be made publicly available under the terms of - the GPL2 ("Copyleft"). - - Contact information - ------------------- - - Kristian Lauszus, TKJ Electronics - Web : http://www.tkjelectronics.com - e-mail : kristianl@tkjelectronics.com - */ - -#include "BTD.h" -// To enable serial debugging see "settings.h" -//#define EXTRADEBUG // Uncomment to get even more debugging data - -const uint8_t BTD::BTD_CONTROL_PIPE = 0; -const uint8_t BTD::BTD_EVENT_PIPE = 1; -const uint8_t BTD::BTD_DATAIN_PIPE = 2; -const uint8_t BTD::BTD_DATAOUT_PIPE = 3; - -BTD::BTD(USB *p) : -connectToWii(false), -pairWithWii(false), -connectToHIDDevice(false), -pairWithHIDDevice(false), -pUsb(p), // Pointer to USB class instance - mandatory -bAddress(0), // Device address - mandatory -bNumEP(1), // If config descriptor needs to be parsed -qNextPollTime(0), // Reset NextPollTime -pollInterval(0), -bPollEnable(false) // Don't start polling before dongle is connected -{ - for(uint8_t i = 0; i < BTD_NUM_SERVICES; i++) - btService[i] = NULL; - - Initialize(); // Set all variables, endpoint structs etc. to default values - - if(pUsb) // Register in USB subsystem - pUsb->RegisterDeviceClass(this); // Set devConfig[] entry -} - -uint8_t BTD::ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed) { - const uint8_t constBufSize = sizeof (USB_DEVICE_DESCRIPTOR); - uint8_t buf[constBufSize]; - USB_DEVICE_DESCRIPTOR * udd = reinterpret_cast(buf); - uint8_t rcode; - UsbDevice *p = NULL; - EpInfo *oldep_ptr = NULL; - - Initialize(); // Set all variables, endpoint structs etc. to default values - - AddressPool &addrPool = pUsb->GetAddressPool(); // Get memory address of USB device address pool -#ifdef EXTRADEBUG - Notify(PSTR("\r\nBTD ConfigureDevice"), 0x80); -#endif - - if(bAddress) { // Check if address has already been assigned to an instance -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nAddress in use"), 0x80); -#endif - return USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE; - } - - p = addrPool.GetUsbDevicePtr(0); // Get pointer to pseudo device with address 0 assigned - if(!p) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nAddress not found"), 0x80); -#endif - return USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL; - } - - if(!p->epinfo) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nepinfo is null"), 0x80); -#endif - return USB_ERROR_EPINFO_IS_NULL; - } - - oldep_ptr = p->epinfo; // Save old pointer to EP_RECORD of address 0 - p->epinfo = epInfo; // Temporary assign new pointer to epInfo to p->epinfo in order to avoid toggle inconsistence - p->lowspeed = lowspeed; - rcode = pUsb->getDevDescr(0, 0, constBufSize, (uint8_t*)buf); // Get device descriptor - addr, ep, nbytes, data - - p->epinfo = oldep_ptr; // Restore p->epinfo - - if(rcode) - goto FailGetDevDescr; - - bAddress = addrPool.AllocAddress(parent, false, port); // Allocate new address according to device class - - if(!bAddress) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nOut of address space"), 0x80); -#endif - return USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL; - } - - epInfo[0].maxPktSize = udd->bMaxPacketSize0; // Extract Max Packet Size from device descriptor - epInfo[1].epAddr = udd->bNumConfigurations; // Steal and abuse from epInfo structure to save memory - - VID = udd->idVendor; - PID = udd->idProduct; - - return USB_ERROR_CONFIG_REQUIRES_ADDITIONAL_RESET; - -FailGetDevDescr: -#ifdef DEBUG_USB_HOST - NotifyFailGetDevDescr(rcode); -#endif - if(rcode != hrJERR) - rcode = USB_ERROR_FailGetDevDescr; - Release(); - return rcode; -}; - -uint8_t BTD::Init(uint8_t parent, uint8_t port, bool lowspeed) { - uint8_t rcode; - uint8_t num_of_conf = epInfo[1].epAddr; // Number of configurations - epInfo[1].epAddr = 0; - - AddressPool &addrPool = pUsb->GetAddressPool(); -#ifdef EXTRADEBUG - Notify(PSTR("\r\nBTD Init"), 0x80); -#endif - UsbDevice *p = addrPool.GetUsbDevicePtr(bAddress); // Get pointer to assigned address record - - if(!p) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nAddress not found"), 0x80); -#endif - return USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL; - } - - delay(300); // Assign new address to the device - - rcode = pUsb->setAddr(0, 0, bAddress); // Assign new address to the device - if(rcode) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nsetAddr: "), 0x80); - D_PrintHex (rcode, 0x80); -#endif - p->lowspeed = false; - goto Fail; - } -#ifdef EXTRADEBUG - Notify(PSTR("\r\nAddr: "), 0x80); - D_PrintHex (bAddress, 0x80); -#endif - - p->lowspeed = false; - - p = addrPool.GetUsbDevicePtr(bAddress); // Get pointer to assigned address record - if(!p) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nAddress not found"), 0x80); -#endif - return USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL; - } - - p->lowspeed = lowspeed; - - rcode = pUsb->setEpInfoEntry(bAddress, 1, epInfo); // Assign epInfo to epinfo pointer - only EP0 is known - if(rcode) - goto FailSetDevTblEntry; - - if(VID == PS3_VID && (PID == PS3_PID || PID == PS3NAVIGATION_PID || PID == PS3MOVE_PID)) { - delay(100); - rcode = pUsb->setConf(bAddress, epInfo[ BTD_CONTROL_PIPE ].epAddr, 1); // We only need the Control endpoint, so we don't have to initialize the other endpoints of device - if(rcode) - goto FailSetConfDescr; - -#ifdef DEBUG_USB_HOST - if(PID == PS3_PID || PID == PS3NAVIGATION_PID) { - if(PID == PS3_PID) - Notify(PSTR("\r\nDualshock 3 Controller Connected"), 0x80); - else // It must be a navigation controller - Notify(PSTR("\r\nNavigation Controller Connected"), 0x80); - } else // It must be a Motion controller - Notify(PSTR("\r\nMotion Controller Connected"), 0x80); -#endif - - if(my_bdaddr[0] == 0x00 && my_bdaddr[1] == 0x00 && my_bdaddr[2] == 0x00 && my_bdaddr[3] == 0x00 && my_bdaddr[4] == 0x00 && my_bdaddr[5] == 0x00) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nPlease plug in the dongle before trying to pair with the PS3 Controller\r\nor set the Bluetooth address in the constructor of the PS3BT class"), 0x80); -#endif - } else { - if(PID == PS3_PID || PID == PS3NAVIGATION_PID) - setBdaddr(my_bdaddr); // Set internal Bluetooth address - else - setMoveBdaddr(my_bdaddr); // Set internal Bluetooth address -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nBluetooth Address was set to: "), 0x80); - for(int8_t i = 5; i > 0; i--) { - D_PrintHex (my_bdaddr[i], 0x80); - Notify(PSTR(":"), 0x80); - } - D_PrintHex (my_bdaddr[0], 0x80); -#endif - } - - pUsb->setConf(bAddress, epInfo[ BTD_CONTROL_PIPE ].epAddr, 0); // Reset configuration value - pUsb->setAddr(bAddress, 0, 0); // Reset address - Release(); // Release device - return USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED; // Return - } else { - // Check if attached device is a Bluetooth dongle and fill endpoint data structure - // First interface in the configuration must have Bluetooth assigned Class/Subclass/Protocol - // And 3 endpoints - interrupt-IN, bulk-IN, bulk-OUT, not necessarily in this order - for(uint8_t i = 0; i < num_of_conf; i++) { - if(VID == IOGEAR_GBU521_VID && PID == IOGEAR_GBU521_PID) { - ConfigDescParser confDescrParser(this); // Needed for the IOGEAR GBU521 - rcode = pUsb->getConfDescr(bAddress, 0, i, &confDescrParser); - } else { - ConfigDescParser confDescrParser(this); - rcode = pUsb->getConfDescr(bAddress, 0, i, &confDescrParser); - } - if(rcode) // Check error code - goto FailGetConfDescr; - if(bNumEP >= BTD_MAX_ENDPOINTS) // All endpoints extracted - break; - } - - if(bNumEP < BTD_MAX_ENDPOINTS) - goto FailUnknownDevice; - - // Assign epInfo to epinfo pointer - this time all 3 endpoins - rcode = pUsb->setEpInfoEntry(bAddress, bNumEP, epInfo); - if(rcode) - goto FailSetDevTblEntry; - - // Set Configuration Value - rcode = pUsb->setConf(bAddress, epInfo[ BTD_CONTROL_PIPE ].epAddr, bConfNum); - if(rcode) - goto FailSetConfDescr; - - hci_num_reset_loops = 100; // only loop 100 times before trying to send the hci reset command - hci_counter = 0; - hci_state = HCI_INIT_STATE; - watingForConnection = false; - bPollEnable = true; - -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nBluetooth Dongle Initialized"), 0x80); -#endif - } - return 0; // Successful configuration - - /* Diagnostic messages */ -FailSetDevTblEntry: -#ifdef DEBUG_USB_HOST - NotifyFailSetDevTblEntry(); - goto Fail; -#endif - -FailGetConfDescr: -#ifdef DEBUG_USB_HOST - NotifyFailGetConfDescr(); - goto Fail; -#endif - -FailSetConfDescr: -#ifdef DEBUG_USB_HOST - NotifyFailSetConfDescr(); -#endif - goto Fail; - -FailUnknownDevice: -#ifdef DEBUG_USB_HOST - NotifyFailUnknownDevice(VID, PID); -#endif - pUsb->setAddr(bAddress, 0, 0); // Reset address - rcode = USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED; -Fail: -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nBTD Init Failed, error code: "), 0x80); - NotifyFail(rcode); -#endif - Release(); - return rcode; -} - -void BTD::Initialize() { - uint8_t i; - for(i = 0; i < BTD_MAX_ENDPOINTS; i++) { - epInfo[i].epAddr = 0; - epInfo[i].maxPktSize = (i) ? 0 : 8; - epInfo[i].epAttribs = 0; - epInfo[i].bmNakPower = (i) ? USB_NAK_NOWAIT : USB_NAK_MAX_POWER; - } - for(i = 0; i < BTD_NUM_SERVICES; i++) { - if(btService[i]) - btService[i]->Reset(); // Reset all Bluetooth services - } - - connectToWii = false; - incomingWii = false; - connectToHIDDevice = false; - incomingHIDDevice = false; - incomingPS4 = false; - bAddress = 0; // Clear device address - bNumEP = 1; // Must have to be reset to 1 - qNextPollTime = 0; // Reset next poll time - pollInterval = 0; - bPollEnable = false; // Don't start polling before dongle is connected -} - -/* Extracts interrupt-IN, bulk-IN, bulk-OUT endpoint information from config descriptor */ -void BTD::EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *pep) { - //ErrorMessage(PSTR("Conf.Val"),conf); - //ErrorMessage(PSTR("Iface Num"),iface); - //ErrorMessage(PSTR("Alt.Set"),alt); - - if(alt) // Wrong interface - by BT spec, no alt setting - return; - - bConfNum = conf; - uint8_t index; - - if((pep->bmAttributes & 0x03) == 3 && (pep->bEndpointAddress & 0x80) == 0x80) { // Interrupt In endpoint found - index = BTD_EVENT_PIPE; - epInfo[index].bmNakPower = USB_NAK_NOWAIT; - } else { - if((pep->bmAttributes & 0x02) == 2) // Bulk endpoint found - index = ((pep->bEndpointAddress & 0x80) == 0x80) ? BTD_DATAIN_PIPE : BTD_DATAOUT_PIPE; - else - return; - } - - // Fill the rest of endpoint data structure - epInfo[index].epAddr = (pep->bEndpointAddress & 0x0F); - epInfo[index].maxPktSize = (uint8_t)pep->wMaxPacketSize; -#ifdef EXTRADEBUG - PrintEndpointDescriptor(pep); -#endif - if(pollInterval < pep->bInterval) // Set the polling interval as the largest polling interval obtained from endpoints - pollInterval = pep->bInterval; - bNumEP++; -} - -void BTD::PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR* ep_ptr) { -#ifdef EXTRADEBUG - Notify(PSTR("\r\nEndpoint descriptor:"), 0x80); - Notify(PSTR("\r\nLength:\t\t"), 0x80); - D_PrintHex (ep_ptr->bLength, 0x80); - Notify(PSTR("\r\nType:\t\t"), 0x80); - D_PrintHex (ep_ptr->bDescriptorType, 0x80); - Notify(PSTR("\r\nAddress:\t"), 0x80); - D_PrintHex (ep_ptr->bEndpointAddress, 0x80); - Notify(PSTR("\r\nAttributes:\t"), 0x80); - D_PrintHex (ep_ptr->bmAttributes, 0x80); - Notify(PSTR("\r\nMaxPktSize:\t"), 0x80); - D_PrintHex (ep_ptr->wMaxPacketSize, 0x80); - Notify(PSTR("\r\nPoll Intrv:\t"), 0x80); - D_PrintHex (ep_ptr->bInterval, 0x80); -#endif -} - -/* Performs a cleanup after failed Init() attempt */ -uint8_t BTD::Release() { - Initialize(); // Set all variables, endpoint structs etc. to default values - pUsb->GetAddressPool().FreeAddress(bAddress); - return 0; -} - -uint8_t BTD::Poll() { - if(!bPollEnable) - return 0; - if((long)(millis() - qNextPollTime) >= 0L) { // Don't poll if shorter than polling interval - qNextPollTime = millis() + pollInterval; // Set new poll time - HCI_event_task(); // Poll the HCI event pipe - HCI_task(); // HCI state machine - ACL_event_task(); // Poll the ACL input pipe too - } - return 0; -} - -void BTD::disconnect() { - for(uint8_t i = 0; i < BTD_NUM_SERVICES; i++) - if(btService[i]) - btService[i]->disconnect(); -}; - -void BTD::HCI_event_task() { - uint16_t length = BULK_MAXPKTSIZE; // Request more than 16 bytes anyway, the inTransfer routine will take care of this - uint8_t rcode = pUsb->inTransfer(bAddress, epInfo[ BTD_EVENT_PIPE ].epAddr, &length, hcibuf); // Input on endpoint 1 - - if(!rcode || rcode == hrNAK) { // Check for errors - switch(hcibuf[0]) { // Switch on event type - case EV_COMMAND_COMPLETE: - if(!hcibuf[5]) { // Check if command succeeded - hci_set_flag(HCI_FLAG_CMD_COMPLETE); // Set command complete flag - if((hcibuf[3] == 0x01) && (hcibuf[4] == 0x10)) { // Parameters from read local version information - hci_version = hcibuf[6]; // Used to check if it supports 2.0+EDR - see http://www.bluetooth.org/Technical/AssignedNumbers/hci.htm - hci_set_flag(HCI_FLAG_READ_VERSION); - } else if((hcibuf[3] == 0x09) && (hcibuf[4] == 0x10)) { // Parameters from read local bluetooth address - for(uint8_t i = 0; i < 6; i++) - my_bdaddr[i] = hcibuf[6 + i]; - hci_set_flag(HCI_FLAG_READ_BDADDR); - } - } - break; - - case EV_COMMAND_STATUS: - if(hcibuf[2]) { // Show status on serial if not OK -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nHCI Command Failed: "), 0x80); - D_PrintHex (hcibuf[2], 0x80); -#endif - } - break; - - case EV_INQUIRY_COMPLETE: - if(inquiry_counter >= 5 && (pairWithWii || pairWithHIDDevice)) { - inquiry_counter = 0; -#ifdef DEBUG_USB_HOST - if(pairWithWii) - Notify(PSTR("\r\nCouldn't find Wiimote"), 0x80); - else - Notify(PSTR("\r\nCouldn't find HID device"), 0x80); -#endif - connectToWii = false; - pairWithWii = false; - connectToHIDDevice = false; - pairWithHIDDevice = false; - hci_state = HCI_SCANNING_STATE; - } - inquiry_counter++; - break; - - case EV_INQUIRY_RESULT: - if(hcibuf[2]) { // Check that there is more than zero responses -#ifdef EXTRADEBUG - Notify(PSTR("\r\nNumber of responses: "), 0x80); - Notify(hcibuf[2], 0x80); -#endif - for(uint8_t i = 0; i < hcibuf[2]; i++) { - uint8_t offset = 8 * hcibuf[2] + 3 * i; - - for(uint8_t j = 0; j < 3; j++) - classOfDevice[j] = hcibuf[j + 4 + offset]; - -#ifdef EXTRADEBUG - Notify(PSTR("\r\nClass of device: "), 0x80); - D_PrintHex (classOfDevice[2], 0x80); - Notify(PSTR(" "), 0x80); - D_PrintHex (classOfDevice[1], 0x80); - Notify(PSTR(" "), 0x80); - D_PrintHex (classOfDevice[0], 0x80); -#endif - - if(pairWithWii && classOfDevice[2] == 0x00 && (classOfDevice[1] & 0x05) && (classOfDevice[0] & 0x0C)) { // See http://wiibrew.org/wiki/Wiimote#SDP_information - checkRemoteName = true; // Check remote name to distinguish between the different controllers - - for(uint8_t j = 0; j < 6; j++) - disc_bdaddr[j] = hcibuf[j + 3 + 6 * i]; - - hci_set_flag(HCI_FLAG_DEVICE_FOUND); - break; - } else if(pairWithHIDDevice && (classOfDevice[1] & 0x05) && (classOfDevice[0] & 0xC8)) { // Check if it is a mouse, keyboard or a gamepad - see: http://bluetooth-pentest.narod.ru/software/bluetooth_class_of_device-service_generator.html -#ifdef DEBUG_USB_HOST - if(classOfDevice[0] & 0x80) - Notify(PSTR("\r\nMouse found"), 0x80); - if(classOfDevice[0] & 0x40) - Notify(PSTR("\r\nKeyboard found"), 0x80); - if(classOfDevice[0] & 0x08) - Notify(PSTR("\r\nGamepad found"), 0x80); -#endif - - for(uint8_t j = 0; j < 6; j++) - disc_bdaddr[j] = hcibuf[j + 3 + 6 * i]; - - hci_set_flag(HCI_FLAG_DEVICE_FOUND); - break; - } - } - } - break; - - case EV_CONNECT_COMPLETE: - hci_set_flag(HCI_FLAG_CONNECT_EVENT); - if(!hcibuf[2]) { // Check if connected OK -#ifdef EXTRADEBUG - Notify(PSTR("\r\nConnection established"), 0x80); -#endif - hci_handle = hcibuf[3] | ((hcibuf[4] & 0x0F) << 8); // Store the handle for the ACL connection - hci_set_flag(HCI_FLAG_CONNECT_COMPLETE); // Set connection complete flag - } else { - hci_state = HCI_CHECK_DEVICE_SERVICE; -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nConnection Failed: "), 0x80); - D_PrintHex (hcibuf[2], 0x80); -#endif - } - break; - - case EV_DISCONNECT_COMPLETE: - if(!hcibuf[2]) { // Check if disconnected OK - hci_set_flag(HCI_FLAG_DISCONNECT_COMPLETE); // Set disconnect command complete flag - hci_clear_flag(HCI_FLAG_CONNECT_COMPLETE); // Clear connection complete flag - } - break; - - case EV_REMOTE_NAME_COMPLETE: - if(!hcibuf[2]) { // Check if reading is OK - for(uint8_t i = 0; i < min(sizeof (remote_name), sizeof (hcibuf) - 9); i++) { - remote_name[i] = hcibuf[9 + i]; - if(remote_name[i] == '\0') // End of string - break; - } - // TODO: Altid sæt '\0' i remote name! - hci_set_flag(HCI_FLAG_REMOTE_NAME_COMPLETE); - } - break; - - case EV_INCOMING_CONNECT: - for(uint8_t i = 0; i < 6; i++) - disc_bdaddr[i] = hcibuf[i + 2]; - - for(uint8_t i = 0; i < 3; i++) - classOfDevice[i] = hcibuf[i + 8]; - - if((classOfDevice[1] & 0x05) && (classOfDevice[0] & 0xC8)) { // Check if it is a mouse, keyboard or a gamepad -#ifdef DEBUG_USB_HOST - if(classOfDevice[0] & 0x80) - Notify(PSTR("\r\nMouse is connecting"), 0x80); - if(classOfDevice[0] & 0x40) - Notify(PSTR("\r\nKeyboard is connecting"), 0x80); - if(classOfDevice[0] & 0x08) - Notify(PSTR("\r\nGamepad is connecting"), 0x80); -#endif - incomingHIDDevice = true; - } - -#ifdef EXTRADEBUG - Notify(PSTR("\r\nClass of device: "), 0x80); - D_PrintHex (classOfDevice[2], 0x80); - Notify(PSTR(" "), 0x80); - D_PrintHex (classOfDevice[1], 0x80); - Notify(PSTR(" "), 0x80); - D_PrintHex (classOfDevice[0], 0x80); -#endif - hci_set_flag(HCI_FLAG_INCOMING_REQUEST); - break; - - case EV_PIN_CODE_REQUEST: - if(pairWithWii) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nPairing with Wiimote"), 0x80); -#endif - hci_pin_code_request_reply(); - } else if(btdPin != NULL) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nBluetooth pin is set too: "), 0x80); - NotifyStr(btdPin, 0x80); -#endif - hci_pin_code_request_reply(); - } else { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nNo pin was set"), 0x80); -#endif - hci_pin_code_negative_request_reply(); - } - break; - - case EV_LINK_KEY_REQUEST: -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nReceived Key Request"), 0x80); -#endif - hci_link_key_request_negative_reply(); - break; - - case EV_AUTHENTICATION_COMPLETE: - if(pairWithWii && !connectToWii) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nPairing successful with Wiimote"), 0x80); -#endif - connectToWii = true; // Used to indicate to the Wii service, that it should connect to this device - } else if(pairWithHIDDevice && !connectToHIDDevice) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nPairing successful with HID device"), 0x80); -#endif - connectToHIDDevice = true; // Used to indicate to the BTHID service, that it should connect to this device - } - break; - /* We will just ignore the following events */ - case EV_NUM_COMPLETE_PKT: - case EV_ROLE_CHANGED: - case EV_PAGE_SCAN_REP_MODE: - case EV_LOOPBACK_COMMAND: - case EV_DATA_BUFFER_OVERFLOW: - case EV_CHANGE_CONNECTION_LINK: - case EV_MAX_SLOTS_CHANGE: - case EV_QOS_SETUP_COMPLETE: - case EV_LINK_KEY_NOTIFICATION: - case EV_ENCRYPTION_CHANGE: - case EV_READ_REMOTE_VERSION_INFORMATION_COMPLETE: - break; -#ifdef EXTRADEBUG - default: - if(hcibuf[0] != 0x00) { - Notify(PSTR("\r\nUnmanaged HCI Event: "), 0x80); - D_PrintHex (hcibuf[0], 0x80); - } - break; -#endif - } // Switch - } -#ifdef EXTRADEBUG - else { - Notify(PSTR("\r\nHCI event error: "), 0x80); - D_PrintHex (rcode, 0x80); - } -#endif -} - -/* Poll Bluetooth and print result */ -void BTD::HCI_task() { - switch(hci_state) { - case HCI_INIT_STATE: - hci_counter++; - if(hci_counter > hci_num_reset_loops) { // wait until we have looped x times to clear any old events - hci_reset(); - hci_state = HCI_RESET_STATE; - hci_counter = 0; - } - break; - - case HCI_RESET_STATE: - hci_counter++; - if(hci_check_flag(HCI_FLAG_CMD_COMPLETE)) { - hci_counter = 0; -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nHCI Reset complete"), 0x80); -#endif - hci_state = HCI_CLASS_STATE; - hci_write_class_of_device(); - } else if(hci_counter > hci_num_reset_loops) { - hci_num_reset_loops *= 10; - if(hci_num_reset_loops > 2000) - hci_num_reset_loops = 2000; -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nNo response to HCI Reset"), 0x80); -#endif - hci_state = HCI_INIT_STATE; - hci_counter = 0; - } - break; - - case HCI_CLASS_STATE: - if(hci_check_flag(HCI_FLAG_CMD_COMPLETE)) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nWrite class of device"), 0x80); -#endif - hci_state = HCI_BDADDR_STATE; - hci_read_bdaddr(); - } - break; - - case HCI_BDADDR_STATE: - if(hci_check_flag(HCI_FLAG_READ_BDADDR)) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nLocal Bluetooth Address: "), 0x80); - for(int8_t i = 5; i > 0; i--) { - D_PrintHex (my_bdaddr[i], 0x80); - Notify(PSTR(":"), 0x80); - } - D_PrintHex (my_bdaddr[0], 0x80); -#endif - hci_read_local_version_information(); - hci_state = HCI_LOCAL_VERSION_STATE; - } - break; - - case HCI_LOCAL_VERSION_STATE: // The local version is used by the PS3BT class - if(hci_check_flag(HCI_FLAG_READ_VERSION)) { - if(btdName != NULL) { - hci_set_local_name(btdName); - hci_state = HCI_SET_NAME_STATE; - } else - hci_state = HCI_CHECK_DEVICE_SERVICE; - } - break; - - case HCI_SET_NAME_STATE: - if(hci_check_flag(HCI_FLAG_CMD_COMPLETE)) { -#ifdef DEBUG_USB_HOST - Notify(PSTR("\r\nThe name is set to: "), 0x80); - NotifyStr(btdName, 0x80); -#endif - hci_state = HCI_CHECK_DEVICE_SERVICE; - } - break; - - case HCI_CHECK_DEVICE_SERVICE: - if(pairWithHIDDevice || pairWithWii) { // Check if it should try to connect to a Wiimote -#ifdef DEBUG_USB_HOST - if(pairWithWii) - Notify(PSTR("\r\nStarting inquiry\r\nPress 1 & 2 on the Wiimote\r\nOr press the SYNC button if you are using a Wii U Pro Controller or a Wii Balance Board"), 0x80); - else - Notify(PSTR("\r\nPlease enable discovery of your device"), 0x80); -#endif - hci_inquiry(); - hci_state = HCI_INQUIRY_STATE; - } else - hci_state = HCI_SCANNING_STATE; // Don't try to connect to a Wiimote - break; - - case HCI_INQUIRY_STATE: - if(hci_check_flag(HCI_FLAG_DEVICE_FOUND)) { - hci_inquiry_cancel(); // Stop inquir