From 1c7e8ac4d7cd206d2a4d410ec160e397d66eeb21 Mon Sep 17 00:00:00 2001 From: NicoHood Date: Sun, 22 Jun 2014 00:32:31 +0200 Subject: [PATCH] Update 1.2 --- HID.cpp => 1.0.x/HID.cpp | 0 HID.h => 1.0.x/HID.h | 3 +- HID_Reports.h => 1.0.x/HID_Reports.h | 1 + 1.0.x/Readme.md | 2 + USBAPI.h => 1.0.x/USBAPI.h | 0 1.5.x/HID.cpp | 993 +++++++ 1.5.x/HID.h | 342 +++ 1.5.x/HID_Reports.h | 192 ++ 1.5.x/Readme.md | 2 + 1.5.x/USBAPI.h | 141 + Firmwares/Hoodloader.hex | 840 +++--- Hoodloader/Descriptors.c | 2 +- Hoodloader/Descriptors.h | 2 +- Hoodloader/Hoodloader.c | 36 +- Hoodloader/Lib/HID_Reports.h | 192 ++ Hoodloader/Lib/LightweightRingBuff.h | 4 +- Hoodloader/Readme.md | 7 + .../lufa-LUFA-140302}/.gitignore | 4 + .../HID_EEPROM_Loader/HID_EEPROM_Loader.c | 0 .../LUFA/Build/HID_EEPROM_Loader/makefile | 0 .../LUFA/Build/lufa_atprogram.mk | 0 .../LUFA/Build/lufa_avrdude.mk | 0 .../LUFA/Build/lufa_build.mk | 0 .../lufa-LUFA-140302}/LUFA/Build/lufa_core.mk | 0 .../LUFA/Build/lufa_cppcheck.mk | 0 .../lufa-LUFA-140302}/LUFA/Build/lufa_dfu.mk | 0 .../LUFA/Build/lufa_doxygen.mk | 0 .../lufa-LUFA-140302}/LUFA/Build/lufa_hid.mk | 0 .../LUFA/Build/lufa_sources.mk | 0 .../DeviceTemplate/Descriptors.c | 0 .../DeviceTemplate/Descriptors.h | 0 .../DeviceTemplate/DeviceApplication.c | 0 .../DeviceTemplate/DeviceApplication.h | 0 .../LUFA/CodeTemplates/DeviceTemplate/asf.xml | 0 .../LUFA/CodeTemplates/DriverStubs/Board.h | 0 .../LUFA/CodeTemplates/DriverStubs/Buttons.h | 0 .../CodeTemplates/DriverStubs/Dataflash.h | 0 .../LUFA/CodeTemplates/DriverStubs/Joystick.h | 0 .../LUFA/CodeTemplates/DriverStubs/LEDs.h | 0 .../HostTemplate/HostApplication.c | 0 .../HostTemplate/HostApplication.h | 0 .../LUFA/CodeTemplates/HostTemplate/asf.xml | 0 .../LUFA/CodeTemplates/LUFAConfig.h | 0 .../CodeTemplates/WindowsINF/LUFA CDC-ACM.inf | 0 .../CodeTemplates/WindowsINF/LUFA RNDIS.inf | 0 .../LUFA/CodeTemplates/makefile_template | 0 .../LUFA/Common/ArchitectureSpecific.h | 0 .../LUFA/Common/Architectures.h | 0 .../LUFA/Common/Attributes.h | 0 .../LUFA/Common/BoardTypes.h | 0 .../lufa-LUFA-140302}/LUFA/Common/Common.h | 0 .../LUFA/Common/CompilerSpecific.h | 0 .../LUFA/Common/Endianness.h | 0 .../LUFA/DoxygenPages/BuildSystem.txt | 0 .../BuildingLinkableLibraries.txt | 0 .../LUFA/DoxygenPages/ChangeLog.txt | 0 .../LUFA/DoxygenPages/CompileTimeTokens.txt | 0 .../LUFA/DoxygenPages/CompilingApps.txt | 0 .../LUFA/DoxygenPages/ConfiguringApps.txt | 0 .../LUFA/DoxygenPages/DevelopingWithLUFA.txt | 0 .../LUFA/DoxygenPages/DeviceSupport.txt | 0 .../LUFA/DoxygenPages/DirectorySummaries.txt | 0 .../LUFA/DoxygenPages/Donating.txt | 0 .../LUFA/DoxygenPages/ExportingLibrary.txt | 0 .../LUFA/DoxygenPages/FutureChanges.txt | 0 .../LUFA/DoxygenPages/GettingStarted.txt | 0 .../LUFA/DoxygenPages/Groups.txt | 0 .../AS5_AS6_Import/AS5_AS6_Import_Step1.png | Bin .../AS5_AS6_Import/AS5_AS6_Import_Step2.png | Bin .../AS5_AS6_Import/AS5_AS6_Import_Step3.png | Bin .../AS5_AS6_Import/AS5_AS6_Import_Step4.png | Bin .../AS5_AS6_Import/AS5_AS6_Import_Step5_1.png | Bin .../AS5_AS6_Import/AS5_AS6_Import_Step5_2.png | Bin .../AS5_AS6_Import/AS5_AS6_Import_Step5_3.png | Bin .../LUFA/DoxygenPages/Images/Author.jpg | Bin .../LUFA/DoxygenPages/Images/LUFA.png | Bin .../LUFA/DoxygenPages/Images/LUFA_thumb.png | Bin .../LUFA/DoxygenPages/KnownIssues.txt | 0 .../LUFA/DoxygenPages/LUFAPoweredProjects.txt | 0 .../LUFA/DoxygenPages/LibraryResources.txt | 0 .../LUFA/DoxygenPages/LicenseInfo.txt | 0 .../LUFA/DoxygenPages/MainPage.txt | 0 .../DoxygenPages/MigrationInformation.txt | 0 .../LUFA/DoxygenPages/OSDrivers.txt | 0 .../LUFA/DoxygenPages/ProgrammingApps.txt | 0 .../DoxygenPages/SoftwareBootloaderJump.txt | 0 .../LUFA/DoxygenPages/Style/Footer.htm | 0 .../LUFA/DoxygenPages/Style/Style.css | 0 .../LUFA/DoxygenPages/VIDAndPIDValues.txt | 0 .../LUFA/DoxygenPages/WritingBoardDrivers.txt | 0 .../Drivers/Board/AVR8/ADAFRUITU4/Board.h | 0 .../LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h | 0 .../Drivers/Board/AVR8/ATAVRUSBRF01/Board.h | 0 .../Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h | 0 .../Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/BENITO/Board.h | 0 .../LUFA/Drivers/Board/AVR8/BENITO/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/BENITO/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h | 0 .../LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h | 0 .../LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/BUI/Board.h | 0 .../LUFA/Drivers/Board/AVR8/BUI/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h | 0 .../LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h | 0 .../Drivers/Board/AVR8/BUMBLEB/Joystick.h | 0 .../LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/CULV3/Board.h | 0 .../LUFA/Drivers/Board/AVR8/CULV3/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/CULV3/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/DUCE/Board.h | 0 .../LUFA/Drivers/Board/AVR8/DUCE/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/EVK527/Board.h | 0 .../LUFA/Drivers/Board/AVR8/EVK527/Buttons.h | 0 .../Drivers/Board/AVR8/EVK527/Dataflash.h | 0 .../LUFA/Drivers/Board/AVR8/EVK527/Joystick.h | 0 .../LUFA/Drivers/Board/AVR8/EVK527/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/JMDBU2/Board.h | 0 .../LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/LEONARDO/Board.h | 0 .../LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h | 0 .../LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h | 0 .../Drivers/Board/AVR8/MICROPENDOUS/Board.h | 0 .../Drivers/Board/AVR8/MICROPENDOUS/Buttons.h | 0 .../Drivers/Board/AVR8/MICROPENDOUS/LEDs.h | 0 .../Drivers/Board/AVR8/MICROSIN162/Board.h | 0 .../Drivers/Board/AVR8/MICROSIN162/Buttons.h | 0 .../Drivers/Board/AVR8/MICROSIN162/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/MINIMUS/Board.h | 0 .../LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/MULTIO/Board.h | 0 .../LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h | 0 .../Drivers/Board/AVR8/OLIMEX162/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h | 0 .../Drivers/Board/AVR8/OLIMEX32U4/Board.h | 0 .../Drivers/Board/AVR8/OLIMEX32U4/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h | 0 .../Drivers/Board/AVR8/OLIMEXISPMK2/Board.h | 0 .../Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h | 0 .../Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h | 0 .../Drivers/Board/AVR8/OLIMEXT32U4/Board.h | 0 .../Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h | 0 .../Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h | 0 .../Drivers/Board/AVR8/RZUSBSTICK/Board.h | 0 .../LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h | 0 .../Drivers/Board/AVR8/SPARKFUN8U2/Board.h | 0 .../Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h | 0 .../Drivers/Board/AVR8/STANGE_ISP/Board.h | 0 .../Drivers/Board/AVR8/STANGE_ISP/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/STK525/Board.h | 0 .../LUFA/Drivers/Board/AVR8/STK525/Buttons.h | 0 .../Drivers/Board/AVR8/STK525/Dataflash.h | 0 .../LUFA/Drivers/Board/AVR8/STK525/Joystick.h | 0 .../LUFA/Drivers/Board/AVR8/STK525/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/STK526/Board.h | 0 .../LUFA/Drivers/Board/AVR8/STK526/Buttons.h | 0 .../Drivers/Board/AVR8/STK526/Dataflash.h | 0 .../LUFA/Drivers/Board/AVR8/STK526/Joystick.h | 0 .../LUFA/Drivers/Board/AVR8/STK526/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/TEENSY/Board.h | 0 .../LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/TUL/Board.h | 0 .../LUFA/Drivers/Board/AVR8/TUL/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/TUL/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/U2S/Board.h | 0 .../LUFA/Drivers/Board/AVR8/U2S/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/U2S/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/UDIP/Board.h | 0 .../LUFA/Drivers/Board/AVR8/UDIP/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/UDIP/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/UNO/Board.h | 0 .../LUFA/Drivers/Board/AVR8/UNO/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/USB2AX/Board.h | 0 .../LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/USBFOO/Board.h | 0 .../LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h | 0 .../LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/USBKEY/Board.h | 0 .../LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h | 0 .../Drivers/Board/AVR8/USBKEY/Dataflash.h | 0 .../LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h | 0 .../LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h | 0 .../Drivers/Board/AVR8/USBTINYMKII/Board.h | 0 .../Drivers/Board/AVR8/USBTINYMKII/Buttons.h | 0 .../Drivers/Board/AVR8/USBTINYMKII/LEDs.h | 0 .../LUFA/Drivers/Board/AVR8/XPLAIN/Board.h | 0 .../Drivers/Board/AVR8/XPLAIN/Dataflash.h | 0 .../LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h | 0 .../LUFA/Drivers/Board/Board.h | 0 .../LUFA/Drivers/Board/Buttons.h | 0 .../LUFA/Drivers/Board/Dataflash.h | 0 .../LUFA/Drivers/Board/Joystick.h | 0 .../LUFA/Drivers/Board/LEDs.h | 0 .../LUFA/Drivers/Board/Temperature.c | 0 .../LUFA/Drivers/Board/Temperature.h | 0 .../LUFA/Drivers/Board/UC3/EVK1100/Board.h | 0 .../LUFA/Drivers/Board/UC3/EVK1100/Buttons.h | 0 .../LUFA/Drivers/Board/UC3/EVK1100/Joystick.h | 0 .../LUFA/Drivers/Board/UC3/EVK1100/LEDs.h | 0 .../LUFA/Drivers/Board/UC3/EVK1101/Board.h | 0 .../LUFA/Drivers/Board/UC3/EVK1101/Buttons.h | 0 .../LUFA/Drivers/Board/UC3/EVK1101/Joystick.h | 0 .../LUFA/Drivers/Board/UC3/EVK1101/LEDs.h | 0 .../LUFA/Drivers/Board/UC3/EVK1104/Board.h | 0 .../LUFA/Drivers/Board/UC3/EVK1104/Buttons.h | 0 .../LUFA/Drivers/Board/UC3/EVK1104/LEDs.h | 0 .../Drivers/Board/UC3/UC3A3_XPLAINED/Board.h | 0 .../Board/UC3/UC3A3_XPLAINED/Buttons.h | 0 .../Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h | 0 .../Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h | 0 .../Board/XMEGA/A3BU_XPLAINED/Buttons.h | 0 .../Board/XMEGA/A3BU_XPLAINED/Dataflash.h | 0 .../Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h | 0 .../Drivers/Board/XMEGA/B1_XPLAINED/Board.h | 0 .../Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h | 0 .../Board/XMEGA/B1_XPLAINED/Dataflash.h | 0 .../Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h | 0 .../Drivers/Board/XMEGA/C3_XPLAINED/Board.h | 0 .../Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h | 0 .../Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h | 0 .../LUFA/Drivers/Misc/AT45DB321C.h | 0 .../LUFA/Drivers/Misc/AT45DB642D.h | 0 .../LUFA/Drivers/Misc/RingBuffer.h | 0 .../LUFA/Drivers/Misc/TerminalCodes.h | 0 .../LUFA/Drivers/Peripheral/ADC.h | 0 .../LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h | 0 .../LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h | 0 .../Drivers/Peripheral/AVR8/SerialSPI_AVR8.h | 0 .../Drivers/Peripheral/AVR8/Serial_AVR8.c | 0 .../Drivers/Peripheral/AVR8/Serial_AVR8.h | 0 .../LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c | 0 .../LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h | 0 .../LUFA/Drivers/Peripheral/SPI.h | 0 .../LUFA/Drivers/Peripheral/Serial.h | 0 .../LUFA/Drivers/Peripheral/SerialSPI.h | 0 .../LUFA/Drivers/Peripheral/TWI.h | 0 .../LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h | 0 .../Peripheral/XMEGA/SerialSPI_XMEGA.h | 0 .../Drivers/Peripheral/XMEGA/Serial_XMEGA.c | 0 .../Drivers/Peripheral/XMEGA/Serial_XMEGA.h | 0 .../LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c | 0 .../LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h | 0 .../Drivers/USB/Class/AndroidAccessoryClass.h | 0 .../LUFA/Drivers/USB/Class/AudioClass.h | 0 .../LUFA/Drivers/USB/Class/CDCClass.h | 0 .../Common/AndroidAccessoryClassCommon.h | 0 .../USB/Class/Common/AudioClassCommon.h | 0 .../Drivers/USB/Class/Common/CDCClassCommon.h | 0 .../Drivers/USB/Class/Common/HIDClassCommon.h | 0 .../LUFA/Drivers/USB/Class/Common/HIDParser.c | 0 .../LUFA/Drivers/USB/Class/Common/HIDParser.h | 0 .../Drivers/USB/Class/Common/HIDReportData.h | 0 .../USB/Class/Common/MIDIClassCommon.h | 0 .../USB/Class/Common/MassStorageClassCommon.h | 0 .../USB/Class/Common/PrinterClassCommon.h | 0 .../USB/Class/Common/RNDISClassCommon.h | 0 .../USB/Class/Common/StillImageClassCommon.h | 0 .../USB/Class/Device/AudioClassDevice.c | 0 .../USB/Class/Device/AudioClassDevice.h | 0 .../Drivers/USB/Class/Device/CDCClassDevice.c | 0 .../Drivers/USB/Class/Device/CDCClassDevice.h | 0 .../Drivers/USB/Class/Device/HIDClassDevice.c | 0 .../Drivers/USB/Class/Device/HIDClassDevice.h | 0 .../USB/Class/Device/MIDIClassDevice.c | 0 .../USB/Class/Device/MIDIClassDevice.h | 0 .../USB/Class/Device/MassStorageClassDevice.c | 0 .../USB/Class/Device/MassStorageClassDevice.h | 0 .../USB/Class/Device/PrinterClassDevice.c | 0 .../USB/Class/Device/PrinterClassDevice.h | 0 .../USB/Class/Device/RNDISClassDevice.c | 0 .../USB/Class/Device/RNDISClassDevice.h | 0 .../LUFA/Drivers/USB/Class/HIDClass.h | 0 .../Class/Host/AndroidAccessoryClassHost.c | 0 .../Class/Host/AndroidAccessoryClassHost.h | 0 .../Drivers/USB/Class/Host/AudioClassHost.c | 0 .../Drivers/USB/Class/Host/AudioClassHost.h | 0 .../Drivers/USB/Class/Host/CDCClassHost.c | 0 .../Drivers/USB/Class/Host/CDCClassHost.h | 0 .../Drivers/USB/Class/Host/HIDClassHost.c | 0 .../Drivers/USB/Class/Host/HIDClassHost.h | 0 .../Drivers/USB/Class/Host/MIDIClassHost.c | 0 .../Drivers/USB/Class/Host/MIDIClassHost.h | 0 .../USB/Class/Host/MassStorageClassHost.c | 0 .../USB/Class/Host/MassStorageClassHost.h | 0 .../Drivers/USB/Class/Host/PrinterClassHost.c | 0 .../Drivers/USB/Class/Host/PrinterClassHost.h | 0 .../Drivers/USB/Class/Host/RNDISClassHost.c | 0 .../Drivers/USB/Class/Host/RNDISClassHost.h | 0 .../USB/Class/Host/StillImageClassHost.c | 0 .../USB/Class/Host/StillImageClassHost.h | 0 .../LUFA/Drivers/USB/Class/MIDIClass.h | 0 .../LUFA/Drivers/USB/Class/MassStorageClass.h | 0 .../LUFA/Drivers/USB/Class/PrinterClass.h | 0 .../LUFA/Drivers/USB/Class/RNDISClass.h | 0 .../LUFA/Drivers/USB/Class/StillImageClass.h | 0 .../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c | 0 .../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h | 0 .../USB/Core/AVR8/EndpointStream_AVR8.c | 0 .../USB/Core/AVR8/EndpointStream_AVR8.h | 0 .../Drivers/USB/Core/AVR8/Endpoint_AVR8.c | 0 .../Drivers/USB/Core/AVR8/Endpoint_AVR8.h | 0 .../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c | 0 .../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h | 0 .../LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h | 0 .../Drivers/USB/Core/AVR8/PipeStream_AVR8.c | 0 .../Drivers/USB/Core/AVR8/PipeStream_AVR8.h | 0 .../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c | 0 .../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h | 0 .../Template/Template_Endpoint_Control_R.c | 0 .../Template/Template_Endpoint_Control_W.c | 0 .../Core/AVR8/Template/Template_Endpoint_RW.c | 0 .../USB/Core/AVR8/Template/Template_Pipe_RW.c | 0 .../USB/Core/AVR8/USBController_AVR8.c | 0 .../USB/Core/AVR8/USBController_AVR8.h | 0 .../Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c | 0 .../Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h | 0 .../LUFA/Drivers/USB/Core/ConfigDescriptors.c | 0 .../LUFA/Drivers/USB/Core/ConfigDescriptors.h | 0 .../LUFA/Drivers/USB/Core/Device.h | 0 .../LUFA/Drivers/USB/Core/DeviceStandardReq.c | 0 .../LUFA/Drivers/USB/Core/DeviceStandardReq.h | 0 .../LUFA/Drivers/USB/Core/Endpoint.h | 0 .../LUFA/Drivers/USB/Core/EndpointStream.h | 0 .../LUFA/Drivers/USB/Core/Events.c | 0 .../LUFA/Drivers/USB/Core/Events.h | 0 .../LUFA/Drivers/USB/Core/Host.h | 0 .../LUFA/Drivers/USB/Core/HostStandardReq.c | 0 .../LUFA/Drivers/USB/Core/HostStandardReq.h | 0 .../LUFA/Drivers/USB/Core/OTG.h | 0 .../LUFA/Drivers/USB/Core/Pipe.h | 0 .../LUFA/Drivers/USB/Core/PipeStream.h | 0 .../LUFA/Drivers/USB/Core/StdDescriptors.h | 0 .../LUFA/Drivers/USB/Core/StdRequestType.h | 0 .../LUFA/Drivers/USB/Core/UC3/Device_UC3.c | 0 .../LUFA/Drivers/USB/Core/UC3/Device_UC3.h | 0 .../Drivers/USB/Core/UC3/EndpointStream_UC3.c | 0 .../Drivers/USB/Core/UC3/EndpointStream_UC3.h | 0 .../LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c | 0 .../LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h | 0 .../LUFA/Drivers/USB/Core/UC3/Host_UC3.c | 0 .../LUFA/Drivers/USB/Core/UC3/Host_UC3.h | 0 .../Drivers/USB/Core/UC3/PipeStream_UC3.c | 0 .../Drivers/USB/Core/UC3/PipeStream_UC3.h | 0 .../LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c | 0 .../LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h | 0 .../Template/Template_Endpoint_Control_R.c | 0 .../Template/Template_Endpoint_Control_W.c | 0 .../Core/UC3/Template/Template_Endpoint_RW.c | 0 .../USB/Core/UC3/Template/Template_Pipe_RW.c | 0 .../Drivers/USB/Core/UC3/USBController_UC3.c | 0 .../Drivers/USB/Core/UC3/USBController_UC3.h | 0 .../Drivers/USB/Core/UC3/USBInterrupt_UC3.c | 0 .../Drivers/USB/Core/UC3/USBInterrupt_UC3.h | 0 .../LUFA/Drivers/USB/Core/USBController.h | 0 .../LUFA/Drivers/USB/Core/USBInterrupt.h | 0 .../LUFA/Drivers/USB/Core/USBMode.h | 0 .../LUFA/Drivers/USB/Core/USBTask.c | 0 .../LUFA/Drivers/USB/Core/USBTask.h | 0 .../Drivers/USB/Core/XMEGA/Device_XMEGA.c | 0 .../Drivers/USB/Core/XMEGA/Device_XMEGA.h | 0 .../USB/Core/XMEGA/EndpointStream_XMEGA.c | 0 .../USB/Core/XMEGA/EndpointStream_XMEGA.h | 0 .../Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c | 0 .../Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h | 0 .../LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c | 0 .../Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c | 0 .../LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c | 0 .../Template/Template_Endpoint_Control_R.c | 0 .../Template/Template_Endpoint_Control_W.c | 0 .../XMEGA/Template/Template_Endpoint_RW.c | 0 .../USB/Core/XMEGA/USBController_XMEGA.c | 0 .../USB/Core/XMEGA/USBController_XMEGA.h | 0 .../USB/Core/XMEGA/USBInterrupt_XMEGA.c | 0 .../USB/Core/XMEGA/USBInterrupt_XMEGA.h | 0 .../lufa-LUFA-140302}/LUFA/Drivers/USB/USB.h | 0 .../lufa-LUFA-140302}/LUFA/License.txt | 0 .../LUFA/Platform/Platform.h | 0 .../LUFA/Platform/UC3/ClockManagement.h | 0 .../LUFA/Platform/UC3/Exception.S | 0 .../LUFA/Platform/UC3/InterruptManagement.c | 0 .../LUFA/Platform/UC3/InterruptManagement.h | 0 .../LUFA/Platform/UC3/UC3ExperimentalInfo.txt | 0 .../LUFA/Platform/XMEGA/ClockManagement.h | 0 .../Platform/XMEGA/XMEGAExperimentalInfo.txt | 0 .../HV1/helpcontentsetup.msha | 0 .../HV1/lufa_docbook_transform.xslt | 0 .../HV1/lufa_helpcontentsetup_transform.xslt | 0 .../HV1/lufa_hv1_transform.xslt | 0 .../HV1/lufa_studio_help_styling.css | 0 .../LUFA/StudioIntegration/VSIX/LUFA.dll | Bin .../LUFA/StudioIntegration/VSIX/LUFA.pkgdef | Bin .../VSIX/[Content_Types].xml | 0 .../StudioIntegration/VSIX/asf-manifest.xml | 0 .../VSIX/extension.vsixmanifest | 0 .../StudioIntegration/VSIX/generate_caches.py | 0 .../VSIX/lufa_asfmanifest_transform.xslt | 0 .../VSIX/lufa_vsmanifest_transform.xslt | 0 .../XDK/lufa_extension_transform.xslt | 0 .../XDK/lufa_filelist_transform.xslt | 0 .../XDK/lufa_indent_transform.xslt | 0 .../XDK/lufa_module_transform.xslt | 0 .../LUFA/StudioIntegration/lufa.xml | 0 .../LUFA/StudioIntegration/lufa_common.xml | 0 .../StudioIntegration/lufa_drivers_board.xml | 0 .../lufa_drivers_board_names.xml | 0 .../StudioIntegration/lufa_drivers_misc.xml | 0 .../lufa_drivers_peripheral.xml | 0 .../StudioIntegration/lufa_drivers_usb.xml | 0 .../lufa_drivers_usb_class.xml | 0 .../lufa_drivers_usb_class_android.xml | 0 .../lufa_drivers_usb_class_audio.xml | 0 .../lufa_drivers_usb_class_cdc.xml | 0 .../lufa_drivers_usb_class_hid.xml | 0 .../lufa_drivers_usb_class_midi.xml | 0 .../lufa_drivers_usb_class_ms.xml | 0 .../lufa_drivers_usb_class_printer.xml | 0 .../lufa_drivers_usb_class_rndis.xml | 0 .../lufa_drivers_usb_class_si.xml | 0 .../lufa_drivers_usb_core.xml | 0 .../lufa_drivers_usb_core_avr8.xml | 0 .../lufa_drivers_usb_core_uc3.xml | 0 .../lufa_drivers_usb_core_xmega.xml | 0 .../LUFA/StudioIntegration/lufa_platform.xml | 0 .../StudioIntegration/lufa_platform_uc3.xml | 0 .../StudioIntegration/lufa_platform_xmega.xml | 0 .../LUFA/StudioIntegration/lufa_toolchain.xml | 0 .../LUFA/StudioIntegration/makefile | 0 .../lufa-LUFA-140302}/LUFA/Version.h | 0 .../lufa-LUFA-140302}/LUFA/doxyfile | 0 .../lufa-LUFA-140302}/LUFA/makefile | 0 .../lufa-LUFA-140302}/README.txt | 0 .../lufa-LUFA-140302}/makefile | 0 Hoodloader/makefile | 2 +- Readme.md | 22 +- .../AdvancedGamepad.ino} | 70 +- .../AdvancedKeyboard/AdvancedKeyboard.ino | 111 + examples/Gamepad/Gamepad.ino | 2 +- examples/Joystick/Joystick.ino | 2 +- examples/Keyboard/Keyboard.ino | 3 +- examples/Media/Media.ino | 2 +- examples/Mouse/Mouse.ino | 2 +- examples/System/System.ino | 2 +- keywords.txt | 1 + .../Bootloaders/CDC/BootloaderAPI.c | 75 - .../Bootloaders/CDC/BootloaderAPI.h | 58 - .../Bootloaders/CDC/BootloaderAPITable.S | 91 - .../Bootloaders/CDC/BootloaderCDC.c | 641 ----- .../Bootloaders/CDC/BootloaderCDC.h | 144 - .../Bootloaders/CDC/BootloaderCDC.txt | 224 -- .../Bootloaders/CDC/Config/AppConfig.h | 50 - .../Bootloaders/CDC/Config/LUFAConfig.h | 93 - .../Bootloaders/CDC/Descriptors.c | 244 -- .../Bootloaders/CDC/Descriptors.h | 158 -- .../Bootloaders/CDC/LUFA CDC Bootloader.inf | 66 - lufa-LUFA-140302/Bootloaders/CDC/asf.xml | 161 -- lufa-LUFA-140302/Bootloaders/CDC/doxyfile | 2337 ---------------- lufa-LUFA-140302/Bootloaders/CDC/makefile | 55 - .../Bootloaders/DFU/BootloaderAPI.c | 76 - .../Bootloaders/DFU/BootloaderAPI.h | 58 - .../Bootloaders/DFU/BootloaderAPITable.S | 91 - .../Bootloaders/DFU/BootloaderDFU.c | 804 ------ .../Bootloaders/DFU/BootloaderDFU.h | 216 -- .../Bootloaders/DFU/BootloaderDFU.txt | 217 -- .../Bootloaders/DFU/Config/AppConfig.h | 48 - .../Bootloaders/DFU/Config/LUFAConfig.h | 93 - .../Bootloaders/DFU/Descriptors.c | 185 -- .../Bootloaders/DFU/Descriptors.h | 194 -- lufa-LUFA-140302/Bootloaders/DFU/asf.xml | 156 -- lufa-LUFA-140302/Bootloaders/DFU/doxyfile | 2337 ---------------- lufa-LUFA-140302/Bootloaders/DFU/makefile | 55 - .../Bootloaders/HID/BootloaderHID.c | 190 -- .../Bootloaders/HID/BootloaderHID.h | 73 - .../Bootloaders/HID/BootloaderHID.txt | 99 - .../Bootloaders/HID/Config/LUFAConfig.h | 93 - .../Bootloaders/HID/Descriptors.c | 187 -- .../Bootloaders/HID/Descriptors.h | 80 - .../Bootloaders/HID/HostLoaderApp/Makefile | 39 - .../HID/HostLoaderApp/Makefile.bsd | 21 - .../Bootloaders/HID/HostLoaderApp/gpl3.txt | 674 ----- .../HID/HostLoaderApp/hid_bootloader_cli.c | 1010 ------- .../hid_bootloader_loader.py | 120 - lufa-LUFA-140302/Bootloaders/HID/asf.xml | 123 - lufa-LUFA-140302/Bootloaders/HID/doxyfile | 2339 ----------------- lufa-LUFA-140302/Bootloaders/HID/makefile | 48 - .../Bootloaders/MassStorage/BootloaderAPI.c | 76 - .../Bootloaders/MassStorage/BootloaderAPI.h | 63 - .../MassStorage/BootloaderAPITable.S | 102 - .../MassStorage/BootloaderMassStorage.c | 238 -- .../MassStorage/BootloaderMassStorage.h | 99 - .../MassStorage/BootloaderMassStorage.txt | 209 -- .../MassStorage/Config/AppConfig.h | 47 - .../MassStorage/Config/LUFAConfig.h | 93 - .../Bootloaders/MassStorage/Descriptors.c | 157 -- .../Bootloaders/MassStorage/Descriptors.h | 88 - .../Bootloaders/MassStorage/Lib/SCSI.c | 294 --- .../Bootloaders/MassStorage/Lib/SCSI.h | 84 - .../Bootloaders/MassStorage/Lib/VirtualFAT.c | 482 ---- .../Bootloaders/MassStorage/Lib/VirtualFAT.h | 302 --- .../Bootloaders/MassStorage/asf.xml | 156 -- .../Bootloaders/MassStorage/doxyfile | 2337 ---------------- .../Bootloaders/MassStorage/makefile | 68 - .../Bootloaders/Printer/BootloaderAPI.c | 75 - .../Bootloaders/Printer/BootloaderAPI.h | 56 - .../Bootloaders/Printer/BootloaderAPITable.S | 91 - .../Bootloaders/Printer/BootloaderPrinter.c | 431 --- .../Bootloaders/Printer/BootloaderPrinter.h | 108 - .../Bootloaders/Printer/BootloaderPrinter.txt | 184 -- .../Bootloaders/Printer/Config/LUFAConfig.h | 93 - .../Bootloaders/Printer/Descriptors.c | 194 -- .../Bootloaders/Printer/Descriptors.h | 96 - lufa-LUFA-140302/Bootloaders/Printer/asf.xml | 159 -- lufa-LUFA-140302/Bootloaders/Printer/doxyfile | 2337 ---------------- lufa-LUFA-140302/Bootloaders/Printer/makefile | 55 - lufa-LUFA-140302/Bootloaders/makefile | 46 - .../BuildTests/BoardDriverTest/Board/Board.h | 82 - .../BoardDriverTest/Board/Buttons.h | 92 - .../BoardDriverTest/Board/Dataflash.h | 197 -- .../BoardDriverTest/Board/Joystick.h | 104 - .../BuildTests/BoardDriverTest/Board/LEDs.h | 132 - .../BoardDriverTest/BoardDeviceMap.cfg | 85 - .../BuildTests/BoardDriverTest/Test.c | 115 - .../BuildTests/BoardDriverTest/makefile | 68 - .../BuildTests/BoardDriverTest/makefile.test | 27 - .../BootloaderTest/BootloaderDeviceMap.cfg | 167 -- .../BuildTests/BootloaderTest/makefile | 64 - .../BuildTests/ModuleTest/Dummy.S | 41 - .../BuildTests/ModuleTest/Modules.h | 56 - .../BuildTests/ModuleTest/Test_C.c | 31 - .../BuildTests/ModuleTest/Test_CPP.cpp | 31 - .../BuildTests/ModuleTest/makefile | 66 - .../BuildTests/ModuleTest/makefile.test | 88 - .../BuildTests/SingleUSBModeTest/Dummy.S | 42 - .../BuildTests/SingleUSBModeTest/Test.c | 32 - .../BuildTests/SingleUSBModeTest/makefile | 56 - .../SingleUSBModeTest/makefile.test | 69 - .../BuildTests/StaticAnalysisTest/makefile | 47 - lufa-LUFA-140302/BuildTests/makefile | 24 - .../lufa_functionlist_transform.xslt | 19 - lufa-LUFA-140302/Maintenance/makefile | 94 - 546 files changed, 2464 insertions(+), 25190 deletions(-) rename HID.cpp => 1.0.x/HID.cpp (100%) rename HID.h => 1.0.x/HID.h (98%) rename HID_Reports.h => 1.0.x/HID_Reports.h (99%) create mode 100644 1.0.x/Readme.md rename USBAPI.h => 1.0.x/USBAPI.h (100%) create mode 100644 1.5.x/HID.cpp create mode 100644 1.5.x/HID.h create mode 100644 1.5.x/HID_Reports.h create mode 100644 1.5.x/Readme.md create mode 100644 1.5.x/USBAPI.h create mode 100644 Hoodloader/Lib/HID_Reports.h create mode 100644 Hoodloader/Readme.md rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/.gitignore (80%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/HID_EEPROM_Loader/makefile (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/lufa_atprogram.mk (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/lufa_avrdude.mk (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/lufa_build.mk (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/lufa_core.mk (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/lufa_cppcheck.mk (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/lufa_dfu.mk (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/lufa_doxygen.mk (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/lufa_hid.mk (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Build/lufa_sources.mk (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DeviceTemplate/Descriptors.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DeviceTemplate/asf.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DriverStubs/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DriverStubs/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DriverStubs/Dataflash.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DriverStubs/Joystick.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/DriverStubs/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/HostTemplate/HostApplication.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/HostTemplate/HostApplication.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/HostTemplate/asf.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/LUFAConfig.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/WindowsINF/LUFA CDC-ACM.inf (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/WindowsINF/LUFA RNDIS.inf (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/CodeTemplates/makefile_template (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Common/ArchitectureSpecific.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Common/Architectures.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Common/Attributes.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Common/BoardTypes.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Common/Common.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Common/CompilerSpecific.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Common/Endianness.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/BuildSystem.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/BuildingLinkableLibraries.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/ChangeLog.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/CompileTimeTokens.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/CompilingApps.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/ConfiguringApps.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/DevelopingWithLUFA.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/DeviceSupport.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/DirectorySummaries.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Donating.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/ExportingLibrary.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/FutureChanges.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/GettingStarted.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Groups.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/Author.jpg (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/LUFA.png (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Images/LUFA_thumb.png (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/KnownIssues.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/LUFAPoweredProjects.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/LibraryResources.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/LicenseInfo.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/MainPage.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/MigrationInformation.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/OSDrivers.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/ProgrammingApps.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/SoftwareBootloaderJump.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Style/Footer.htm (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/Style/Style.css (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/VIDAndPIDValues.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/DoxygenPages/WritingBoardDrivers.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/ADAFRUITU4/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BENITO/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BUI/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BUI/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/CULV3/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/DUCE/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/DUCE/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/EVK527/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/JMDBU2/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/LEONARDO/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MICROSIN162/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MINIMUS/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MULTIO/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/RZUSBSTICK/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STANGE_ISP/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STANGE_ISP/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK525/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK525/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK525/Joystick.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK525/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK526/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK526/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK526/Joystick.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/STK526/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/TEENSY/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/TUL/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/TUL/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/TUL/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/U2S/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/U2S/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/U2S/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/UDIP/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/UNO/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/UNO/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USB2AX/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBFOO/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBKEY/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBTINYMKII/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/XPLAIN/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/Dataflash.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/Joystick.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/Temperature.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/Temperature.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1100/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1101/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1104/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Board.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Misc/AT45DB321C.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Misc/AT45DB642D.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Misc/RingBuffer.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Misc/TerminalCodes.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/ADC.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/SPI.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/Serial.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/SerialSPI.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/TWI.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/AudioClass.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/CDCClass.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/HIDParser.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/HIDParser.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/HIDReportData.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/HIDClass.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/AudioClassHost.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/AudioClassHost.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/CDCClassHost.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/CDCClassHost.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/HIDClassHost.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/HIDClassHost.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/MIDIClass.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/MassStorageClass.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/PrinterClass.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/RNDISClass.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Class/StillImageClass.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/ConfigDescriptors.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/ConfigDescriptors.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/Device.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/DeviceStandardReq.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/DeviceStandardReq.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/Endpoint.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/EndpointStream.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/Events.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/Events.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/Host.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/HostStandardReq.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/HostStandardReq.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/OTG.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/Pipe.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/PipeStream.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/StdDescriptors.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/StdRequestType.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Device_UC3.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Device_UC3.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Host_UC3.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Host_UC3.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/USBController.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/USBInterrupt.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/USBMode.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/USBTask.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/USBTask.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Drivers/USB/USB.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/License.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Platform/Platform.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Platform/UC3/ClockManagement.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Platform/UC3/Exception.S (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Platform/UC3/InterruptManagement.c (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Platform/UC3/InterruptManagement.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Platform/UC3/UC3ExperimentalInfo.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Platform/XMEGA/ClockManagement.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Platform/XMEGA/XMEGAExperimentalInfo.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/HV1/helpcontentsetup.msha (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/HV1/lufa_helpcontentsetup_transform.xslt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/VSIX/LUFA.dll (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/VSIX/LUFA.pkgdef (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/VSIX/[Content_Types].xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/VSIX/asf-manifest.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/VSIX/extension.vsixmanifest (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/VSIX/generate_caches.py (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/VSIX/lufa_asfmanifest_transform.xslt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/VSIX/lufa_vsmanifest_transform.xslt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_common.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_board.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_board_names.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_misc.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_peripheral.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class_android.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class_audio.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class_cdc.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class_hid.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class_midi.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class_ms.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class_printer.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class_rndis.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_class_si.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_core.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_platform.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_platform_uc3.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_platform_xmega.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/lufa_toolchain.xml (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/StudioIntegration/makefile (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/Version.h (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/doxyfile (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/LUFA/makefile (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/README.txt (100%) rename {lufa-LUFA-140302 => Hoodloader/lufa-LUFA-140302}/makefile (100%) rename examples/{AdvancedHID/AdvancedHID.ino => AdvancedGamepad/AdvancedGamepad.ino} (53%) create mode 100644 examples/AdvancedKeyboard/AdvancedKeyboard.ino delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPI.c delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPI.h delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPITable.S delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.c delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.h delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.txt delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/Config/AppConfig.h delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/Config/LUFAConfig.h delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/Descriptors.c delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/Descriptors.h delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/LUFA CDC Bootloader.inf delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/asf.xml delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/doxyfile delete mode 100644 lufa-LUFA-140302/Bootloaders/CDC/makefile delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/BootloaderAPI.c delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/BootloaderAPI.h delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/BootloaderAPITable.S delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/BootloaderDFU.c delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/BootloaderDFU.h delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/BootloaderDFU.txt delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/Config/AppConfig.h delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/Config/LUFAConfig.h delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/Descriptors.c delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/Descriptors.h delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/asf.xml delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/doxyfile delete mode 100644 lufa-LUFA-140302/Bootloaders/DFU/makefile delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/BootloaderHID.c delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/BootloaderHID.h delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/BootloaderHID.txt delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/Config/LUFAConfig.h delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/Descriptors.c delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/Descriptors.h delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/HostLoaderApp/Makefile delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/HostLoaderApp/Makefile.bsd delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/HostLoaderApp/gpl3.txt delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/HostLoaderApp/hid_bootloader_cli.c delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/HostLoaderApp_Python/hid_bootloader_loader.py delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/asf.xml delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/doxyfile delete mode 100644 lufa-LUFA-140302/Bootloaders/HID/makefile delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/BootloaderAPI.c delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/BootloaderAPI.h delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/BootloaderAPITable.S delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/BootloaderMassStorage.c delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/BootloaderMassStorage.h delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/BootloaderMassStorage.txt delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/Config/AppConfig.h delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/Config/LUFAConfig.h delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/Descriptors.c delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/Descriptors.h delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/Lib/SCSI.c delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/Lib/SCSI.h delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/Lib/VirtualFAT.c delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/Lib/VirtualFAT.h delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/asf.xml delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/doxyfile delete mode 100644 lufa-LUFA-140302/Bootloaders/MassStorage/makefile delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/BootloaderAPI.c delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/BootloaderAPI.h delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/BootloaderAPITable.S delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/BootloaderPrinter.c delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/BootloaderPrinter.h delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/BootloaderPrinter.txt delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/Config/LUFAConfig.h delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/Descriptors.c delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/Descriptors.h delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/asf.xml delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/doxyfile delete mode 100644 lufa-LUFA-140302/Bootloaders/Printer/makefile delete mode 100644 lufa-LUFA-140302/Bootloaders/makefile delete mode 100644 lufa-LUFA-140302/BuildTests/BoardDriverTest/Board/Board.h delete mode 100644 lufa-LUFA-140302/BuildTests/BoardDriverTest/Board/Buttons.h delete mode 100644 lufa-LUFA-140302/BuildTests/BoardDriverTest/Board/Dataflash.h delete mode 100644 lufa-LUFA-140302/BuildTests/BoardDriverTest/Board/Joystick.h delete mode 100644 lufa-LUFA-140302/BuildTests/BoardDriverTest/Board/LEDs.h delete mode 100644 lufa-LUFA-140302/BuildTests/BoardDriverTest/BoardDeviceMap.cfg delete mode 100644 lufa-LUFA-140302/BuildTests/BoardDriverTest/Test.c delete mode 100644 lufa-LUFA-140302/BuildTests/BoardDriverTest/makefile delete mode 100644 lufa-LUFA-140302/BuildTests/BoardDriverTest/makefile.test delete mode 100644 lufa-LUFA-140302/BuildTests/BootloaderTest/BootloaderDeviceMap.cfg delete mode 100644 lufa-LUFA-140302/BuildTests/BootloaderTest/makefile delete mode 100644 lufa-LUFA-140302/BuildTests/ModuleTest/Dummy.S delete mode 100644 lufa-LUFA-140302/BuildTests/ModuleTest/Modules.h delete mode 100644 lufa-LUFA-140302/BuildTests/ModuleTest/Test_C.c delete mode 100644 lufa-LUFA-140302/BuildTests/ModuleTest/Test_CPP.cpp delete mode 100644 lufa-LUFA-140302/BuildTests/ModuleTest/makefile delete mode 100644 lufa-LUFA-140302/BuildTests/ModuleTest/makefile.test delete mode 100644 lufa-LUFA-140302/BuildTests/SingleUSBModeTest/Dummy.S delete mode 100644 lufa-LUFA-140302/BuildTests/SingleUSBModeTest/Test.c delete mode 100644 lufa-LUFA-140302/BuildTests/SingleUSBModeTest/makefile delete mode 100644 lufa-LUFA-140302/BuildTests/SingleUSBModeTest/makefile.test delete mode 100644 lufa-LUFA-140302/BuildTests/StaticAnalysisTest/makefile delete mode 100644 lufa-LUFA-140302/BuildTests/makefile delete mode 100644 lufa-LUFA-140302/Maintenance/lufa_functionlist_transform.xslt delete mode 100644 lufa-LUFA-140302/Maintenance/makefile diff --git a/HID.cpp b/1.0.x/HID.cpp similarity index 100% rename from HID.cpp rename to 1.0.x/HID.cpp diff --git a/HID.h b/1.0.x/HID.h similarity index 98% rename from HID.h rename to 1.0.x/HID.h index 0e173bb..52b7006 100644 --- a/HID.h +++ b/1.0.x/HID.h @@ -298,7 +298,7 @@ public: void press(uint8_t b); void release(uint8_t b); void releaseAll(void); - inline void buttons(uint32_t b){ _report.whole32[0]=b; } + inline void buttons(uint32_t b){ _report.buttons=b; } inline void xAxis(uint16_t a){ _report.xAxis=a; } inline void yAxis(uint16_t a){ _report.yAxis=a; } inline void zAxis(uint16_t a){ _report.zAxis=a; } @@ -327,6 +327,7 @@ public: void press(uint8_t b); void release(uint8_t b); void releaseAll(void); + inline void buttons(uint8_t b){ _report.buttons=b; } inline void xAxis(uint16_t a){ _report.xAxis=a; } inline void yAxis(uint16_t a){ _report.yAxis=a; } diff --git a/HID_Reports.h b/1.0.x/HID_Reports.h similarity index 99% rename from HID_Reports.h rename to 1.0.x/HID_Reports.h index 1080bc5..6b8a9fa 100644 --- a/HID_Reports.h +++ b/1.0.x/HID_Reports.h @@ -153,6 +153,7 @@ typedef union{ // 2 Buttons, 2 Axis uint8_t whole8[3]; uint16_t whole16[3/2]; + uint8_t buttons :2; struct{ uint16_t button1 :1; diff --git a/1.0.x/Readme.md b/1.0.x/Readme.md new file mode 100644 index 0000000..04ff5cd --- /dev/null +++ b/1.0.x/Readme.md @@ -0,0 +1,2 @@ +**Move and replace** these files to: +C:\Arduino\arduino-1.0.5-r2\hardware\arduino\cores\arduino \ No newline at end of file diff --git a/USBAPI.h b/1.0.x/USBAPI.h similarity index 100% rename from USBAPI.h rename to 1.0.x/USBAPI.h diff --git a/1.5.x/HID.cpp b/1.5.x/HID.cpp new file mode 100644 index 0000000..4979dbf --- /dev/null +++ b/1.5.x/HID.cpp @@ -0,0 +1,993 @@ +/* +Copyright (c) 2014 NicoHood +See the readme for credit to other people. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#include "HID.h" + +//================================================================================ +// HID Leonardo/Micro +//================================================================================ + +#if defined(USBCON) + +HID_ HID; + +HID_::HID_(void){ + // empty +} + +void HID_::begin(void){ + // empty +} + +void HID_::end(void){ + // empty +} + +void HID_::sendReport(uint8_t ReportID, const void* HIDReport, uint8_t length){ + HID_SendReport(ReportID, HIDReport, length); +} + + +#ifdef HID_ENABLED + +//================================================================================ +//================================================================================ + +// HID report descriptor + +#define LSB(_x) ((_x) & 0xFF) +#define MSB(_x) ((_x) >> 8) + +#define RAWHID_USAGE_PAGE 0xFFC0 +#define RAWHID_USAGE 0x0C00 +#define RAWHID_TX_SIZE 64 +#define RAWHID_RX_SIZE 64 + +extern const u8 _hidReportDescriptor[] PROGMEM; +const u8 _hidReportDescriptor[] = { + +#ifdef HID_MOUSE_ENABLE + // Mouse + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54 + 0x09, 0x02, // USAGE (Mouse) + 0xa1, 0x01, // COLLECTION (Application) + 0x09, 0x01, // USAGE (Pointer) + 0xa1, 0x00, // COLLECTION (Physical) + 0x85, HID_REPORTID_MouseReport,// REPORT_ID + // 5 buttons + 0x05, 0x09, // USAGE_PAGE (Button) + 0x19, 0x01, // USAGE_MINIMUM (Button 1) + 0x29, 0x05, // USAGE_MAXIMUM (Button 5) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x95, 0x05, // REPORT_COUNT (5) + 0x75, 0x01, // REPORT_SIZE (1) + 0x81, 0x02, // INPUT (Data,Var,Abs) + // reserved + 0x95, 0x01, // REPORT_COUNT (1) + 0x75, 0x03, // REPORT_SIZE (3) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + // x, y, wheel + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x09, 0x38, // USAGE (Wheel) + 0x15, 0x81, // LOGICAL_MINIMUM (-127) + 0x25, 0x7f, // LOGICAL_MAXIMUM (127) + 0x75, 0x08, // REPORT_SIZE (8) + 0x95, 0x03, // REPORT_COUNT (3) + 0x81, 0x06, // INPUT (Data,Var,Rel) + // end + 0xc0, // END_COLLECTION + 0xc0, // END_COLLECTION +#endif + +#ifdef HID_KEYBOARD_ENABLE + // Keyboard + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x06, // USAGE (Keyboard) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, HID_REPORTID_KeyboardReport, // REPORT_ID + 0x05, 0x07, // USAGE_PAGE (Keyboard) + // modifiers + 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) + 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x75, 0x01, // REPORT_SIZE (1) + 0x95, 0x08, // REPORT_COUNT (8) + 0x81, 0x02, // INPUT (Data,Var,Abs) + // reserved byte + 0x95, 0x01, // REPORT_COUNT (1) + 0x75, 0x08, // REPORT_SIZE (8) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + // Key[6] Array + 0x95, 0x06, // REPORT_COUNT (6) + 0x75, 0x08, // REPORT_SIZE (8) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x65, // LOGICAL_MAXIMUM (101) + 0x05, 0x07, // USAGE_PAGE (Keyboard) + 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) + 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) + 0x81, 0x00, // INPUT (Data,Ary,Abs) + // LEDs for num lock etc + //0x05, 0x08, /* USAGE_PAGE (LEDs) */ + //0x19, 0x01, /* USAGE_MINIMUM (Num Lock) */ + //0x29, 0x05, /* USAGE_MAXIMUM (Kana) */ + //0x95, 0x05, /* REPORT_COUNT (5) */ + //0x75, 0x01, /* REPORT_SIZE (1) */ + //0x91, 0x02, /* OUTPUT (Data,Var,Abs) */ + // Reserved 3 bits + //0x95, 0x01, /* REPORT_COUNT (1) */ + //0x75, 0x03, /* REPORT_SIZE (3) */ + //0x91, 0x03, /* OUTPUT (Cnst,Var,Abs) */ + // end + 0xc0, // END_COLLECTION +#endif + +#ifdef HID_RAWKEYBOARD_ENABLE + // RAW HID + 0x06, 0xC0, 0xFF, + 0x0A, 0x00, 0x0C, + + 0xA1, 0x01, // Collection 0x01 + 0x85, HID_REPORTID_RawKeyboardReport, // REPORT_ID + 0x75, 0x08, // report size = 8 bits + 0x15, 0x00, // logical minimum = 0 + 0x26, 0xFF, 0x00, // logical maximum = 255 + + 0x95, 64, // report count TX + 0x09, 0x01, // usage + 0x81, 0x02, // Input (array) + + 0x95, 64, // report count RX + 0x09, 0x02, // usage + 0x91, 0x02, // Output (array) + 0xC0, // end collection +#endif + +#ifdef HID_MEDIA_ENABLE + // Media + 0x05, 0x0C, // usage page (consumer device) + 0x09, 0x01, // usage -- consumer control + 0xA1, 0x01, // collection (application) + 0x85, HID_REPORTID_MediaReport, // report id + // 4 media Keys + 0x15, 0x00, //logical minimum + 0x26, 0xFF, 0xFF, //logical maximum (3ff) + 0x19, 0x00, // usage minimum (0) + 0x2A, 0xFF, 0xFF, //usage maximum (3ff) + 0x95, 0x04, //report count (4) + 0x75, 0x10, //report size (16) + 0x81, 0x00, //input + 0xC0, //end collection +#endif + +#ifdef HID_SYSTEM_ENABLE + // System + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x80, // USAGE (System Control) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, HID_REPORTID_SystemReport, // REPORT_ID + // 1 system key + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255) + 0x19, 0x00, // USAGE_MINIMUM (Undefined) + 0x29, 0xff, // USAGE_MAXIMUM (System Menu Down) + 0x95, 0x01, // REPORT_COUNT (1) + 0x75, 0x08, // REPORT_SIZE (8) + 0x81, 0x00, // INPUT (Data,Ary,Abs) + 0xc0, // END_COLLECTION +#endif + +#ifdef HID_GAMEPAD1_ENABLE + // Gamepad1 + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x05, // USAGE (Game Pad) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, HID_REPORTID_Gamepad1Report, // REPORT_ID + // 32 Buttons + 0x05, 0x09, // USAGE_PAGE (Button) + 0x19, 0x01, // USAGE_MINIMUM (Button 1) + 0x29, 0x20, // USAGE_MAXIMUM (Button 32) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x75, 0x01, // REPORT_SIZE (1) + 0x95, 0x20, // REPORT_COUNT (32) + 0x81, 0x02, // INPUT (Data,Var,Abs) + // 6 16bit Axis + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0xa1, 0x00, // COLLECTION (Physical) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x09, 0x32, // USAGE (Z) + 0x09, 0x33, // USAGE (Rx) + 0x09, 0x34, // USAGE (Ry) + 0x09, 0x35, // USAGE (Rz) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x27, 0xff, 0xff, 0x00, 0x00, // LOGICAL_MAXIMUM (65535) + 0x75, 0x10, // REPORT_SIZE (16) + 0x95, 0x06, // REPORT_COUNT (6) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0xc0, // END_COLLECTION + // 2 Hat Switches + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x39, // USAGE (Hat switch) + 0x09, 0x39, // USAGE (Hat switch) + 0x15, 0x01, // LOGICAL_MINIMUM (1) + 0x25, 0x08, // LOGICAL_MAXIMUM (8) + 0x95, 0x02, // REPORT_COUNT (2) + 0x75, 0x04, // REPORT_SIZE (4) + 0x81, 0x02, // INPUT (Data,Var,Abs) + // 8bit Throttle + Rudder + //0x05, 0x02, // USAGE_PAGE (Simulation Controls) + //0xa1, 0x00, // COLLECTION (Physical) + //0x15, 0x00, // LOGICAL_MINIMUM (0) + //0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255) + //0x09, 0xbb, // USAGE (Throttle) + //0x09, 0xba, // USAGE (Rudder) + //0x75, 0x08, // REPORT_SIZE (8) + //0x95, 0x02, // REPORT_COUNT (2) + //0x81, 0x02, // INPUT (Data,Var,Abs) + //0xc0, // END_COLLECTION + 0xc0, // END_COLLECTION +#endif + +#ifdef HID_GAMEPAD2_ENABLE + // Gamepad2 + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x05, // USAGE (Game Pad) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, HID_REPORTID_Gamepad2Report, // REPORT_ID + // 32 Buttons + 0x05, 0x09, // USAGE_PAGE (Button) + 0x19, 0x01, // USAGE_MINIMUM (Button 1) + 0x29, 0x20, // USAGE_MAXIMUM (Button 32) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x75, 0x01, // REPORT_SIZE (1) + 0x95, 0x20, // REPORT_COUNT (32) + 0x81, 0x02, // INPUT (Data,Var,Abs) + // 6 16bit Axis + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0xa1, 0x00, // COLLECTION (Physical) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x09, 0x32, // USAGE (Z) + 0x09, 0x33, // USAGE (Rx) + 0x09, 0x34, // USAGE (Ry) + 0x09, 0x35, // USAGE (Rz) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x27, 0xff, 0xff, 0x00, 0x00, // LOGICAL_MAXIMUM (65535) + 0x75, 0x10, // REPORT_SIZE (16) + 0x95, 0x06, // REPORT_COUNT (6) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0xc0, // END_COLLECTION + // 2 Hat Switches + 0x09, 0x39, // USAGE (Hat switch) + 0x09, 0x39, // USAGE (Hat switch) + 0x15, 0x01, // LOGICAL_MINIMUM (1) + 0x25, 0x08, // LOGICAL_MAXIMUM (8) + 0x95, 0x02, // REPORT_COUNT (2) + 0x75, 0x04, // REPORT_SIZE (4) + 0x81, 0x02, // INPUT (Data,Var,Abs) + // 8bit Throttle + Rudder + //0x05, 0x02, // USAGE_PAGE (Simulation Controls) + //0xa1, 0x00, // COLLECTION (Physical) + //0x15, 0x00, // LOGICAL_MINIMUM (0) + //0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255) + //0x09, 0xbb, // USAGE (Throttle) + //0x09, 0xba, // USAGE (Rudder) + //0x75, 0x08, // REPORT_SIZE (8) + //0x95, 0x02, // REPORT_COUNT (2) + //0x81, 0x02, // INPUT (Data,Var,Abs) + //0xc0, // END_COLLECTION + 0xc0, // END_COLLECTION +#endif + +#ifdef HID_JOYSTICK1_ENABLE + // Joystick1 + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x04, // USAGE (Joystick) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, HID_REPORTID_Joystick1Report, // REPORT_ID + 0xa1, 0x00, // COLLECTION (Physical) + 0x05, 0x09, // USAGE_PAGE (Button) + 0x19, 0x01, // USAGE_MINIMUM (Button 1) + 0x29, 0x02, // USAGE_MAXIMUM (Button 2) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x75, 0x01, // REPORT_SIZE (1) + 0x95, 0x02, // REPORT_COUNT (2) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x26, 0xff, 0x03, // LOGICAL_MAXIMUM (1023) + 0x75, 0x0a, // REPORT_SIZE (10) + 0x95, 0x02, // REPORT_COUNT (2) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x75, 0x02, // REPORT_SIZE (2) + 0x95, 0x01, // REPORT_COUNT (1) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + 0xc0, // END_COLLECTION + 0xc0, // END_COLLECTION +#endif + +#ifdef HID_JOYSTICK2_ENABLE + // Joystick2 + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x04, // USAGE (Joystick) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, HID_REPORTID_Joystick2Report, // REPORT_ID + 0xa1, 0x00, // COLLECTION (Physical) + 0x05, 0x09, // USAGE_PAGE (Button) + 0x19, 0x01, // USAGE_MINIMUM (Button 1) + 0x29, 0x02, // USAGE_MAXIMUM (Button 2) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x75, 0x01, // REPORT_SIZE (1) + 0x95, 0x02, // REPORT_COUNT (2) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x26, 0xff, 0x03, // LOGICAL_MAXIMUM (1023) + 0x75, 0x0a, // REPORT_SIZE (10) + 0x95, 0x02, // REPORT_COUNT (2) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x75, 0x02, // REPORT_SIZE (2) + 0x95, 0x01, // REPORT_COUNT (1) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + 0xc0, // END_COLLECTION + 0xc0 // END_COLLECTION +#endif +}; + +extern const HIDDescriptor _hidInterface PROGMEM; +const HIDDescriptor _hidInterface = +{ + D_INTERFACE(HID_INTERFACE,1,3,0,0), + D_HIDREPORT(sizeof(_hidReportDescriptor)), + D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) +}; + +//================================================================================ +//================================================================================ +// Driver + +u8 _hid_protocol = 1; +u8 _hid_idle = 1; + +#define WEAK __attribute__ ((weak)) + +int WEAK HID_GetInterface(u8* interfaceNum) +{ + interfaceNum[0] += 1; // uses 1 + return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface)); +} + +int WEAK HID_GetDescriptor(int /* i */) +{ + return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor)); +} + +void WEAK HID_SendReport(u8 id, const void* data, int len) +{ + USB_Send(HID_TX, &id, 1); + USB_Send(HID_TX | TRANSFER_RELEASE,data,len); +} + +bool WEAK HID_Setup(Setup& setup) +{ + u8 r = setup.bRequest; + u8 requestType = setup.bmRequestType; + if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) + { + if (HID_GET_REPORT == r) + { + //HID_GetReport(); + return true; + } + if (HID_GET_PROTOCOL == r) + { + //Send8(_hid_protocol); // TODO + return true; + } + } + + if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) + { + if (HID_SET_PROTOCOL == r) + { + _hid_protocol = setup.wValueL; + return true; + } + + if (HID_SET_IDLE == r) + { + _hid_idle = setup.wValueL; + return true; + } + } + return false; +} + +#endif + +//================================================================================ +// HID Uno/Mega +//================================================================================ + +#else /* if defined(USBCON) */ + +HID_ HID; + +HID_::HID_(void){ + // empty +} + +void HID_::begin(void){ + Serial.begin(115200); +} + +void HID_::end(void){ + Serial.end(); +} + +void HID_::sendReport(uint8_t ReportID, const void* HIDReport, uint8_t length){ + // write the Report via Protocol and checksum. 16bit for each sending + // send control address + NHPwriteChecksum(NHP_ADDRESS_CONTROL, (NHP_USAGE_ARDUINOHID<<8)|ReportID); + const uint8_t* report = (const uint8_t*)HIDReport; + for(int i = 0; i2){ + uint8_t nextvalue=(data>>(7*(blocks-3))); + if(nextvalue>NHP_MASK_DATA_3BIT){ + // special case for the MSB + if(blocks==7) { + writebuffer[0] = nextvalue; + blocks--; + } + break; + } + else{ + // write the possible first 3 bits and check again after + writebuffer[0] = nextvalue; + blocks--; + } + } + + // write the rest of the data bits + uint8_t datablocks=blocks-2; + while(datablocks>0){ + writebuffer[datablocks] = data & NHP_MASK_DATA_7BIT; + data>>=7; + datablocks--; + } + + // write lead + length mask + writebuffer[0] |= NHP_MASK_LEAD | (blocks <<3); + + // write end mask + writebuffer[blocks-1] = NHP_MASK_END | ((address-1) & NHP_MASK_ADDRESS); + + // write the buffer + Serial.write(writebuffer, blocks); +} + +//================================================================================ +// Mouse +//================================================================================ + +Mouse_ Mouse; + +Mouse_::Mouse_(void){ + // empty +} + +void Mouse_::begin(void){ + memset(&_report, 0, sizeof(_report)); + HID.sendReport(HID_REPORTID_MouseReport, &_report, sizeof(_report)); +} + +void Mouse_::end(void){ + begin(); +} + +void Mouse_::click(uint8_t b){ + _report.buttons = b; + move(0,0,0); + _report.buttons = 0; + move(0,0,0); +} + +void Mouse_::move(signed char x, signed char y, signed char wheel){ + _report.xAxis=x; + _report.yAxis=y; + _report.wheel=wheel; + HID.sendReport(HID_REPORTID_MouseReport, &_report, sizeof(HID_MouseReport_Data_t)); +} + +void Mouse_::buttons(uint8_t b){ + if (b != _report.buttons) { + _report.buttons = b; + move(0,0,0); + } +} + +void Mouse_::press(uint8_t b){ + buttons(_report.buttons | b); +} + +void Mouse_::release(uint8_t b){ + buttons(_report.buttons & ~b); +} + +void Mouse_::releaseAll(void){ + begin(); +} + +bool Mouse_::isPressed(uint8_t b){ + if ((b & _report.buttons) > 0) + return true; + return false; +} + +//================================================================================ +// Keyboard +//================================================================================ + +Keyboard_ Keyboard; + +Keyboard_::Keyboard_(void){ + // empty +} + +void Keyboard_::begin(void){ + memset(&_report, 0, sizeof(_report)); + HID.sendReport(HID_REPORTID_KeyboardReport, &_report, sizeof(_report)); +} + +void Keyboard_::end(void){ + begin(); +} + +extern + const uint8_t _asciimap[128] PROGMEM; + +#define SHIFT 0x80 +const uint8_t _asciimap[128] = +{ + 0x00, // NUL + 0x00, // SOH + 0x00, // STX + 0x00, // ETX + 0x00, // EOT + 0x00, // ENQ + 0x00, // ACK + 0x00, // BEL + 0x2a, // BS Backspace + 0x2b, // TAB Tab + 0x28, // LF Enter + 0x00, // VT + 0x00, // FF + 0x00, // CR + 0x00, // SO + 0x00, // SI + 0x00, // DEL + 0x00, // DC1 + 0x00, // DC2 + 0x00, // DC3 + 0x00, // DC4 + 0x00, // NAK + 0x00, // SYN + 0x00, // ETB + 0x00, // CAN + 0x00, // EM + 0x00, // SUB + 0x00, // ESC + 0x00, // FS + 0x00, // GS + 0x00, // RS + 0x00, // US + + 0x2c, // ' ' + 0x1e|SHIFT, // ! + 0x34|SHIFT, // " + 0x20|SHIFT, // # + 0x21|SHIFT, // $ + 0x22|SHIFT, // % + 0x24|SHIFT, // & + 0x34, // ' + 0x26|SHIFT, // ( + 0x27|SHIFT, // ) + 0x25|SHIFT, // * + 0x2e|SHIFT, // + + 0x36, // , + 0x2d, // - + 0x37, // . + 0x38, // / + 0x27, // 0 + 0x1e, // 1 + 0x1f, // 2 + 0x20, // 3 + 0x21, // 4 + 0x22, // 5 + 0x23, // 6 + 0x24, // 7 + 0x25, // 8 + 0x26, // 9 + 0x33|SHIFT, // : + 0x33, // ; + 0x36|SHIFT, // < + 0x2e, // = + 0x37|SHIFT, // > + 0x38|SHIFT, // ? + 0x1f|SHIFT, // @ + 0x04|SHIFT, // A + 0x05|SHIFT, // B + 0x06|SHIFT, // C + 0x07|SHIFT, // D + 0x08|SHIFT, // E + 0x09|SHIFT, // F + 0x0a|SHIFT, // G + 0x0b|SHIFT, // H + 0x0c|SHIFT, // I + 0x0d|SHIFT, // J + 0x0e|SHIFT, // K + 0x0f|SHIFT, // L + 0x10|SHIFT, // M + 0x11|SHIFT, // N + 0x12|SHIFT, // O + 0x13|SHIFT, // P + 0x14|SHIFT, // Q + 0x15|SHIFT, // R + 0x16|SHIFT, // S + 0x17|SHIFT, // T + 0x18|SHIFT, // U + 0x19|SHIFT, // V + 0x1a|SHIFT, // W + 0x1b|SHIFT, // X + 0x1c|SHIFT, // Y + 0x1d|SHIFT, // Z + 0x2f, // [ + 0x31, // bslash + 0x30, // ] + 0x23|SHIFT, // ^ + 0x2d|SHIFT, // _ + 0x35, // ` + 0x04, // a + 0x05, // b + 0x06, // c + 0x07, // d + 0x08, // e + 0x09, // f + 0x0a, // g + 0x0b, // h + 0x0c, // i + 0x0d, // j + 0x0e, // k + 0x0f, // l + 0x10, // m + 0x11, // n + 0x12, // o + 0x13, // p + 0x14, // q + 0x15, // r + 0x16, // s + 0x17, // t + 0x18, // u + 0x19, // v + 0x1a, // w + 0x1b, // x + 0x1c, // y + 0x1d, // z + 0x2f|SHIFT, // + 0x31|SHIFT, // | + 0x30|SHIFT, // } + 0x35|SHIFT, // ~ + 0 // DEL +}; + +// removed <-- +//uint8_t USBPutChar(uint8_t c); + +size_t Keyboard_::write(uint8_t c) +{ + uint8_t p = press(c); // Keydown + //uint8_t r = + release(c); // Keyup + return (p); // just return the result of press() since release() almost always returns 1 +} + +// press() adds the specified key (printing, non-printing, or modifier) +// to the persistent key report and sends the report. Because of the way +// USB HID works, the host acts like the key remains pressed until we +// call release(), releaseAll(), or otherwise clear the report and resend. +size_t Keyboard_::press(uint8_t k) +{ + uint8_t i; + if (k >= 136) { // it's a non-printing key (not a modifier) + k = k - 136; + } else if (k >= 128) { // it's a modifier key + _report.modifiers |= (1<<(k-128)); + k = 0; + } else { // it's a printing key + k = pgm_read_byte(_asciimap + k); + if (!k) { + setWriteError(); + return 0; + } + if (k & 0x80) { // it's a capital letter or other character reached with shift + _report.modifiers |= 0x02; // the left shift modifier + k &= 0x7F; + } + } + + // Add k to the key report only if it's not already present + // and if there is an empty slot. + if (_report.keys[0] != k && _report.keys[1] != k && + _report.keys[2] != k && _report.keys[3] != k && + _report.keys[4] != k && _report.keys[5] != k) { + + for (i=0; i<6; i++) { + if (_report.keys[i] == 0x00) { + _report.keys[i] = k; + break; + } + } + if (i == 6) { + setWriteError(); + return 0; + } + } + HID.sendReport(HID_REPORTID_KeyboardReport, &_report, sizeof(_report)); + return 1; +} + +// release() takes the specified key out of the persistent key report and +// sends the report. This tells the OS the key is no longer pressed and that +// it shouldn't be repeated any more. +size_t Keyboard_::release(uint8_t k) +{ + uint8_t i; + if (k >= 136) { // it's a non-printing key (not a modifier) + k = k - 136; + } else if (k >= 128) { // it's a modifier key + _report.modifiers &= ~(1<<(k-128)); + k = 0; + } else { // it's a printing key + k = pgm_read_byte(_asciimap + k); + if (!k) { + return 0; + } + if (k & 0x80) { // it's a capital letter or other character reached with shift + _report.modifiers &= ~(0x02); // the left shift modifier + k &= 0x7F; + } + } + + // Test the key report to see if k is present. Clear it if it exists. + // Check all positions in case the key is present more than once (which it shouldn't be) + for (i=0; i<6; i++) { + if (0 != k && _report.keys[i] == k) { + _report.keys[i] = 0x00; + } + } + + HID.sendReport(HID_REPORTID_KeyboardReport, &_report, sizeof(_report)); + return 1; +} + +void Keyboard_::releaseAll(void){ + begin(); +} + +//================================================================================ +// Media +//================================================================================ + +Media_ Media; + +Media_::Media_(void){ + // empty +} + +void Media_::begin(void){ + memset(&_report, 0, sizeof(_report)); + HID.sendReport(HID_REPORTID_MediaReport, &_report, sizeof(_report)); +} + +void Media_::end(void){ + begin(); +} + +void Media_::write(uint16_t m){ + press(m); + release(m); +} + +void Media_::press(uint16_t m){ + // search for a free spot + for (int i=0; i +#include "HID_Reports.h" + +#ifdef USBCON +#include "Platform.h" +#include "USBAPI.h" +#include "USBDesc.h" + +//================================================================================ +//Settings +//================================================================================ + +// deactive unnecessary stuff for Leonardo/Micro +// reports needs to be <=255 bytes for leonardo/micro! +#define HID_MOUSE_ENABLE 54 +#define HID_KEYBOARD_ENABLE 65-18 //18 for missing led out report = 47 +//#define HID_RAWKEYBOARD_ENABLE 30 +#define HID_MEDIA_ENABLE 25 +#define HID_SYSTEM_ENABLE 24 +#define HID_GAMEPAD1_ENABLE 71 +//#define HID_GAMEPAD2_ENABLE 71 +//#define HID_JOYSTICK1_ENABLE 51 +//#define HID_JOYSTICK2_ENABLE 51 +//#define HID_MIDI_ENABLE + +#endif + +//================================================================================ +// HID +//================================================================================ + +//NHP Definitions + +// Start Mask +#define NHP_MASK_START 0xC0 //B11|000000 the two MSB bits +#define NHP_MASK_LEAD 0xC0 //B11|000000 +#define NHP_MASK_DATA 0x00 //B0|0000000 only the first MSB is important +#define NHP_MASK_END 0x80 //B10|000000 + +// Content Mask +#define NHP_MASK_LENGTH 0x38 //B00|111|000 +#define NHP_MASK_COMMAND 0x0F //B0000|1111 +#define NHP_MASK_DATA_7BIT 0x7F //B0|1111111 +#define NHP_MASK_DATA_4BIT 0x0F //B0000|1111 +#define NHP_MASK_DATA_3BIT 0x07 //B00000|111 +#define NHP_MASK_ADDRESS 0x3F //B00|111111 + +// Reserved Addresses +#define NHP_ADDRESS_CONTROL 0x01 + +// Reserved Usages +#define NHP_USAGE_ARDUINOHID 0x01 + +class HID_{ +public: + HID_(void); + void begin(void); + void end(void); + + // everything public for your own modifications + void sendReport(uint8_t ReportID, const void* HIDReport, uint8_t length); +private: + // simple copy/modification of the NicoHoodProtocol writechecksum function + void NHPwriteChecksum(uint8_t address, uint16_t indata); +}; +extern HID_ HID; + +//================================================================================ +// Mouse +//================================================================================ + +#define MOUSE_LEFT 0x01 +#define MOUSE_RIGHT 0x02 +#define MOUSE_MIDDLE 0x04 +#define MOUSE_PREV 0x08 +#define MOUSE_NEXT 0x10 +#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE | MOUSE_PREV | MOUSE_NEXT) + +class Mouse_{ +public: + Mouse_(void); + void begin(void); + void end(void); + void click(uint8_t b = MOUSE_LEFT); + void move(signed char x, signed char y, signed char wheel = 0); + void press(uint8_t b = MOUSE_LEFT); // press LEFT by default + void release(uint8_t b = MOUSE_LEFT); // release LEFT by default + void releaseAll(void); + bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default +private: + void buttons(uint8_t b); + HID_MouseReport_Data_t _report; +}; +extern Mouse_ Mouse; + +//================================================================================ +// Keyboard +//================================================================================ + +#define KEY_LEFT_CTRL 0x80 +#define KEY_LEFT_SHIFT 0x81 +#define KEY_LEFT_ALT 0x82 +#define KEY_LEFT_GUI 0x83 +#define KEY_RIGHT_CTRL 0x84 +#define KEY_RIGHT_SHIFT 0x85 +#define KEY_RIGHT_ALT 0x86 +#define KEY_RIGHT_GUI 0x87 + +#define KEY_UP_ARROW 0xDA +#define KEY_DOWN_ARROW 0xD9 +#define KEY_LEFT_ARROW 0xD8 +#define KEY_RIGHT_ARROW 0xD7 +#define KEY_BACKSPACE 0xB2 +#define KEY_TAB 0xB3 +#define KEY_RETURN 0xB0 +#define KEY_ESC 0xB1 +#define KEY_INSERT 0xD1 +#define KEY_DELETE 0xD4 +#define KEY_PAGE_UP 0xD3 +#define KEY_PAGE_DOWN 0xD6 +#define KEY_HOME 0xD2 +#define KEY_END 0xD5 +#define KEY_CAPS_LOCK 0xC1 +#define KEY_F1 0xC2 +#define KEY_F2 0xC3 +#define KEY_F3 0xC4 +#define KEY_F4 0xC5 +#define KEY_F5 0xC6 +#define KEY_F6 0xC7 +#define KEY_F7 0xC8 +#define KEY_F8 0xC9 +#define KEY_F9 0xCA +#define KEY_F10 0xCB +#define KEY_F11 0xCC +#define KEY_F12 0xCD + +//Keyboard fixed/added missing Keys +#define KEY_PRINT 0xCE +#define KEY_SCROLL_LOCK 0xCF +#define KEY_PAUSE 0xD0 + +//Raw Keyboard definitions +#define RAW_KEYBOARD_LEFT_CTRL B00000001 +#define RAW_KEYBOARD_LEFT_SHIFT B00000010 +#define RAW_KEYBOARD_LEFT_ALT B00000100 +#define RAW_KEYBOARD_LEFT_GUI B00001000 +#define RAW_KEYBOARD_RIGHT_CTRL B00010000 +#define RAW_KEYBOARD_RIGHT_SHIFT B00100000 +#define RAW_KEYBOARD_RIGHT_ALT B01000000 +#define RAW_KEYBOARD_RIGHT_GUI B10000000 + +#define RAW_KEYBOARD_UP_ARROW 0x52 +#define RAW_KEYBOARD_DOWN_ARROW 0x51 +#define RAW_KEYBOARD_LEFT_ARROW 0x50 +#define RAW_KEYBOARD_RIGHT_ARROW 0x4F +#define RAW_KEYBOARD_SPACEBAR 0x2C +#define RAW_KEYBOARD_BACKSPACE 0x2A +#define RAW_KEYBOARD_TAB 0x2B +#define RAW_KEYBOARD_RETURN 0x28 +#define RAW_KEYBOARD_ESC 0x29 +#define RAW_KEYBOARD_INSERT 0x49 +#define RAW_KEYBOARD_DELETE 0x4C +#define RAW_KEYBOARD_PAGE_UP 0x4B +#define RAW_KEYBOARD_PAGE_DOWN 0x4E +#define RAW_KEYBOARD_HOME 0x4A +#define RAW_KEYBOARD_END 0x4D +#define RAW_KEYBOARD_CAPS_LOCK 0x39 +#define RAW_KEYBOARD_F1 0x3A +#define RAW_KEYBOARD_F2 0x3B +#define RAW_KEYBOARD_F3 0x3C +#define RAW_KEYBOARD_F4 0x3D +#define RAW_KEYBOARD_F5 0x3E +#define RAW_KEYBOARD_F6 0x3F +#define RAW_KEYBOARD_F7 0x40 +#define RAW_KEYBOARD_F8 0x41 +#define RAW_KEYBOARD_F9 0x42 +#define RAW_KEYBOARD_F10 0x43 +#define RAW_KEYBOARD_F11 0x44 +#define RAW_KEYBOARD_F12 0x45 +#define RAW_KEYBOARD_PRINT 0x46 +#define RAW_KEYBOARD_SCROLL_LOCK 0x47 +#define RAW_KEYBOARD_PAUSE 0x48 + +//Keyboard fixed/added missing Keys +#define KEY_PRINT 0xCE +#define KEY_SCROLL_LOCK 0xCF +#define KEY_PAUSE 0xD0 + +class Keyboard_ : public Print{ +public: + Keyboard_(void); + void begin(void); + void end(void); + virtual size_t write(uint8_t k); + virtual size_t press(uint8_t k); + virtual size_t release(uint8_t k); + virtual void releaseAll(void); +private: + HID_KeyboardReport_Data_t _report; +}; +extern Keyboard_ Keyboard; + +//================================================================================ +// Media +//================================================================================ + +#define MEDIA_FAST_FORWARD 0xB3 +#define MEDIA_REWIND 0xB4 +#define MEDIA_NEXT 0xB5 +#define MEDIA_PREVIOUS 0xB6 +#define MEDIA_STOP 0xB7 +#define MEDIA_PLAY_PAUSE 0xCD + +#define MEDIA_VOLUME_MUTE 0xE2 +#define MEDIA_VOLUME_UP 0xE9 +#define MEDIA_VOLUME_DOWN 0xEA + +#define MEDIA_EMAIL_READER 0x18A +#define MEDIA_CALCULATOR 0x192 +#define MEDIA_EXPLORER 0x194 + +#define MEDIA_BROWSER_HOME 0x223 +#define MEDIA_BROWSER_BACK 0x224 +#define MEDIA_BROWSER_FORWARD 0x225 +#define MEDIA_BROWSER_REFRESH 0x227 +#define MEDIA_BROWSER_BOOKMARKS 0x22A + +class Media_{ +public: + Media_(void); + void begin(void); + void end(void); + void write(uint16_t m); + void press(uint16_t m); + void release(uint16_t m); + void releaseAll(void); +private: + HID_MediaReport_Data_t _report; +}; +extern Media_ Media; + +//================================================================================ +// System +//================================================================================ + +#define SYSTEM_POWER_DOWN 0x81 +#define SYSTEM_SLEEP 0x82 +#define SYSTEM_WAKE_UP 0x83 + +class System_{ +public: + System_(void); + void begin(void); + void end(void); + void write(uint8_t s); + void press(uint8_t s); + void release(void); + void releaseAll(void); +}; +extern System_ System; + +//================================================================================ +// Gamepad +//================================================================================ + +class Gamepad_{ +public: + Gamepad_(uint8_t reportID); + void begin(void); + void end(void); + void write(void); + void press(uint8_t b); + void release(uint8_t b); + void releaseAll(void); + inline void buttons(uint32_t b){ _report.buttons=b; } + inline void xAxis(uint16_t a){ _report.xAxis=a; } + inline void yAxis(uint16_t a){ _report.yAxis=a; } + inline void zAxis(uint16_t a){ _report.zAxis=a; } + inline void rxAxis(uint16_t a){ _report.rxAxis=a; } + inline void ryAxis(uint16_t a){ _report.ryAxis=a; } + inline void rzAxis(uint16_t a){ _report.rzAxis=a; } + inline void dPad1(uint8_t d){ _report.dPad1=d; } + inline void dPad2(uint8_t d){ _report.dPad2=d; } +private: + HID_GamepadReport_Data_t _report; + uint8_t _reportID; +}; +extern Gamepad_ Gamepad1; +extern Gamepad_ Gamepad2; + +//================================================================================ +// Joystick +//================================================================================ + +class Joystick_{ +public: + Joystick_(uint8_t reportID); + void begin(void); + void end(void); + void write(void); + void press(uint8_t b); + void release(uint8_t b); + void releaseAll(void); + inline void buttons(uint8_t b){ _report.buttons=b; } + inline void xAxis(uint16_t a){ _report.xAxis=a; } + inline void yAxis(uint16_t a){ _report.yAxis=a; } + +private: + HID_JoystickReport_Data_t _report; + uint8_t _reportID; +}; +extern Joystick_ Joystick1; +extern Joystick_ Joystick2; + +#endif + diff --git a/1.5.x/HID_Reports.h b/1.5.x/HID_Reports.h new file mode 100644 index 0000000..6b8a9fa --- /dev/null +++ b/1.5.x/HID_Reports.h @@ -0,0 +1,192 @@ +/* +Copyright (c) 2014 NicoHood +See the readme for credit to other people. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#ifndef HID_REPORTS_H +#define HID_REPORTS_H + +//================================================================================ +//Definitions +//================================================================================ + +// empty + +//================================================================================ +//Report Typedefinitions +//================================================================================ + +typedef union{ + // mouse report: 5 buttons, position, wheel + uint8_t whole8[4]; + uint16_t whole16[4/2]; + uint32_t whole32[4/4]; + + struct{ + uint8_t buttons:5; + uint8_t reserved:3; + int8_t xAxis; + int8_t yAxis; + int8_t wheel; + }; +} HID_MouseReport_Data_t; + + +typedef union{ + // Low level key report: up to 6 keys and shift, ctrl etc at once + uint8_t whole8[8]; + uint16_t whole16[8/2]; + uint32_t whole32[8/4]; + + struct{ + uint8_t modifiers; + uint8_t reserved; + uint8_t keys[6]; + }; +} HID_KeyboardReport_Data_t; + + +typedef union{ + // every usable media key possible. Only one at the same time. + uint8_t whole8[8]; + uint16_t whole16[8/2]; + uint32_t whole32[8/4]; + + struct{ + uint16_t key1; + uint16_t key2; + uint16_t key3; + uint16_t key4; + }; +} HID_MediaReport_Data_t; + + +typedef union{ + // every usable system control key possible. Only one at the same time. + uint8_t whole8[1]; + uint8_t key; +} HID_SystemReport_Data_t; + + +typedef union { + // 32 Buttons, 6 Axis, 2 D-Pads + uint8_t whole8[17]; + uint16_t whole16[17/2]; + uint32_t whole32[17/4]; + uint32_t buttons; + + struct{ + uint8_t button1 :1; + uint8_t button2 :1; + uint8_t button3 :1; + uint8_t button4 :1; + uint8_t button5 :1; + uint8_t button6 :1; + uint8_t button7 :1; + uint8_t button8 :1; + + uint8_t button9 :1; + uint8_t button10 :1; + uint8_t button11 :1; + uint8_t button12 :1; + uint8_t button13 :1; + uint8_t button14 :1; + uint8_t button15 :1; + uint8_t button16 :1; + + uint8_t button17 :1; + uint8_t button18 :1; + uint8_t button19 :1; + uint8_t button20 :1; + uint8_t button21 :1; + uint8_t button22 :1; + uint8_t button23 :1; + uint8_t button24 :1; + + uint8_t button25 :1; + uint8_t button26 :1; + uint8_t button27 :1; + uint8_t button28 :1; + uint8_t button29 :1; + uint8_t button30 :1; + uint8_t button31 :1; + uint8_t button32 :1; + + uint16_t xAxis; + uint16_t yAxis; + uint16_t zAxis; + + uint16_t rxAxis; + uint16_t ryAxis; + uint16_t rzAxis; + + uint8_t dPad1: 4; + uint8_t dPad2: 4; + + // deactivated because windows only supports 7 axis. should be enough. + //uint8_t throttle; + //uint8_t rudder; + + }; +} HID_GamepadReport_Data_t; + + +typedef union{ + // 2 Buttons, 2 Axis + uint8_t whole8[3]; + uint16_t whole16[3/2]; + uint8_t buttons :2; + + struct{ + uint16_t button1 :1; + uint16_t button2 :1; + uint16_t xAxis :10; + uint16_t yAxis :10; + uint16_t reserved :2; + }; +} HID_JoystickReport_Data_t; + + +typedef union{ + HID_MouseReport_Data_t Mouse; + HID_KeyboardReport_Data_t Keyboard; + HID_MediaReport_Data_t Media; + HID_GamepadReport_Data_t Gamepad1; + HID_GamepadReport_Data_t Gamepad2; + HID_JoystickReport_Data_t Joystick1; + HID_JoystickReport_Data_t Joystick2; +} HID_HIDReport_Data_t; + + +/** Enum for the HID report IDs used in the device. */ +typedef enum{ + HID_REPORTID_MouseReport = 0x01, /**< Report ID for the Mouse report within the device. */ + HID_REPORTID_KeyboardReport = 0x02, /**< Report ID for the Keyboard report within the device. */ + HID_REPORTID_RawKeyboardReport=0x03, /**< Report ID for the Raw Keyboard report within the device. */ + HID_REPORTID_MediaReport = 0x04, /**< Report ID for the Media report within the device. */ + HID_REPORTID_SystemReport = 0x05, /**< Report ID for the Power report within the device. */ + HID_REPORTID_Gamepad1Report = 0x06, /**< Report ID for the Gamepad1 report within the device. */ + HID_REPORTID_Gamepad2Report = 0x07, /**< Report ID for the Gamepad2 report within the device. */ + HID_REPORTID_Joystick1Report = 0x08, /**< Report ID for the Joystick1 report within the device. */ + HID_REPORTID_Joystick2Report = 0x09, /**< Report ID for the Joystick2 report within the device. */ +} HID_Report_IDs; + +#endif \ No newline at end of file diff --git a/1.5.x/Readme.md b/1.5.x/Readme.md new file mode 100644 index 0000000..7dc9d53 --- /dev/null +++ b/1.5.x/Readme.md @@ -0,0 +1,2 @@ +**Move and replace** these files to: +C:\Arduino\arduino-1.5.6-r2\hardware\arduino\avr\cores\arduino \ No newline at end of file diff --git a/1.5.x/USBAPI.h b/1.5.x/USBAPI.h new file mode 100644 index 0000000..befd4a9 --- /dev/null +++ b/1.5.x/USBAPI.h @@ -0,0 +1,141 @@ +/* +Copyright (c) 2014 NicoHood +See the readme for credit to other people. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#ifndef __USBAPI__ +#define __USBAPI__ + +#if defined(USBCON) + +//================================================================================ +//================================================================================ +// USB + +class USBDevice_ +{ +public: + USBDevice_(); + bool configured(); + + void attach(); + void detach(); // Serial port goes down too... + void poll(); +}; +extern USBDevice_ USBDevice; + +//================================================================================ +//================================================================================ +// Serial over CDC (Serial1 is the physical port) + +struct ring_buffer; + +#if (RAMEND < 1000) +#define SERIAL_BUFFER_SIZE 16 +#else +#define SERIAL_BUFFER_SIZE 64 +#endif + +class Serial_ : public Stream +{ +public: + void begin(unsigned long); + void begin(unsigned long, uint8_t); + void end(void); + + virtual int available(void); + virtual void accept(void); + virtual int peek(void); + virtual int read(void); + virtual void flush(void); + virtual size_t write(uint8_t); + using Print::write; // pull in write(str) and write(buf, size) from Print + operator bool(); + + volatile uint8_t _rx_buffer_head; + volatile uint8_t _rx_buffer_tail; + unsigned char _rx_buffer[SERIAL_BUFFER_SIZE]; +}; +extern Serial_ Serial; + +#define HAVE_CDCSERIAL + +//================================================================================ +//================================================================================ +// Low level API + +typedef struct +{ + uint8_t bmRequestType; + uint8_t bRequest; + uint8_t wValueL; + uint8_t wValueH; + uint16_t wIndex; + uint16_t wLength; +} Setup; + +//================================================================================ +//================================================================================ +// HID 'Driver' + +#include "HID.h" + +int HID_GetInterface(uint8_t* interfaceNum); +int HID_GetDescriptor(int i); +bool HID_Setup(Setup& setup); +void HID_SendReport(uint8_t id, const void* data, int len); + +//================================================================================ +//================================================================================ +// MSC 'Driver' + +int MSC_GetInterface(uint8_t* interfaceNum); +int MSC_GetDescriptor(int i); +bool MSC_Setup(Setup& setup); +bool MSC_Data(uint8_t rx,uint8_t tx); + +//================================================================================ +//================================================================================ +// CSC 'Driver' + +int CDC_GetInterface(uint8_t* interfaceNum); +int CDC_GetDescriptor(int i); +bool CDC_Setup(Setup& setup); + +//================================================================================ +//================================================================================ + +#define TRANSFER_PGM 0x80 +#define TRANSFER_RELEASE 0x40 +#define TRANSFER_ZERO 0x20 + +int USB_SendControl(uint8_t flags, const void* d, int len); +int USB_RecvControl(void* d, int len); + +uint8_t USB_Available(uint8_t ep); +int USB_Send(uint8_t ep, const void* data, int len); // blocking +int USB_Recv(uint8_t ep, void* data, int len); // non-blocking +int USB_Recv(uint8_t ep); // non-blocking +void USB_Flush(uint8_t ep); + +#endif + +#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/Firmwares/Hoodloader.hex b/Firmwares/Hoodloader.hex index 732e444..4999fe3 100644 --- a/Firmwares/Hoodloader.hex +++ b/Firmwares/Hoodloader.hex @@ -1,9 +1,9 @@ :1000000073C100008DC100008BC1000089C10000D8 :1000100087C1000085C1000083C1000081C10000CC -:100020007FC100007DC100007BC100000C948508E9 -:100030000C942E0975C1000073C1000071C100004D +:100020007FC100007DC100007BC100000C948408EA +:100030000C942D0975C1000073C1000071C100004E :100040006FC100006DC100006BC1000069C10000FC -:1000500067C1000065C1000063C10000C4C30000A7 +:1000500067C1000065C1000063C10000C3C30000A8 :100060005FC100005DC100005BC1000059C100001C :1000700057C1000030034100720064007500690040 :100080006E006F00200048006F006F0064006C007D @@ -16,7 +16,7 @@ :1000F00000020A0000000705040240000107058312 :10010000024000010904020001030000000921115E :1001100001000122B801070581032000011201102E -:1001200001EF020108EB03684E11000102DC01053A +:1001200001EF020108EB03684E12000102DC010539 :10013000010902A1010901A100850105091901298F :10014000051500250195057501810295017503814D :100150000305010930093109381581257F75089596 @@ -45,430 +45,430 @@ :1002C0001901290215002501750195028102050118 :1002D00009300931150026FF03750A950281027560 :1002E0000295018103C0C00011241FBECFEFD2E0F0 -:1002F000DEBFCDBF11E0A0E0B1E0ECE5FDE102C062 +:1002F000DEBFCDBF11E0A0E0B1E0EAE5FDE102C064 :1003000005900D92AE32B107D9F712E0AEE2B1E03E -:1003100001C01D92A738B107E1F70CD10C94AC0EC7 +:1003100001C01D92AF34B107E1F70DD10C94AB0EC3 :100320006FCECF93DF9384B7877F84BF28E10FB66A :10033000F89420936000109260000FBE80E190E07E :100340009093CD008093CC00CAECD0E096E09883E7 :10035000A8ECB0E082E08C93E9ECF0E02083539AC3 :100360005A9A5B9A10821C92188298838C9388E91F :1003700080835B988AB180638AB98BB180638BB9C3 -:10038000B5D684E085BD5F9A579A22982A9ADF9164 -:10039000CF9108950F931F93CF93DF93C9E6D2E0D7 +:10038000B4D684E085BD5F9A579A22982A9ADF9165 +:10039000CF9108950F931F93CF93DF93C1E3D2E0E2 :1003A000082F10E00AC08091200180FF05C06881FD -:1003B00080E191E00E94140B2196CE018956924073 +:1003B00080E191E00E94130B2196CE01815392407F :1003C0008017910784F3DF91CF911F910F910895CA -:1003D000CF93DF9380913D02882319F010923B0266 -:1003E0001DC060913B0270E0716081E01CD4C2E6E8 +:1003D000CF93DF9380910502882319F010920302D6 +:1003E0001DC06091030270E0716081E01BD4CAE21D :1003F000D2E00AC08091200180FF05C0688180E1C1 -:1004000091E00E94140B21969E0122563240809169 -:10041000610290E0281739076CF3E0CFDF91CF91AC -:1004200008951F93CF93DF938BD3882309F47EC065 -:100430001A9B7CC0A7D2813009F03BC0B2D280FFAA -:1004400038C080913B028111C3DFA8D280933B0268 -:1004500010923D0291E1EFE3F2E0DF01292F1D92BE -:100460002A95E9F78530A9F038F4823081F084309C -:1004700071F08130C9F405C0883088F08A30A0F46A -:1004800011C094E090933C0280933E020EC088E03D -:1004900001C081E080933C0210923E0206C090931E -:1004A0003C02FACF83E0F6CF93DFDF91CF911F912B -:1004B00065C280913B028823C9F164D210913D024C -:1004C000C12FD0E090E09E012E5F3F4F35952795DC -:1004D0002F5F3F4F8217930729F560D2C15CDD4F34 -:1004E0008883C12FCF5FC0933D0280913C028C175F -:1004F00049F057D2EC2FF0E0E15CFD4F80831E5FA6 -:1005000010933D0290913C0280913D029813CDCF13 -:1005100004C080E091E00E94A90D80913B0281110E -:10052000F8CFC3CFDF91CF911F9152CFDF91CF9101 -:100530001F910895F6DE2FB7F89481E391E0909330 -:10054000B2018093B1019093B4018093B3012FBFA6 -:100550002FB7F89486EB91E09093370280933602A0 -:1005600090933902809338022FBF789410923D0205 -:1005700010923B02239A219AC1E3D1E08C0153E00F -:10058000E52E9FB7F8948091B5019FBF803819F18F -:1005900080E191E00E947C0B97FD1DC0E091B101CC -:1005A000F091B20180838091B1019091B2010196E6 -:1005B0009093B2018093B101815B914021F4D0937B -:1005C000B201C093B1019FB7F8948091B5018F5FDC -:1005D0008093B5019FBF8FB7F894F0903A028FBF18 -:1005E000A89904C080E68F1508F056C0A89A80919B -:1005F0003A02882341F15D98E0922E0124C0D4D1C3 -:10060000877F39F080913B028111E2DE80916802A0 -:10061000C1DEE0913802F09139028191F093390204 -:10062000E0933802E653F24021F41093390200932C -:1006300038022FB7F89490913A02915090933A0271 -:100640002FBFEFDEFA94F110DACF80912E018823CC -:10065000B9F080912E01815080932E01811110C03C -:1006600080913B028111B4DE9FD183FD07C0F090E1 -:1006700068029AD187FDF3948F2D8CDE7FD15D9A2D -:1006800080912F01882341F080912F018150809328 -:100690002F01811101C05C9A9FB7F8948091B50138 -:1006A0009FBF882309F1E091B301F091B4019191CA -:1006B000F093B401E093B301E15BF14021F4D093F6 -:1006C000B401C093B3012FB7F8948091B501815064 -:1006D0008093B5012FBF8091C80085FFFCCF909318 -:1006E000CE005C98E0922F0180E191E0EFD75BD7DC -:1006F00048CF08950895CF9380E091E00E94940D33 -:10070000C82F80E191E06BD79091E20094609093C4 -:10071000E200882321F0CC2311F080E001C080E3C7 -:100720009BB18095906389238BB9CF9108951F93D6 -:10073000CF93DF93EC01E98DE150E23028F4F0E053 -:10074000E45DFE4F108101C010E0888D823009F415 -:1007500018608A8D873031F0883031F0863029F486 -:10076000126003C0146001C016605B9A1092C90049 -:100770001092C8001092CA002C893D894E895F8969 -:10078000211581EE38074105510579F0CA01B901FB -:10079000969587957795679560587B47814E9F4FD3 -:1007A0000E946D0E2150310902C020E130E03093EB -:1007B000CD002093CC001093CA008C899D89AE890E -:1007C000BF898115914EA105B10511F480E001C0EA -:1007D00082E08093C80088E98093C9005B98DF912C -:1007E000CF911F9108951F920F920FB60F9211246F -:1007F0002F938F939F93EF93FF938091CE009091CF -:100800007E029430F1F4E0913602F0913702808359 -:10081000E0913602F0913702CF01019690933702B2 -:10082000809336028653924021F486EB91E09283C6 -:1008300081839FB7F89480913A028F5F80933A0248 -:100840009FBFFF91EF919F918F912F910F900FBEBE -:100850000F901F901895FC01208920FF02C05F981F -:1008600008955F9A8BB180638BB9089580E191E020 -:1008700071D780E091E00C945D0C80910E01909115 -:100880000F01009729F0019790930F0180930E01BB -:100890000895EF92FF920F931F93CF93DF937B0105 -:1008A000C901E80110913C02EFE3F2E0412F50E072 -:1008B000BF010E949C0EEBE3F2E08081D7018C9394 -:1008C00018831982108280913E02DF91CF911F918F -:1008D0000F91FF90EF9008950895292F332723302B -:1008E0003105B1F04CF42130310509F439C0223022 -:1008F000310509F03AC007C02132310539F1223201 -:10090000310549F132C0EFE5F0E08EEB90E031C007 -:1009100099278130910561F08230910581F0892B12 -:1009200021F5EAEBF0E0E491F0E08AEB90E021C001 -:10093000E6EAF0E0E491F0E086EA90E01AC0E4E74D -:10094000F0E0E491F0E084E790E013C0E9E0F0E04B -:100950008DE091E00EC0E8EBF1E08FE291E009C09C -:10096000E2E1F0E08DE191E004C0E0E0F0E080E061 -:1009700090E0DA018D939C93CF01089588E08093F5 -:100980002B01089580917002089560917102709119 -:1009900072028091730290917402089580917102A5 -:1009A000089580917202089580912B010895982FE7 -:1009B00080912B018823E9F083FF0AC01092750211 -:1009C00010927602109277021092780210927902B9 -:1009D00087FF0DC040916802E42FF0E0E759FD4F1A -:1009E00080818093690281E08093680202C0109246 -:1009F000680210926F0210927002109271021092AF -:100A00007202109273021092740210922B012091C4 -:100A10006802E22FF0E0E759FD4F9083822F8F5F4D -:100A200080936802392F307C80917502303809F448 -:100A300040C0303C09F05EC0882329F080E98093F3 -:100A40002B0120936802292F287326952695269539 -:100A5000223018F02730E1F40AC09F709F5F909316 -:100A60006F021092750280912B0185603DC0492F65 -:100A70004F7050E060E070E0409376025093770250 -:100A8000609378027093790285E08093750256C076 -:100A9000892F877090E0A0E0B0E080937602909379 -:100AA0007702A0937802B0937902215020937502C7 -:100AB00045C0282F2150209375028130C9F49F73BF -:100AC0009F5F909370028091760290917702A0913F -:100AD0007802B09179028093710290937202A09390 -:100AE0007302B093740283E080932B0181E0089538 -:100AF00080E507C0282F215020937502823030F402 -:100B000080E380932B011092750218C04091760209 -:100B100050917702609178027091790287E0440FDA -:100B2000551F661F771F8A95D1F7492B4093760290 -:100B300050937702609378027093790280E0089571 -:100B40000F931F9334DF8823A9F01CDF882391F0D3 -:100B50001CDF8C0122273327DC01CB01AA27BB270E -:100B6000082719272A273B2781E00F3F1F4F210520 -:100B7000310509F080E01F910F9108950F931F93A5 -:100B8000A0916202ECE1F0E097E08A019B010E2E59 -:100B900004C036952795179507950A94D2F7083023 -:100BA00040F0A0936202973059F40093620296E0FD -:100BB00007C091503797A02F923039F70093620207 -:100BC000A92FA25013C0EA2FF0E0EE59FD4F8A0181 -:100BD0009B010F771127222733270083E7E07695C3 -:100BE000679557954795EA95D1F7A150A111EBCF9D -:100BF000492F50E09A0163E0220F331F6A95E1F715 -:100C0000206C3F6F30916202322B30936202FA0106 -:100C1000EF59FD4F81508F738068808390936102FC -:100C20001F910F9108950F931F938B01AB01409576 -:100C3000509560E070E0BA015527442720E030E08D -:100C4000402B512B622B732B1F910F9197CFBF928B -:100C5000CF92DF92EF92FF920F931F93CF93DF9388 -:100C60007C018B01EA01D7D1B82E811132C02097C7 -:100C700031F028813981021B130BE20EF31EC12CC7 -:100C8000D12C22C08091E80085FD14C08091E8003D -:100C90008E778093E800209749F0888199818C0DA8 -:100CA0009D1D9983888325E0B22E13C0B4D188237B -:100CB00059F00EC0F70181917F018093F10001503E -:100CC0001109FFEFCF1ADF0A01151105D9F601C08E -:100CD000B82E8B2DDF91CF911F910F91FF90EF9048 -:100CE000DF90CF90BF9008952091850230918602C9 -:100CF0002617370748F06115710539F42091E8008F -:100D00002E772093E80001C0B9019C0180E034C037 -:100D100090917E02992309F443C0953009F442C0B2 -:100D20009091E80093FD3AC09091E80092FD30C0A8 -:100D30009091E80090FF20C08091F20090E0F901CE -:100D4000821B930B05C021912093F1006150710922 -:100D50009F01280F391F6115710519F028303105E1 -:100D600090F381E02830310509F080E09091E800AF -:100D70009E779093E8009F016115710549F68111F6 -:100D8000C7CF06C080917E02882351F0853051F094 -:100D90008091E80082FFF6CF80E0089581E0089519 -:100DA00082E0089583E008956115710529F420918A -:100DB000E8002B772093E8009C0121C080917E02FF -:100DC000882381F1853041F18091E80083FD26C0C0 -:100DD0008091E80082FFF2CFF90107C08091F10015 -:100DE00081939F016150710929F09F018091F20068 -:100DF0008111F4CF8091E8008B778093E800611532 -:100E00007105E1F68091E80080FD0AC080917E02C4 -:100E1000882341F08530B1F783E0089581E008959B -:100E200080E0089582E00895209185023091860245 -:100E30002617370748F06115710539F42091E8004D -:100E40002E772093E80001C0B9019C0180E035C0F5 -:100E500090917E02992309F444C0953009F443C06F -:100E60009091E80093FD3BC09091E80092FD31C065 -:100E70009091E80090FF21C08091F20090E0F9018C -:100E8000821B930B06C024912093F1003196615090 -:100E900071099C012E0F3F1F6115710519F0283053 -:100EA000310588F381E02830310509F080E0909128 -:100EB000E8009E779093E8009F016115710541F667 -:100EC0008111C6CF06C080917E02882351F0853003 -:100ED00051F08091E80082FFF6CF80E0089581E034 -:100EE000089582E0089583E00895982F2CC0909390 -:100EF000E900981739F07091EC002091ED005091C5 -:100F0000F00003C0242F762F50E021FD02C09F5F28 -:100F10001AC03091EB003E7F3093EB003091ED0032 -:100F20003D7F3093ED003091EB0031603093EB006A -:100F30007093EC002093ED005093F0002091EE00B0 -:100F400027FDE5CF07C0953090F28F708093E900C0 -:100F500081E0089580E008950F931F93CF93DF936E -:100F6000062FEC0110E02EC09881911103C01F5F85 -:100F7000259628C02C81E981FA816B81892F8F7099 -:100F8000853010F080E021C0223010F056E001C022 -:100F900052E028E030E040E003C04F5F220F331FF3 -:100FA0002E173F07D0F34295407F452B991F992775 -:100FB000991F6295660F660F607C692B96DF811121 -:100FC000D6CFE0CF1013D0CF81E0DF91CF911F912A -:100FD0000F91089580917F0287FD05C08091E80000 -:100FE00080FF0EC012C08091E80082FD05C0809194 -:100FF0007E028111F8CF08958091E8008B7708C0B8 -:1010000080917E028111EACF08958091E8008E7769 -:101010008093E80008958091E4009091E50045E612 -:101020002091EC0020FD1FC023C020917E022223CE -:1010300091F0253091F02091EB0025FD10C020911A -:10104000E4003091E5002817390751F34150C901F8 -:1010500039F784E0089582E0089583E0089581E0FF -:10106000089580E008952091E80020FFDECFF9CFB9 -:101070002091E80022FFD9CFF4CF41D043D0809116 -:10108000D8008F778093D8008091D80080688093B3 -:10109000D8008091D8008F7D8093D80084E089BDEE -:1010A00086E089BD09B400FEFDCF10927E02109249 -:1010B0007A0210927C0210927B0242E060E080E0B3 -:1010C00014DF8091E1008E7F8093E1008091E20047 -:1010D00081608093E2008091E20088608093E2006A -:1010E0008091E0008E7F8093E0000895E3E6F0E0D9 -:1010F00080818E7F808381E080937D02BECF1092BD -:10110000E20008951092E10008951F920F920FB629 -:101110000F9211242F933F934F935F936F937F937D -:101120008F939F93AF93BF93EF93FF938091E100D1 -:1011300082FF0AC08091E20082FF06C08091E10038 -:101140008B7F8093E10099DB8091E10080FF17C0E5 -:101150008091E20080FF13C08091E2008E7F809337 -:10116000E2008091E20080618093E2008091D800EB -:1011700080628093D80019BC10927E02BBDA809105 -:10118000E10084FF2FC08091E20084FF2BC084E047 -:1011900089BD86E089BD09B400FEFDCF8091D800ED -:1011A0008F7D8093D8008091E1008F7E8093E10055 -:1011B0008091E2008F7E8093E2008091E200816066 -:1011C0008093E20080917A02882311F084E007C0C6 -:1011D0008091E30087FF02C083E001C081E080933B -:1011E0007E0287DA8091E10083FF27C08091E200D0 -:1011F00083FF23C08091E100877F8093E10082E03C -:1012000080937E0210927A028091E1008E7F80931B -:10121000E1008091E2008E7F8093E2008091E20005 -:1012200080618093E20042E060E080E05EDE8091D9 -:10123000F00088608093F000B5D1FF91EF91BF91ED -:10124000AF919F918F917F916F915F914F913F915E -:101250002F910F900FBE0F901F9018951F920F9215 -:101260000FB60F9211242F933F934F935F936F9379 -:101270007F938F939F93AF93BF93CF93EF93FF93FE -:101280008091E9008F709091EC0090FF02C090E88F -:1012900001C090E0C92FC82B1092E9008091F000A6 -:1012A000877F8093F00078941CD01092E9008091A1 -:1012B000F00088608093F000CF70C093E900FF9148 -:1012C000EF91CF91BF91AF919F918F917F916F914E -:1012D0005F914F913F912F910F900FBE0F901F90F4 -:1012E00018951F93CF93DF93CDB7DEB7AC970FB6AA -:1012F000F894DEBF0FBECDBFEFE7F2E08091F100C2 -:10130000819322E0E738F207C9F7B0DA8091E8006C -:1013100083FF30C180917F0290918002953009F463 -:1013200087C038F49130B1F170F0933009F022C1E8 -:1013300031C0983009F4F3C0993009F4FFC09630F9 -:1013400009F018C19BC0803821F0823809F012C121 -:1013500008C080917B0290917C02992389F0826081 -:101360000FC080918302909184028F70992780939F -:10137000E9008091EB0085FB882780F91092E90055 -:101380009091E800977F9093E8008093F10010928D -:10139000F100D0C0882319F0823009F0EBC08F71C2 -:1013A00021F0823009F0E6C00BC0809181028130CB -:1013B00009F0E0C0933009F080E080937C022FC0F8 -:1013C0008091810281112BC08091830290918402CF -:1013D0008F709927009709F4CDC08093E900209180 -:1013E000EB0020FF1CC020918002233021F480916B -:1013F000EB00806212C09091EB0090619093EB0043 -:1014000021E030E001C0220F8A95EAF72093EA003C -:101410001092EA008091EB0088608093EB001092BC -:10142000E9008091E800877F8093E800D3DDA2C0C7 -:101430008111A0C080918102909182028F779927BB -:10144000182F9091E3009078982B9093E30080916F -:10145000E800877F8093E800BDDD8091E80080FF91 -:10146000FCCF8091E30080688093E300112311F0AA -:1014700083E001C082E080937E027CC0805882308D -:1014800008F078C080918102909182028C3D23E027 -:10149000920771F583E08A838AE289834FB7F894D3 -:1014A000DE01139620E03EE051E2E32FF0E050939E -:1014B0005700E49120FF03C0E295EF703F5FEF70AB -:1014C0008E2F90E0EA3010F0C79601C0C0968D9341 -:1014D0009D932F5F243149F74FBF8091E800877FAC -:1014E0008093E8006AE270E0CE010196FDDB11C056 -:1014F000AE01455D5F4F60918302EFD90097D1F156 -:101500002091E800277F2093E800BC018BA59CA5D3 -:101510008BDC8091E8008B778093E8002BC08038CB -:1015200049F58091E800877F8093E80080917A02F6 -:101530008093F1008091E8008E7776CF81111AC0F8 -:10154000909181029230B0F48091E800877F80937F -:10155000E80090937A023EDD80917A02811104C006 -:101560008091E30087FF02C084E001C081E08093A6 -:101570007E02C1D88091E80083FF0AC08091E80014 -:10158000877F8093E8008091EB0080628093EB007E -:10159000AC960FB6F894DEBF0FBECDBFDF91CF91F2 -:1015A0001F9108950895CF9380917E028823A9F01A -:1015B0008091E9008F709091EC0090FF02C090E85C -:1015C00001C090E0C92FC82B1092E9008091E8007B -:1015D00083FD87DECF70C093E900CF910895CF934C -:1015E000DF93EC014096FC018BE0DF011D928A95B0 -:1015F000E9F782E08C83898783E08E8761E0CE0102 -:101600000196AADC882361F061E0CE010696A4DC95 -:10161000882331F061E0CE010B96DF91CF919CCC15 -:1016200080E0DF91CF910895CF93C62F20917E0265 -:101630002430F1F4FC014489558966897789452B6A -:10164000462B472BA9F081818F708093E900809110 -:10165000E80085FF04C0C093F10080E00AC08091DB -:10166000E8008E778093E800D6DC8823A1F301C0E0 -:1016700082E0CF91089520917E02243029F5FC016B -:101680004489558966897789452B462B472BE1F09C -:1016900081818F708093E9008091F200811102C0F6 -:1016A00080E008959091E8008091E8008E77809323 -:1016B000E80095FDF5CFAFDC811107C09091E800FF -:1016C0009E779093E800089582E0089520917E022D -:1016D000243089F4FC014489558966897789452B32 -:1016E000462B472B41F021812F702093E900209158 -:1016F000E80020FDC0CF089520917E02243019F02B -:101700002FEF3FEF24C0FC01448955896689778912 -:10171000452B462B472BA1F386818F708093E900E0 -:101720008091E80082FFECCF8091F200882321F0C5 -:101730002091F10030E002C02FEF3FEF8091F200E6 -:10174000811105C08091E8008B778093E800C90182 -:1017500008950895CF93DF93EC018091E80083FF13 -:10176000A9C0888190E020918302309184022817DB -:10177000390709F09FC080918002813261F020F426 -:10178000803209F097C03DC0823209F46EC08332C6 -:1017900009F090C07FC080917F02813A09F08AC031 -:1017A0008091E800877F8093E8008091E80080FFC7 -:1017B000FCCF4C895D896E897F894093F100BB27FE -:1017C000A72F962F852F8093F100CB01AA27BB2747 -:1017D0008093F100472F5527662777274093F10024 -:1017E000888D8093F100898D8093F1008A8D80939C -:1017F000F1008091E8008E778093E800DF91CF912F -:10180000E9CB80917F02813209F054C08091E800D9 -:10181000877F8093E80005C080917E02882309F4C9 -:1018200049C08091E80082FFF7CF3091F10020910C -:10183000F1009091F1008091F1003C8B2D8B9E8BFB -:101840008F8B8091F100888F8091F100898F80913A -:10185000F1008A8F8091E8008B778093E800BADBF3 -:10186000CE01DF91CF910C94970380917F0281325A -:1018700009F58091E800877F8093E800ABDB8091D9 -:10188000810290918202998B888BCE01DF91CF915A -:101890000C942B0480917F02813261F48091E800E6 -:1018A000877F8093E80096DB60918102CE01DF9113 -:1018B000CF914FCFDF91CF9108956F927F928F920A -:1018C0009F92AF92BF92CF92DF92EF92FF920F93CF -:1018D0001F93CF93DF9300D01F92CDB7DEB77C016B -:1018E000ADB6BEB68091E80083FF07C1F7018081E5 -:1018F00090E020918302309184022817390709F083 -:10190000FCC080918002833009F49EC030F48130A5 -:1019100071F0823009F0F1C0D4C08A3009F4B9C046 -:101920008B3009F4A2C0893009F0E7C04CC0809127 -:101930007F02813A09F0E1C08DB69EB61A82198203 -:1019400080918102109182028B83F70140858DB7CF -:101950009EB7841B91090FB6F8949EBF0FBE8DBF32 -:10196000CDB6DEB6EFEFCE1ADE0A360150E060E00B -:1019700070E0C601EAD1412F41508E010F5F1F4F29 -:101980009601BE016D5F7F4FC7010E944904F701B8 -:10199000268137812115310529F0408550E0B601B7 -:1019A000C901CAD11092E9008091E800877F809335 -:1019B000E80069817A81C30197D98091E8008B772B -:1019C0008093E80039C080917F02813209F095C090 -:1019D0008DB69EB6009185021091860270908102AC -:1019E000609082028DB79EB7801B910B0FB6F89462 -:1019F0009EBF0FBE8DBFCDB6DEB6EFEFCE1ADE0AAC -:101A00008091E800877F8093E800B801C601CCD9B7 -:101A10008091E8008E778093E80021E0711001C08A -:101A200020E030E0021B130B2C0D3D1D462D4150D4 -:101A3000672DC7010E946C04882D992D0FB6F8946C -:101A40009EBF0FBE8DBF59C080917F02813A09F0C1 -:101A500054C08091E800877F8093E8008091E8007F -:101A600080FFFCCFF701818540C080917F028132E9 -:101A700009F043C08091E800877F8093E800AADAEC -:101A80009091810281E0911101C080E0F70181878E -:101A900034C080917F02813281F58091E800877F98 -:101AA0008093E80097DA80918102909182028827E2 -:101AB00036E0969587953A95E1F7F7019587848703 -:101AC0001CC080917F02813AC1F48091E800877F39 -:101AD0008093E8008091E80080FFFCCFF7018485C7 -:101AE000958596958795969587958093F100809139 -:101AF000E8008E778093E8006DDA0FB6F894BEBEEA -:101B00000FBEADBE0F900F900F90DF91CF911F9140 -:101B10000F91FF90EF90DF90CF90BF90AF909F908C -:101B20008F907F906F9008959C01275F3F4FF90140 -:101B300027E0DF011D922A95E9F721E0FC012187CA -:101B400024EF31E03587248723E0248361E0019688 -:101B500003CA4F925F926F927F928F929F92AF9241 -:101B6000BF92CF92DF92EF92FF920F931F93CF938A -:101B7000DF9300D01F92CDB7DEB77C01ADB6BEB605 -:101B800080917E02843009F08FC08091E4009091B2 -:101B9000E500F701228533852817390709F484C049 -:101BA00081818F708093E9008091E80085FF7CC07F -:101BB0006DB67EB640858DB79EB7841B91090FB672 -:101BC000F8949EBF0FBE8DBFCDB6DEB6EFEFCE1A36 -:101BD000DE0A1B821A821982460150E060E070E042 -:101BE000C601B3D08E010F5F1F4F960140E0BE01CA -:101BF0006D5F7F4FC7010E944904582EF70184850D -:101C00009585892B31F001E010E086859785892B39 -:101C100011F000E010E0F701C680D780C114D104B4 -:101C200089F049815A81B601C40179D04424439492 -:101C3000009709F4412CF701408550E0B401C6013A -:101C40007BD001C0412C89819A81892BF9F05110F8 -:101C500004C0411002C000FF19C0F70184859585BA -:101C60009787868781818F708093E9008B818111AE -:101C70008093F10069817A8140E050E0C4010E94C4 -:101C800027068091E8008E778093E8008091E40039 -:101C90009091E500F70193878287862D972D0FB6E7 -:101CA000F8949EBF0FBE8DBF0FB6F894BEBE0FBE98 -:101CB000ADBE0F900F900F90DF91CF911F910F91BC -:101CC000FF90EF90DF90CF90BF90AF909F908F905C -:101CD0007F906F905F904F900895A1E21A2EAA1BFB -:101CE000BB1BFD010DC0AA1FBB1FEE1FFF1FA217CC -:101CF000B307E407F50720F0A21BB30BE40BF50BC9 -:101D0000661F771F881F991F1A9469F76095709551 -:101D1000809590959B01AC01BD01CF010895FB0119 -:101D2000DC0104C08D910190801921F44150504094 -:101D3000C8F7881B990B0895FB01DC0102C00190D4 -:101D40000D9241505040D8F70895DC0101C06D93C9 -:0C1D500041505040E0F70895F894FFCF98 -:101D5C000281200000015002110000000000000070 -:101D6C0000834000000104400000018208000001D3 -:0E1D7C00000000000000000000000008302001 +:1004000091E00E94130B21969E012A523240809166 +:10041000290290E0281739076CF3E0CFDF91CF91E4 +:1004200008951F93CF93DF938AD3882309F47FC065 +:100430001A9B7DC0A6D2813009F03CC0B1D280FFAA +:1004400039C0809103028111C3DFA7D280930302D8 +:100450001092050291E1E7E0F2E0DF01292F1D9201 +:100460002A95E9F78530C1F038F4823071F0843094 +:1004700061F08130D1F405C0883090F08A30A8F462 +:1004800012C094E09093040204C088E080930402B8 +:1004900081E0809306020AC081E080930402F9CFD4 +:1004A00090930402F5CF83E0F1CF92DFDF91CF91FB +:1004B0001F9163C2809103028823C9F162D2109117 +:1004C0000502C12FD0E090E09E012E5F3F4F359591 +:1004D00027952F5F3F4F8217930729F55ED2C95F9B +:1004E000DD4F8883C12FCF5FC09305028091040246 +:1004F0008C1749F055D2EC2FF0E0E95FFD4F808377 +:100500001E5F1093050290910402809105029813DA +:10051000CDCF04C080E091E00E94A80D809103023D +:100520008111F8CFC3CFDF91CF911F9151CFDF91D0 +:10053000CF911F910895F5DE2FB7F89481E391E0F4 +:1005400090939601809395019093980180939701E1 +:100550002FBF2FB7F8948AE991E09093FF01809321 +:10056000FE0190930102809300022FBF78941092B5 +:10057000050210920302C1E3D1E08C0153E0E52EA5 +:100580009FB7F894809199019FBF843619F180E15B +:1005900091E00E947B0B97FD1DC0E0919501F091C9 +:1005A0009601808380919501909196010196909398 +:1005B0009601809395018559914021F4D09396013D +:1005C000C09395019FB7F894809199018F5F8093B4 +:1005D00099019FBF8FB7F894F09002028FBFA8993E +:1005E00004C084E48F1508F056C0A89A80910202D6 +:1005F000882341F15D98E0922E0124C0D4D1877FF9 +:1006000039F0809103028111E3DE80913002C2DE75 +:10061000E0910002F09101028191F0930102E093D8 +:100620000002EE5FF14021F41093010200930002FA +:100630002FB7F894909102029150909302022FBF2D +:10064000F0DEFA94F110DACF80912E018823B9F010 +:1006500080912E01815080932E01811110C08091D4 +:1006600003028111B5DE9FD183FD07C0F0903002F7 +:100670009AD187FDF3948F2D8DDE7FD15D9A809185 +:100680002F01882341F080912F01815080932F0109 +:10069000811101C05C9A9FB7F894809199019FBF26 +:1006A000882309F1E0919701F09198019191F093DD +:1006B0009801E0939701E559F14021F4D093980116 +:1006C000C09397012FB7F89480919901815080933E +:1006D00099012FBF8091C80085FFFCCF9093CE0079 +:1006E0005C98E0922F0180E191E0EFD75BD748CF93 +:1006F00008950895CF9380E091E00E94930DC82F54 +:1007000080E191E06BD79091E20094609093E200D9 +:10071000882321F0CC2311F080E001C080E39BB15D +:100720008095906389238BB9CF9108951F93CF93C0 +:10073000DF93EC01E98DE150E23028F4F0E0E45D74 +:10074000FE4F108101C010E0888D823009F41860DE +:100750008A8D873031F0883031F0863029F412608C +:1007600003C0146001C016605B9A1092C900109219 +:10077000C8001092CA002C893D894E895F892115D5 +:1007800081EE38074105510579F0CA01B901969506 +:1007900087957795679560587B47814E9F4F0E945C +:1007A0006C0E2150310902C020E130E03093CD00C1 +:1007B0002093CC001093CA008C899D89AE89BF8993 +:1007C0008115914EA105B10511F480E001C082E0D0 +:1007D0008093C80088E98093C9005B98DF91CF912E +:1007E0001F9108951F920F920FB60F9211242F930D +:1007F0008F939F93EF93FF938091CE009091460249 +:100800009430F1F4E091FE01F091FF018083E091DA +:10081000FE01F091FF01CF0101969093FF018093BB +:10082000FE018E5F914021F48AE991E092838183F9 +:100830009FB7F894809102028F5F809302029FBF5E +:10084000FF91EF919F918F912F910F900FBE0F907D +:100850001F901895FC01208920FF02C05F98089521 +:100860005F9A8BB180638BB9089580E191E071D775 +:1008700080E091E00C945C0C80910E0190910F014E +:10088000009729F0019790930F0180930E0108952E +:10089000EF92FF920F931F93CF93DF937B01C901D8 +:1008A000E80110910402E7E0F2E0412F50E0BF01BF +:1008B0000E949B0EE3E0F2E08081D7018C931883C5 +:1008C0001982108280910602DF91CF911F910F91C2 +:1008D000FF90EF9008950895292F33272330310595 +:1008E000B1F04CF42130310509F439C02230310522 +:1008F00009F03AC007C02132310539F12232310501 +:1009000049F132C0EFE5F0E08EEB90E031C099277D +:100910008130910561F08230910581F0892B21F5BC +:10092000EAEBF0E0E491F0E08AEB90E021C0E6EA47 +:10093000F0E0E491F0E086EA90E01AC0E4E7F0E04D +:10094000E491F0E084E790E013C0E9E0F0E08DE0AE +:1009500091E00EC0E8EBF1E08FE291E009C0E2E146 +:10096000F0E08DE191E004C0E0E0F0E080E090E0B4 +:10097000DA018D939C93CF01089588E080932B0139 +:1009800008958091380208956091390270913A0279 +:1009900080913B0290913C02089580913902089524 +:1009A00080913A02089580912B010895982F8091AB +:1009B0002B018823E9F083FF0AC010923D021092B8 +:1009C0003E0210923F02109240021092410287FFB5 +:1009D0000DC040913002E42FF0E0EF5CFD4F8081CC +:1009E0008093310281E08093300202C01092300285 +:1009F00010923702109238021092390210923A0285 +:100A000010923B0210923C0210922B012091300276 +:100A1000E22FF0E0EF5CFD4F9083822F8F5F809399 +:100A20003002392F307C80913D02303809F440C0CB +:100A3000303C09F05EC0882329F080E980932B01C7 +:100A400020933002292F287326952695269522304B +:100A500018F02730E1F40AC09F709F5F909337022F +:100A600010923D0280912B0185603DC0492F4F704F +:100A700050E060E070E040933E0250933F0260938C +:100A800040027093410285E080933D0256C0892F59 +:100A9000877090E0A0E0B0E080933E0290933F0228 +:100AA000A0934002B0934102215020933D0245C0E3 +:100AB000282F215020933D028130C9F49F739F5FFE +:100AC0009093380280913E0290913F02A0914002A3 +:100AD000B09141028093390290933A02A0933B0275 +:100AE000B0933C0283E080932B0181E0089580E580 +:100AF00007C0282F215020933D02823030F480E33C +:100B000080932B0110923D0218C040913E025091FB +:100B10003F02609140027091410287E0440F551FEF +:100B2000661F771F8A95D1F7492B40933E02509359 +:100B30003F02609340027093410280E008950F935A +:100B40001F9334DF8823A9F01CDF882391F01CDF7A +:100B50008C0122273327DC01CB01AA27BB270827DA +:100B600019272A273B2781E00F3F1F4F2105310519 +:100B700009F080E01F910F9108950F931F93A091AA +:100B80002A02ECE1F0E097E08A019B010E2E04C0FE +:100B900036952795179507950A94D2F7083040F0B7 +:100BA000A0932A02973059F400932A0296E007C0D6 +:100BB00091503797A02F923039F700932A02A92F2E +:100BC000A25013C0EA2FF0E0E65DFD4F8A019B01C1 +:100BD0000F771127222733270083E7E07695679563 +:100BE00057954795EA95D1F7A150A111EBCF492F21 +:100BF00050E09A0163E0220F331F6A95E1F7206C01 +:100C00003F6F30912A02322B30932A02FA01E75DBE +:100C1000FD4F81508F7380688083909329021F91CC +:100C20000F9108950F931F938B01AB014095509541 +:100C300060E070E0BA015527442720E030E0402B07 +:100C4000512B622B732B1F910F9197CFBF92CF9295 +:100C5000DF92EF92FF920F931F93CF93DF937C016C +:100C60008B01EA01D7D1B82E811132C0209731F023 +:100C700028813981021B130BE20EF31EC12CD12CEB +:100C800022C08091E80085FD14C08091E8008E7735 +:100C90008093E800209749F0888199818C0D9D1DF3 +:100CA0009983888325E0B22E13C0B4D1882359F0EC +:100CB0000EC0F70181917F018093F100015011096D +:100CC000FFEFCF1ADF0A01151105D9F601C0B82EC2 +:100CD0008B2DDF91CF911F910F91FF90EF90DF90BF +:100CE000CF90BF90089520914D0230914E0226176B +:100CF000370748F06115710539F42091E8002E7727 +:100D00002093E80001C0B9019C0180E034C09091BB +:100D10004602992309F443C0953009F442C09091EA +:100D2000E80093FD3AC09091E80092FD30C09091A8 +:100D3000E80090FF20C08091F20090E0F901821B52 +:100D4000930B05C021912093F100615071099F011F +:100D5000280F391F6115710519F02830310590F3FE +:100D600081E02830310509F080E09091E8009E771D +:100D70009093E8009F016115710549F68111C7CF75 +:100D800006C080914602882351F0853051F0809151 +:100D9000E80082FFF6CF80E0089581E0089582E0C8 +:100DA000089583E008956115710529F42091E80004 +:100DB0002B772093E8009C0121C080914602882374 +:100DC00081F1853041F18091E80083FD26C080915A +:100DD000E80082FFF2CFF90107C08091F100819312 +:100DE0009F016150710929F09F018091F2008111EA +:100DF000F4CF8091E8008B778093E800611571054E +:100E0000E1F68091E80080FD0AC0809146028823C7 +:100E100041F08530B1F783E0089581E0089580E0E6 +:100E2000089582E0089520914D0230914E022617D8 +:100E3000370748F06115710539F42091E8002E77E5 +:100E40002093E80001C0B9019C0180E035C0909179 +:100E50004602992309F444C0953009F443C09091A7 +:100E6000E80093FD3BC09091E80092FD31C0909165 +:100E7000E80090FF21C08091F20090E0F901821B10 +:100E8000930B06C024912093F100319661507109B3 +:100E90009C012E0F3F1F6115710519F02830310597 +:100EA00088F381E02830310509F080E09091E80076 +:100EB0009E779093E8009F016115710541F68111BD +:100EC000C6CF06C080914602882351F0853051F08C +:100ED0008091E80082FFF6CF80E0089581E00895D8 +:100EE00082E0089583E00895982F2CC09093E90044 +:100EF000981739F07091EC002091ED005091F000BE +:100F000003C0242F762F50E021FD02C09F5F1AC03E +:100F10003091EB003E7F3093EB003091ED003D7F50 +:100F20003093ED003091EB0031603093EB00709323 +:100F3000EC002093ED005093F0002091EE0027FD8F +:100F4000E5CF07C0953090F28F708093E90081E083 +:100F5000089580E008950F931F93CF93DF93062F9A +:100F6000EC0110E02EC09881911103C01F5F2596FF +:100F700028C02C81E981FA816B81892F8F7085309F +:100F800010F080E021C0223010F056E001C052E0A5 +:100F900028E030E040E003C04F5F220F331F2E17E0 +:100FA0003F07D0F34295407F452B991F9927991F02 +:100FB0006295660F660F607C692B96DF8111D6CF34 +:100FC000E0CF1013D0CF81E0DF91CF911F910F912F +:100FD00008958091470287FD05C08091E80080FF59 +:100FE0000EC012C08091E80082FD05C080914602CB +:100FF0008111F8CF08958091E8008B7708C0809127 +:1010000046028111EACF08958091E8008E7780939F +:10101000E80008958091E4009091E50045E6209174 +:10102000EC0020FD1FC023C020914602222391F036 +:10103000253091F02091EB0025FD10C02091E400B7 +:101040003091E5002817390751F34150C90139F7AC +:1010500084E0089582E0089583E0089581E0089592 +:1010600080E008952091E80020FFDECFF9CF2091A5 +:10107000E80022FFD9CFF4CF41D043D08091D800EF +:101080008F778093D8008091D80080688093D800B3 +:101090008091D8008F7D8093D80084E089BD86E060 +:1010A00089BD09B400FEFDCF1092460210924202A3 +:1010B000109244021092430242E060E080E014DFAC +:1010C0008091E1008E7F8093E1008091E200816059 +:1010D0008093E2008091E20088608093E20080913A +:1010E000E0008E7F8093E0000895E3E6F0E08081E9 +:1010F0008E7F808381E080934502BECF1092E20014 +:1011000008951092E10008951F920F920FB60F926A +:1011100011242F933F934F935F936F937F938F93FC +:101120009F93AF93BF93EF93FF938091E10082FF72 +:101130000AC08091E20082FF06C08091E1008B7FAF +:101140008093E10099DB8091E10080FF17C08091DE +:10115000E20080FF13C08091E2008E7F8093E20066 +:101160008091E20080618093E2008091D8008062EB +:101170008093D80019BC10924602BBDA8091E1003E +:1011800084FF2FC08091E20084FF2BC084E089BDE2 +:1011900086E089BD09B400FEFDCF8091D8008F7D27 +:1011A0008093D8008091E1008F7E8093E100809150 +:1011B000E2008F7E8093E2008091E2008160809364 +:1011C000E20080914202882311F084E007C0809100 +:1011D000E30087FF02C083E001C081E08093460204 +:1011E00087DA8091E10083FF27C08091E20083FFCE +:1011F00023C08091E100877F8093E10082E08093AB +:101200004602109242028091E1008E7F8093E100BD +:101210008091E2008E7F8093E2008091E200806105 +:101220008093E20042E060E080E05EDE8091F000CA +:1012300088608093F000B5D1FF91EF91BF91AF919D +:101240009F918F917F916F915F914F913F912F91DE +:101250000F900FBE0F901F9018951F920F920FB610 +:101260000F9211242F933F934F935F936F937F932C +:101270008F939F93AF93BF93CF93EF93FF938091FF +:10128000E9008F709091EC0090FF02C090E801C0DF +:1012900090E0C92FC82B1092E9008091F000877F61 +:1012A0008093F00078941CD01092E9008091F000B7 +:1012B00088608093F000CF70C093E900FF91EF91B8 +:1012C000CF91BF91AF919F918F917F916F915F91DE +:1012D0004F913F912F910F900FBE0F901F90189537 +:1012E0001F93CF93DF93CDB7DEB7AC970FB6F894CB +:1012F000DEBF0FBECDBFE7E4F2E08091F100819345 +:1013000022E0EF34F207C9F7B0DA8091E80083FFFA +:1013100030C18091470290914802953009F487C00E +:1013200038F49130B1F170F0933009F022C131C03E +:10133000983009F4F3C0993009F4FFC0963009F0F1 +:1013400018C19BC0803821F0823809F012C108C052 +:101350008091430290914402992389F082600FC0EA +:1013600080914B0290914C028F7099278093E900F5 +:101370008091EB0085FB882780F91092E90090911D +:10138000E800977F9093E8008093F1001092F100BD +:10139000D0C0882319F0823009F0EBC08F7121F0A2 +:1013A000823009F0E6C00BC080914902813009F01B +:1013B000E0C0933009F080E0809344022FC0809118 +:1013C000490281112BC080914B0290914C028F7089 +:1013D0009927009709F4CDC08093E9002091EB0094 +:1013E00020FF1CC020914802233021F48091EB00A3 +:1013F000806212C09091EB0090619093EB0021E02D +:1014000030E001C0220F8A95EAF72093EA0010929B +:10141000EA008091EB0088608093EB001092E90075 +:101420008091E800877F8093E800D3DDA2C081111E +:10143000A0C08091490290914A028F779927182F76 +:101440009091E3009078982B9093E3008091E800CE +:10145000877F8093E800BDDD8091E80080FFFCCFAE +:101460008091E30080688093E300112311F083E012 +:1014700001C082E0809346027CC08058823008F030 +:1014800078C08091490290914A028C3D23E09207F6 +:1014900071F583E08A838AE289834FB7F894DE018D +:1014A000139620E03EE051E2E32FF0E05093570026 +:1014B000E49120FF03C0E295EF703F5FEF708E2F45 +:1014C00090E0EA3010F0C79601C0C0968D939D93CE +:1014D0002F5F243149F74FBF8091E800877F8093C9 +:1014E000E8006AE270E0CE010196FDDB11C0AE01BA +:1014F000455D5F4F60914B02EFD90097D1F120918C +:10150000E800277F2093E800BC018BA59CA58BDC1D +:101510008091E8008B778093E8002BC0803849F5F4 +:101520008091E800877F8093E80080914202809359 +:10153000F1008091E8008E7776CF81111AC09091EA +:1015400049029230B0F48091E800877F8093E800F0 +:10155000909342023EDD80914202811104C080914D +:10156000E30087FF02C084E001C081E0809346026F +:10157000C1D88091E80083FF0AC08091E800877F8E +:101580008093E8008091EB0080628093EB00AC9642 +:101590000FB6F894DEBF0FBECDBFDF91CF911F9184 +:1015A00008950895CF93809146028823A9F08091F1 +:1015B000E9008F709091EC0090FF02C090E801C0AC +:1015C00090E0C92FC82B1092E9008091E80083FDBC +:1015D00087DECF70C093E900CF910895CF93DF935A +:1015E000EC014096FC018BE0DF011D928A95E9F742 +:1015F00082E08C83898783E08E8761E0CE0101964B +:10160000AADC882361F061E0CE010696A4DC882381 +:1016100031F061E0CE010B96DF91CF919CCC80E060 +:10162000DF91CF910895CF93C62F209146022430A9 +:10163000F1F4FC014489558966897789452B462B4D +:10164000472BA9F081818F708093E9008091E80099 +:1016500085FF04C0C093F10080E00AC08091E800DB +:101660008E778093E800D6DC8823A1F301C082E066 +:10167000CF91089520914602243029F5FC01448938 +:10168000558966897789452B462B472BE1F0818167 +:101690008F708093E9008091F200811102C080E098 +:1016A00008959091E8008091E8008E778093E8009B +:1016B00095FDF5CFAFDC811107C09091E8009E77D2 +:1016C0009093E800089582E0089520914602243026 +:1016D00089F4FC014489558966897789452B462B15 +:1016E000472B41F021812F702093E9002091E800E1 +:1016F00020FDC0CF089520914602243019F02FEF2D +:101700003FEF24C0FC014489558966897789452BC0 +:10171000462B472BA1F386818F708093E90080913F +:10172000E80082FFECCF8091F200882321F0209125 +:10173000F10030E002C02FEF3FEF8091F200811105 +:1017400005C08091E8008B778093E800C901089577 +:101750000895CF93DF93EC018091E80083FFA9C047 +:10176000888190E020914B0230914C022817390774 +:1017700009F09FC080914802813261F020F48032EC +:1017800009F097C03DC0823209F46EC0833209F07F +:1017900090C07FC080914702813A09F08AC0809151 +:1017A000E800877F8093E8008091E80080FFFCCF0D +:1017B0004C895D896E897F894093F100BB27A72FF3 +:1017C000962F852F8093F100CB01AA27BB2780930A +:1017D000F100472F5527662777274093F100888D22 +:1017E0008093F100898D8093F1008A8D8093F100C0 +:1017F0008091E8008E778093E800DF91CF91E9CB6C +:1018000080914702813209F054C08091E800877FBF +:101810008093E80005C080914602882309F449C0FE +:101820008091E80082FFF7CF3091F1002091F10024 +:101830009091F1008091F1003C8B2D8B9E8B8F8BD2 +:101840008091F100888F8091F100898F8091F10063 +:101850008A8F8091E8008B778093E800BADBCE0115 +:10186000DF91CF910C94960380914702813209F564 +:101870008091E800877F8093E800ABDB809149028C +:1018800090914A02998B888BCE01DF91CF910C9475 +:101890002A0480914702813261F48091E800877FB9 +:1018A0008093E80096DB60914902CE01DF91CF91F1 +:1018B0004FCFDF91CF9108956F927F928F929F9239 +:1018C000AF92BF92CF92DF92EF92FF920F931F934E +:1018D000CF93DF9300D01F92CDB7DEB77C01ADB6BA +:1018E000BEB68091E80083FF07C1F701808190E0D8 +:1018F00020914B0230914C022817390709F0FCC0A7 +:1019000080914802833009F49EC030F4813071F038 +:10191000823009F0F1C0D4C08A3009F4B9C08B30EC +:1019200009F4A2C0893009F0E7C04CC08091470299 +:10193000813A09F0E1C08DB69EB61A821982809173 +:10194000490210914A028B83F70140858DB79EB7FB +:10195000841B91090FB6F8949EBF0FBE8DBFCDB604 +:10196000DEB6EFEFCE1ADE0A360150E060E070E03E +:10197000C601EAD1412F41508E010F5F1F4F9601E2 +:10198000BE016D5F7F4FC7010E944804F7012681A9 +:1019900037812115310529F0408550E0B601C90194 +:1019A000CAD11092E9008091E800877F8093E80017 +:1019B00069817A81C30197D98091E8008B77809300 +:1019C000E80039C080914702813209F095C08DB698 +:1019D0009EB600914D0210914E02709049026090A7 +:1019E0004A028DB79EB7801B910B0FB6F8949EBF2D +:1019F0000FBE8DBFCDB6DEB6EFEFCE1ADE0A8091F8 +:101A0000E800877F8093E800B801C601CCD98091B7 +:101A1000E8008E778093E80021E0711001C020E09B +:101A200030E0021B130B2C0D3D1D462D4150672D40 +:101A3000C7010E946B04882D992D0FB6F8949EBFA4 +:101A40000FBE8DBF59C080914702813A09F054C042 +:101A50008091E800877F8093E8008091E80080FF14 +:101A6000FCCFF701818540C080914702813209F0A7 +:101A700043C08091E800877F8093E800AADA9091C4 +:101A8000490281E0911101C080E0F701818734C0F3 +:101A900080914702813281F58091E800877F8093B1 +:101AA000E80097DA8091490290914A02882736E04F +:101AB000969587953A95E1F7F701958784871CC03D +:101AC00080914702813AC1F48091E800877F80933A +:101AD000E8008091E80080FFFCCFF70184859585C0 +:101AE00096958795969587958093F1008091E8006B +:101AF0008E778093E8006DDA0FB6F894BEBE0FBE05 +:101B0000ADBE0F900F900F90DF91CF911F910F916D +:101B1000FF90EF90DF90CF90BF90AF909F908F900D +:101B20007F906F9008959C01275F3F4FF90127E058 +:101B3000DF011D922A95E9F721E0FC01218724EFBE +:101B400031E03587248723E0248361E0019603CACE +:101B50004F925F926F927F928F929F92AF92BF92BD +:101B6000CF92DF92EF92FF920F931F93CF93DF9369 +:101B700000D01F92CDB7DEB77C01ADB6BEB6809166 +:101B80004602843009F08FC08091E4009091E50016 +:101B9000F701228533852817390709F484C081812C +:101BA0008F708093E9008091E80085FF7CC06DB65E +:101BB0007EB640858DB79EB7841B91090FB6F89409 +:101BC0009EBF0FBE8DBFCDB6DEB6EFEFCE1ADE0ADA +:101BD0001B821A821982460150E060E070E0C60163 +:101BE000B3D08E010F5F1F4F960140E0BE016D5FC5 +:101BF0007F4FC7010E944804582EF70184859585C0 +:101C0000892B31F001E010E086859785892B11F052 +:101C100000E010E0F701C680D780C114D10489F03C +:101C200049815A81B601C40179D044244394009774 +:101C300009F4412CF701408550E0B401C6017BD086 +:101C400001C0412C89819A81892BF9F0511004C07F +:101C5000411002C000FF19C0F70184859585978760 +:101C6000868781818F708093E9008B8181118093B9 +:101C7000F10069817A8140E050E0C4010E942606AB +:101C80008091E8008E778093E8008091E400909145 +:101C9000E500F70193878287862D972D0FB6F8947C +:101CA0009EBF0FBE8DBF0FB6F894BEBE0FBEADBEB9 +:101CB0000F900F900F90DF91CF911F910F91FF9098 +:101CC000EF90DF90CF90BF90AF909F908F907F90DC +:101CD0006F905F904F900895A1E21A2EAA1BBB1B34 +:101CE000FD010DC0AA1FBB1FEE1FFF1FA217B307E8 +:101CF000E407F50720F0A21BB30BE40BF50B661FFE +:101D0000771F881F991F1A9469F7609570958095C1 +:101D100090959B01AC01BD01CF010895FB01DC0151 +:101D200004C08D910190801921F441505040C8F7B2 +:101D3000881B990B0895FB01DC0102C001900D92F4 +:101D400041505040D8F70895DC0101C06D934150D7 +:0A1D50005040E0F70895F894FFCF2B +:101D5A0002812000000118021100000000000000AA +:101D6A0000834000000104400000018208000001D5 +:0E1D7A00000000000000000000000008302003 :00000001FF diff --git a/Hoodloader/Descriptors.c b/Hoodloader/Descriptors.c index 43d90a1..ce0d69f 100644 --- a/Hoodloader/Descriptors.c +++ b/Hoodloader/Descriptors.c @@ -376,7 +376,7 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = //.VendorID = 0x2341, // Arduino //.ProductID = 0x0043, // Arduino Uno - .ReleaseNumber = VERSION_BCD(0,1,1), + .ReleaseNumber = VERSION_BCD(0,1,2), .ManufacturerStrIndex = STRING_ID_Manufacturer, .ProductStrIndex = STRING_ID_Product, diff --git a/Hoodloader/Descriptors.h b/Hoodloader/Descriptors.h index c07979c..e422c62 100644 --- a/Hoodloader/Descriptors.h +++ b/Hoodloader/Descriptors.h @@ -32,7 +32,7 @@ THE SOFTWARE. /* Includes: */ #include #include -#include <../HID_Reports.h> +#include /* Macros: */ /** Endpoint address of the CDC device-to-host notification IN endpoint. */ diff --git a/Hoodloader/Hoodloader.c b/Hoodloader/Hoodloader.c index 68ff3c4..e711c6e 100644 --- a/Hoodloader/Hoodloader.c +++ b/Hoodloader/Hoodloader.c @@ -124,27 +124,30 @@ int main(void) GlobalInterruptEnable(); - // Protocolsetup + // HID Setup HIDReportState.recvlength=0; HIDReportState.ID=0; // Debug - DDRB |= 0x08; //led out - DDRB |= 0x02; //led out + //DDRB |= 0x08; //led out + //DDRB |= 0x02; //led out + //DDRB |= 0x80; // DEBUG <-- + //DDRB &=~0x40; + //PORTB |= 0x40; for (;;) { - /* Only try to read in bytes from the CDC interface if the transmit buffer is not full */ + // Only try to read in bytes from the CDC interface if the transmit buffer is not full if (!(RingBuffer_IsFull(&USBtoUSART_Buffer))) { int16_t ReceivedByte = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface); - /* Read bytes from the USB OUT endpoint into the USART transmit buffer */ + // Read bytes from the USB OUT endpoint into the USART transmit buffer if (!(ReceivedByte < 0)) RingBuffer_Insert(&USBtoUSART_Buffer, ReceivedByte); } - /* Check if the UART receive buffer flush timer has expired or the buffer is nearly full */ + // Check if the UART receive buffer flush timer has expired or the buffer is nearly full RingBuff_Count_t BufferCount = RingBuffer_GetCount(&USARTtoUSB_Buffer); if ((TIFR0 & (1 << TOV0)) || (BufferCount > BUFFER_NEARLY_FULL)) { @@ -155,8 +158,9 @@ int main(void) PulseMSRemaining.TxLEDPulse = TX_RX_LED_PULSE_MS; } - /* Read bytes from the USART receive buffer*/ + // Read bytes from the USART receive buffer while (BufferCount--){ + //new Protocol check<-- // if a reading finished succesfull without valid checksum or an error occured (ignore a reset) if(NHPgetErrorLevel()&(~NHP_INPUT_RESET)){ @@ -172,6 +176,7 @@ int main(void) //read newest byte and check for Protocol RingBuff_Data_t b = RingBuffer_Remove(&USARTtoUSB_Buffer); checkNHPProtocol(b); + } // if reading has timed out write the buffers down the serial and turn off the led @@ -192,16 +197,16 @@ int main(void) // do not write again in the while loop above anyways NHPreset(); - /* Turn off TX LED(s) once the TX pulse period has elapsed */ + // Turn off TX LED(s) once the TX pulse period has elapsed LEDs_TurnOffLEDs(LEDMASK_TX); } - /* Turn off RX LED(s) once the RX pulse period has elapsed */ + // Turn off RX LED(s) once the RX pulse period has elapsed if (PulseMSRemaining.RxLEDPulse && !(--PulseMSRemaining.RxLEDPulse)) LEDs_TurnOffLEDs(LEDMASK_RX); } - /* Load the next byte from the USART transmit buffer into the USART */ + // Load the next byte from the USART transmit buffer into the USART if (!(RingBuffer_IsEmpty(&USBtoUSART_Buffer))) { Serial_SendByte(RingBuffer_Remove(&USBtoUSART_Buffer)); //<--new syntax @@ -212,6 +217,7 @@ int main(void) //new Send reports <-- CDC_Device_USBTask(&VirtualSerial_CDC_Interface); USB_USBTask(); + } } @@ -291,29 +297,29 @@ void checkNHPProtocol(RingBuff_Data_t input){ case HID_REPORTID_KeyboardReport: HIDReportState.length=sizeof(HID_KeyboardReport_Data_t); - HIDReportState.forcewrite=false; + HIDReportState.forcewrite=true; // set to true because of some bugs with joystick 1+2 break; case HID_REPORTID_MediaReport: HIDReportState.length=sizeof(HID_MediaReport_Data_t); - HIDReportState.forcewrite=false; + HIDReportState.forcewrite=true; break; case HID_REPORTID_SystemReport: HIDReportState.length=sizeof(HID_SystemReport_Data_t); - HIDReportState.forcewrite=false; + HIDReportState.forcewrite=true; break; case HID_REPORTID_Gamepad1Report: case HID_REPORTID_Gamepad2Report: HIDReportState.length=sizeof(HID_GamepadReport_Data_t); - HIDReportState.forcewrite=false; + HIDReportState.forcewrite=true; break; case HID_REPORTID_Joystick1Report: case HID_REPORTID_Joystick2Report: HIDReportState.length=sizeof(HID_JoystickReport_Data_t); - HIDReportState.forcewrite=false; + HIDReportState.forcewrite=true; break; // not supported yet <-- diff --git a/Hoodloader/Lib/HID_Reports.h b/Hoodloader/Lib/HID_Reports.h new file mode 100644 index 0000000..6b8a9fa --- /dev/null +++ b/Hoodloader/Lib/HID_Reports.h @@ -0,0 +1,192 @@ +/* +Copyright (c) 2014 NicoHood +See the readme for credit to other people. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#ifndef HID_REPORTS_H +#define HID_REPORTS_H + +//================================================================================ +//Definitions +//================================================================================ + +// empty + +//================================================================================ +//Report Typedefinitions +//================================================================================ + +typedef union{ + // mouse report: 5 buttons, position, wheel + uint8_t whole8[4]; + uint16_t whole16[4/2]; + uint32_t whole32[4/4]; + + struct{ + uint8_t buttons:5; + uint8_t reserved:3; + int8_t xAxis; + int8_t yAxis; + int8_t wheel; + }; +} HID_MouseReport_Data_t; + + +typedef union{ + // Low level key report: up to 6 keys and shift, ctrl etc at once + uint8_t whole8[8]; + uint16_t whole16[8/2]; + uint32_t whole32[8/4]; + + struct{ + uint8_t modifiers; + uint8_t reserved; + uint8_t keys[6]; + }; +} HID_KeyboardReport_Data_t; + + +typedef union{ + // every usable media key possible. Only one at the same time. + uint8_t whole8[8]; + uint16_t whole16[8/2]; + uint32_t whole32[8/4]; + + struct{ + uint16_t key1; + uint16_t key2; + uint16_t key3; + uint16_t key4; + }; +} HID_MediaReport_Data_t; + + +typedef union{ + // every usable system control key possible. Only one at the same time. + uint8_t whole8[1]; + uint8_t key; +} HID_SystemReport_Data_t; + + +typedef union { + // 32 Buttons, 6 Axis, 2 D-Pads + uint8_t whole8[17]; + uint16_t whole16[17/2]; + uint32_t whole32[17/4]; + uint32_t buttons; + + struct{ + uint8_t button1 :1; + uint8_t button2 :1; + uint8_t button3 :1; + uint8_t button4 :1; + uint8_t button5 :1; + uint8_t button6 :1; + uint8_t button7 :1; + uint8_t button8 :1; + + uint8_t button9 :1; + uint8_t button10 :1; + uint8_t button11 :1; + uint8_t button12 :1; + uint8_t button13 :1; + uint8_t button14 :1; + uint8_t button15 :1; + uint8_t button16 :1; + + uint8_t button17 :1; + uint8_t button18 :1; + uint8_t button19 :1; + uint8_t button20 :1; + uint8_t button21 :1; + uint8_t button22 :1; + uint8_t button23 :1; + uint8_t button24 :1; + + uint8_t button25 :1; + uint8_t button26 :1; + uint8_t button27 :1; + uint8_t button28 :1; + uint8_t button29 :1; + uint8_t button30 :1; + uint8_t button31 :1; + uint8_t button32 :1; + + uint16_t xAxis; + uint16_t yAxis; + uint16_t zAxis; + + uint16_t rxAxis; + uint16_t ryAxis; + uint16_t rzAxis; + + uint8_t dPad1: 4; + uint8_t dPad2: 4; + + // deactivated because windows only supports 7 axis. should be enough. + //uint8_t throttle; + //uint8_t rudder; + + }; +} HID_GamepadReport_Data_t; + + +typedef union{ + // 2 Buttons, 2 Axis + uint8_t whole8[3]; + uint16_t whole16[3/2]; + uint8_t buttons :2; + + struct{ + uint16_t button1 :1; + uint16_t button2 :1; + uint16_t xAxis :10; + uint16_t yAxis :10; + uint16_t reserved :2; + }; +} HID_JoystickReport_Data_t; + + +typedef union{ + HID_MouseReport_Data_t Mouse; + HID_KeyboardReport_Data_t Keyboard; + HID_MediaReport_Data_t Media; + HID_GamepadReport_Data_t Gamepad1; + HID_GamepadReport_Data_t Gamepad2; + HID_JoystickReport_Data_t Joystick1; + HID_JoystickReport_Data_t Joystick2; +} HID_HIDReport_Data_t; + + +/** Enum for the HID report IDs used in the device. */ +typedef enum{ + HID_REPORTID_MouseReport = 0x01, /**< Report ID for the Mouse report within the device. */ + HID_REPORTID_KeyboardReport = 0x02, /**< Report ID for the Keyboard report within the device. */ + HID_REPORTID_RawKeyboardReport=0x03, /**< Report ID for the Raw Keyboard report within the device. */ + HID_REPORTID_MediaReport = 0x04, /**< Report ID for the Media report within the device. */ + HID_REPORTID_SystemReport = 0x05, /**< Report ID for the Power report within the device. */ + HID_REPORTID_Gamepad1Report = 0x06, /**< Report ID for the Gamepad1 report within the device. */ + HID_REPORTID_Gamepad2Report = 0x07, /**< Report ID for the Gamepad2 report within the device. */ + HID_REPORTID_Joystick1Report = 0x08, /**< Report ID for the Joystick1 report within the device. */ + HID_REPORTID_Joystick2Report = 0x09, /**< Report ID for the Joystick2 report within the device. */ +} HID_Report_IDs; + +#endif \ No newline at end of file diff --git a/Hoodloader/Lib/LightweightRingBuff.h b/Hoodloader/Lib/LightweightRingBuff.h index 5a9a125..616ba62 100644 --- a/Hoodloader/Lib/LightweightRingBuff.h +++ b/Hoodloader/Lib/LightweightRingBuff.h @@ -44,12 +44,12 @@ /* Defines: */ /** Size of each ring buffer, in data elements - must be between 1 and 255. */ - #define BUFFER_SIZE 128 + #define BUFFER_SIZE (128-28) //reduced, needed some ram /** Maximum number of data elements to buffer before forcing a flush. * Must be less than BUFFER_SIZE */ - #define BUFFER_NEARLY_FULL 96 + #define BUFFER_NEARLY_FULL (96-28) /** Type of data to store into the buffer. */ #define RingBuff_Data_t uint8_t diff --git a/Hoodloader/Readme.md b/Hoodloader/Readme.md new file mode 100644 index 0000000..9a45fc1 --- /dev/null +++ b/Hoodloader/Readme.md @@ -0,0 +1,7 @@ +This folder is only interesting for developers. +You need to install the gcc-avr toolchain and compile with: +``` bash +$ sudo apt-get install avr-gcc +$ sudo make clean +$ sudo make +``` diff --git a/lufa-LUFA-140302/.gitignore b/Hoodloader/lufa-LUFA-140302/.gitignore similarity index 80% rename from lufa-LUFA-140302/.gitignore rename to Hoodloader/lufa-LUFA-140302/.gitignore index f9b900b..8e07f3c 100644 --- a/lufa-LUFA-140302/.gitignore +++ b/Hoodloader/lufa-LUFA-140302/.gitignore @@ -14,3 +14,7 @@ LUFA/StudioIntegration/ProjectGenerator/* LUFA/StudioIntegration/DocBook/* Demos/* Projects/* +Maintenance/* +BuildTests/* +Bootloaders/* + diff --git a/lufa-LUFA-140302/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c b/Hoodloader/lufa-LUFA-140302/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c diff --git a/lufa-LUFA-140302/LUFA/Build/HID_EEPROM_Loader/makefile b/Hoodloader/lufa-LUFA-140302/LUFA/Build/HID_EEPROM_Loader/makefile similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/HID_EEPROM_Loader/makefile rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/HID_EEPROM_Loader/makefile diff --git a/lufa-LUFA-140302/LUFA/Build/lufa_atprogram.mk b/Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_atprogram.mk similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/lufa_atprogram.mk rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_atprogram.mk diff --git a/lufa-LUFA-140302/LUFA/Build/lufa_avrdude.mk b/Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_avrdude.mk similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/lufa_avrdude.mk rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_avrdude.mk diff --git a/lufa-LUFA-140302/LUFA/Build/lufa_build.mk b/Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_build.mk similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/lufa_build.mk rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_build.mk diff --git a/lufa-LUFA-140302/LUFA/Build/lufa_core.mk b/Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_core.mk similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/lufa_core.mk rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_core.mk diff --git a/lufa-LUFA-140302/LUFA/Build/lufa_cppcheck.mk b/Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_cppcheck.mk similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/lufa_cppcheck.mk rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_cppcheck.mk diff --git a/lufa-LUFA-140302/LUFA/Build/lufa_dfu.mk b/Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_dfu.mk similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/lufa_dfu.mk rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_dfu.mk diff --git a/lufa-LUFA-140302/LUFA/Build/lufa_doxygen.mk b/Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_doxygen.mk similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/lufa_doxygen.mk rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_doxygen.mk diff --git a/lufa-LUFA-140302/LUFA/Build/lufa_hid.mk b/Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_hid.mk similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/lufa_hid.mk rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_hid.mk diff --git a/lufa-LUFA-140302/LUFA/Build/lufa_sources.mk b/Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_sources.mk similarity index 100% rename from lufa-LUFA-140302/LUFA/Build/lufa_sources.mk rename to Hoodloader/lufa-LUFA-140302/LUFA/Build/lufa_sources.mk diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/Descriptors.c diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/Descriptors.h b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/Descriptors.h similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/Descriptors.h rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/Descriptors.h diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.c diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/DeviceApplication.h diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/asf.xml b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/asf.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/asf.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DeviceTemplate/asf.xml diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Board.h diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Dataflash.h b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Dataflash.h similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Dataflash.h rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Dataflash.h diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Joystick.h b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Joystick.h similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Joystick.h rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/Joystick.h diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/DriverStubs/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/HostApplication.c b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/HostApplication.c similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/HostApplication.c rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/HostApplication.c diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/HostApplication.h b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/HostApplication.h similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/HostApplication.h rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/HostApplication.h diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/asf.xml b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/asf.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/asf.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/HostTemplate/asf.xml diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/LUFAConfig.h b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/LUFAConfig.h similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/LUFAConfig.h rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/LUFAConfig.h diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/WindowsINF/LUFA CDC-ACM.inf b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/WindowsINF/LUFA CDC-ACM.inf similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/WindowsINF/LUFA CDC-ACM.inf rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/WindowsINF/LUFA CDC-ACM.inf diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/WindowsINF/LUFA RNDIS.inf b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/WindowsINF/LUFA RNDIS.inf similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/WindowsINF/LUFA RNDIS.inf rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/WindowsINF/LUFA RNDIS.inf diff --git a/lufa-LUFA-140302/LUFA/CodeTemplates/makefile_template b/Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/makefile_template similarity index 100% rename from lufa-LUFA-140302/LUFA/CodeTemplates/makefile_template rename to Hoodloader/lufa-LUFA-140302/LUFA/CodeTemplates/makefile_template diff --git a/lufa-LUFA-140302/LUFA/Common/ArchitectureSpecific.h b/Hoodloader/lufa-LUFA-140302/LUFA/Common/ArchitectureSpecific.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Common/ArchitectureSpecific.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Common/ArchitectureSpecific.h diff --git a/lufa-LUFA-140302/LUFA/Common/Architectures.h b/Hoodloader/lufa-LUFA-140302/LUFA/Common/Architectures.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Common/Architectures.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Common/Architectures.h diff --git a/lufa-LUFA-140302/LUFA/Common/Attributes.h b/Hoodloader/lufa-LUFA-140302/LUFA/Common/Attributes.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Common/Attributes.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Common/Attributes.h diff --git a/lufa-LUFA-140302/LUFA/Common/BoardTypes.h b/Hoodloader/lufa-LUFA-140302/LUFA/Common/BoardTypes.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Common/BoardTypes.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Common/BoardTypes.h diff --git a/lufa-LUFA-140302/LUFA/Common/Common.h b/Hoodloader/lufa-LUFA-140302/LUFA/Common/Common.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Common/Common.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Common/Common.h diff --git a/lufa-LUFA-140302/LUFA/Common/CompilerSpecific.h b/Hoodloader/lufa-LUFA-140302/LUFA/Common/CompilerSpecific.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Common/CompilerSpecific.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Common/CompilerSpecific.h diff --git a/lufa-LUFA-140302/LUFA/Common/Endianness.h b/Hoodloader/lufa-LUFA-140302/LUFA/Common/Endianness.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Common/Endianness.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Common/Endianness.h diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/BuildSystem.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/BuildSystem.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/BuildSystem.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/BuildSystem.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/BuildingLinkableLibraries.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/BuildingLinkableLibraries.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/BuildingLinkableLibraries.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/BuildingLinkableLibraries.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/ChangeLog.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/ChangeLog.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/ChangeLog.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/ChangeLog.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/CompileTimeTokens.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/CompileTimeTokens.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/CompileTimeTokens.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/CompileTimeTokens.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/CompilingApps.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/CompilingApps.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/CompilingApps.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/CompilingApps.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/ConfiguringApps.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/ConfiguringApps.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/ConfiguringApps.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/ConfiguringApps.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/DevelopingWithLUFA.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/DevelopingWithLUFA.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/DevelopingWithLUFA.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/DevelopingWithLUFA.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/DeviceSupport.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/DeviceSupport.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/DeviceSupport.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/DeviceSupport.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/DirectorySummaries.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/DirectorySummaries.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/DirectorySummaries.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/DirectorySummaries.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Donating.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Donating.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Donating.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Donating.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/ExportingLibrary.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/ExportingLibrary.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/ExportingLibrary.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/ExportingLibrary.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/FutureChanges.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/FutureChanges.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/FutureChanges.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/FutureChanges.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/GettingStarted.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/GettingStarted.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/GettingStarted.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/GettingStarted.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Groups.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Groups.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Groups.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Groups.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/Author.jpg b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/Author.jpg similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/Author.jpg rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/Author.jpg diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/LUFA.png b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/LUFA.png similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/LUFA.png rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/LUFA.png diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Images/LUFA_thumb.png b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/LUFA_thumb.png similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Images/LUFA_thumb.png rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Images/LUFA_thumb.png diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/KnownIssues.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/KnownIssues.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/KnownIssues.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/KnownIssues.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/LUFAPoweredProjects.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/LUFAPoweredProjects.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/LUFAPoweredProjects.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/LUFAPoweredProjects.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/LibraryResources.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/LibraryResources.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/LibraryResources.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/LibraryResources.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/LicenseInfo.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/LicenseInfo.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/LicenseInfo.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/LicenseInfo.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/MainPage.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/MainPage.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/MainPage.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/MainPage.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/MigrationInformation.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/MigrationInformation.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/MigrationInformation.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/MigrationInformation.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/OSDrivers.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/OSDrivers.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/OSDrivers.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/OSDrivers.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/ProgrammingApps.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/ProgrammingApps.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/ProgrammingApps.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/ProgrammingApps.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/SoftwareBootloaderJump.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/SoftwareBootloaderJump.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/SoftwareBootloaderJump.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/SoftwareBootloaderJump.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Style/Footer.htm b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Style/Footer.htm similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Style/Footer.htm rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Style/Footer.htm diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/Style/Style.css b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Style/Style.css similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/Style/Style.css rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/Style/Style.css diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/VIDAndPIDValues.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/VIDAndPIDValues.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/VIDAndPIDValues.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/VIDAndPIDValues.txt diff --git a/lufa-LUFA-140302/LUFA/DoxygenPages/WritingBoardDrivers.txt b/Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/WritingBoardDrivers.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/DoxygenPages/WritingBoardDrivers.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/DoxygenPages/WritingBoardDrivers.txt diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ADAFRUITU4/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ADAFRUITU4/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ADAFRUITU4/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ADAFRUITU4/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BIGMULTIO/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BLACKCAT/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUI/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUI/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUI/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUI/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUI/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUI/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUI/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUI/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/DUCE/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/DUCE/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/DUCE/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/DUCE/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/DUCE/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/DUCE/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/DUCE/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/DUCE/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/LEONARDO/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/LEONARDO/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/LEONARDO/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/LEONARDO/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/LEONARDO/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MAXIMUS/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MULTIO/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MULTIO/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MULTIO/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MULTIO/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEX32U4/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/RZUSBSTICK/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/RZUSBSTICK/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/RZUSBSTICK/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/RZUSBSTICK/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STANGE_ISP/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Joystick.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Joystick.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Joystick.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/Joystick.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK525/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Joystick.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Joystick.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Joystick.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/Joystick.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/STK526/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TEENSY/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TEENSY/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TEENSY/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TEENSY/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/TUL/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/U2S/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UNO/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UNO/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UNO/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UNO/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UNO/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UNO/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UNO/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/UNO/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/Dataflash.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Dataflash.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/Dataflash.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Dataflash.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/Joystick.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Joystick.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/Joystick.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Joystick.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/Temperature.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Temperature.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/Temperature.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Temperature.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/Temperature.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Temperature.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/Temperature.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/Temperature.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Board.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Board.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Board.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Board.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Misc/AT45DB321C.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Misc/AT45DB321C.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Misc/AT45DB321C.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Misc/AT45DB321C.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Misc/AT45DB642D.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Misc/AT45DB642D.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Misc/AT45DB642D.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Misc/AT45DB642D.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Misc/RingBuffer.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Misc/RingBuffer.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Misc/RingBuffer.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Misc/RingBuffer.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Misc/TerminalCodes.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Misc/TerminalCodes.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Misc/TerminalCodes.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Misc/TerminalCodes.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/ADC.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/ADC.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/ADC.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/ADC.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/SPI.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/SPI.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/SPI.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/SPI.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/Serial.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/Serial.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/Serial.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/Serial.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/SerialSPI.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/SerialSPI.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/SerialSPI.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/SerialSPI.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/TWI.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/TWI.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/TWI.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/TWI.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/Peripheral/XMEGA/TWI_XMEGA.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/AudioClass.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/AudioClass.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/AudioClass.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/AudioClass.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/CDCClass.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/CDCClass.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/CDCClass.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/CDCClass.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDParser.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDParser.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDParser.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDParser.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDParser.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDParser.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDParser.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDParser.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDReportData.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDReportData.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDReportData.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/HIDReportData.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/HIDClass.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/HIDClass.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/HIDClass.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/HIDClass.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AudioClassHost.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AudioClassHost.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AudioClassHost.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AudioClassHost.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AudioClassHost.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AudioClassHost.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AudioClassHost.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/AudioClassHost.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/CDCClassHost.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/CDCClassHost.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/CDCClassHost.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/CDCClassHost.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/CDCClassHost.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/CDCClassHost.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/CDCClassHost.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/CDCClassHost.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/HIDClassHost.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/HIDClassHost.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/HIDClassHost.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/HIDClassHost.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/HIDClassHost.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/HIDClassHost.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/HIDClassHost.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/HIDClassHost.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/MIDIClass.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/MIDIClass.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/MIDIClass.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/MIDIClass.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/MassStorageClass.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/MassStorageClass.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/MassStorageClass.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/MassStorageClass.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/PrinterClass.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/PrinterClass.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/PrinterClass.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/PrinterClass.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/RNDISClass.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/RNDISClass.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/RNDISClass.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/RNDISClass.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Class/StillImageClass.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/StillImageClass.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Class/StillImageClass.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Class/StillImageClass.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/ConfigDescriptors.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/ConfigDescriptors.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/ConfigDescriptors.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/ConfigDescriptors.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/ConfigDescriptors.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/ConfigDescriptors.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/ConfigDescriptors.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/ConfigDescriptors.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Device.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Device.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/Device.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Device.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/DeviceStandardReq.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/DeviceStandardReq.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/DeviceStandardReq.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/DeviceStandardReq.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/DeviceStandardReq.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/DeviceStandardReq.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/DeviceStandardReq.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/DeviceStandardReq.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Endpoint.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Endpoint.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/Endpoint.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Endpoint.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/EndpointStream.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/EndpointStream.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/EndpointStream.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/EndpointStream.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Events.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Events.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/Events.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Events.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Events.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Events.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/Events.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Events.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Host.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Host.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/Host.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Host.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/HostStandardReq.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/HostStandardReq.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/HostStandardReq.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/HostStandardReq.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/HostStandardReq.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/HostStandardReq.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/HostStandardReq.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/HostStandardReq.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/OTG.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/OTG.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/OTG.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/OTG.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Pipe.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Pipe.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/Pipe.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/Pipe.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/PipeStream.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/PipeStream.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/PipeStream.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/PipeStream.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/StdDescriptors.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/StdDescriptors.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/StdDescriptors.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/StdDescriptors.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/StdRequestType.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/StdRequestType.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/StdRequestType.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/StdRequestType.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Device_UC3.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Device_UC3.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Device_UC3.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Device_UC3.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Device_UC3.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Device_UC3.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Device_UC3.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Device_UC3.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Host_UC3.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Host_UC3.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Host_UC3.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Host_UC3.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Host_UC3.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Host_UC3.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Host_UC3.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Host_UC3.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBController.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBController.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBController.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBController.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBInterrupt.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBInterrupt.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBInterrupt.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBInterrupt.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBMode.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBMode.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBMode.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBMode.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBTask.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBTask.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBTask.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBTask.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBTask.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBTask.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBTask.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/USBTask.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h diff --git a/lufa-LUFA-140302/LUFA/Drivers/USB/USB.h b/Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/USB.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Drivers/USB/USB.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Drivers/USB/USB.h diff --git a/lufa-LUFA-140302/LUFA/License.txt b/Hoodloader/lufa-LUFA-140302/LUFA/License.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/License.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/License.txt diff --git a/lufa-LUFA-140302/LUFA/Platform/Platform.h b/Hoodloader/lufa-LUFA-140302/LUFA/Platform/Platform.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Platform/Platform.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Platform/Platform.h diff --git a/lufa-LUFA-140302/LUFA/Platform/UC3/ClockManagement.h b/Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/ClockManagement.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Platform/UC3/ClockManagement.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/ClockManagement.h diff --git a/lufa-LUFA-140302/LUFA/Platform/UC3/Exception.S b/Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/Exception.S similarity index 100% rename from lufa-LUFA-140302/LUFA/Platform/UC3/Exception.S rename to Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/Exception.S diff --git a/lufa-LUFA-140302/LUFA/Platform/UC3/InterruptManagement.c b/Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/InterruptManagement.c similarity index 100% rename from lufa-LUFA-140302/LUFA/Platform/UC3/InterruptManagement.c rename to Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/InterruptManagement.c diff --git a/lufa-LUFA-140302/LUFA/Platform/UC3/InterruptManagement.h b/Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/InterruptManagement.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Platform/UC3/InterruptManagement.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/InterruptManagement.h diff --git a/lufa-LUFA-140302/LUFA/Platform/UC3/UC3ExperimentalInfo.txt b/Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/UC3ExperimentalInfo.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/Platform/UC3/UC3ExperimentalInfo.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/Platform/UC3/UC3ExperimentalInfo.txt diff --git a/lufa-LUFA-140302/LUFA/Platform/XMEGA/ClockManagement.h b/Hoodloader/lufa-LUFA-140302/LUFA/Platform/XMEGA/ClockManagement.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Platform/XMEGA/ClockManagement.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Platform/XMEGA/ClockManagement.h diff --git a/lufa-LUFA-140302/LUFA/Platform/XMEGA/XMEGAExperimentalInfo.txt b/Hoodloader/lufa-LUFA-140302/LUFA/Platform/XMEGA/XMEGAExperimentalInfo.txt similarity index 100% rename from lufa-LUFA-140302/LUFA/Platform/XMEGA/XMEGAExperimentalInfo.txt rename to Hoodloader/lufa-LUFA-140302/LUFA/Platform/XMEGA/XMEGAExperimentalInfo.txt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/helpcontentsetup.msha b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/helpcontentsetup.msha similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/HV1/helpcontentsetup.msha rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/helpcontentsetup.msha diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_docbook_transform.xslt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_helpcontentsetup_transform.xslt b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_helpcontentsetup_transform.xslt similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_helpcontentsetup_transform.xslt rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_helpcontentsetup_transform.xslt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/LUFA.dll b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/LUFA.dll similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/LUFA.dll rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/LUFA.dll diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/LUFA.pkgdef b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/LUFA.pkgdef similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/LUFA.pkgdef rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/LUFA.pkgdef diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/[Content_Types].xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/[Content_Types].xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/[Content_Types].xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/[Content_Types].xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/asf-manifest.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/asf-manifest.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/asf-manifest.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/asf-manifest.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/extension.vsixmanifest b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/extension.vsixmanifest similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/extension.vsixmanifest rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/extension.vsixmanifest diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/generate_caches.py b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/generate_caches.py similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/generate_caches.py rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/generate_caches.py diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/lufa_asfmanifest_transform.xslt b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/lufa_asfmanifest_transform.xslt similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/lufa_asfmanifest_transform.xslt rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/lufa_asfmanifest_transform.xslt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/lufa_vsmanifest_transform.xslt b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/lufa_vsmanifest_transform.xslt similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/lufa_vsmanifest_transform.xslt rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/VSIX/lufa_vsmanifest_transform.xslt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_extension_transform.xslt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_filelist_transform.xslt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_indent_transform.xslt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/XDK/lufa_module_transform.xslt diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_common.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_common.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_common.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_common.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_board.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_board.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_board.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_board.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_board_names.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_board_names.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_board_names.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_board_names.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_misc.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_misc.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_misc.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_misc.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_peripheral.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_peripheral.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_peripheral.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_peripheral.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_android.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_android.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_android.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_android.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_audio.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_audio.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_audio.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_audio.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_cdc.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_cdc.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_cdc.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_cdc.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_hid.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_hid.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_hid.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_hid.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_midi.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_midi.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_midi.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_midi.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_ms.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_ms.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_ms.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_ms.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_printer.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_printer.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_printer.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_printer.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_rndis.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_rndis.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_rndis.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_rndis.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_si.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_si.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_si.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_class_si.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform_uc3.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform_uc3.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform_uc3.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform_uc3.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform_xmega.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform_xmega.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform_xmega.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_platform_xmega.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_toolchain.xml b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_toolchain.xml similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/lufa_toolchain.xml rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/lufa_toolchain.xml diff --git a/lufa-LUFA-140302/LUFA/StudioIntegration/makefile b/Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/makefile similarity index 100% rename from lufa-LUFA-140302/LUFA/StudioIntegration/makefile rename to Hoodloader/lufa-LUFA-140302/LUFA/StudioIntegration/makefile diff --git a/lufa-LUFA-140302/LUFA/Version.h b/Hoodloader/lufa-LUFA-140302/LUFA/Version.h similarity index 100% rename from lufa-LUFA-140302/LUFA/Version.h rename to Hoodloader/lufa-LUFA-140302/LUFA/Version.h diff --git a/lufa-LUFA-140302/LUFA/doxyfile b/Hoodloader/lufa-LUFA-140302/LUFA/doxyfile similarity index 100% rename from lufa-LUFA-140302/LUFA/doxyfile rename to Hoodloader/lufa-LUFA-140302/LUFA/doxyfile diff --git a/lufa-LUFA-140302/LUFA/makefile b/Hoodloader/lufa-LUFA-140302/LUFA/makefile similarity index 100% rename from lufa-LUFA-140302/LUFA/makefile rename to Hoodloader/lufa-LUFA-140302/LUFA/makefile diff --git a/lufa-LUFA-140302/README.txt b/Hoodloader/lufa-LUFA-140302/README.txt similarity index 100% rename from lufa-LUFA-140302/README.txt rename to Hoodloader/lufa-LUFA-140302/README.txt diff --git a/lufa-LUFA-140302/makefile b/Hoodloader/lufa-LUFA-140302/makefile similarity index 100% rename from lufa-LUFA-140302/makefile rename to Hoodloader/lufa-LUFA-140302/makefile diff --git a/Hoodloader/makefile b/Hoodloader/makefile index 1c960f7..eb54072 100644 --- a/Hoodloader/makefile +++ b/Hoodloader/makefile @@ -33,7 +33,7 @@ F_USB = $(F_CPU) OPTIMIZATION = s TARGET = Hoodloader SRC = $(TARGET).c Descriptors.c Lib/NicoHoodProtocol_c.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) -LUFA_PATH = ../lufa-LUFA-140302/LUFA +LUFA_PATH = ./lufa-LUFA-140302/LUFA CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ $(ARDUNIOHID_OPTS) LD_FLAGS = diff --git a/Readme.md b/Readme.md index 672ed59..0b3f45e 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,4 @@ -Arduino HID Project BETA 1.1 +Arduino HID Project BETA 1.2 =================== Dont you always wanted to turn your Arduino in a Generic HID device like a Keyboard or a Gamepad? Disappointed that the Uno doesnt support this at all and the Micro/Leonardo only Mouse + Keyboard? @@ -39,8 +39,11 @@ Installation Leonardo/Micro/Uno/Mega ==================================== Download the library and **move and replace** all 4 .h/cpp files from the download folder to: ``` -Installation_path\hardware\arduino\cores\arduino +C:\Arduino\arduino-1.0.5-r2\hardware\arduino\cores\arduino +C:\Arduino\arduino-1.5.6-r2\hardware\arduino\avr\cores\arduino ``` +The installation path may differ to yours. Version 1.5.x may not work for nightly builds later on. + **I strongly recommend to install the library like this.** You can use the normal way but this will only works for Uno/Mega. To not get in conflict with the normal library installation you need to remove it from your normal library path, if you did so. Now you are able to use the library with all kind of Arduinos. The HID include and HID.begin() is optional for Leonardo/Micro @@ -121,14 +124,14 @@ This library wouldnt be possible without Todo ==== -* Remove debug leds +* Remove debug stuff (shouldnt effect anything for you) * Add more devices (even more?) * Add ICSP Programmer function -* Add Led/SPI support +* Add Led/SPI support (discarded, not needed, too slow) * Add rumble support (very hard) * Add Xbox Support (too hard) -* Add Midi (you want that?) -* Add Report Out function (for Keyboard Leds etc) +* Add Midi (do you want that?) +* Add Report Out function (for Keyboard Leds etc, maybe the 4 pin header?) * RAW HID Known Bugs @@ -152,6 +155,13 @@ Oh and by the way: I also removed some bugs from the official firmware. Version History =============== ``` +1.2 Beta Release (xx.06.2014) +* Added 1.0.x/1.5.x support +* Bugfixes in the Hoodloader: + * Sometimes HID Devices weren't updating when using more than 1 Device (set forcewrite to true) + * Fast updates crashed the bootloader (ram usage was too much, set CDC buffer from 128 to 100 byte each) +* Minor file structure changes + 1.1 Beta Release (05.06.2014) * Added Leonardo/Micro support * Included NicoHoodProtocol diff --git a/examples/AdvancedHID/AdvancedHID.ino b/examples/AdvancedGamepad/AdvancedGamepad.ino similarity index 53% rename from examples/AdvancedHID/AdvancedHID.ino rename to examples/AdvancedGamepad/AdvancedGamepad.ino index efff476..10dba0d 100644 --- a/examples/AdvancedHID/AdvancedHID.ino +++ b/examples/AdvancedGamepad/AdvancedGamepad.ino @@ -1,9 +1,9 @@ /* Copyright (c) 2014 NicoHood -See the readme for credit to other people. - -Advanced HID example -*/ + See the readme for credit to other people. + + Advanced Gamepad example + */ // not needed for Leonardo/Micro #include @@ -38,17 +38,14 @@ void setup() { // just logout (no shutdown needed). memset(&Gamepadreport, 0, sizeof(Gamepadreport)); HID.sendReport(HID_REPORTID_Gamepad1Report, &Gamepadreport, sizeof(Gamepadreport)); - pressRawKeyboard(0, 0); } void loop() { - // press a button and demonstrate Joystick actions if (!digitalRead(pinButton)) { digitalWrite(pinLed, HIGH); // This demo is actually made for advanced users to show them how they can write an own report. - // This might be useful for a Gamepad or a especially Keyboard if you only use one key, - // because the library has a lot of code for simple use + // This might be useful for a Gamepad if you want to edit the values direct on your own. // count with buttons binary static uint32_t count = 0; @@ -61,67 +58,10 @@ void loop() { // this writes the report to the host HID.sendReport(HID_REPORTID_Gamepad1Report, &Gamepadreport, sizeof(Gamepadreport)); - - // press STRG + ALT + DEL on keyboard (see usb documentation) - //pressRawKeyboard(0, 4); //modifiers + 4 - //pressRawKeyboard(0, 29); //modifiers + z - pressRawKeyboard(RAW_KEYBOARD_LEFT_CTRL | RAW_KEYBOARD_LEFT_ALT , RAW_KEYBOARD_DELETE); //modifiers + key - pressRawKeyboard(0, 0); // release! Important - // simple debounce delay(300); digitalWrite(pinLed, LOW); } } -void pressRawKeyboard(uint8_t modifiers, uint8_t key) { - uint8_t keys[8] = { modifiers, 0, key, 0, 0, 0, 0, 0 }; //modifiers, reserved, key[0] - HID.sendReport(HID_REPORTID_KeyboardReport, keys, sizeof(keys)); -} -/* -See Hut1_12v2.pdf Chapter 10 (Page 53) for more Keys -(especially a-z, a=0x04 z=29) -Definitions: - -RAW_KEYBOARD_LEFT_CTRL -RAW_KEYBOARD_LEFT_SHIFT -RAW_KEYBOARD_LEFT_ALT -RAW_KEYBOARD_LEFT_GUI -RAW_KEYBOARD_RIGHT_CTRL -RAW_KEYBOARD_RIGHT_SHIFT -RAW_KEYBOARD_RIGHT_ALT -RAW_KEYBOARD_RIGHT_GUI - -RAW_KEYBOARD_UP_ARROW -RAW_KEYBOARD_DOWN_ARROW -RAW_KEYBOARD_LEFT_ARROW -RAW_KEYBOARD_RIGHT_ARROW -RAW_KEYBOARD_SPACEBAR -RAW_KEYBOARD_BACKSPACE -RAW_KEYBOARD_TAB -RAW_KEYBOARD_RETURN -RAW_KEYBOARD_ESC -RAW_KEYBOARD_INSERT -RAW_KEYBOARD_DELETE -RAW_KEYBOARD_PAGE_UP -RAW_KEYBOARD_PAGE_DOWN -RAW_KEYBOARD_HOME -RAW_KEYBOARD_END -RAW_KEYBOARD_CAPS_LOCK -RAW_KEYBOARD_F1 -RAW_KEYBOARD_F2 -RAW_KEYBOARD_F3 -RAW_KEYBOARD_F4 -RAW_KEYBOARD_F5 -RAW_KEYBOARD_F6 -RAW_KEYBOARD_F7 -RAW_KEYBOARD_F8 -RAW_KEYBOARD_F9 -RAW_KEYBOARD_F10 -RAW_KEYBOARD_F11 -RAW_KEYBOARD_F12 -RAW_KEYBOARD_PRINT -RAW_KEYBOARD_SCROLL_LOCK -RAW_KEYBOARD_PAUSE -*/ diff --git a/examples/AdvancedKeyboard/AdvancedKeyboard.ino b/examples/AdvancedKeyboard/AdvancedKeyboard.ino new file mode 100644 index 0000000..708ae91 --- /dev/null +++ b/examples/AdvancedKeyboard/AdvancedKeyboard.ino @@ -0,0 +1,111 @@ +/* +Copyright (c) 2014 NicoHood + See the readme for credit to other people. + + Advanced Keyboard example + */ + +// not needed for Leonardo/Micro +#include + +// for Leonardo/Micro: make sure to activate desired USB functions in HID_Reports.h + +const int pinLed = 13; +const int pinButton = 8; + +void setup() { + pinMode(pinLed, OUTPUT); + pinMode(pinButton, INPUT_PULLUP); + + // Starts Serial at baud 115200. end just ends the Serial + // Make sure to end your special HIDs before, this does not clear them! + // You need this baud for the HID library but still can use other bauds + // without HID functions. + // not needed for Leonado/Micro, Serial will not be set + HID.begin(); + + // Sends a clean report to the host. This is important because + // the 16u2 of the Uno/Mega is not turned off while programming + // so you want to start with a clear report to avoid strange bugs. + // its exactly the same like the end() function. + // You can also unplug the device if anything goes wrong. + // To prevent the 16u2 to send more reports just pull the Serial TX (pin1) low + // or see readme for turning off HID functions. + // If you did anything wrong (keyboard is doing weird stuff) + // just logout (no shutdown needed). + pressRawKeyboard(0, 0); +} + +void loop() { + if (!digitalRead(pinButton)) { + digitalWrite(pinLed, HIGH); + + // This demo is actually made for advanced users to show them how they can write an own report. + // This might be useful for a Keyboard if you only use one key, + // because the library has a lot of code for simple use + + // press STRG + ALT + DEL on keyboard (see usb documentation) + //pressRawKeyboard(0, 4); //modifiers + 4 + //pressRawKeyboard(0, 29); //modifiers + z + pressRawKeyboard(RAW_KEYBOARD_LEFT_CTRL | RAW_KEYBOARD_LEFT_ALT , RAW_KEYBOARD_DELETE); //modifiers + key + pressRawKeyboard(0, 0); // release! Important + + // simple debounce + delay(300); + digitalWrite(pinLed, LOW); + } +} + +void pressRawKeyboard(uint8_t modifiers, uint8_t key) { + uint8_t keys[8] = { + modifiers, 0, key, 0, 0, 0, 0, 0 }; //modifiers, reserved, key[0] + HID.sendReport(HID_REPORTID_KeyboardReport, keys, sizeof(keys)); +} + +/* +See Hut1_12v2.pdf Chapter 10 (Page 53) for more Keys + (especially a-z, a=0x04 z=29) + Definitions: + + RAW_KEYBOARD_LEFT_CTRL + RAW_KEYBOARD_LEFT_SHIFT + RAW_KEYBOARD_LEFT_ALT + RAW_KEYBOARD_LEFT_GUI + RAW_KEYBOARD_RIGHT_CTRL + RAW_KEYBOARD_RIGHT_SHIFT + RAW_KEYBOARD_RIGHT_ALT + RAW_KEYBOARD_RIGHT_GUI + + RAW_KEYBOARD_UP_ARROW + RAW_KEYBOARD_DOWN_ARROW + RAW_KEYBOARD_LEFT_ARROW + RAW_KEYBOARD_RIGHT_ARROW + RAW_KEYBOARD_SPACEBAR + RAW_KEYBOARD_BACKSPACE + RAW_KEYBOARD_TAB + RAW_KEYBOARD_RETURN + RAW_KEYBOARD_ESC + RAW_KEYBOARD_INSERT + RAW_KEYBOARD_DELETE + RAW_KEYBOARD_PAGE_UP + RAW_KEYBOARD_PAGE_DOWN + RAW_KEYBOARD_HOME + RAW_KEYBOARD_END + RAW_KEYBOARD_CAPS_LOCK + RAW_KEYBOARD_F1 + RAW_KEYBOARD_F2 + RAW_KEYBOARD_F3 + RAW_KEYBOARD_F4 + RAW_KEYBOARD_F5 + RAW_KEYBOARD_F6 + RAW_KEYBOARD_F7 + RAW_KEYBOARD_F8 + RAW_KEYBOARD_F9 + RAW_KEYBOARD_F10 + RAW_KEYBOARD_F11 + RAW_KEYBOARD_F12 + RAW_KEYBOARD_PRINT + RAW_KEYBOARD_SCROLL_LOCK + RAW_KEYBOARD_PAUSE + */ + diff --git a/examples/Gamepad/Gamepad.ino b/examples/Gamepad/Gamepad.ino index 2af4dcb..248d1de 100644 --- a/examples/Gamepad/Gamepad.ino +++ b/examples/Gamepad/Gamepad.ino @@ -3,6 +3,7 @@ Copyright (c) 2014 NicoHood See the readme for credit to other people. Gamepad example +Press a button and demonstrate Gamepad actions */ // not needed for Leonardo/Micro @@ -37,7 +38,6 @@ void setup() { } void loop() { - // press a button and demonstrate Gamepad actions if (!digitalRead(pinButton)) { digitalWrite(pinLed, HIGH); diff --git a/examples/Joystick/Joystick.ino b/examples/Joystick/Joystick.ino index bc03c29..489969d 100644 --- a/examples/Joystick/Joystick.ino +++ b/examples/Joystick/Joystick.ino @@ -3,6 +3,7 @@ Copyright (c) 2014 NicoHood See the readme for credit to other people. Joystick example +Press a button and demonstrate Joystick actions */ // not needed for Leonardo/Micro @@ -37,7 +38,6 @@ void setup() { } void loop() { - // press a button and demonstrate Joystick actions if (!digitalRead(pinButton)) { digitalWrite(pinLed, HIGH); diff --git a/examples/Keyboard/Keyboard.ino b/examples/Keyboard/Keyboard.ino index 5d920e9..6c3355f 100644 --- a/examples/Keyboard/Keyboard.ino +++ b/examples/Keyboard/Keyboard.ino @@ -3,6 +3,8 @@ Copyright (c) 2014 NicoHood See the readme for credit to other people. Keyboard example + Press a button to write some text to your pc. After 10 button presses it will pres ctrl+alt+del. + See official documentation for more infos */ // not needed for Leonardo/Micro @@ -38,7 +40,6 @@ void setup() { void loop() { - // press a button to write some text to your pc if (!digitalRead(pinButton)) { digitalWrite(pinLed, HIGH); diff --git a/examples/Media/Media.ino b/examples/Media/Media.ino index d02b9cc..86aec50 100644 --- a/examples/Media/Media.ino +++ b/examples/Media/Media.ino @@ -3,6 +3,7 @@ Copyright (c) 2014 NicoHood See the readme for credit to other people. Media example +Press a button to play/pause music player */ // not needed for Leonardo/Micro @@ -37,7 +38,6 @@ void setup() { } void loop() { - // press a button to play/pause music player if (!digitalRead(pinButton)) { digitalWrite(pinLed, HIGH); diff --git a/examples/Mouse/Mouse.ino b/examples/Mouse/Mouse.ino index 70f29b7..13b218f 100644 --- a/examples/Mouse/Mouse.ino +++ b/examples/Mouse/Mouse.ino @@ -3,6 +3,7 @@ Copyright (c) 2014 NicoHood See the readme for credit to other people. Mouse example + Press a button to click with mouse. See official documentation for more infos */ // not needed for Leonardo/Micro @@ -37,7 +38,6 @@ void setup() { } void loop() { - // press a button to click with mouse if (!digitalRead(pinButton)) { digitalWrite(pinLed, HIGH); diff --git a/examples/System/System.ino b/examples/System/System.ino index 98fdadb..c434ca7 100644 --- a/examples/System/System.ino +++ b/examples/System/System.ino @@ -3,6 +3,7 @@ Copyright (c) 2014 NicoHood See the readme for credit to other people. System example +Press a button to put pc into standby mode */ // not needed for Leonardo/Micro @@ -37,7 +38,6 @@ void setup() { } void loop() { - // press a button to put pc into standby mode if (!digitalRead(pinButton)) { digitalWrite(pinLed, HIGH); diff --git a/keywords.txt b/keywords.txt index 6c86cc6..72237a1 100644 --- a/keywords.txt +++ b/keywords.txt @@ -18,6 +18,7 @@ write KEYWORD2 press KEYWORD2 isPressed KEYWORD2 releaseAll KEYWORD2 +buttons KEYWORD2 xAxis KEYWORD2 yAxis KEYWORD2 zAxis KEYWORD2 diff --git a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPI.c b/lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPI.c deleted file mode 100644 index f7564e9..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPI.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Bootloader user application API functions. - */ - -#include "BootloaderAPI.h" - -void BootloaderAPI_ErasePage(const uint32_t Address) -{ - boot_page_erase_safe(Address); - boot_spm_busy_wait(); - boot_rww_enable(); -} - -void BootloaderAPI_WritePage(const uint32_t Address) -{ - boot_page_write_safe(Address); - boot_spm_busy_wait(); - boot_rww_enable(); -} - -void BootloaderAPI_FillWord(const uint32_t Address, const uint16_t Word) -{ - boot_page_fill_safe(Address, Word); -} - -uint8_t BootloaderAPI_ReadSignature(const uint16_t Address) -{ - return boot_signature_byte_get(Address); -} - -uint8_t BootloaderAPI_ReadFuse(const uint16_t Address) -{ - return boot_lock_fuse_bits_get(Address); -} - -uint8_t BootloaderAPI_ReadLock(void) -{ - return boot_lock_fuse_bits_get(GET_LOCK_BITS); -} - -void BootloaderAPI_WriteLock(const uint8_t LockBits) -{ - boot_lock_bits_set_safe(LockBits); -} diff --git a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPI.h b/lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPI.h deleted file mode 100644 index 2462cac..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPI.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for BootloaderAPI.c. - */ - -#ifndef _BOOTLOADER_API_H_ -#define _BOOTLOADER_API_H_ - - /* Includes: */ - #include - #include - #include - - #include - - #include "Config/AppConfig.h" - - /* Function Prototypes: */ - void BootloaderAPI_ErasePage(const uint32_t Address); - void BootloaderAPI_WritePage(const uint32_t Address); - void BootloaderAPI_FillWord(const uint32_t Address, const uint16_t Word); - uint8_t BootloaderAPI_ReadSignature(const uint16_t Address); - uint8_t BootloaderAPI_ReadFuse(const uint16_t Address); - uint8_t BootloaderAPI_ReadLock(void); - void BootloaderAPI_WriteLock(const uint8_t LockBits); - -#endif - diff --git a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPITable.S b/lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPITable.S deleted file mode 100644 index 69ebd38..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderAPITable.S +++ /dev/null @@ -1,91 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -; Trampolines to actual API implementations if the target address is outside the -; range of a rjmp instruction (can happen with large bootloader sections) -.section .apitable_trampolines, "ax" -.global BootloaderAPI_Trampolines -BootloaderAPI_Trampolines: - - BootloaderAPI_ErasePage_Trampoline: - jmp BootloaderAPI_ErasePage - BootloaderAPI_WritePage_Trampoline: - jmp BootloaderAPI_WritePage - BootloaderAPI_FillWord_Trampoline: - jmp BootloaderAPI_FillWord - BootloaderAPI_ReadSignature_Trampoline: - jmp BootloaderAPI_ReadSignature - BootloaderAPI_ReadFuse_Trampoline: - jmp BootloaderAPI_ReadFuse - BootloaderAPI_ReadLock_Trampoline: - jmp BootloaderAPI_ReadLock - BootloaderAPI_WriteLock_Trampoline: - jmp BootloaderAPI_WriteLock - BootloaderAPI_UNUSED1: - ret - BootloaderAPI_UNUSED2: - ret - BootloaderAPI_UNUSED3: - ret - BootloaderAPI_UNUSED4: - ret - BootloaderAPI_UNUSED5: - ret - - - -; API function jump table -.section .apitable_jumptable, "ax" -.global BootloaderAPI_JumpTable -BootloaderAPI_JumpTable: - - rjmp BootloaderAPI_ErasePage_Trampoline - rjmp BootloaderAPI_WritePage_Trampoline - rjmp BootloaderAPI_FillWord_Trampoline - rjmp BootloaderAPI_ReadSignature_Trampoline - rjmp BootloaderAPI_ReadFuse_Trampoline - rjmp BootloaderAPI_ReadLock_Trampoline - rjmp BootloaderAPI_WriteLock_Trampoline - rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 - rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 - rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 - rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 - rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 - - - -; Bootloader table signatures and information -.section .apitable_signatures, "ax" -.global BootloaderAPI_Signatures -BootloaderAPI_Signatures: - - .long BOOT_START_ADDR ; Start address of the bootloader - .word 0xDF00 ; Signature for the CDC class bootloader - .word 0xDCFB ; Signature for a LUFA class bootloader diff --git a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.c b/lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.c deleted file mode 100644 index f66a483..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.c +++ /dev/null @@ -1,641 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Main source file for the CDC class bootloader. This file contains the complete bootloader logic. - */ - -#define INCLUDE_FROM_BOOTLOADERCDC_C -#include "BootloaderCDC.h" - -/** Contains the current baud rate and other settings of the first virtual serial port. This must be retained as some - * operating systems will not open the port unless the settings can be set successfully. - */ -static CDC_LineEncoding_t LineEncoding = { .BaudRateBPS = 0, - .CharFormat = CDC_LINEENCODING_OneStopBit, - .ParityType = CDC_PARITY_None, - .DataBits = 8 }; - -/** Current address counter. This stores the current address of the FLASH or EEPROM as set by the host, - * and is used when reading or writing to the AVRs memory (either FLASH or EEPROM depending on the issued - * command.) - */ -static uint32_t CurrAddress; - -/** Flag to indicate if the bootloader should be running, or should exit and allow the application code to run - * via a watchdog reset. When cleared the bootloader will exit, starting the watchdog and entering an infinite - * loop until the AVR restarts and the application runs. - */ -static bool RunBootloader = true; - -/** Magic lock for forced application start. If the HWBE fuse is programmed and BOOTRST is unprogrammed, the bootloader - * will start if the /HWB line of the AVR is held low and the system is reset. However, if the /HWB line is still held - * low when the application attempts to start via a watchdog reset, the bootloader will re-start. If set to the value - * \ref MAGIC_BOOT_KEY the special init function \ref Application_Jump_Check() will force the application to start. - */ -uint16_t MagicBootKey ATTR_NO_INIT; - - -/** Special startup routine to check if the bootloader was started via a watchdog reset, and if the magic application - * start key has been loaded into \ref MagicBootKey. If the bootloader started via the watchdog and the key is valid, - * this will force the user application to start via a software jump. - */ -void Application_Jump_Check(void) -{ - bool JumpToApplication = false; - - #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1)) - /* Disable JTAG debugging */ - JTAG_DISABLE(); - - /* Enable pull-up on the JTAG TCK pin so we can use it to select the mode */ - PORTF |= (1 << 4); - Delay_MS(10); - - /* If the TCK pin is not jumpered to ground, start the user application instead */ - JumpToApplication |= ((PINF & (1 << 4)) != 0); - - /* Re-enable JTAG debugging */ - JTAG_ENABLE(); - #endif - - /* If the reset source was the bootloader and the key is correct, clear it and jump to the application */ - if ((MCUSR & (1 << WDRF)) && (MagicBootKey == MAGIC_BOOT_KEY)) - JumpToApplication |= true; - - /* If a request has been made to jump to the user application, honor it */ - if (JumpToApplication) - { - /* Turn off the watchdog */ - MCUSR &= ~(1< 0xFFFF) - WriteNextResponseByte(pgm_read_byte_far(CurrAddress | HighByte)); - #else - WriteNextResponseByte(pgm_read_byte(CurrAddress | HighByte)); - #endif - - /* If both bytes in current word have been read, increment the address counter */ - if (HighByte) - CurrAddress += 2; - - HighByte = !HighByte; - } - else - { - /* Read the next EEPROM byte into the endpoint */ - WriteNextResponseByte(eeprom_read_byte((uint8_t*)(intptr_t)(CurrAddress >> 1))); - - /* Increment the address counter after use */ - CurrAddress += 2; - } - } - } - else - { - uint32_t PageStartAddress = CurrAddress; - - if (MemoryType == MEMORY_TYPE_FLASH) - { - boot_page_erase(PageStartAddress); - boot_spm_busy_wait(); - } - - while (BlockSize--) - { - if (MemoryType == MEMORY_TYPE_FLASH) - { - /* If both bytes in current word have been written, increment the address counter */ - if (HighByte) - { - /* Write the next FLASH word to the current FLASH page */ - boot_page_fill(CurrAddress, ((FetchNextCommandByte() << 8) | LowByte)); - - /* Increment the address counter after use */ - CurrAddress += 2; - } - else - { - LowByte = FetchNextCommandByte(); - } - - HighByte = !HighByte; - } - else - { - /* Write the next EEPROM byte from the endpoint */ - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); - - /* Increment the address counter after use */ - CurrAddress += 2; - } - } - - /* If in FLASH programming mode, commit the page after writing */ - if (MemoryType == MEMORY_TYPE_FLASH) - { - /* Commit the flash page to memory */ - boot_page_write(PageStartAddress); - - /* Wait until write operation has completed */ - boot_spm_busy_wait(); - } - - /* Send response byte back to the host */ - WriteNextResponseByte('\r'); - } -} -#endif - -/** Retrieves the next byte from the host in the CDC data OUT endpoint, and clears the endpoint bank if needed - * to allow reception of the next data packet from the host. - * - * \return Next received byte from the host in the CDC data OUT endpoint - */ -static uint8_t FetchNextCommandByte(void) -{ - /* Select the OUT endpoint so that the next data byte can be read */ - Endpoint_SelectEndpoint(CDC_RX_EPADDR); - - /* If OUT endpoint empty, clear it and wait for the next packet from the host */ - while (!(Endpoint_IsReadWriteAllowed())) - { - Endpoint_ClearOUT(); - - while (!(Endpoint_IsOUTReceived())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return 0; - } - } - - /* Fetch the next byte from the OUT endpoint */ - return Endpoint_Read_8(); -} - -/** Writes the next response byte to the CDC data IN endpoint, and sends the endpoint back if needed to free up the - * bank when full ready for the next byte in the packet to the host. - * - * \param[in] Response Next response byte to send to the host - */ -static void WriteNextResponseByte(const uint8_t Response) -{ - /* Select the IN endpoint so that the next data byte can be written */ - Endpoint_SelectEndpoint(CDC_TX_EPADDR); - - /* If IN endpoint full, clear it and wait until ready for the next packet to the host */ - if (!(Endpoint_IsReadWriteAllowed())) - { - Endpoint_ClearIN(); - - while (!(Endpoint_IsINReady())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - } - - /* Write the next byte to the IN endpoint */ - Endpoint_Write_8(Response); -} - -/** Task to read in AVR109 commands from the CDC data OUT endpoint, process them, perform the required actions - * and send the appropriate response back to the host. - */ -static void CDC_Task(void) -{ - /* Select the OUT endpoint */ - Endpoint_SelectEndpoint(CDC_RX_EPADDR); - - /* Check if endpoint has a command in it sent from the host */ - if (!(Endpoint_IsOUTReceived())) - return; - - /* Read in the bootloader command (first byte sent from host) */ - uint8_t Command = FetchNextCommandByte(); - - if (Command == AVR109_COMMAND_ExitBootloader) - { - RunBootloader = false; - - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - else if ((Command == AVR109_COMMAND_SetLED) || (Command == AVR109_COMMAND_ClearLED) || - (Command == AVR109_COMMAND_SelectDeviceType)) - { - FetchNextCommandByte(); - - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - else if ((Command == AVR109_COMMAND_EnterProgrammingMode) || (Command == AVR109_COMMAND_LeaveProgrammingMode)) - { - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - else if (Command == AVR109_COMMAND_ReadPartCode) - { - /* Return ATMEGA128 part code - this is only to allow AVRProg to use the bootloader */ - WriteNextResponseByte(0x44); - WriteNextResponseByte(0x00); - } - else if (Command == AVR109_COMMAND_ReadAutoAddressIncrement) - { - /* Indicate auto-address increment is supported */ - WriteNextResponseByte('Y'); - } - else if (Command == AVR109_COMMAND_SetCurrentAddress) - { - /* Set the current address to that given by the host (translate 16-bit word address to byte address) */ - CurrAddress = (FetchNextCommandByte() << 9); - CurrAddress |= (FetchNextCommandByte() << 1); - - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - else if (Command == AVR109_COMMAND_ReadBootloaderInterface) - { - /* Indicate serial programmer back to the host */ - WriteNextResponseByte('S'); - } - else if (Command == AVR109_COMMAND_ReadBootloaderIdentifier) - { - /* Write the 7-byte software identifier to the endpoint */ - for (uint8_t CurrByte = 0; CurrByte < 7; CurrByte++) - WriteNextResponseByte(SOFTWARE_IDENTIFIER[CurrByte]); - } - else if (Command == AVR109_COMMAND_ReadBootloaderSWVersion) - { - WriteNextResponseByte('0' + BOOTLOADER_VERSION_MAJOR); - WriteNextResponseByte('0' + BOOTLOADER_VERSION_MINOR); - } - else if (Command == AVR109_COMMAND_ReadSignature) - { - WriteNextResponseByte(AVR_SIGNATURE_3); - WriteNextResponseByte(AVR_SIGNATURE_2); - WriteNextResponseByte(AVR_SIGNATURE_1); - } - else if (Command == AVR109_COMMAND_EraseFLASH) - { - /* Clear the application section of flash */ - for (uint32_t CurrFlashAddress = 0; CurrFlashAddress < (uint32_t)BOOT_START_ADDR; CurrFlashAddress += SPM_PAGESIZE) - { - boot_page_erase(CurrFlashAddress); - boot_spm_busy_wait(); - boot_page_write(CurrFlashAddress); - boot_spm_busy_wait(); - } - - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - #if !defined(NO_LOCK_BYTE_WRITE_SUPPORT) - else if (Command == AVR109_COMMAND_WriteLockbits) - { - /* Set the lock bits to those given by the host */ - boot_lock_bits_set(FetchNextCommandByte()); - - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - #endif - else if (Command == AVR109_COMMAND_ReadLockbits) - { - WriteNextResponseByte(boot_lock_fuse_bits_get(GET_LOCK_BITS)); - } - else if (Command == AVR109_COMMAND_ReadLowFuses) - { - WriteNextResponseByte(boot_lock_fuse_bits_get(GET_LOW_FUSE_BITS)); - } - else if (Command == AVR109_COMMAND_ReadHighFuses) - { - WriteNextResponseByte(boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS)); - } - else if (Command == AVR109_COMMAND_ReadExtendedFuses) - { - WriteNextResponseByte(boot_lock_fuse_bits_get(GET_EXTENDED_FUSE_BITS)); - } - #if !defined(NO_BLOCK_SUPPORT) - else if (Command == AVR109_COMMAND_GetBlockWriteSupport) - { - WriteNextResponseByte('Y'); - - /* Send block size to the host */ - WriteNextResponseByte(SPM_PAGESIZE >> 8); - WriteNextResponseByte(SPM_PAGESIZE & 0xFF); - } - else if ((Command == AVR109_COMMAND_BlockWrite) || (Command == AVR109_COMMAND_BlockRead)) - { - /* Delegate the block write/read to a separate function for clarity */ - ReadWriteMemoryBlock(Command); - } - #endif - #if !defined(NO_FLASH_BYTE_SUPPORT) - else if (Command == AVR109_COMMAND_FillFlashPageWordHigh) - { - /* Write the high byte to the current flash page */ - boot_page_fill(CurrAddress, FetchNextCommandByte()); - - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - else if (Command == AVR109_COMMAND_FillFlashPageWordLow) - { - /* Write the low byte to the current flash page */ - boot_page_fill(CurrAddress | 0x01, FetchNextCommandByte()); - - /* Increment the address */ - CurrAddress += 2; - - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - else if (Command == AVR109_COMMAND_WriteFlashPage) - { - /* Commit the flash page to memory */ - boot_page_write(CurrAddress); - - /* Wait until write operation has completed */ - boot_spm_busy_wait(); - - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - else if (Command == AVR109_COMMAND_ReadFLASHWord) - { - #if (FLASHEND > 0xFFFF) - uint16_t ProgramWord = pgm_read_word_far(CurrAddress); - #else - uint16_t ProgramWord = pgm_read_word(CurrAddress); - #endif - - WriteNextResponseByte(ProgramWord >> 8); - WriteNextResponseByte(ProgramWord & 0xFF); - } - #endif - #if !defined(NO_EEPROM_BYTE_SUPPORT) - else if (Command == AVR109_COMMAND_WriteEEPROM) - { - /* Read the byte from the endpoint and write it to the EEPROM */ - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); - - /* Increment the address after use */ - CurrAddress += 2; - - /* Send confirmation byte back to the host */ - WriteNextResponseByte('\r'); - } - else if (Command == AVR109_COMMAND_ReadEEPROM) - { - /* Read the EEPROM byte and write it to the endpoint */ - WriteNextResponseByte(eeprom_read_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)))); - - /* Increment the address after use */ - CurrAddress += 2; - } - #endif - else if (Command != AVR109_COMMAND_Sync) - { - /* Unknown (non-sync) command, return fail code */ - WriteNextResponseByte('?'); - } - - /* Select the IN endpoint */ - Endpoint_SelectEndpoint(CDC_TX_EPADDR); - - /* Remember if the endpoint is completely full before clearing it */ - bool IsEndpointFull = !(Endpoint_IsReadWriteAllowed()); - - /* Send the endpoint data to the host */ - Endpoint_ClearIN(); - - /* If a full endpoint's worth of data was sent, we need to send an empty packet afterwards to signal end of transfer */ - if (IsEndpointFull) - { - while (!(Endpoint_IsINReady())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - - Endpoint_ClearIN(); - } - - /* Wait until the data has been sent to the host */ - while (!(Endpoint_IsINReady())) - { - if (USB_DeviceState == DEVICE_STATE_Unattached) - return; - } - - /* Select the OUT endpoint */ - Endpoint_SelectEndpoint(CDC_RX_EPADDR); - - /* Acknowledge the command from the host */ - Endpoint_ClearOUT(); -} - diff --git a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.h b/lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.h deleted file mode 100644 index 9b326ab..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for BootloaderCDC.c. - */ - -#ifndef _CDC_H_ -#define _CDC_H_ - - /* Includes: */ - #include - #include - #include - #include - #include - #include - #include - - #include "Descriptors.h" - #include "BootloaderAPI.h" - #include "Config/AppConfig.h" - - #include - #include - #include - - /* Preprocessor Checks: */ - #if !defined(__OPTIMIZE_SIZE__) - #error This bootloader requires that it be optimized for size, not speed, to fit into the target device. Change optimization settings and try again. - #endif - - /* Macros: */ - /** Version major of the CDC bootloader. */ - #define BOOTLOADER_VERSION_MAJOR 0x01 - - /** Version minor of the CDC bootloader. */ - #define BOOTLOADER_VERSION_MINOR 0x00 - - /** Hardware version major of the CDC bootloader. */ - #define BOOTLOADER_HWVERSION_MAJOR 0x01 - - /** Hardware version minor of the CDC bootloader. */ - #define BOOTLOADER_HWVERSION_MINOR 0x00 - - /** Eight character bootloader firmware identifier reported to the host when requested. */ - #define SOFTWARE_IDENTIFIER "LUFACDC" - - /** Magic bootloader key to unlock forced application start mode. */ - #define MAGIC_BOOT_KEY 0xDC42 - - /* Enums: */ - /** Possible memory types that can be addressed via the bootloader. */ - enum AVR109_Memories - { - MEMORY_TYPE_FLASH = 'F', - MEMORY_TYPE_EEPROM = 'E', - }; - - /** Possible commands that can be issued to the bootloader. */ - enum AVR109_Commands - { - AVR109_COMMAND_Sync = 27, - AVR109_COMMAND_ReadEEPROM = 'd', - AVR109_COMMAND_WriteEEPROM = 'D', - AVR109_COMMAND_ReadFLASHWord = 'R', - AVR109_COMMAND_WriteFlashPage = 'm', - AVR109_COMMAND_FillFlashPageWordLow = 'c', - AVR109_COMMAND_FillFlashPageWordHigh = 'C', - AVR109_COMMAND_GetBlockWriteSupport = 'b', - AVR109_COMMAND_BlockWrite = 'B', - AVR109_COMMAND_BlockRead = 'g', - AVR109_COMMAND_ReadExtendedFuses = 'Q', - AVR109_COMMAND_ReadHighFuses = 'N', - AVR109_COMMAND_ReadLowFuses = 'F', - AVR109_COMMAND_ReadLockbits = 'r', - AVR109_COMMAND_WriteLockbits = 'l', - AVR109_COMMAND_EraseFLASH = 'e', - AVR109_COMMAND_ReadSignature = 's', - AVR109_COMMAND_ReadBootloaderSWVersion = 'V', - AVR109_COMMAND_ReadBootloaderHWVersion = 'v', - AVR109_COMMAND_ReadBootloaderIdentifier = 'S', - AVR109_COMMAND_ReadBootloaderInterface = 'p', - AVR109_COMMAND_SetCurrentAddress = 'A', - AVR109_COMMAND_ReadAutoAddressIncrement = 'a', - AVR109_COMMAND_ReadPartCode = 't', - AVR109_COMMAND_EnterProgrammingMode = 'P', - AVR109_COMMAND_LeaveProgrammingMode = 'L', - AVR109_COMMAND_SelectDeviceType = 'T', - AVR109_COMMAND_SetLED = 'x', - AVR109_COMMAND_ClearLED = 'y', - AVR109_COMMAND_ExitBootloader = 'E', - }; - - /* Type Defines: */ - /** Type define for a non-returning pointer to the start of the loaded application in flash memory. */ - typedef void (*AppPtr_t)(void) ATTR_NO_RETURN; - - /* Function Prototypes: */ - static void CDC_Task(void); - static void SetupHardware(void); - - void Application_Jump_Check(void) ATTR_INIT_SECTION(3); - - void EVENT_USB_Device_ConfigurationChanged(void); - - #if defined(INCLUDE_FROM_BOOTLOADERCDC_C) || defined(__DOXYGEN__) - #if !defined(NO_BLOCK_SUPPORT) - static void ReadWriteMemoryBlock(const uint8_t Command); - #endif - static uint8_t FetchNextCommandByte(void); - static void WriteNextResponseByte(const uint8_t Response); - #endif - -#endif - diff --git a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.txt b/lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.txt deleted file mode 100644 index 1e054de..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/BootloaderCDC.txt +++ /dev/null @@ -1,224 +0,0 @@ -/** \file - * - * This file contains special DoxyGen information for the generation of the main page and other special - * documentation pages. It is not a project source file. - */ - -/** \mainpage CDC Class USB AVR Bootloader - * - * \section Sec_Compat Demo Compatibility: - * - * The following list indicates what microcontrollers are compatible with this demo. - * - * \li Series 7 USB AVRs (AT90USBxxx7) - * \li Series 6 USB AVRs (AT90USBxxx6) - * \li Series 4 USB AVRs (ATMEGAxxU4) - * \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2) - * - * \section Sec_Info USB Information: - * - * The following table gives a rundown of the USB utilization of this demo. - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
USB Mode:Device
USB Class:Communications Device Class (CDC)
USB Subclass:Abstract Control Model (ACM)
Relevant Standards:USBIF CDC Class Standard
Supported USB Speeds:Full Speed Mode
- * - * \section Sec_Description Project Description: - * - * This bootloader enumerates to the host as a CDC Class device (virtual serial port), allowing for AVR109 - * protocol compatible programming software to load firmware onto the AVR. - * - * Out of the box this bootloader builds for the AT90USB1287 with an 8KB bootloader section size, and will fit - * into 4KB of bootloader space. If you wish to alter this size and/or change the AVR model, you will need to - * edit the MCU, FLASH_SIZE_KB and BOOT_SECTION_SIZE_KB values in the accompanying makefile. - * - * When the bootloader is running, the board's LED(s) will flash at regular intervals to distinguish the - * bootloader from the normal user application. - * - * \warning THIS BOOTLOADER IS NOT SECURE. Malicious entities can recover written data, even if the device - * lockbits are set. - * - * \section Sec_Installation Driver Installation - * - * After running this bootloader for the first time on a new computer, you will need to supply the .INF - * file located in this bootloader project's directory as the device's driver when running under Windows. - * This will enable Windows to use its inbuilt CDC drivers, negating the need for custom drivers for the - * device. Other Operating Systems should automatically use their own inbuilt CDC-ACM drivers. - * - * \section Sec_HostApp Host Controller Application - * - * This bootloader is compatible with the open source application AVRDUDE, Atmel's AVRPROG, or other - * applications implementing the AVR109 protocol, which is documented on the Atmel website as an application - * note. - * - * \subsection SSec_AVRDude AVRDUDE (Windows, Mac, Linux) - * - * AVRDude is a free, cross-platform and open source command line programmer for Atmel and third party AVR - * programmers. It is available on the the Windows platform as part of the "WinAVR" package, or on other systems - * either from a build from the official source code, or in many distributions as a precompiled binary package. - * - * To load a new HEX file with AVRDude, specify "AVR109" as the programmer, with the allocated COM port. On Windows - * platforms this will be a COMx port name: - * \code - * avrdude -c AVR109 -p at90usb1287 -P COM0 -U flash:w:Mouse.hex - * \endcode - * - * On Linux systems, this will typically be a /dev/ttyACMx port name: - * \code - * avrdude -c AVR109 -p at90usb1287 -P /dev/ttyACM0 -U flash:w:Mouse.hex - * \endcode - * - * Refer to the AVRDude project documentation for additional usage instructions. - * - * \section Sec_API User Application API - * - * Several user application functions for FLASH and other special memory area manipulations are exposed by the bootloader, - * allowing the user application to call into the bootloader at runtime to read and write FLASH data. - * - * By default, the bootloader API jump table is located 32 bytes from the end of the device's FLASH memory, and follows the - * following layout: - * - * \code - * #define BOOTLOADER_API_TABLE_SIZE 32 - * #define BOOTLOADER_API_TABLE_START ((FLASHEND + 1UL) - BOOTLOADER_API_TABLE_SIZE) - * #define BOOTLOADER_API_CALL(Index) (void*)((BOOTLOADER_API_TABLE_START + (Index * 2)) / 2) - * - * void (*BootloaderAPI_ErasePage)(uint32_t Address) = BOOTLOADER_API_CALL(0); - * void (*BootloaderAPI_WritePage)(uint32_t Address) = BOOTLOADER_API_CALL(1); - * void (*BootloaderAPI_FillWord)(uint32_t Address, uint16_t Word) = BOOTLOADER_API_CALL(2); - * uint8_t (*BootloaderAPI_ReadSignature)(uint16_t Address) = BOOTLOADER_API_CALL(3); - * uint8_t (*BootloaderAPI_ReadFuse)(uint16_t Address) = BOOTLOADER_API_CALL(4); - * uint8_t (*BootloaderAPI_ReadLock)(void) = BOOTLOADER_API_CALL(5); - * void (*BootloaderAPI_WriteLock)(uint8_t LockBits) = BOOTLOADER_API_CALL(6); - * - * #define BOOTLOADER_MAGIC_SIGNATURE_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 2)) - * #define BOOTLOADER_MAGIC_SIGNATURE 0xDCFB - * - * #define BOOTLOADER_CLASS_SIGNATURE_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 4)) - * #define BOOTLOADER_CDC_SIGNATURE 0xDF00 - * - * #define BOOTLOADER_ADDRESS_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 8)) - * #define BOOTLOADER_ADDRESS_LENGTH 4 - * \endcode - * - * From the application the API support of the bootloader can be detected by reading the FLASH memory bytes located at address - * \c BOOTLOADER_MAGIC_SIGNATURE_START and comparing them to the value \c BOOTLOADER_MAGIC_SIGNATURE. The class of bootloader - * can be determined by reading the FLASH memory bytes located at address \c BOOTLOADER_CLASS_SIGNATURE_START and comparing them - * to the value \c BOOTLOADER_CDC_SIGNATURE. The start address of the bootloader can be retrieved by reading the bytes of FLASH - * memory starting from address \c BOOTLOADER_ADDRESS_START. - * - * \subsection SSec_API_MemLayout Device Memory Map - * The following illustration indicates the final memory map of the device when loaded with the bootloader. - * - * \verbatim - * +----------------------------+ 0x0000 - * | | - * | | - * | | - * | | - * | | - * | | - * | | - * | | - * | User Application | - * | | - * | | - * | | - * | | - * | | - * | | - * | | - * +----------------------------+ FLASHEND - BOOT_SECTION_SIZE - * | | - * | Bootloader Application | - * | (Not User App. Accessible) | - * | | - * +----------------------------+ FLASHEND - 96 - * | API Table Trampolines | - * | (Not User App. Accessible) | - * +----------------------------+ FLASHEND - 32 - * | Bootloader API Table | - * | (User App. Accessible) | - * +----------------------------+ FLASHEND - 8 - * | Bootloader ID Constants | - * | (User App. Accessible) | - * +----------------------------+ FLASHEND - * \endverbatim - * - * \section Sec_KnownIssues Known Issues: - * - * \par On Linux machines, the CDC bootloader is unstable or inaccessible. - * A change to the \c ModemManager module in many Linux distributions causes - * this module to try to take control over inserted CDC devices, corrupting the - * datastream. A UDEV rule is required to prevent this. - * See here for resolution steps. - * If the issue still persists then uninstall modemmanager by executing sudo apt-get remove modemmanager, or - * the equivalent using your chosen distribution's package manager. - * - * \par On Linux machines, the CDC bootloader is inaccessible. - * On many Linux systems, non-root users do not have automatic access to newly - * inserted CDC devices. Root privileges or a UDEV rule is required to gain - * access. - * See here for resolution steps. - * - * \par After loading an application, it is not run automatically on startup. - * Some USB AVR boards ship with the BOOTRST fuse set, causing the bootloader - * to run automatically when the device is reset. In most cases, the BOOTRST - * fuse should be disabled and the HWBE fuse used instead to run the bootloader - * when needed. - * - * \section Sec_Options Project Options - * - * The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value. - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
Define Name:Location:Description:
NO_BLOCK_SUPPORTAppConfig.hDefine to disable memory block read/write support in the bootloader, requiring all reads and writes to be made - * using the byte-level commands.
NO_EEPROM_BYTE_SUPPORTAppConfig.hDefine to disable EEPROM memory byte read/write support in the bootloader, requiring all EEPROM reads and writes - * to be made using the block-level commands.
NO_FLASH_BYTE_SUPPORTAppConfig.hDefine to disable FLASH memory byte read/write support in the bootloader, requiring all FLASH reads and writes - * to be made using the block-level commands.
NO_LOCK_BYTE_WRITE_SUPPORTAppConfig.hDefine to disable lock byte write support in the bootloader, preventing the lock bits from being set programmatically.
- */ - diff --git a/lufa-LUFA-140302/Bootloaders/CDC/Config/AppConfig.h b/lufa-LUFA-140302/Bootloaders/CDC/Config/AppConfig.h deleted file mode 100644 index bbb5cb2..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/Config/AppConfig.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * \brief Application Configuration Header File - * - * This is a header file which is be used to configure LUFA's - * compile time options, as an alternative to the compile time - * constants supplied through a makefile. - * - * For information on what each token does, refer to the - * \ref Sec_Options section of the application documentation. - */ - -#ifndef _APP_CONFIG_H_ -#define _APP_CONFIG_H_ - -// #define NO_BLOCK_SUPPORT -// #define NO_EEPROM_BYTE_SUPPORT -// #define NO_FLASH_BYTE_SUPPORT -// #define NO_LOCK_BYTE_WRITE_SUPPORT - -#endif diff --git a/lufa-LUFA-140302/Bootloaders/CDC/Config/LUFAConfig.h b/lufa-LUFA-140302/Bootloaders/CDC/Config/LUFAConfig.h deleted file mode 100644 index af2dd30..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/Config/LUFAConfig.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * \brief LUFA Library Configuration Header File - * - * This header file is used to configure LUFA's compile time options, - * as an alternative to the compile time constants supplied through - * a makefile. - * - * For information on what each token does, refer to the LUFA - * manual section "Summary of Compile Tokens". - */ - -#ifndef _LUFA_CONFIG_H_ -#define _LUFA_CONFIG_H_ - - #if (ARCH == ARCH_AVR8) - - /* Non-USB Related Configuration Tokens: */ -// #define DISABLE_TERMINAL_CODES - - /* USB Class Driver Related Tokens: */ -// #define HID_HOST_BOOT_PROTOCOL_ONLY -// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here} -// #define HID_USAGE_STACK_DEPTH {Insert Value Here} -// #define HID_MAX_COLLECTIONS {Insert Value Here} -// #define HID_MAX_REPORTITEMS {Insert Value Here} -// #define HID_MAX_REPORT_IDS {Insert Value Here} -// #define NO_CLASS_DRIVER_AUTOFLUSH - - /* General USB Driver Related Tokens: */ - #define ORDERED_EP_CONFIG - #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL) - #define USB_DEVICE_ONLY -// #define USB_HOST_ONLY -// #define USB_STREAM_TIMEOUT_MS {Insert Value Here} -// #define NO_LIMITED_CONTROLLER_CONNECT - #define NO_SOF_EVENTS - - /* USB Device Mode Driver Related Tokens: */ - #define USE_RAM_DESCRIPTORS -// #define USE_FLASH_DESCRIPTORS -// #define USE_EEPROM_DESCRIPTORS - #define NO_INTERNAL_SERIAL - #define FIXED_CONTROL_ENDPOINT_SIZE 8 - #define DEVICE_STATE_AS_GPIOR 0 - #define FIXED_NUM_CONFIGURATIONS 1 -// #define CONTROL_ONLY_DEVICE -// #define INTERRUPT_CONTROL_ENDPOINT - #define NO_DEVICE_REMOTE_WAKEUP - #define NO_DEVICE_SELF_POWER - - /* USB Host Mode Driver Related Tokens: */ -// #define HOST_STATE_AS_GPIOR {Insert Value Here} -// #define USB_HOST_TIMEOUT_MS {Insert Value Here} -// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here} -// #define NO_AUTO_VBUS_MANAGEMENT -// #define INVERTED_VBUS_ENABLE_LINE - - #else - - #error Unsupported architecture for this LUFA configuration file. - - #endif -#endif diff --git a/lufa-LUFA-140302/Bootloaders/CDC/Descriptors.c b/lufa-LUFA-140302/Bootloaders/CDC/Descriptors.c deleted file mode 100644 index 2ff6b50..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/Descriptors.c +++ /dev/null @@ -1,244 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * USB Device Descriptors, for library use when in USB device mode. Descriptors are special - * computer-readable structures which the host requests upon device enumeration, to determine - * the device's capabilities and functions. - */ - -#include "Descriptors.h" - -/** Device descriptor structure. This descriptor, located in SRAM memory, describes the overall - * device characteristics, including the supported USB version, control endpoint size and the - * number of device configurations. The descriptor is read out by the USB host when the enumeration - * process begins. - */ -const USB_Descriptor_Device_t DeviceDescriptor = -{ - .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, - - .USBSpecification = VERSION_BCD(1,1,0), - .Class = CDC_CSCP_CDCClass, - .SubClass = CDC_CSCP_NoSpecificSubclass, - .Protocol = CDC_CSCP_NoSpecificProtocol, - - .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, - - .VendorID = 0x03EB, - .ProductID = 0x204A, - .ReleaseNumber = VERSION_BCD(1,0,0), - - .ManufacturerStrIndex = STRING_ID_Manufacturer, - .ProductStrIndex = STRING_ID_Product, - .SerialNumStrIndex = NO_DESCRIPTOR, - - .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS -}; - -/** Configuration descriptor structure. This descriptor, located in SRAM memory, describes the usage - * of the device in one of its supported configurations, including information about any device interfaces - * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting - * a configuration so that the host may correctly communicate with the USB device. - */ -const USB_Descriptor_Configuration_t ConfigurationDescriptor = -{ - .Config = - { - .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, - - .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), - .TotalInterfaces = 2, - - .ConfigurationNumber = 1, - .ConfigurationStrIndex = NO_DESCRIPTOR, - - .ConfigAttributes = USB_CONFIG_ATTR_RESERVED, - - .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) - }, - - .CDC_CCI_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = INTERFACE_ID_CDC_CCI, - .AlternateSetting = 0, - - .TotalEndpoints = 1, - - .Class = CDC_CSCP_CDCClass, - .SubClass = CDC_CSCP_ACMSubclass, - .Protocol = CDC_CSCP_ATCommandProtocol, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .CDC_Functional_Header = - { - .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalHeader_t), .Type = DTYPE_CSInterface}, - .Subtype = 0x00, - - .CDCSpecification = VERSION_BCD(1,1,0), - }, - - .CDC_Functional_ACM = - { - .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalACM_t), .Type = DTYPE_CSInterface}, - .Subtype = 0x02, - - .Capabilities = 0x02, - }, - - .CDC_Functional_Union = - { - .Header = {.Size = sizeof(USB_CDC_Descriptor_FunctionalUnion_t), .Type = DTYPE_CSInterface}, - .Subtype = 0x06, - - .MasterInterfaceNumber = INTERFACE_ID_CDC_CCI, - .SlaveInterfaceNumber = INTERFACE_ID_CDC_DCI, - }, - - .CDC_NotificationEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = CDC_NOTIFICATION_EPADDR, - .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CDC_NOTIFICATION_EPSIZE, - .PollingIntervalMS = 0xFF - }, - - .CDC_DCI_Interface = - { - .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, - - .InterfaceNumber = INTERFACE_ID_CDC_DCI, - .AlternateSetting = 0, - - .TotalEndpoints = 2, - - .Class = CDC_CSCP_CDCDataClass, - .SubClass = CDC_CSCP_NoDataSubclass, - .Protocol = CDC_CSCP_NoDataProtocol, - - .InterfaceStrIndex = NO_DESCRIPTOR - }, - - .CDC_DataOutEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = CDC_RX_EPADDR, - .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CDC_TXRX_EPSIZE, - .PollingIntervalMS = 0x05 - }, - - .CDC_DataInEndpoint = - { - .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, - - .EndpointAddress = CDC_TX_EPADDR, - .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), - .EndpointSize = CDC_TXRX_EPSIZE, - .PollingIntervalMS = 0x05 - } -}; - -/** Language descriptor structure. This descriptor, located in SRAM memory, is returned when the host requests - * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate - * via the language ID table available at USB.org what languages the device supports for its string descriptors. - */ -const USB_Descriptor_String_t LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGUAGE_ID_ENG); - -/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable - * form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device - * Descriptor. - */ -const USB_Descriptor_String_t ManufacturerString = USB_STRING_DESCRIPTOR(L"Dean Camera"); - -/** Product descriptor string. This is a Unicode string containing the product's details in human readable form, - * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device - * Descriptor. - */ -const USB_Descriptor_String_t ProductString = USB_STRING_DESCRIPTOR(L"LUFA CDC"); - -/** This function is called by the library when in device mode, and must be overridden (see LUFA library "USB Descriptors" - * documentation) by the application code so that the address and size of a requested descriptor can be given - * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function - * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the - * USB host. - */ -uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - const void** const DescriptorAddress) -{ - const uint8_t DescriptorType = (wValue >> 8); - const uint8_t DescriptorNumber = (wValue & 0xFF); - - const void* Address = NULL; - uint16_t Size = NO_DESCRIPTOR; - - switch (DescriptorType) - { - case DTYPE_Device: - Address = &DeviceDescriptor; - Size = sizeof(USB_Descriptor_Device_t); - break; - case DTYPE_Configuration: - Address = &ConfigurationDescriptor; - Size = sizeof(USB_Descriptor_Configuration_t); - break; - case DTYPE_String: - if (DescriptorNumber == STRING_ID_Language) - { - Address = &LanguageString; - Size = LanguageString.Header.Size; - } - else if (DescriptorNumber == STRING_ID_Manufacturer) - { - Address = &ManufacturerString; - Size = ManufacturerString.Header.Size; - } - else if (DescriptorNumber == STRING_ID_Product) - { - Address = &ProductString; - Size = ProductString.Header.Size; - } - - break; - } - - *DescriptorAddress = Address; - return Size; -} - diff --git a/lufa-LUFA-140302/Bootloaders/CDC/Descriptors.h b/lufa-LUFA-140302/Bootloaders/CDC/Descriptors.h deleted file mode 100644 index ef04379..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/Descriptors.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2014. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/** \file - * - * Header file for Descriptors.c. - */ - -#ifndef _DESCRIPTORS_H_ -#define _DESCRIPTORS_H_ - - /* Includes: */ - #include - - #include "Config/AppConfig.h" - - /* Macros: */ - #if defined(__AVR_AT90USB1287__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x97 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB647__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x96 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB1286__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x97 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_AT90USB646__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x96 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_ATmega32U4__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x95 - #define AVR_SIGNATURE_3 0x87 - #elif defined(__AVR_ATmega16U4__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x88 - #elif defined(__AVR_ATmega32U2__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x95 - #define AVR_SIGNATURE_3 0x8A - #elif defined(__AVR_ATmega16U2__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x89 - #elif defined(__AVR_AT90USB162__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x82 - #elif defined(__AVR_ATmega8U2__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x93 - #define AVR_SIGNATURE_3 0x89 - #elif defined(__AVR_AT90USB82__) - #define AVR_SIGNATURE_1 0x1E - #define AVR_SIGNATURE_2 0x94 - #define AVR_SIGNATURE_3 0x82 - #else - #error The selected AVR part is not currently supported by this bootloader. - #endif - - /** Endpoint address for the CDC control interface event notification endpoint. */ - #define CDC_NOTIFICATION_EPADDR (ENDPOINT_DIR_IN | 2) - - /** Endpoint address for the CDC data interface TX (data IN) endpoint. */ - #define CDC_TX_EPADDR (ENDPOINT_DIR_IN | 3) - - /** Endpoint address for the CDC data interface RX (data OUT) endpoint. */ - #define CDC_RX_EPADDR (ENDPOINT_DIR_OUT | 4) - - /** Size of the CDC data interface TX and RX data endpoint banks, in bytes. */ - #define CDC_TXRX_EPSIZE 16 - - /** Size of the CDC control interface notification endpoint bank, in bytes. */ - #define CDC_NOTIFICATION_EPSIZE 8 - - /* Type Defines: */ - /** Type define for the device configuration descriptor structure. This must be defined in the - * application code, as the configuration descriptor contains several sub-descriptors which - * vary between devices, and which describe the device's usage to the host. - */ - typedef struct - { - USB_Descriptor_Configuration_Header_t Config; - - // CDC Control Interface - USB_Descriptor_Interface_t CDC_CCI_Interface; - USB_CDC_Descriptor_FunctionalHeader_t CDC_Functional_Header; - USB_CDC_Descriptor_FunctionalACM_t CDC_Functional_ACM; - USB_CDC_Descriptor_FunctionalUnion_t CDC_Functional_Union; - USB_Descriptor_Endpoint_t CDC_NotificationEndpoint; - - // CDC Data Interface - USB_Descriptor_Interface_t CDC_DCI_Interface; - USB_Descriptor_Endpoint_t CDC_DataOutEndpoint; - USB_Descriptor_Endpoint_t CDC_DataInEndpoint; - } USB_Descriptor_Configuration_t; - - /** Enum for the device interface descriptor IDs within the device. Each interface descriptor - * should have a unique ID index associated with it, which can be used to refer to the - * interface from other descriptors. - */ - enum InterfaceDescriptors_t - { - INTERFACE_ID_CDC_CCI = 0, /**< CDC CCI interface descriptor ID */ - INTERFACE_ID_CDC_DCI = 1, /**< CDC DCI interface descriptor ID */ - }; - - /** Enum for the device string descriptor IDs within the device. Each string descriptor should - * have a unique ID index associated with it, which can be used to refer to the string from - * other descriptors. - */ - enum StringDescriptors_t - { - STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */ - STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */ - STRING_ID_Product = 2, /**< Product string ID */ - }; - - /* Function Prototypes: */ - uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, - const uint8_t wIndex, - const void** const DescriptorAddress) - ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); - -#endif - diff --git a/lufa-LUFA-140302/Bootloaders/CDC/LUFA CDC Bootloader.inf b/lufa-LUFA-140302/Bootloaders/CDC/LUFA CDC Bootloader.inf deleted file mode 100644 index 61624c7..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/LUFA CDC Bootloader.inf +++ /dev/null @@ -1,66 +0,0 @@ -;************************************************************ -; Windows USB CDC ACM Setup File -; Copyright (c) 2000 Microsoft Corporation -;************************************************************ - -[DefaultInstall] -CopyINF="LUFA CDC Bootloader.inf" - -[Version] -Signature="$Windows NT$" -Class=Ports -ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} -Provider=%MFGNAME% -DriverVer=7/1/2012,10.0.0.0 - -[Manufacturer] -%MFGNAME%=DeviceList, NTx86, NTamd64, NTia64 - -[SourceDisksNames] - -[SourceDisksFiles] - -[DestinationDirs] -DefaultDestDir=12 - -[DriverInstall] -Include=mdmcpq.inf -CopyFiles=FakeModemCopyFileSection -AddReg=DriverInstall.AddReg - -[DriverInstall.Services] -Include=mdmcpq.inf -AddService=usbser, 0x00000002, LowerFilter_Service_Inst - -[DriverInstall.AddReg] -HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider" - -;------------------------------------------------------------------------------ -; Vendor and Product ID Definitions -;------------------------------------------------------------------------------ -; When developing your USB device, the VID and PID used in the PC side -; application program and the firmware on the microcontroller must match. -; Modify the below line to use your VID and PID. Use the format as shown below. -; Note: One INF file can be used for multiple devices with different VID and PIDs. -; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line. -;------------------------------------------------------------------------------ -[DeviceList] -%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204A - -[DeviceList.NTx86] -%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204A - -[DeviceList.NTamd64] -%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204A - -[DeviceList.NTia64] -%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204A - -;------------------------------------------------------------------------------ -; String Definitions -;------------------------------------------------------------------------------ -;Modify these strings to customize your device -;------------------------------------------------------------------------------ -[Strings] -MFGNAME="http://www.lufa-lib.org" -DESCRIPTION="LUFA CDC Class Bootloader" diff --git a/lufa-LUFA-140302/Bootloaders/CDC/asf.xml b/lufa-LUFA-140302/Bootloaders/CDC/asf.xml deleted file mode 100644 index 02e7063..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/asf.xml +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CDC Class Bootloader, capable of reprogramming a device using avrdude or other AVR109 protocol compliant software when plugged into a host. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lufa-LUFA-140302/Bootloaders/CDC/doxyfile b/lufa-LUFA-140302/Bootloaders/CDC/doxyfile deleted file mode 100644 index 5419c45..0000000 --- a/lufa-LUFA-140302/Bootloaders/CDC/doxyfile +++ /dev/null @@ -1,2337 +0,0 @@ -# Doxyfile 1.8.6 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "LUFA Library - CDC Class Bootloader" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = ./Documentation/ - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = YES - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a -# new page for each member. If set to NO, the documentation of a member will be -# part of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. -# -# Note For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = NO - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO these classes will be included in the various overviews. This option has -# no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. -# The default value is: YES. - -GENERATE_TODOLIST = NO - -# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the -# test list. This list is created by putting \test commands in the -# documentation. -# The default value is: YES. - -GENERATE_TESTLIST = NO - -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = NO - -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = YES - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = YES - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. -# Note: If this tag is empty the current directory is searched. - -INPUT = ./ - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank the -# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, -# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, -# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. - -FILE_PATTERNS = *.h \ - *.c \ - *.txt - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = Documentation/ - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = __* \ - INCLUDE_FROM_* - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = NO - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = NO - -# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more acurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# compiled with the --with-libclang option. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = YES - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler ( hhc.exe). If non-empty -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = YES - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = YES - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = YES - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 1 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /