AppConfigHeaders: Merge in latest trunk.
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 27 May 2012 16:48:19 +0000 (16:48 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 27 May 2012 16:48:19 +0000 (16:48 +0000)
404 files changed:
Bootloaders/CDC/BootloaderAPI.h
Bootloaders/CDC/BootloaderCDC.h
Bootloaders/CDC/BootloaderCDC.txt
Bootloaders/CDC/Config/AppConfig.h [new file with mode: 0644]
Bootloaders/CDC/Config/LUFAConfig.h [new file with mode: 0644]
Bootloaders/CDC/Descriptors.h
Bootloaders/CDC/makefile
Bootloaders/DFU/BootloaderAPI.h
Bootloaders/DFU/BootloaderDFU.h
Bootloaders/DFU/BootloaderDFU.txt
Bootloaders/DFU/Config/AppConfig.h [new file with mode: 0644]
Bootloaders/DFU/Config/LUFAConfig.h [new file with mode: 0644]
Bootloaders/DFU/Descriptors.h
Bootloaders/DFU/makefile
Bootloaders/HID/Config/LUFAConfig.h [new file with mode: 0644]
Bootloaders/HID/makefile
Demos/Device/ClassDriver/AudioInput/AudioInput.c
Demos/Device/ClassDriver/AudioInput/AudioInput.h
Demos/Device/ClassDriver/AudioInput/AudioInput.txt
Demos/Device/ClassDriver/AudioInput/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/AudioInput/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/AudioInput/Descriptors.h
Demos/Device/ClassDriver/AudioInput/makefile
Demos/Device/ClassDriver/AudioOutput/AudioOutput.h
Demos/Device/ClassDriver/AudioOutput/AudioOutput.txt
Demos/Device/ClassDriver/AudioOutput/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/AudioOutput/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/AudioOutput/Descriptors.h
Demos/Device/ClassDriver/AudioOutput/makefile
Demos/Device/ClassDriver/DualVirtualSerial/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/DualVirtualSerial/Descriptors.c
Demos/Device/ClassDriver/DualVirtualSerial/DualVirtualSerial.h
Demos/Device/ClassDriver/DualVirtualSerial/makefile
Demos/Device/ClassDriver/GenericHID/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/GenericHID/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/GenericHID/Descriptors.h
Demos/Device/ClassDriver/GenericHID/GenericHID.h
Demos/Device/ClassDriver/GenericHID/GenericHID.txt
Demos/Device/ClassDriver/GenericHID/makefile
Demos/Device/ClassDriver/Joystick/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/Joystick/Joystick.h
Demos/Device/ClassDriver/Joystick/makefile
Demos/Device/ClassDriver/Keyboard/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/Keyboard/Keyboard.h
Demos/Device/ClassDriver/Keyboard/makefile
Demos/Device/ClassDriver/KeyboardMouse/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/KeyboardMouse/KeyboardMouse.h
Demos/Device/ClassDriver/KeyboardMouse/makefile
Demos/Device/ClassDriver/KeyboardMouseMultiReport/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/KeyboardMouseMultiReport/KeyboardMouseMultiReport.h
Demos/Device/ClassDriver/KeyboardMouseMultiReport/makefile
Demos/Device/ClassDriver/MIDI/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/MIDI/MIDI.h
Demos/Device/ClassDriver/MIDI/makefile
Demos/Device/ClassDriver/MassStorage/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/MassStorage/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/MassStorage/Descriptors.c
Demos/Device/ClassDriver/MassStorage/Descriptors.h
Demos/Device/ClassDriver/MassStorage/Lib/DataflashManager.h
Demos/Device/ClassDriver/MassStorage/Lib/SCSI.h
Demos/Device/ClassDriver/MassStorage/MassStorage.h
Demos/Device/ClassDriver/MassStorage/MassStorage.txt
Demos/Device/ClassDriver/MassStorage/makefile
Demos/Device/ClassDriver/MassStorageKeyboard/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/MassStorageKeyboard/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.h
Demos/Device/ClassDriver/MassStorageKeyboard/Lib/DataflashManager.h
Demos/Device/ClassDriver/MassStorageKeyboard/Lib/SCSI.h
Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.h
Demos/Device/ClassDriver/MassStorageKeyboard/MassStorageKeyboard.txt
Demos/Device/ClassDriver/MassStorageKeyboard/makefile
Demos/Device/ClassDriver/Mouse/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/Mouse/Mouse.h
Demos/Device/ClassDriver/Mouse/makefile
Demos/Device/ClassDriver/RNDISEthernet/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/RNDISEthernet/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/RNDISEthernet/Descriptors.h
Demos/Device/ClassDriver/RNDISEthernet/Lib/Ethernet.h
Demos/Device/ClassDriver/RNDISEthernet/Lib/IP.h
Demos/Device/ClassDriver/RNDISEthernet/Lib/ProtocolDecoders.h
Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.h
Demos/Device/ClassDriver/RNDISEthernet/RNDISEthernet.txt
Demos/Device/ClassDriver/RNDISEthernet/makefile
Demos/Device/ClassDriver/VirtualSerial/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/VirtualSerial/Descriptors.c
Demos/Device/ClassDriver/VirtualSerial/VirtualSerial.h
Demos/Device/ClassDriver/VirtualSerial/makefile
Demos/Device/ClassDriver/VirtualSerialMassStorage/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/VirtualSerialMassStorage/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.c
Demos/Device/ClassDriver/VirtualSerialMassStorage/Descriptors.h
Demos/Device/ClassDriver/VirtualSerialMassStorage/Lib/DataflashManager.h
Demos/Device/ClassDriver/VirtualSerialMassStorage/Lib/SCSI.h
Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.h
Demos/Device/ClassDriver/VirtualSerialMassStorage/VirtualSerialMassStorage.txt
Demos/Device/ClassDriver/VirtualSerialMassStorage/makefile
Demos/Device/ClassDriver/VirtualSerialMouse/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
Demos/Device/ClassDriver/VirtualSerialMouse/VirtualSerialMouse.h
Demos/Device/ClassDriver/VirtualSerialMouse/makefile
Demos/Device/Incomplete/Sideshow/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/Incomplete/Sideshow/Sideshow.h
Demos/Device/Incomplete/Sideshow/makefile
Demos/Device/Incomplete/TestAndMeasurement/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/Incomplete/TestAndMeasurement/Descriptors.c
Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h
Demos/Device/Incomplete/TestAndMeasurement/makefile
Demos/Device/LowLevel/AudioInput/AudioInput.c
Demos/Device/LowLevel/AudioInput/AudioInput.h
Demos/Device/LowLevel/AudioInput/AudioInput.txt
Demos/Device/LowLevel/AudioInput/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/AudioInput/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/AudioInput/Descriptors.h
Demos/Device/LowLevel/AudioInput/makefile
Demos/Device/LowLevel/AudioOutput/AudioOutput.h
Demos/Device/LowLevel/AudioOutput/AudioOutput.txt
Demos/Device/LowLevel/AudioOutput/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/AudioOutput/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/AudioOutput/Descriptors.h
Demos/Device/LowLevel/AudioOutput/makefile
Demos/Device/LowLevel/DualVirtualSerial/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/DualVirtualSerial/Descriptors.c
Demos/Device/LowLevel/DualVirtualSerial/DualVirtualSerial.h
Demos/Device/LowLevel/DualVirtualSerial/makefile
Demos/Device/LowLevel/GenericHID/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/GenericHID/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/GenericHID/Descriptors.h
Demos/Device/LowLevel/GenericHID/GenericHID.h
Demos/Device/LowLevel/GenericHID/GenericHID.txt
Demos/Device/LowLevel/GenericHID/makefile
Demos/Device/LowLevel/Joystick/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/Joystick/Joystick.h
Demos/Device/LowLevel/Joystick/makefile
Demos/Device/LowLevel/Keyboard/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/Keyboard/Keyboard.h
Demos/Device/LowLevel/Keyboard/makefile
Demos/Device/LowLevel/KeyboardMouse/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/KeyboardMouse/KeyboardMouse.h
Demos/Device/LowLevel/KeyboardMouse/makefile
Demos/Device/LowLevel/MIDI/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/MIDI/MIDI.h
Demos/Device/LowLevel/MIDI/makefile
Demos/Device/LowLevel/MassStorage/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/MassStorage/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/MassStorage/Descriptors.c
Demos/Device/LowLevel/MassStorage/Descriptors.h
Demos/Device/LowLevel/MassStorage/Lib/DataflashManager.h
Demos/Device/LowLevel/MassStorage/MassStorage.h
Demos/Device/LowLevel/MassStorage/MassStorage.txt
Demos/Device/LowLevel/MassStorage/makefile
Demos/Device/LowLevel/Mouse/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/Mouse/Mouse.h
Demos/Device/LowLevel/Mouse/makefile
Demos/Device/LowLevel/RNDISEthernet/Config/AppConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/RNDISEthernet/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/RNDISEthernet/Descriptors.h
Demos/Device/LowLevel/RNDISEthernet/Lib/Ethernet.h
Demos/Device/LowLevel/RNDISEthernet/Lib/IP.h
Demos/Device/LowLevel/RNDISEthernet/Lib/ProtocolDecoders.h
Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.h
Demos/Device/LowLevel/RNDISEthernet/RNDISEthernet.txt
Demos/Device/LowLevel/RNDISEthernet/makefile
Demos/Device/LowLevel/VirtualSerial/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Device/LowLevel/VirtualSerial/Descriptors.c
Demos/Device/LowLevel/VirtualSerial/VirtualSerial.h
Demos/Device/LowLevel/VirtualSerial/makefile
Demos/DualRole/ClassDriver/MouseHostDevice/Config/LUFAConfig.h [new file with mode: 0644]
Demos/DualRole/ClassDriver/MouseHostDevice/MouseHostDevice.h
Demos/DualRole/ClassDriver/MouseHostDevice/makefile
Demos/Host/ClassDriver/AndroidAccessoryHost/AndroidAccessoryHost.h
Demos/Host/ClassDriver/AndroidAccessoryHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/AndroidAccessoryHost/makefile
Demos/Host/ClassDriver/AudioInputHost/AudioInputHost.h
Demos/Host/ClassDriver/AudioInputHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/AudioInputHost/makefile
Demos/Host/ClassDriver/AudioOutputHost/AudioOutputHost.c
Demos/Host/ClassDriver/AudioOutputHost/AudioOutputHost.h
Demos/Host/ClassDriver/AudioOutputHost/AudioOutputHost.txt
Demos/Host/ClassDriver/AudioOutputHost/Config/AppConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/AudioOutputHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/AudioOutputHost/makefile
Demos/Host/ClassDriver/JoystickHostWithParser/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/JoystickHostWithParser/JoystickHostWithParser.h
Demos/Host/ClassDriver/JoystickHostWithParser/makefile
Demos/Host/ClassDriver/KeyboardHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/KeyboardHost/KeyboardHost.h
Demos/Host/ClassDriver/KeyboardHost/makefile
Demos/Host/ClassDriver/KeyboardHostWithParser/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/KeyboardHostWithParser/KeyboardHostWithParser.h
Demos/Host/ClassDriver/KeyboardHostWithParser/makefile
Demos/Host/ClassDriver/MIDIHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/MIDIHost/MIDIHost.h
Demos/Host/ClassDriver/MIDIHost/makefile
Demos/Host/ClassDriver/MassStorageHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/MassStorageHost/MassStorageHost.h
Demos/Host/ClassDriver/MassStorageHost/makefile
Demos/Host/ClassDriver/MouseHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/MouseHost/MouseHost.h
Demos/Host/ClassDriver/MouseHost/makefile
Demos/Host/ClassDriver/MouseHostWithParser/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/MouseHostWithParser/MouseHostWithParser.h
Demos/Host/ClassDriver/MouseHostWithParser/makefile
Demos/Host/ClassDriver/PrinterHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/PrinterHost/PrinterHost.h
Demos/Host/ClassDriver/PrinterHost/makefile
Demos/Host/ClassDriver/RNDISEthernetHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/RNDISEthernetHost/RNDISEthernetHost.h
Demos/Host/ClassDriver/RNDISEthernetHost/makefile
Demos/Host/ClassDriver/StillImageHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/StillImageHost/StillImageHost.h
Demos/Host/ClassDriver/StillImageHost/makefile
Demos/Host/ClassDriver/VirtualSerialHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/ClassDriver/VirtualSerialHost/VirtualSerialHost.h
Demos/Host/ClassDriver/VirtualSerialHost/makefile
Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/ConfigDescriptor.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/ConfigDescriptor.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/DeviceDescriptor.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/DeviceDescriptor.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/Doxygen.conf [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothClassCodes.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMMControl.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMMControl.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/SDP.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/SDP.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c [deleted file]
Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h [deleted file]
Demos/Host/Incomplete/BluetoothHost/makefile [deleted file]
Demos/Host/LowLevel/AndroidAccessoryHost/AndroidAccessoryHost.h
Demos/Host/LowLevel/AndroidAccessoryHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/AndroidAccessoryHost/makefile
Demos/Host/LowLevel/AudioInputHost/AudioInputHost.h
Demos/Host/LowLevel/AudioInputHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/AudioInputHost/makefile
Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.c
Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.h
Demos/Host/LowLevel/AudioOutputHost/AudioOutputHost.txt
Demos/Host/LowLevel/AudioOutputHost/Config/AppConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/AudioOutputHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/AudioOutputHost/ConfigDescriptor.h
Demos/Host/LowLevel/AudioOutputHost/makefile
Demos/Host/LowLevel/GenericHIDHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/GenericHIDHost/GenericHIDHost.h
Demos/Host/LowLevel/GenericHIDHost/makefile
Demos/Host/LowLevel/JoystickHostWithParser/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/JoystickHostWithParser/JoystickHostWithParser.h
Demos/Host/LowLevel/JoystickHostWithParser/makefile
Demos/Host/LowLevel/KeyboardHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/KeyboardHost/KeyboardHost.h
Demos/Host/LowLevel/KeyboardHost/makefile
Demos/Host/LowLevel/KeyboardHostWithParser/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/KeyboardHostWithParser/KeyboardHostWithParser.h
Demos/Host/LowLevel/KeyboardHostWithParser/makefile
Demos/Host/LowLevel/MIDIHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/MIDIHost/MIDIHost.h
Demos/Host/LowLevel/MIDIHost/makefile
Demos/Host/LowLevel/MassStorageHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/MassStorageHost/MassStorageHost.h
Demos/Host/LowLevel/MassStorageHost/makefile
Demos/Host/LowLevel/MouseHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/MouseHost/MouseHost.h
Demos/Host/LowLevel/MouseHost/makefile
Demos/Host/LowLevel/MouseHostWithParser/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.h
Demos/Host/LowLevel/MouseHostWithParser/makefile
Demos/Host/LowLevel/PrinterHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/PrinterHost/PrinterHost.h
Demos/Host/LowLevel/PrinterHost/makefile
Demos/Host/LowLevel/RNDISEthernetHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/RNDISEthernetHost/RNDISEthernetHost.h
Demos/Host/LowLevel/RNDISEthernetHost/makefile
Demos/Host/LowLevel/StillImageHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/StillImageHost/makefile
Demos/Host/LowLevel/VirtualSerialHost/Config/LUFAConfig.h [new file with mode: 0644]
Demos/Host/LowLevel/VirtualSerialHost/VirtualSerialHost.h
Demos/Host/LowLevel/VirtualSerialHost/makefile
LUFA.pnproj
LUFA/CodeTemplates/LUFAConfig.h
Projects/AVRISP-MKII/AVRISP-MKII.h
Projects/AVRISP-MKII/AVRISP-MKII.txt
Projects/AVRISP-MKII/Config/AppConfig.h [new file with mode: 0644]
Projects/AVRISP-MKII/Config/LUFAConfig.h [new file with mode: 0644]
Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h
Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h
Projects/AVRISP-MKII/Lib/V2Protocol.h
Projects/AVRISP-MKII/Lib/V2ProtocolParams.h
Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.h
Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.h
Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h
Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.h
Projects/AVRISP-MKII/makefile
Projects/Benito/Benito.h
Projects/Benito/Benito.txt
Projects/Benito/Config/AppConfig.h [new file with mode: 0644]
Projects/Benito/Config/LUFAConfig.h [new file with mode: 0644]
Projects/Benito/Descriptors.h
Projects/Benito/makefile
Projects/HIDReportViewer/Config/LUFAConfig.h [new file with mode: 0644]
Projects/HIDReportViewer/HIDReportViewer.h
Projects/HIDReportViewer/makefile
Projects/Incomplete/StandaloneProgrammer/Descriptors.c [deleted file]
Projects/Incomplete/StandaloneProgrammer/Descriptors.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/DiskDevice.c [deleted file]
Projects/Incomplete/StandaloneProgrammer/DiskDevice.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/DiskHost.c [deleted file]
Projects/Incomplete/StandaloneProgrammer/DiskHost.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/DataflashManager.c [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/DataflashManager.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/00readme.txt [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/integer.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.c [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/ProgrammerConfig.c [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/ProgrammerConfig.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.c [deleted file]
Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/Standalone Programmer.inf [deleted file]
Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c [deleted file]
Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h [deleted file]
Projects/Incomplete/StandaloneProgrammer/makefile [deleted file]
Projects/LEDNotifier/Config/LUFAConfig.h [new file with mode: 0644]
Projects/LEDNotifier/Descriptors.c
Projects/LEDNotifier/LEDNotifier.h
Projects/LEDNotifier/makefile
Projects/MIDIToneGenerator/Config/AppConfig.h [new file with mode: 0644]
Projects/MIDIToneGenerator/Config/LUFAConfig.h [new file with mode: 0644]
Projects/MIDIToneGenerator/Descriptors.h
Projects/MIDIToneGenerator/MIDIToneGenerator.h
Projects/MIDIToneGenerator/MIDIToneGenerator.txt
Projects/MIDIToneGenerator/makefile
Projects/Magstripe/Config/AppConfig.h [new file with mode: 0644]
Projects/Magstripe/Config/LUFAConfig.h [new file with mode: 0644]
Projects/Magstripe/Descriptors.h
Projects/Magstripe/Lib/MagstripeHW.h
Projects/Magstripe/Magstripe.h
Projects/Magstripe/Magstripe.txt
Projects/Magstripe/makefile
Projects/MediaController/Config/LUFAConfig.h [new file with mode: 0644]
Projects/MediaController/MediaController.h
Projects/MediaController/makefile
Projects/MissileLauncher/Config/LUFAConfig.h [new file with mode: 0644]
Projects/MissileLauncher/MissileLauncher.h
Projects/MissileLauncher/makefile
Projects/RelayBoard/Config/LUFAConfig.h [new file with mode: 0644]
Projects/RelayBoard/RelayBoard.h
Projects/RelayBoard/makefile
Projects/SerialToLCD/Config/LUFAConfig.h [new file with mode: 0644]
Projects/SerialToLCD/Descriptors.c
Projects/SerialToLCD/SerialToLCD.h
Projects/SerialToLCD/makefile
Projects/TempDataLogger/Config/AppConfig.h [new file with mode: 0644]
Projects/TempDataLogger/Config/LUFAConfig.h [new file with mode: 0644]
Projects/TempDataLogger/Descriptors.c
Projects/TempDataLogger/Descriptors.h
Projects/TempDataLogger/Lib/DS1307.h
Projects/TempDataLogger/TempDataLogger.h
Projects/TempDataLogger/TemperatureDataLogger.txt
Projects/TempDataLogger/makefile
Projects/USBtoSerial/Config/LUFAConfig.h [new file with mode: 0644]
Projects/USBtoSerial/Descriptors.c
Projects/USBtoSerial/USBtoSerial.h
Projects/USBtoSerial/makefile
Projects/Webserver/Config/AppConfig.h [new file with mode: 0644]
Projects/Webserver/Config/LUFAConfig.h [new file with mode: 0644]
Projects/Webserver/Descriptors.c
Projects/Webserver/Descriptors.h
Projects/Webserver/Lib/DHCPClientApp.c
Projects/Webserver/Lib/DHCPClientApp.h
Projects/Webserver/Lib/DHCPCommon.c
Projects/Webserver/Lib/DHCPCommon.h
Projects/Webserver/Lib/DHCPServerApp.c
Projects/Webserver/Lib/DHCPServerApp.h
Projects/Webserver/Lib/HTTPServerApp.h
Projects/Webserver/Lib/TELNETServerApp.c
Projects/Webserver/Lib/TELNETServerApp.h
Projects/Webserver/Lib/uIPManagement.h
Projects/Webserver/Lib/uip/uipopt.h
Projects/Webserver/USBDeviceMode.h
Projects/Webserver/USBHostMode.h
Projects/Webserver/Webserver.h
Projects/Webserver/Webserver.txt
Projects/Webserver/makefile
Projects/XPLAINBridge/Config/AppConfig.h [new file with mode: 0644]
Projects/XPLAINBridge/Config/LUFAConfig.h [new file with mode: 0644]
Projects/XPLAINBridge/Lib/SoftUART.h
Projects/XPLAINBridge/USARTDescriptors.c
Projects/XPLAINBridge/USARTDescriptors.h
Projects/XPLAINBridge/XPLAINBridge.h
Projects/XPLAINBridge/XPLAINBridge.txt
Projects/XPLAINBridge/makefile

index bd72184..d47c2ef 100644 (file)
@@ -43,6 +43,8 @@
 
                #include <LUFA/Common/Common.h>
 
+               #include "Config/AppConfig.h"
+               
        /* Function Prototypes: */
                void    BootloaderAPI_ErasePage(const uint32_t Address);
                void    BootloaderAPI_WritePage(const uint32_t Address);
index 257e884..36af962 100644 (file)
@@ -47,6 +47,7 @@
 
                #include "Descriptors.h"
                #include "BootloaderAPI.h"
+               #include "Config/AppConfig.h"
 
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index a3f74f3..f5d5ddf 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>NO_BLOCK_SUPPORT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to disable memory block read/write support in the bootloader, requiring all reads and writes to be made
  *        using the byte-level commands.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_EEPROM_BYTE_SUPPORT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define 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.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_FLASH_BYTE_SUPPORT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define 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.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_LOCK_BYTE_WRITE_SUPPORT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to disable lock byte write support in the bootloader, preventing the lock bits from being set programmatically.</td>
  *   </tr>
  *  </table>
diff --git a/Bootloaders/CDC/Config/AppConfig.h b/Bootloaders/CDC/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..6baadf9
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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
\ No newline at end of file
diff --git a/Bootloaders/CDC/Config/LUFAConfig.h b/Bootloaders/CDC/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..15ab059
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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
index 0010fc6..6eec9d3 100644 (file)
@@ -39,6 +39,8 @@
        /* Includes: */
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                #if defined(__AVR_AT90USB1287__)
                        #define AVR_SIGNATURE_1               0x1E
index 6366ac9..d4aaf22 100644 (file)
@@ -124,22 +124,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_RAM_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D NO_INTERNAL_SERIAL
-LUFA_OPTS += -D NO_DEVICE_SELF_POWER
-LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
-LUFA_OPTS += -D NO_SOF_EVENTS
-
-#LUFA_OPTS += -D NO_BLOCK_SUPPORT
-#LUFA_OPTS += -D NO_EEPROM_BYTE_SUPPORT
-#LUFA_OPTS += -D NO_FLASH_BYTE_SUPPORT
-#LUFA_OPTS += -D NO_LOCK_BYTE_WRITE_SUPPORT
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -184,7 +169,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index bd72184..8d04049 100644 (file)
@@ -43,6 +43,8 @@
 
                #include <LUFA/Common/Common.h>
 
+               #include "Config/AppConfig.h"
+
        /* Function Prototypes: */
                void    BootloaderAPI_ErasePage(const uint32_t Address);
                void    BootloaderAPI_WritePage(const uint32_t Address);
index 46b70c0..ffd330d 100644 (file)
 
                #include "Descriptors.h"
                #include "BootloaderAPI.h"
+               #include "Config/AppConfig.h"
 
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
 
        /* Macros: */
-               /** Configuration define. Define this token to true to case the bootloader to reject all memory commands
-                *  until a memory erase has been performed. When used in conjunction with the lockbits of the AVR, this
-                *  can protect the AVR's firmware from being dumped from a secured AVR. When false, memory operations are
-                *  allowed at any time.
-                */
-               #define SECURE_MODE              false
-
                /** Major bootloader version number. */
                #define BOOTLOADER_VERSION_MINOR 2
 
index a01b1d9..538214e 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>SECURE_MODE</td>
- *    <td>BootloaderDFU.h</td>
- *    <td>If defined to true, the bootloader will not accept any memory commands other than a chip erase on start-up, until an
+ *    <td>AppConfig.h</td>
+ *    <td>If defined to \c true, the bootloader will not accept any memory commands other than a chip erase on start-up, until an
  *        erase has been performed. This can be used in conjunction with the AVR's lockbits to prevent the AVRs firmware from
- *        being dumped by unauthorized persons.</td>
+ *        being dumped by unauthorized persons. When false, all memory operations are allowed at any time.</td>
  *   </tr>
  *  </table>
  */
diff --git a/Bootloaders/DFU/Config/AppConfig.h b/Bootloaders/DFU/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..26a79b4
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 SECURE_MODE              false
+
+#endif
\ No newline at end of file
diff --git a/Bootloaders/DFU/Config/LUFAConfig.h b/Bootloaders/DFU/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..59f6759
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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      32
+               #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
index ce9cc93..e1ad51a 100644 (file)
@@ -39,6 +39,8 @@
        /* Includes: */
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Descriptor type value for a DFU class functional descriptor. */
                #define DTYPE_DFUFunctional               0x21
index fb2c6c2..630b254 100644 (file)
@@ -124,17 +124,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D CONTROL_ONLY_DEVICE
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=32
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_RAM_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D NO_INTERNAL_SERIAL
-LUFA_OPTS += -D NO_DEVICE_SELF_POWER
-LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
-LUFA_OPTS += -D NO_SOF_EVENTS
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -179,7 +169,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Bootloaders/HID/Config/LUFAConfig.h b/Bootloaders/HID/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..15ab059
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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
index f947085..ed90632 100644 (file)
@@ -122,17 +122,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_RAM_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D NO_INTERNAL_SERIAL
-LUFA_OPTS += -D NO_DEVICE_SELF_POWER
-LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
-LUFA_OPTS += -D NO_SOF_EVENTS
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -176,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index 867a09e..953ecf8 100644 (file)
@@ -94,7 +94,7 @@ void SetupHardware(void)
        USB_Init();
 
        /* Start the ADC conversion in free running mode */
-       ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | MIC_IN_ADC_MUX_MASK);
+       ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_GET_CHANNEL_MASK(MIC_IN_ADC_CHANNEL));
 }
 
 /** ISR to handle the reloading of the data endpoint with the next sample. */
index 6bf5e88..6af4a1e 100644 (file)
                #include <avr/power.h>
                #include <avr/interrupt.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
                #include <LUFA/Drivers/Peripheral/ADC.h>
                #include <LUFA/Drivers/USB/USB.h>
 
                #include "Descriptors.h"
+               #include "Config/AppConfig.h"
 
        /* Macros: */
-               /** ADC channel number for the microphone input. */
-               #define MIC_IN_ADC_CHANNEL        2
-
-               /** ADC channel MUX mask for the microphone input. */
-               #define MIC_IN_ADC_MUX_MASK       ADC_CHANNEL2
-
                /** Maximum audio sample value for the microphone input. */
                #define SAMPLE_MAX_RANGE          0xFFFF
 
index fea95b0..dfa9362 100644 (file)
  *    <td><b>Description:</b></td>
  *   </tr>
  *   <tr>
+ *    <td>MIC_IN_ADC_CHANNEL</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Sets the ADC channel used by the demo for the input audio samples from an attached microphone.</td>
+ *   </tr>
+ *   <tr>
  *    <td>USE_TEST_TONE</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
  *        instead of sampling the board microphone.</td>
  *   </tr>
  *   <tr>
  *    <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
  *   </tr>
  *  </table>
diff --git a/Demos/Device/ClassDriver/AudioInput/Config/AppConfig.h b/Demos/Device/ClassDriver/AudioInput/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..7702e25
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 MIC_IN_ADC_CHANNEL               2
+
+       #define MICROPHONE_BIASED_TO_HALF_RAIL
+       #define USE_TEST_TONE
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/ClassDriver/AudioInput/Config/LUFAConfig.h b/Demos/Device/ClassDriver/AudioInput/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 359a287..a3f7f26 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <avr/pgmspace.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Endpoint address of the Audio isochronous streaming data IN endpoint. */
                #define AUDIO_STREAM_EPADDR           (ENDPOINT_DIR_IN | 1)
index 61210c0..5724da5 100644 (file)
@@ -120,14 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-LUFA_OPTS += -D MICROPHONE_BIASED_TO_HALF_RAIL
-LUFA_OPTS += -D USE_TEST_TONE
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -172,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index 9c6a0fb..19ba276 100644 (file)
@@ -44,8 +44,8 @@
                #include <stdlib.h>
 
                #include "Descriptors.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/USB/USB.h>
 
index fbb6543..76445e0 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>AUDIO_OUT_STEREO</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this outputs the audio samples in stereo to the timer output pins of the microcontroller.</td>
  *   </tr>
  *   <tr>
  *    <td>AUDIO_OUT_MONO</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
  *   </tr>
  *   <tr>
  *    <td>AUDIO_OUT_PORTC</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an
  *        external DAC.</td>
  *   </tr>
diff --git a/Demos/Device/ClassDriver/AudioOutput/Config/AppConfig.h b/Demos/Device/ClassDriver/AudioOutput/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..8524166
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 AUDIO_OUT_STEREO
+//     #define AUDIO_OUT_MONO
+//     #define AUDIO_OUT_PORTC
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/ClassDriver/AudioOutput/Config/LUFAConfig.h b/Demos/Device/ClassDriver/AudioOutput/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index d5c8a2b..4b294b8 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <avr/pgmspace.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Endpoint address of the Audio isochronous streaming data OUT endpoint. */
                #define AUDIO_STREAM_EPADDR           (ENDPOINT_DIR_OUT | 1)
index e4757dd..88074f6 100644 (file)
@@ -120,15 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-LUFA_OPTS += -D AUDIO_OUT_STEREO
-#LUFA_OPTS += -D AUDIO_OUT_MONO
-#LUFA_OPTS += -D AUDIO_OUT_PORTC
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -173,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/Config/LUFAConfig.h b/Demos/Device/ClassDriver/DualVirtualSerial/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f91ef18
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 1a4860a..a183b7f 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index 320f7dc..e29fdee 100644 (file)
@@ -45,7 +45,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/USB/USB.h>
index 2065cca..064bf12 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/GenericHID/Config/AppConfig.h b/Demos/Device/ClassDriver/GenericHID/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..fccd16e
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 GENERIC_REPORT_SIZE       8
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/ClassDriver/GenericHID/Config/LUFAConfig.h b/Demos/Device/ClassDriver/GenericHID/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 0b9ec8f..5e27404 100644 (file)
@@ -40,6 +40,8 @@
                #include <avr/pgmspace.h>
 
                #include <LUFA/Drivers/USB/USB.h>
+               
+               #include "Config/AppConfig.h"
 
        /* Type Defines: */
                /** Type define for the device configuration descriptor structure. This must be defined in the
@@ -63,9 +65,6 @@
                /** Size in bytes of the Generic HID reporting endpoint. */
                #define GENERIC_EPSIZE            8
 
-               /** Size in bytes of the Generic HID reports (including report ID byte). */
-               #define GENERIC_REPORT_SIZE       8
-
        /* Function Prototypes: */
                uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
                                                    const uint8_t wIndex,
index ed3bb53..4c4e33b 100644 (file)
@@ -44,8 +44,8 @@
                #include <string.h>
 
                #include "Descriptors.h"
-
-               #include <LUFA/Version.h>
+               #include "Config/AppConfig.h"
+               
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/USB/USB.h>
 
index 4836753..3d72345 100644 (file)
@@ -67,9 +67,9 @@
  *   </tr>
  *   <tr>
  *    <td>GENERIC_REPORT_SIZE</td>
- *    <td>Descriptors.h</td>
- *    <td>This token defines the size of the device reports, both sent and received. The value must be an
- *        integer ranging from 1 to 255.</td>
+ *    <td>AppConfig.h</td>
+ *    <td>This token defines the size of the device reports, both sent and received (including report ID byte). The value 
+ *        must be an integer ranging from 1 to 255.</td>
  *   </tr>
  *  </table>
  */
index 21d3dcf..5ef95e0 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/Joystick/Config/LUFAConfig.h b/Demos/Device/ClassDriver/Joystick/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 4bc5056..8c51ae6 100644 (file)
@@ -45,7 +45,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
index 11eb5f7..c970747 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/Keyboard/Config/LUFAConfig.h b/Demos/Device/ClassDriver/Keyboard/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index f799551..ed6600a 100644 (file)
@@ -46,7 +46,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
index 6c82c4e..8b07bb5 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Config/LUFAConfig.h b/Demos/Device/ClassDriver/KeyboardMouse/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 14db865..d86a433 100644 (file)
@@ -41,7 +41,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
index d7c6411..7d4fc95 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Config/LUFAConfig.h b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 14db865..d86a433 100644 (file)
@@ -41,7 +41,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
index 084a714..2909880 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/MIDI/Config/LUFAConfig.h b/Demos/Device/ClassDriver/MIDI/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index b4d7827..fe49e89 100644 (file)
@@ -46,7 +46,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/Buttons.h>
index 431e25f..e5b0e62 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/MassStorage/Config/AppConfig.h b/Demos/Device/ClassDriver/MassStorage/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..2582279
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 TOTAL_LUNS                1
+
+       #define DISK_READ_ONLY            false
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/ClassDriver/MassStorage/Config/LUFAConfig.h b/Demos/Device/ClassDriver/MassStorage/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f91ef18
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 5c62f7f..36774e8 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index 84879e8..643747b 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Endpoint address of the Mass Storage device-to-host data IN endpoint. */
                #define MASS_STORAGE_IN_EPADDR         (ENDPOINT_DIR_IN  | 3)
index 18606ea..65c4f60 100644 (file)
@@ -41,7 +41,8 @@
 
                #include "../MassStorage.h"
                #include "../Descriptors.h"
-
+               #include "Config/AppConfig.h"
+               
                #include <LUFA/Common/Common.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Dataflash.h>
@@ -65,6 +66,9 @@
                 */
                #define VIRTUAL_MEMORY_BLOCKS               (VIRTUAL_MEMORY_BYTES / VIRTUAL_MEMORY_BLOCK_SIZE)
 
+               /** Blocks in each LUN, calculated from the total capacity divided by the total number of Logical Units in the device. */
+               #define LUN_MEDIA_BLOCKS                    (VIRTUAL_MEMORY_BLOCKS / TOTAL_LUNS)
+
        /* Function Prototypes: */
                void DataflashManager_WriteBlocks(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo,
                                                  const uint32_t BlockAddress,
index d446623..610d367 100644 (file)
@@ -45,7 +45,8 @@
                #include "../MassStorage.h"
                #include "../Descriptors.h"
                #include "DataflashManager.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Macro to set the current SCSI sense data to the given key, additional sense code and additional sense qualifier. This
                 *  is for convenience, as it allows for all three sense values (returned upon request to the host to give information about
index da01449..957a880 100644 (file)
@@ -47,8 +47,8 @@
 
                #include "Lib/SCSI.h"
                #include "Lib/DataflashManager.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/USB/USB.h>
 
                /** LED mask for the library LED driver, to indicate that the USB interface is busy. */
                #define LEDMASK_USB_BUSY          LEDS_LED2
 
-               /** Total number of logical drives within the device - must be non-zero. */
-               #define TOTAL_LUNS                1
-
-               /** Blocks in each LUN, calculated from the total capacity divided by the total number of Logical Units in the device. */
-               #define LUN_MEDIA_BLOCKS         (VIRTUAL_MEMORY_BLOCKS / TOTAL_LUNS)
-
-               /** Indicates if the disk is write protected or not. */
-               #define DISK_READ_ONLY            false
-
        /* Function Prototypes: */
                void SetupHardware(void);
 
index 14fdd4a..5bf7c55 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>TOTAL_LUNS</td>
- *    <td>MassStorage.h</td>
+ *    <td>AppConfig.h</td>
  *    <td>Total number of Logical Units (drives) in the device. The total device capacity is shared equally between each drive -
  *        this can be set to any positive non-zero amount.</td>
  *   </tr>
+ *   <tr>
+ *    <td>DISK_READ_ONLY</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configuration define, indicating if the disk should be write protected or not.</td>
+ *   </tr>
  *  </table>
  */
 
index 4bbaded..0ee4619 100644 (file)
@@ -172,7 +172,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Config/AppConfig.h b/Demos/Device/ClassDriver/MassStorageKeyboard/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..2582279
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 TOTAL_LUNS                1
+
+       #define DISK_READ_ONLY            false
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Config/LUFAConfig.h b/Demos/Device/ClassDriver/MassStorageKeyboard/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f91ef18
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 6818a7a..c5d9201 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** HID class report descriptor. This is a special descriptor constructed with values from the
  *  USBIF HID class specification to describe the reports and capabilities of the HID device. This
index fb1a379..f79cd2e 100644 (file)
@@ -42,6 +42,8 @@
 
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Endpoint address of the Keyboard HID reporting IN endpoint. */
                #define KEYBOARD_EPADDR              (ENDPOINT_DIR_IN  | 1)
index f7552dc..68356b2 100644 (file)
@@ -41,7 +41,8 @@
 
                #include "../MassStorageKeyboard.h"
                #include "../Descriptors.h"
-
+               #include "Config/AppConfig.h"
+               
                #include <LUFA/Common/Common.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Dataflash.h>
@@ -63,6 +64,9 @@
                /** Total number of blocks of the virtual memory for reporting to the host as the device's total capacity. */
                #define VIRTUAL_MEMORY_BLOCKS              (VIRTUAL_MEMORY_BYTES / VIRTUAL_MEMORY_BLOCK_SIZE)
 
+               /** Blocks in each LUN, calculated from the total capacity divided by the total number of Logical Units in the device. */
+               #define LUN_MEDIA_BLOCKS         (VIRTUAL_MEMORY_BLOCKS / TOTAL_LUNS)
+
        /* Function Prototypes: */
                void DataflashManager_WriteBlocks(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo,
                                                  const uint32_t BlockAddress,
index 5c3d3bf..55ead06 100644 (file)
@@ -45,7 +45,8 @@
                #include "../MassStorageKeyboard.h"
                #include "../Descriptors.h"
                #include "DataflashManager.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Macro to set the current SCSI sense data to the given key, additional sense code and additional sense qualifier. This
                 *  is for convenience, as it allows for all three sense values (returned upon request to the host to give information about
index 8f8fa00..6c0f1d9 100644 (file)
@@ -50,8 +50,8 @@
 
                #include "Lib/SCSI.h"
                #include "Lib/DataflashManager.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
                /** LED mask for the library LED driver, to indicate that the USB interface is busy. */
                #define LEDMASK_USB_BUSY         LEDS_LED2
 
-               /** Total number of logical drives within the device - must be non-zero. */
-               #define TOTAL_LUNS               1
-
-               /** Blocks in each LUN, calculated from the total capacity divided by the total number of Logical Units in the device. */
-               #define LUN_MEDIA_BLOCKS         (VIRTUAL_MEMORY_BLOCKS / TOTAL_LUNS)
-
-               /** Indicates if the disk is write protected or not. */
-               #define DISK_READ_ONLY           false
-
        /* Function Prototypes: */
                void SetupHardware(void);
 
index 8c1355c..7cdb472 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>TOTAL_LUNS</td>
- *    <td>MassStorage.h</td>
+ *    <td>AppConfig.h</td>
  *    <td>Total number of Logical Units (drives) in the device. The total device capacity is shared equally between each drive -
  *        this can be set to any positive non-zero amount.</td>
  *   </tr>
- *  </table>
+ *   <tr>
+ *    <td>DISK_READ_ONLY</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configuration define, indicating if the disk should be write protected or not.</td>
+ *   </tr>
  */
 
index 101f359..a504d0c 100644 (file)
@@ -120,12 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -172,7 +167,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/Mouse/Config/LUFAConfig.h b/Demos/Device/ClassDriver/Mouse/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 73f9742..4d6c27e 100644 (file)
@@ -47,7 +47,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
index 344b0b5..7c7493d 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Config/AppConfig.h b/Demos/Device/ClassDriver/RNDISEthernet/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..3b1ca53
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 CLIENT_IP_ADDRESS                { 10,     0,    0,    1}
+       #define SERVER_IP_ADDRESS                { 10,     0,    0,    2}
+
+       #define ADAPTER_MAC_ADDRESS              {0x02, 0x00, 0x02, 0x00, 0x02, 0x00}
+       #define SERVER_MAC_ADDRESS               {0x00, 0x01, 0x00, 0x01, 0x00, 0x01}
+
+       #define NO_DECODE_ETHERNET
+       #define NO_DECODE_ARP
+       #define NO_DECODE_IP
+       #define NO_DECODE_ICMP
+       #define NO_DECODE_TCP
+       #define NO_DECODE_UDP
+       #define NO_DECODE_DHCP
+
+#endif
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Config/LUFAConfig.h b/Demos/Device/ClassDriver/RNDISEthernet/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 6301b83..9baae86 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <avr/pgmspace.h>
 
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Endpoint address of the CDC device-to-host notification IN endpoint. */
                #define CDC_NOTIFICATION_EPADDR        (ENDPOINT_DIR_IN  | 3)
index aeebd0a..4e91bc2 100644 (file)
@@ -42,6 +42,8 @@
 
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+
                #include "EthernetProtocols.h"
                #include "ProtocolDecoders.h"
                #include "ICMP.h"
                #include "IP.h"
 
        /* Macros: */
-               /** Physical MAC address of the USB RNDIS network adapter. */
-               #define ADAPTER_MAC_ADDRESS              {0x02, 0x00, 0x02, 0x00, 0x02, 0x00}
-
-               /** Physical MAC address of the virtual server on the network. */
-               #define SERVER_MAC_ADDRESS               {0x00, 0x01, 0x00, 0x01, 0x00, 0x01}
-
                /** Physical MAC address of the network broadcast address. */
                #define BROADCAST_MAC_ADDRESS            {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
 
index 2ed173f..d1a709f 100644 (file)
                #include "EthernetProtocols.h"
                #include "Ethernet.h"
                #include "ProtocolDecoders.h"
+               #include "Config/AppConfig.h"
 
        /* Macros: */
-               /** Protocol IP address of the host (client) machine, once assigned by DHCP. */
-               #define CLIENT_IP_ADDRESS                { 10,     0,    0,    1}
-
-               /** Protocol IP address of the virtual server machine. */
-               #define SERVER_IP_ADDRESS                { 10,     0,    0,    2}
-
                /** Protocol IP address of the broadcast address. */
                #define BROADCAST_IP_ADDRESS             {0xFF, 0xFF, 0xFF, 0xFF}
 
index 2807b60..bb64092 100644 (file)
@@ -45,6 +45,7 @@
 
                #include "EthernetProtocols.h"
                #include "Ethernet.h"
+               #include "Config/AppConfig.h"
 
        /* Function Prototypes: */
                void DecodeEthernetFrameHeader(void* InDataStart);
index 6ff0896..e70fd5d 100644 (file)
@@ -49,8 +49,8 @@
                #include "Lib/TCP.h"
                #include "Lib/ARP.h"
                #include "Lib/Webserver.h"
-
-               #include <LUFA/Version.h>
+               #include "Config/AppConfig.h"
+               
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/USB/USB.h>
index 648fe40..ac72d4a 100644 (file)
  *    <td><b>Description:</b></td>
  *   </tr>
  *   <tr>
+ *    <td>CLIENT_IP_ADDRESS</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configures the IP address given to the client (PC) via the DHCP server.</td>
+ *   </tr>
+ *   <tr>
+ *    <td>SERVER_IP_ADDRESS</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configures the IP address of the virtual server.</td>
+ *   </tr>
+ *   <tr>
+ *    <td>ADAPTER_MAC_ADDRESS</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configures the MAC address of the RNDIS adapter on the host (PC) side.</td>
+ *   </tr>
+ *   <tr>
+ *    <td>SERVER_MAC_ADDRESS</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configures the MAC address of the virtual server on the network.</td>
+ *   </tr>
+ *   <tr>
  *    <td>NO_DECODE_ETHERNET</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received Ethernet headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_ARP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received ARP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_IP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received IP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_ICMP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received ICMP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_TCP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received TCP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_UDP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received UDP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_DHCP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received DHCP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *  </table>
index 4b2642c..c537056 100644 (file)
@@ -120,19 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-LUFA_OPTS += -D NO_DECODE_ETHERNET
-LUFA_OPTS += -D NO_DECODE_ARP
-LUFA_OPTS += -D NO_DECODE_IP
-LUFA_OPTS += -D NO_DECODE_ICMP
-LUFA_OPTS += -D NO_DECODE_TCP
-LUFA_OPTS += -D NO_DECODE_UDP
-LUFA_OPTS += -D NO_DECODE_DHCP
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -187,7 +175,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/VirtualSerial/Config/LUFAConfig.h b/Demos/Device/ClassDriver/VirtualSerial/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f91ef18
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 9dcf4e4..0a11dcb 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index ce7de14..3baeafe 100644 (file)
@@ -46,7 +46,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/USB/USB.h>
index fc6dc14..e002351 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Config/AppConfig.h b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..2582279
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 TOTAL_LUNS                1
+
+       #define DISK_READ_ONLY            false
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/Config/LUFAConfig.h b/Demos/Device/ClassDriver/VirtualSerialMassStorage/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f91ef18
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index cfccac0..607a2b0 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index 544a2b5..e2d8562 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Endpoint address of the CDC device-to-host notification IN endpoint. */
                #define CDC_NOTIFICATION_EPADDR        (ENDPOINT_DIR_IN  | 1)
index 1d12386..e9e2ef9 100644 (file)
@@ -41,6 +41,7 @@
 
                #include "../VirtualSerialMassStorage.h"
                #include "../Descriptors.h"
+               #include "Config/AppConfig.h"
 
                #include <LUFA/Common/Common.h>
                #include <LUFA/Drivers/USB/USB.h>
@@ -65,6 +66,9 @@
                 */
                #define VIRTUAL_MEMORY_BLOCKS               (VIRTUAL_MEMORY_BYTES / VIRTUAL_MEMORY_BLOCK_SIZE)
 
+               /** Blocks in each LUN, calculated from the total capacity divided by the total number of Logical Units in the device. */
+               #define LUN_MEDIA_BLOCKS         (VIRTUAL_MEMORY_BLOCKS / TOTAL_LUNS)
+
        /* Function Prototypes: */
                void DataflashManager_WriteBlocks(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo,
                                                  const uint32_t BlockAddress,
index 83d5646..01614cc 100644 (file)
@@ -45,7 +45,8 @@
                #include "../VirtualSerialMassStorage.h"
                #include "../Descriptors.h"
                #include "DataflashManager.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Macro to set the current SCSI sense data to the given key, additional sense code and additional sense qualifier. This
                 *  is for convenience, as it allows for all three sense values (returned upon request to the host to give information about
index 486351b..3d17971 100644 (file)
@@ -47,8 +47,8 @@
 
                #include "Lib/SCSI.h"
                #include "Lib/DataflashManager.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/USB/USB.h>
                /** LED mask for the library LED driver, to indicate that the USB interface is busy. */
                #define LEDMASK_USB_BUSY          LEDS_LED2
 
-               /** Total number of logical drives within the device - must be non-zero. */
-               #define TOTAL_LUNS                1
-
-               /** Blocks in each LUN, calculated from the total capacity divided by the total number of Logical Units in the device. */
-               #define LUN_MEDIA_BLOCKS         (VIRTUAL_MEMORY_BLOCKS / TOTAL_LUNS)
-
-               /** Indicates if the disk is write protected or not. */
-               #define DISK_READ_ONLY            false
-
        /* Function Prototypes: */
                void SetupHardware(void);
                void CheckJoystickMovement(void);
index b616ad7..0422441 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>TOTAL_LUNS</td>
- *    <td>MassStorage.h</td>
+ *    <td>AppConfig.h</td>
  *    <td>Total number of Logical Units (drives) in the device. The total device capacity is shared equally between each drive -
  *        this can be set to any positive non-zero amount.</td>
  *   </tr>
- *  </table>
+ *   <tr>
+ *    <td>DISK_READ_ONLY</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configuration define, indicating if the disk should be write protected or not.</td>
+ *   </tr>
  */
 
index cac2baf..57b78a8 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -171,7 +167,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Config/LUFAConfig.h b/Demos/Device/ClassDriver/VirtualSerialMouse/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f91ef18
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 9997121..3fb00a1 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** HID class report descriptor. This is a special descriptor constructed with values from the
  *  USBIF HID class specification to describe the reports and capabilities of the HID device. This
index 22f86e5..7a5c1d7 100644 (file)
@@ -45,7 +45,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/Buttons.h>
index 57107ac..592c915 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/Incomplete/Sideshow/Config/LUFAConfig.h b/Demos/Device/Incomplete/Sideshow/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 71ebe3f..dc404ba 100644 (file)
@@ -40,7 +40,6 @@
                #include "Descriptors.h"
                #include "Lib/SideshowCommands.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index 29a2337..052f3ed 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -173,7 +169,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/Incomplete/TestAndMeasurement/Config/LUFAConfig.h b/Demos/Device/Incomplete/TestAndMeasurement/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f91ef18
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index bf16ab0..31a6154 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index a688bae..bd93154 100644 (file)
@@ -39,7 +39,6 @@
 \r
                #include "Descriptors.h"\r
 \r
-               #include <LUFA/Version.h>\r
                #include <LUFA/Drivers/USB/USB.h>\r
                #include <LUFA/Drivers/Board/LEDs.h>\r
 \r
index 5108a47..da395ce 100644 (file)
@@ -120,12 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index eb9c4b5..925517b 100644 (file)
@@ -77,7 +77,7 @@ void SetupHardware(void)
        USB_Init();
 
        /* Start the ADC conversion in free running mode */
-       ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | MIC_IN_ADC_MUX_MASK);
+       ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_GET_CHANNEL_MASK(MIC_IN_ADC_CHANNEL));
 }
 
 /** Event handler for the USB_Connect event. This indicates that the device is enumerating via the status LEDs, and
index f274e24..f534e81 100644 (file)
                #include <avr/interrupt.h>
 
                #include "Descriptors.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
                #include <LUFA/Drivers/Peripheral/ADC.h>
 
        /* Macros: */
-               /** ADC channel number for the microphone input. */
-               #define MIC_IN_ADC_CHANNEL        2
-
-               /** ADC channel MUX mask for the microphone input. */
-               #define MIC_IN_ADC_MUX_MASK       ADC_CHANNEL2
-
                /** Maximum audio sample value for the microphone input. */
                #define SAMPLE_MAX_RANGE          0xFFFF
 
index fea95b0..b30d7d6 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>USE_TEST_TONE</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
  *        instead of sampling the board microphone.</td>
  *   </tr>
  *   <tr>
  *    <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
  *   </tr>
  *  </table>
diff --git a/Demos/Device/LowLevel/AudioInput/Config/AppConfig.h b/Demos/Device/LowLevel/AudioInput/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..7702e25
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 MIC_IN_ADC_CHANNEL               2
+
+       #define MICROPHONE_BIASED_TO_HALF_RAIL
+       #define USE_TEST_TONE
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/LowLevel/AudioInput/Config/LUFAConfig.h b/Demos/Device/LowLevel/AudioInput/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 4680294..7c419a2 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <avr/pgmspace.h>
 
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Endpoint address of the Audio isochronous streaming data IN endpoint. */
                #define AUDIO_STREAM_EPADDR          (ENDPOINT_DIR_IN | 1)
index b5df8d7..e9fee09 100644 (file)
@@ -120,14 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-LUFA_OPTS += -D MICROPHONE_BIASED_TO_HALF_RAIL
-LUFA_OPTS += -D USE_TEST_TONE
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -171,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index 8c5a203..fad49ec 100644 (file)
@@ -43,8 +43,8 @@
                #include <avr/interrupt.h>
 
                #include "Descriptors.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
 
index fbb6543..76445e0 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>AUDIO_OUT_STEREO</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this outputs the audio samples in stereo to the timer output pins of the microcontroller.</td>
  *   </tr>
  *   <tr>
  *    <td>AUDIO_OUT_MONO</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this outputs the audio samples in mono to the timer output pin of the microcontroller.</td>
  *   </tr>
  *   <tr>
  *    <td>AUDIO_OUT_PORTC</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this outputs the audio samples in mono to port C of the microcontroller, for connection to an
  *        external DAC.</td>
  *   </tr>
diff --git a/Demos/Device/LowLevel/AudioOutput/Config/AppConfig.h b/Demos/Device/LowLevel/AudioOutput/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..8524166
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 AUDIO_OUT_STEREO
+//     #define AUDIO_OUT_MONO
+//     #define AUDIO_OUT_PORTC
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/LowLevel/AudioOutput/Config/LUFAConfig.h b/Demos/Device/LowLevel/AudioOutput/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index e0c7567..c8b7fea 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <avr/pgmspace.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Endpoint address of the Audio isochronous streaming data OUT endpoint. */
                #define AUDIO_STREAM_EPADDR          (ENDPOINT_DIR_OUT | 1)
index dc7e638..486e8c3 100644 (file)
@@ -120,15 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-LUFA_OPTS += -D AUDIO_OUT_STEREO
-#LUFA_OPTS += -D AUDIO_OUT_MONO
-#LUFA_OPTS += -D AUDIO_OUT_PORTC
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -172,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/DualVirtualSerial/Config/LUFAConfig.h b/Demos/Device/LowLevel/DualVirtualSerial/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f91ef18
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 1a4860a..a183b7f 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index cf7316c..5edbb18 100644 (file)
@@ -45,7 +45,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index db37f25..622b998 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -168,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/GenericHID/Config/AppConfig.h b/Demos/Device/LowLevel/GenericHID/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..fccd16e
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 GENERIC_REPORT_SIZE       8
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/LowLevel/GenericHID/Config/LUFAConfig.h b/Demos/Device/LowLevel/GenericHID/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index e47220a..d9b7d42 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <avr/pgmspace.h>
 
+               #include "Config/AppConfig.h"
+               
        /* 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
@@ -67,9 +69,6 @@
                /** Size in bytes of the Generic HID reporting endpoint. */
                #define GENERIC_EPSIZE            8
 
-               /** Size in bytes of the Generic HID reports (including report ID byte). */
-               #define GENERIC_REPORT_SIZE       8
-
        /* Function Prototypes: */
                uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
                                                    const uint8_t wIndex,
index 0fe06bb..26e63ce 100644 (file)
@@ -45,8 +45,8 @@
                #include <string.h>
 
                #include "Descriptors.h"
-
-               #include <LUFA/Version.h>
+               #include "Config/AppConfig.h"
+               
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
 
index 4836753..3d72345 100644 (file)
@@ -67,9 +67,9 @@
  *   </tr>
  *   <tr>
  *    <td>GENERIC_REPORT_SIZE</td>
- *    <td>Descriptors.h</td>
- *    <td>This token defines the size of the device reports, both sent and received. The value must be an
- *        integer ranging from 1 to 255.</td>
+ *    <td>AppConfig.h</td>
+ *    <td>This token defines the size of the device reports, both sent and received (including report ID byte). The value 
+ *        must be an integer ranging from 1 to 255.</td>
  *   </tr>
  *  </table>
  */
index f2a3036..81b147c 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -168,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/Joystick/Config/LUFAConfig.h b/Demos/Device/LowLevel/Joystick/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index f3cdf36..7a7cf61 100644 (file)
@@ -45,7 +45,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index e1e4d6f..59459bb 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -168,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/Keyboard/Config/LUFAConfig.h b/Demos/Device/LowLevel/Keyboard/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 4936527..140fa02 100644 (file)
@@ -47,7 +47,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/Buttons.h>
index 2f5f229..ee4bd35 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -168,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/KeyboardMouse/Config/LUFAConfig.h b/Demos/Device/LowLevel/KeyboardMouse/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index a50a29e..fe0c650 100644 (file)
@@ -42,7 +42,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 33922e9..d99e6dd 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -168,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/MIDI/Config/LUFAConfig.h b/Demos/Device/LowLevel/MIDI/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 8b08ddc..f270c09 100644 (file)
@@ -45,7 +45,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index e467bfd..4c3aca9 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -168,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/MassStorage/Config/AppConfig.h b/Demos/Device/LowLevel/MassStorage/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..2582279
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 TOTAL_LUNS                1
+
+       #define DISK_READ_ONLY            false
+
+#endif
\ No newline at end of file
diff --git a/Demos/Device/LowLevel/MassStorage/Config/LUFAConfig.h b/Demos/Device/LowLevel/MassStorage/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f91ef18
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 5c62f7f..36774e8 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index 34a85f6..3732ee8 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <avr/pgmspace.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Endpoint address of the Mass Storage device-to-host data IN endpoint. */
                #define MASS_STORAGE_IN_EPADDR         (ENDPOINT_DIR_IN  | 3)
index d70a86c..7612dda 100644 (file)
@@ -45,7 +45,7 @@
                #include <LUFA/Common/Common.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Dataflash.h>
-
+               
        /* Preprocessor Checks: */
                #if (DATAFLASH_PAGE_SIZE % 16)
                        #error Dataflash page size must be a multiple of 16 bytes.
                 */
                #define VIRTUAL_MEMORY_BLOCKS               (VIRTUAL_MEMORY_BYTES / VIRTUAL_MEMORY_BLOCK_SIZE)
 
-               /** Total number of Logical Units (drives) in the device. The total device capacity is shared equally between
-                *  each drive - this can be set to any positive non-zero amount.
-                */
-               #define TOTAL_LUNS                           1
-
                /** Blocks in each LUN, calculated from the total capacity divided by the total number of Logical Units in the device. */
                #define LUN_MEDIA_BLOCKS                    (VIRTUAL_MEMORY_BLOCKS / TOTAL_LUNS)
 
index c157370..37f3ae5 100644 (file)
@@ -46,8 +46,8 @@
 
                #include "Lib/SCSI.h"
                #include "Lib/DataflashManager.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Dataflash.h>
@@ -68,9 +68,6 @@
                /** LED mask for the library LED driver, to indicate that the USB interface is busy. */
                #define LEDMASK_USB_BUSY           LEDS_LED2
 
-               /** Indicates if the disk is write protected or not. */
-               #define DISK_READ_ONLY            false
-
        /* Global Variables: */
                extern MS_CommandBlockWrapper_t  CommandBlock;
                extern MS_CommandStatusWrapper_t CommandStatus;
index 4a57861..b5f9f9c 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>TOTAL_LUNS</td>
- *    <td>MassStorage.h</td>
+ *    <td>AppConfig.h</td>
  *    <td>Total number of Logical Units (drives) in the device. The total device capacity is shared equally between each drive
  *        - this can be set to any positive non-zero amount.</td>
  *   </tr>
+ *   <tr>
+ *    <td>DISK_READ_ONLY</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Indicates if the disk should be write protected or not.</td>
+ *   </tr>
  *  </table>
  */
 
index 67b3c21..e78e264 100644 (file)
@@ -120,12 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -171,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/Mouse/Config/LUFAConfig.h b/Demos/Device/LowLevel/Mouse/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index c04f457..94e74df 100644 (file)
@@ -45,8 +45,7 @@
                #include <string.h>
 
                #include "Descriptors.h"
-
-               #include <LUFA/Version.h>
+               
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 4b0fd9b..a793b41 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -168,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/RNDISEthernet/Config/AppConfig.h b/Demos/Device/LowLevel/RNDISEthernet/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..3b1ca53
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 CLIENT_IP_ADDRESS                { 10,     0,    0,    1}
+       #define SERVER_IP_ADDRESS                { 10,     0,    0,    2}
+
+       #define ADAPTER_MAC_ADDRESS              {0x02, 0x00, 0x02, 0x00, 0x02, 0x00}
+       #define SERVER_MAC_ADDRESS               {0x00, 0x01, 0x00, 0x01, 0x00, 0x01}
+
+       #define NO_DECODE_ETHERNET
+       #define NO_DECODE_ARP
+       #define NO_DECODE_IP
+       #define NO_DECODE_ICMP
+       #define NO_DECODE_TCP
+       #define NO_DECODE_UDP
+       #define NO_DECODE_DHCP
+
+#endif
diff --git a/Demos/Device/LowLevel/RNDISEthernet/Config/LUFAConfig.h b/Demos/Device/LowLevel/RNDISEthernet/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 6337335..dd9bdd0 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <avr/pgmspace.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Endpoint address of the CDC device-to-host data IN endpoint. */
                #define CDC_TX_EPADDR                  (ENDPOINT_DIR_IN  | 1)
index 37d482d..45ba0cf 100644 (file)
@@ -40,6 +40,8 @@
                #include <avr/io.h>
                #include <string.h>
 
+               #include "Config/AppConfig.h"
+
                #include "EthernetProtocols.h"
                #include "ProtocolDecoders.h"
                #include "ICMP.h"
                #include "IP.h"
 
        /* Macros: */
-               /** Physical MAC address of the USB RNDIS network adapter. */
-               #define ADAPTER_MAC_ADDRESS              {0x02, 0x00, 0x02, 0x00, 0x02, 0x00}
-
-               /** Physical MAC address of the virtual server on the network. */
-               #define SERVER_MAC_ADDRESS               {0x00, 0x01, 0x00, 0x01, 0x00, 0x01}
-
                /** Physical MAC address of the network broadcast address. */
                #define BROADCAST_MAC_ADDRESS            {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
 
index 4cd6a20..18c1c81 100644 (file)
                #include "EthernetProtocols.h"
                #include "Ethernet.h"
                #include "ProtocolDecoders.h"
+               #include "Config/AppConfig.h"
 
        /* Macros: */
-               /** Protocol IP address of the host (client) machine, once assigned by DHCP. */
-               #define CLIENT_IP_ADDRESS                { 10,     0,    0,    1}
-
-               /** Protocol IP address of the virtual server machine. */
-               #define SERVER_IP_ADDRESS                { 10,     0,    0,    2}
-
                /** Protocol IP address of the broadcast address. */
                #define BROADCAST_IP_ADDRESS             {0xFF, 0xFF, 0xFF, 0xFF}
 
index 2807b60..bb64092 100644 (file)
@@ -45,6 +45,7 @@
 
                #include "EthernetProtocols.h"
                #include "Ethernet.h"
+               #include "Config/AppConfig.h"
 
        /* Function Prototypes: */
                void DecodeEthernetFrameHeader(void* InDataStart);
index 6a91586..155544c 100644 (file)
@@ -50,8 +50,8 @@
                #include "Lib/TCP.h"
                #include "Lib/ARP.h"
                #include "Lib/Webserver.h"
-
-               #include <LUFA/Version.h>
+               #include "Config/AppConfig.h"
+               
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index 648fe40..ac72d4a 100644 (file)
  *    <td><b>Description:</b></td>
  *   </tr>
  *   <tr>
+ *    <td>CLIENT_IP_ADDRESS</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configures the IP address given to the client (PC) via the DHCP server.</td>
+ *   </tr>
+ *   <tr>
+ *    <td>SERVER_IP_ADDRESS</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configures the IP address of the virtual server.</td>
+ *   </tr>
+ *   <tr>
+ *    <td>ADAPTER_MAC_ADDRESS</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configures the MAC address of the RNDIS adapter on the host (PC) side.</td>
+ *   </tr>
+ *   <tr>
+ *    <td>SERVER_MAC_ADDRESS</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Configures the MAC address of the virtual server on the network.</td>
+ *   </tr>
+ *   <tr>
  *    <td>NO_DECODE_ETHERNET</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received Ethernet headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_ARP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received ARP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_IP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received IP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_ICMP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received ICMP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_TCP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received TCP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_UDP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received UDP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *   <tr>
  *    <td>NO_DECODE_DHCP</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, received DHCP headers will not be decoded and printed to the device serial port.</td>
  *   </tr>
  *  </table>
index 7bd3c3f..889e42d 100644 (file)
@@ -120,19 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-LUFA_OPTS += -D NO_DECODE_ETHERNET
-LUFA_OPTS += -D NO_DECODE_ARP
-LUFA_OPTS += -D NO_DECODE_IP
-LUFA_OPTS += -D NO_DECODE_ICMP
-LUFA_OPTS += -D NO_DECODE_TCP
-LUFA_OPTS += -D NO_DECODE_UDP
-LUFA_OPTS += -D NO_DECODE_DHCP
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -187,7 +175,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Device/LowLevel/VirtualSerial/Config/LUFAConfig.h b/Demos/Device/LowLevel/VirtualSerial/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..a1d7482
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 9dcf4e4..0a11dcb 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index a62b468..311f509 100644 (file)
@@ -45,7 +45,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index ae732dd..4cfea66 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -168,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Config/LUFAConfig.h b/Demos/DualRole/ClassDriver/MouseHostDevice/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..49e4ebf
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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            {Insert Value Here}
+               #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
index 990f281..1e6971d 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 208ef7b..37ad76c 100644 (file)
@@ -120,10 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS += -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -171,7 +168,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index b1a8bc1..95cecca 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>\r
                #include <stdio.h>\r
 \r
-               #include <LUFA/Version.h>\r
                #include <LUFA/Drivers/Misc/TerminalCodes.h>\r
                #include <LUFA/Drivers/Peripheral/Serial.h>\r
                #include <LUFA/Drivers/Board/LEDs.h>\r
diff --git a/Demos/Host/ClassDriver/AndroidAccessoryHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/AndroidAccessoryHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f3307c6
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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          0
+//      #define NO_AUTO_VBUS_MANAGEMENT
+//      #define INVERTED_VBUS_ENABLE_LINE
+
+       #else
+
+               #error Unsupported architecture for this LUFA configuration file.
+
+       #endif
+#endif
index e1bffcf..7058928 100644 (file)
@@ -120,9 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D HOST_DEVICE_SETTLE_DELAY_MS=0
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -167,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index b7e1f5a..f3424bd 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
diff --git a/Demos/Host/ClassDriver/AudioInputHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/AudioInputHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index cdae1f6..764eafd 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index 833be1b..5f00568 100644 (file)
@@ -128,6 +128,9 @@ void SetupHardware(void)
 
        /* Create a stdio stream for the serial port for stdin and stdout */
        Serial_CreateStream(NULL);
+       
+       /* Start the ADC conversion in free running mode */
+       ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_GET_CHANNEL_MASK(MIC_IN_ADC_CHANNEL));   
 }
 
 /** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and
index 3979588..4c0d39f 100644 (file)
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Peripheral/ADC.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
                #include <LUFA/Drivers/USB/USB.h>
+               
+               #include "Config/AppConfig.h"
 
        /* Macros: */
-               /** ADC channel number for the microphone input. */
-               #define MIC_IN_ADC_CHANNEL        2
-
-               /** ADC channel MUX mask for the microphone input. */
-               #define MIC_IN_ADC_MUX_MASK       ADC_CHANNEL2
-
                /** Maximum audio sample value for the microphone input. */
                #define SAMPLE_MAX_RANGE          0xFFFF
 
index e6caaf9..3af62bc 100644 (file)
  *    <td><b>Description:</b></td>
  *   </tr>
  *   <tr>
+ *    <td>MIC_IN_ADC_CHANNEL</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Sets the ADC channel used by the demo for the input audio samples from an attached microphone.</td>
+ *   </tr>
+ *   <tr>
  *    <td>USE_TEST_TONE</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
  *        instead of sampling the board microphone.</td>
  *   </tr>
  *   <tr>
  *    <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
  *   </tr>
  *  </table>
diff --git a/Demos/Host/ClassDriver/AudioOutputHost/Config/AppConfig.h b/Demos/Host/ClassDriver/AudioOutputHost/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..7702e25
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 MIC_IN_ADC_CHANNEL               2
+
+       #define MICROPHONE_BIASED_TO_HALF_RAIL
+       #define USE_TEST_TONE
+
+#endif
\ No newline at end of file
diff --git a/Demos/Host/ClassDriver/AudioOutputHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/AudioOutputHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index bd57fc8..38e53e3 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-LUFA_OPTS += -D MICROPHONE_BIASED_TO_HALF_RAIL
-LUFA_OPTS += -D USE_TEST_TONE
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/JoystickHostWithParser/Config/LUFAConfig.h b/Demos/Host/ClassDriver/JoystickHostWithParser/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 7ee25ec..08047b0 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 0d30175..e938f95 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/KeyboardHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/KeyboardHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 8920ff8..730b49c 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 3774974..10b2b2f 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/KeyboardHostWithParser/Config/LUFAConfig.h b/Demos/Host/ClassDriver/KeyboardHostWithParser/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 2ad4171..20b6356 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index e343cdb..e1fca2d 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/MIDIHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/MIDIHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 3607f01..907335f 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 779bb65..2f7a9e6 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/MassStorageHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/MassStorageHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..20b0912
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
+//             #define USB_DEVICE_ONLY
+               #define USB_HOST_ONLY
+               #define USB_STREAM_TIMEOUT_MS            5000
+//             #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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 991cb77..28791a2 100644 (file)
@@ -45,7 +45,6 @@
                #include <ctype.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index e85b733..870205a 100644 (file)
@@ -120,9 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D USB_STREAM_TIMEOUT_MS=5000
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -167,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/MouseHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/MouseHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index f8e8cf5..f3efe7f 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index ef527cd..3bb8486 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/MouseHostWithParser/Config/LUFAConfig.h b/Demos/Host/ClassDriver/MouseHostWithParser/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 416d17d..fd7f0a7 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 55934db..67f8b35 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/PrinterHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/PrinterHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 13650cd..e450aa1 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index ea2cdf3..de11cbc 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/RNDISEthernetHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/RNDISEthernetHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index f0ef903..e91b70c 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 2835960..9f95f5b 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/StillImageHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/StillImageHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index c70a0c7..61de790 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 8d2e631..6d3ade9 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/ClassDriver/VirtualSerialHost/Config/LUFAConfig.h b/Demos/Host/ClassDriver/VirtualSerialHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 5592db2..571c5bd 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 783c38e..0a4dbd0 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.c b/Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.c
deleted file mode 100644 (file)
index 0bdb7af..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2012.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-           www.lufa-lib.org\r
-*/\r
-\r
-/*\r
-  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, distribute, and sell this \r
-  software and its documentation for any purpose is hereby granted\r
-  without fee, provided that the above copyright notice appear in \r
-  all copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting \r
-  documentation, and that the name of the author not be used in \r
-  advertising or publicity pertaining to distribution of the \r
-  software without specific, written prior permission.\r
-\r
-  The author disclaim all warranties with regard to this\r
-  software, including all implied warranties of merchantability\r
-  and fitness.  In no event shall the author be liable for any\r
-  special, indirect or consequential damages or any damages\r
-  whatsoever resulting from loss of use, data or profits, whether\r
-  in an action of contract, negligence or other tortious action,\r
-  arising out of or in connection with the use or performance of\r
-  this software.\r
-*/\r
-\r
-/** \file\r
- *\r
- *  Bluetooth stack event callback handlers. This module handles the callback events that are\r
- *  thrown from the Bluetooth stack in response to changes in the connection and channel\r
- *  states.\r
- */\r
-\r
-#include "BluetoothEvents.h"\r
-\r
-/** Pointer to the opened Bluetooth ACL channel structure for RFCOMM, used to send and receive data between the\r
- *  local and remote device once a RFCOMM channel has been opened.\r
- */\r
-Bluetooth_Channel_t* SerialChannel_ACL    = NULL;\r
-\r
-/** Pointer to the opened RFCOMM logical channel between local and remote device, once a RFCOMM ACL channel has been\r
- *  negotiated and a logical RFCOMM channel requested.\r
- */\r
-RFCOMM_Channel_t*    SerialChannel_RFCOMM = NULL;\r
-\r
-/** Bluetooth stack callback event for when the Bluetooth stack has fully initialized using the attached\r
- *  Bluetooth dongle.\r
- */\r
-void Bluetooth_StackInitialized(void)\r
-{\r
-       printf_P(PSTR("Stack initialized with local address %02X:%02X:%02X:%02X:%02X:%02X.\r\n"),\r
-                Bluetooth_State.LocalBDADDR[5], Bluetooth_State.LocalBDADDR[4], Bluetooth_State.LocalBDADDR[3],\r
-                Bluetooth_State.LocalBDADDR[2], Bluetooth_State.LocalBDADDR[1], Bluetooth_State.LocalBDADDR[0]);\r
-                        \r
-       /* Reinitialize the services placed on top of the Bluetooth stack ready for new connections */\r
-       RFCOMM_Initialize();\r
-}\r
-\r
-/** Bluetooth stack callback event for a Bluetooth connection request. When this callback fires, the\r
- *  user application must indicate if the connection is to be allowed or rejected.\r
- *\r
- *  \param[in] RemoteAddress  Bluetooth address of the remote device attempting the connection\r
- *\r
- *  \return Boolean true to accept the connection, false to reject it\r
- */\r
-bool Bluetooth_ConnectionRequest(const uint8_t* RemoteAddress)\r
-{\r
-       printf_P(PSTR("Connection Request from Device %02X:%02X:%02X:%02X:%02X:%02X.\r\n"),\r
-                RemoteAddress[5], RemoteAddress[4], RemoteAddress[3], RemoteAddress[2],\r
-                RemoteAddress[1], RemoteAddress[0]);\r
-\r
-       /* Always accept connections from remote devices */\r
-       return true;\r
-}\r
-\r
-/** Bluetooth stack callback event for a completed Bluetooth connection. When this callback is made,\r
- *  the connection information can be accessed through the global \ref Bluetooth_Connection structure.\r
- */\r
-void Bluetooth_ConnectionComplete(void)\r
-{\r
-       printf_P(PSTR("Connection Complete to Device %02X:%02X:%02X:%02X:%02X:%02X.\r\n"), \r
-                Bluetooth_Connection.RemoteAddress[5], Bluetooth_Connection.RemoteAddress[4],\r
-                Bluetooth_Connection.RemoteAddress[3], Bluetooth_Connection.RemoteAddress[2],\r
-                Bluetooth_Connection.RemoteAddress[1], Bluetooth_Connection.RemoteAddress[0]);\r
-\r
-       LEDs_SetAllLEDs(LEDMASK_USB_BUSY);\r
-}\r
-\r
-/** Bluetooth stack callback event for a completed Bluetooth disconnection. When this callback is made,\r
- *  the connection information in the global \ref Bluetooth_Connection structure is invalidated with the\r
- *  exception of the RemoteAddress element, which can be used to determine the address of the device that\r
- *  was disconnected.\r
- */\r
-void Bluetooth_DisconnectionComplete(void)\r
-{\r
-       printf_P(PSTR("Disconnection Complete to Device %02X:%02X:%02X:%02X:%02X:%02X.\r\n"), \r
-                Bluetooth_Connection.RemoteAddress[5], Bluetooth_Connection.RemoteAddress[4],\r
-                Bluetooth_Connection.RemoteAddress[3], Bluetooth_Connection.RemoteAddress[2],\r
-                Bluetooth_Connection.RemoteAddress[1], Bluetooth_Connection.RemoteAddress[0]);\r
-\r
-       LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
-}\r
-\r
-/** Bluetooth stack callback event for a Bluetooth ACL Channel connection request. When is callback fires,\r
- *  the user application must indicate if the channel connection should be rejected or not, based on the \r
- *  protocol (PSM) value of the requested channel.\r
- *\r
- *  \param[in] PSM  Protocol PSM value for the requested channel\r
- *\r
- *  \return Boolean true to accept the channel connection request, false to reject it\r
- */\r
-bool Bluetooth_ChannelConnectionRequest(const uint16_t PSM)\r
-{\r
-       /* Only accept connections for channels that will be used for RFCOMM or SDP data */\r
-       return ((PSM == CHANNEL_PSM_RFCOMM) || (PSM == CHANNEL_PSM_SDP));\r
-}\r
-\r
-/** Bluetooth stack callback event for when a Bluetooth ACL channel has been fully created and configured,\r
- *  either at the request of the local device, or the remote device.\r
- *\r
- *  \param[in] ACLChannel  Bluetooth ACL data channel information structure for the channel that can now be used\r
- */\r
-void Bluetooth_ChannelOpened(Bluetooth_Channel_t* const ACLChannel)\r
-{\r
-       /* Save the RFCOMM channel for later use when we want to send RFCOMM data */\r
-       if (ACLChannel->PSM == CHANNEL_PSM_RFCOMM)\r
-         SerialChannel_ACL = ACLChannel;\r
-}\r
-\r
-/** Bluetooth stack callback event for a non-signal ACL packet reception. This callback fires once a connection\r
- *  to a remote Bluetooth device has been made, and the remote device has sent a non-signaling ACL packet.\r
- *\r
- *  \param[in] Data        Pointer to a buffer where the received data is stored\r
- *  \param[in] DataLen     Length of the packet data, in bytes\r
- *  \param[in] ACLChannel  Bluetooth ACL data channel information structure for the packet's destination channel\r
- */\r
-void Bluetooth_PacketReceived(void* Data, uint16_t DataLen, Bluetooth_Channel_t* const ACLChannel)\r
-{\r
-       /* Run the correct packet handler based on the received packet's PSM, which indicates the service being carried */\r
-       switch (ACLChannel->PSM)\r
-       {\r
-               case CHANNEL_PSM_SDP:\r
-                       /* Service Discovery Protocol packet */\r
-                       SDP_ProcessPacket(Data, ACLChannel);\r
-                       break;\r
-               case CHANNEL_PSM_RFCOMM:\r
-                       /* RFCOMM (Serial Port) Protocol packet */\r
-                       RFCOMM_ProcessPacket(Data, ACLChannel);\r
-                       break;\r
-       }\r
-}\r
-\r
-/** RFCOMM layer callback for event for when a RFCOMM logical channel has been fully opened and configured between\r
- *  the local and remote device. Once open, this RFCOMM channel can be read from and written to freely until is it\r
- *  closed by either end.\r
- *\r
- *  \param[in] RFCOMMChannel  RFCOMM channel that was opened\r
- */ \r
-void RFCOMM_ChannelOpened(RFCOMM_Channel_t* const RFCOMMChannel)\r
-{\r
-       /* Save the serial port RFCOMM logical channel for later use */\r
-       SerialChannel_RFCOMM = RFCOMMChannel;\r
-}\r
-\r
-/** RFCOMM layer callback event for when a packet is received on an open RFCOMM channel.\r
- *\r
- *  \param[in] ACLChannel  RFCOMM ACL channel that the data was directed to\r
- *  \param[in] DataLen     Length of the received data, in bytes\r
- *  \param[in] Data        Pointer to a buffer where the received data is stored\r
- */\r
-void RFCOMM_DataReceived(RFCOMM_Channel_t* const ACLChannel, uint16_t DataLen, const uint8_t* Data)\r
-{\r
-       /* Write the received bytes to the serial port */\r
-       for (uint8_t i = 0; i < DataLen; i++)\r
-         putchar(Data[i]);\r
-       \r
-       /* Echo the data back to the sending device */\r
-       RFCOMM_SendData(DataLen, Data, SerialChannel_RFCOMM, SerialChannel_ACL);\r
-}\r
-\r
-/** RFCOMM layer callback event for when the remote device has updated the channel terminal control signals\r
- *  for a particular RFCOMM channel.\r
- *\r
- *  \param[in] RFCOMMChannel  RFCOMM logical channel whose signals were altered\r
- */ \r
-void RFCOMM_ChannelSignalsReceived(RFCOMM_Channel_t* const RFCOMMChannel)\r
-{\r
-       // Currently do nothing in response to the remote device sending new terminal control signals\r
-}\r
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.h b/Demos/Host/Incomplete/BluetoothHost/BluetoothEvents.h
deleted file mode 100644 (file)
index ae235fb..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2012.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-           www.lufa-lib.org\r
-*/\r
-\r
-/*\r
-  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, distribute, and sell this \r
-  software and its documentation for any purpose is hereby granted\r
-  without fee, provided that the above copyright notice appear in \r
-  all copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting \r
-  documentation, and that the name of the author not be used in \r
-  advertising or publicity pertaining to distribution of the \r
-  software without specific, written prior permission.\r
-\r
-  The author disclaim all warranties with regard to this\r
-  software, including all implied warranties of merchantability\r
-  and fitness.  In no event shall the author be liable for any\r
-  special, indirect or consequential damages or any damages\r
-  whatsoever resulting from loss of use, data or profits, whether\r
-  in an action of contract, negligence or other tortious action,\r
-  arising out of or in connection with the use or performance of\r
-  this software.\r
-*/\r
-\r
-/** \file\r
- *\r
- *  Header file for BluetoothEvents.c.\r
- */\r
-\r
-#ifndef _BLUETOOTH_EVENTS_H_\r
-#define _BLUETOOTH_EVENTS_H_\r
-\r
-       /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <stdio.h>\r
-\r
-               #include "BluetoothHost.h"\r
-               #include "Lib/BluetoothStack.h"\r
-               #include "Lib/SDP.h"\r
-               #include "Lib/RFCOMM.h"\r
-\r
-               #include <LUFA/Drivers/Peripheral/Serial.h>\r
-               #include <LUFA/Drivers/Board/LEDs.h>\r
-               \r
-       /* Macros: */\r
-               /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */\r
-               #define LEDMASK_USB_NOTREADY      LEDS_LED1\r
-\r
-               /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */\r
-               #define LEDMASK_USB_ENUMERATING  (LEDS_LED2 | LEDS_LED3)\r
-\r
-               /** LED mask for the library LED driver, to indicate that the USB interface is ready. */\r
-               #define LEDMASK_USB_READY        (LEDS_LED2 | LEDS_LED4)\r
-\r
-               /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */\r
-               #define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)\r
-\r
-               /** LED mask for the library LED driver, to indicate that the USB interface is busy. */\r
-               #define LEDMASK_USB_BUSY          LEDS_LED2\r
-       \r
-       /* External Variables: */\r
-               extern Bluetooth_Channel_t* SerialChannel_ACL;\r
-               extern RFCOMM_Channel_t*    SerialChannel_RFCOMM;\r
-               \r
-#endif\r
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c
deleted file mode 100644 (file)
index 14ba26f..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 BluetoothHost demo. This file contains the main tasks of
- *  the demo and is responsible for the initial application hardware configuration.
- */
-
-#include "BluetoothHost.h"
-
-/** Bluetooth configuration structure. This structure configures the Bluetooth stack's user alterable settings. */
-Bluetooth_Device_t Bluetooth_DeviceConfiguration =
-       {
-               Class:   (DEVICE_CLASS_SERVICE_CAPTURING | DEVICE_CLASS_MAJOR_COMPUTER | DEVICE_CLASS_MINOR_COMPUTER_PALM),
-               PINCode: "0000",
-               Name:    "LUFA Bluetooth Demo"
-       };
-
-/** Main program entry point. This routine configures the hardware required by the application, then
- *  enters a loop to run the application tasks in sequence.
- */
-int main(void)
-{
-       SetupHardware();
-
-       puts_P(PSTR(ESC_FG_CYAN "Bluetooth Host Demo running.\r\n" ESC_FG_WHITE));
-
-       LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-       sei();
-
-       for (;;)
-       {
-               RFCOMM_ServiceChannels(SerialChannel_ACL);
-
-               Bluetooth_Stack_USBTask();
-               USB_USBTask();
-       }
-}
-
-/** Configures the board hardware and chip peripherals for the demo's functionality. */
-void SetupHardware(void)
-{
-       /* Disable watchdog if enabled by bootloader/fuses */
-       MCUSR &= ~(1 << WDRF);
-       wdt_disable();
-
-       /* Disable clock division */
-       clock_prescale_set(clock_div_1);
-
-       /* Hardware Initialization */
-       Serial_Init(9600, false);
-       LEDs_Init();
-       USB_Init();
-
-       /* Create a stdio stream for the serial port for stdin and stdout */
-       Serial_CreateStream(NULL);
-}
-
-/** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and
- *  starts the library USB task to begin the enumeration and USB management process.
- */
-void EVENT_USB_Host_DeviceAttached(void)
-{
-       puts_P(PSTR(ESC_FG_GREEN "Device Attached.\r\n" ESC_FG_WHITE));
-       LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
-}
-
-/** Event handler for the USB_DeviceUnattached event. This indicates that a device has been removed from the host, and
- *  stops the library USB task management process.
- */
-void EVENT_USB_Host_DeviceUnattached(void)
-{
-       puts_P(PSTR(ESC_FG_GREEN "\r\nDevice Unattached.\r\n" ESC_FG_WHITE));
-       LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-}
-
-/** Event handler for the USB_DeviceEnumerationComplete event. This indicates that a device has been successfully
- *  enumerated by the host and is now ready to be used by the application.
- */
-void EVENT_USB_Host_DeviceEnumerationComplete(void)
-{
-       puts_P(PSTR("Getting Device Data.\r\n"));
-
-       uint8_t ErrorCode;
-
-       /* Get and process the configuration descriptor data */
-       if ((ErrorCode = ProcessDeviceDescriptor()) != SuccessfulDeviceRead)
-       {
-               if (ErrorCode == DevControlError)
-                 puts_P(PSTR(ESC_FG_RED "Control Error (Get Device).\r\n"));
-               else
-                 puts_P(PSTR(ESC_FG_RED "Invalid Device.\r\n"));
-
-               printf_P(PSTR(" -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
-
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               return;
-       }
-
-       puts_P(PSTR("Getting Config Data.\r\n"));
-
-       /* Get and process the configuration descriptor data */
-       if ((ErrorCode = ProcessConfigurationDescriptor()) != SuccessfulConfigRead)
-       {
-               if (ErrorCode == ControlError)
-                 puts_P(PSTR(ESC_FG_RED "Control Error (Get Configuration).\r\n"));
-               else
-                 puts_P(PSTR(ESC_FG_RED "Invalid Device.\r\n"));
-
-               printf_P(PSTR(" -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
-
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               return;
-       }
-
-       /* Set the device configuration to the first configuration (rarely do devices use multiple configurations) */
-       if ((ErrorCode = USB_Host_SetDeviceConfiguration(1)) != HOST_SENDCONTROL_Successful)
-       {
-               printf_P(PSTR(ESC_FG_RED "Control Error (Set Configuration).\r\n"
-                                                                " -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);
-
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               return;
-       }
-
-       puts_P(PSTR("Bluetooth Dongle Enumerated.\r\n"));
-
-       /* Initialize the Bluetooth stack */
-       Bluetooth_Stack_Init();
-
-       LEDs_SetAllLEDs(LEDMASK_USB_READY);
-}
-
-/** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */
-void EVENT_USB_Host_HostError(const uint8_t ErrorCode)
-{
-       USB_Disable();
-
-       printf_P(PSTR(ESC_FG_RED "Host Mode Error\r\n"
-                                " -- Error Code %d\r\n" ESC_FG_WHITE), ErrorCode);
-
-       LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-       for(;;);
-}
-
-/** Event handler for the USB_DeviceEnumerationFailed event. This indicates that a problem occurred while
- *  enumerating an attached USB device.
- */
-void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
-                                            const uint8_t SubErrorCode)
-{
-       printf_P(PSTR(ESC_FG_RED "Dev Enum Error\r\n"
-                                " -- Error Code %d\r\n"
-                                " -- Sub Error Code %d\r\n"
-                                " -- In State %d\r\n" ESC_FG_WHITE), ErrorCode, SubErrorCode, USB_HostState);
-
-       LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-}
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h b/Demos/Host/Incomplete/BluetoothHost/BluetoothHost.h
deleted file mode 100644 (file)
index 77d054f..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 BluetoothHost.c.
- */
-
-#ifndef _BLUETOOTH_HOST_H_
-#define _BLUETOOTH_HOST_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-               #include <avr/wdt.h>
-               #include <avr/pgmspace.h>
-               #include <avr/power.h>
-               #include <avr/interrupt.h>
-               #include <stdio.h>
-
-               #include "BluetoothEvents.h"
-               #include "DeviceDescriptor.h"
-               #include "ConfigDescriptor.h"
-               #include "Lib/BluetoothStack.h"
-
-               #include <LUFA/Version.h>
-               #include <LUFA/Drivers/Misc/TerminalCodes.h>
-               #include <LUFA/Drivers/USB/USB.h>
-               #include <LUFA/Drivers/Peripheral/Serial.h>
-               #include <LUFA/Drivers/Board/LEDs.h>
-
-       /* Macros: */
-               /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
-               #define LEDMASK_USB_NOTREADY      LEDS_LED1
-
-               /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
-               #define LEDMASK_USB_ENUMERATING  (LEDS_LED2 | LEDS_LED3)
-
-               /** LED mask for the library LED driver, to indicate that the USB interface is ready. */
-               #define LEDMASK_USB_READY        (LEDS_LED2 | LEDS_LED4)
-
-               /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
-               #define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)
-
-               /** LED mask for the library LED driver, to indicate that the USB interface is busy. */
-               #define LEDMASK_USB_BUSY          LEDS_LED2
-
-       /* Event Handlers: */
-               void EVENT_USB_Host_DeviceAttached(void);
-               void EVENT_USB_Host_DeviceUnattached(void);
-               void EVENT_USB_Host_DeviceEnumerationComplete(void);
-               void EVENT_USB_Host_HostError(const uint8_t ErrorCode);
-               void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
-                                                           const uint8_t SubErrorCode);
-
-       /* Function Prototypes: */
-               void SetupHardware(void);
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/ConfigDescriptor.c b/Demos/Host/Incomplete/BluetoothHost/ConfigDescriptor.c
deleted file mode 100644 (file)
index fa19052..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 Configuration Descriptor processing routines, to determine the correct pipe configurations
- *  needed to communication with an attached USB device. Descriptors are special  computer-readable structures
- *  which the host requests upon device enumeration, to determine the device's capabilities and functions.
- */
-
-#include "ConfigDescriptor.h"
-
-/** Reads and processes an attached device's descriptors, to determine compatibility and pipe configurations. This
- *  routine will read in the entire configuration descriptor, and configure the hosts pipes to correctly communicate
- *  with compatible devices.
- *
- *  This routine searches for a BT interface descriptor containing bulk IN and OUT data endpoints.
- *
- *  \return An error code from the \ref BluetoothHost_GetConfigDescriptorDataCodes_t enum.
- */
-uint8_t ProcessConfigurationDescriptor(void)
-{
-       uint8_t  ConfigDescriptorData[512];
-       void*    CurrConfigLocation = ConfigDescriptorData;
-       uint16_t CurrConfigBytesRem;
-
-       USB_Descriptor_Endpoint_t* DataINEndpoint  = NULL;
-       USB_Descriptor_Endpoint_t* DataOUTEndpoint = NULL;
-       USB_Descriptor_Endpoint_t* EventsEndpoint  = NULL;
-
-       /* Retrieve the entire configuration descriptor into the allocated buffer */
-       switch (USB_Host_GetDeviceConfigDescriptor(1, &CurrConfigBytesRem, ConfigDescriptorData, sizeof(ConfigDescriptorData)))
-       {
-               case HOST_GETCONFIG_Successful:
-                       break;
-               case HOST_GETCONFIG_InvalidData:
-                       return InvalidConfigDataReturned;
-               case HOST_GETCONFIG_BuffOverflow:
-                       return DescriptorTooLarge;
-               default:
-                       return DevControlError;
-       }
-
-       /* The Bluetooth USB transport addendum mandates that the data (not streaming voice) endpoints
-          be in the first interface descriptor (interface 0) */
-       USB_GetNextDescriptorOfType(&CurrConfigBytesRem, &CurrConfigLocation, DTYPE_Interface);
-
-       /* Ensure that an interface was found, and the end of the descriptor was not reached */
-       if (!(CurrConfigBytesRem))
-         return NoCompatibleInterfaceFound;
-
-       while (!(DataINEndpoint) || !(DataOUTEndpoint))
-       {
-               /* Get the next Bluetooth interface's data endpoint descriptor */
-               if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
-                                             DComp_NextInterfaceBluetoothDataEndpoint) != DESCRIPTOR_SEARCH_COMP_Found)
-               {
-                       /* Data endpoints not found within the first bluetooth device interface, error out */
-                       return NoCompatibleInterfaceFound;
-               }
-
-               /* Retrieve the endpoint address from the endpoint descriptor */
-               USB_Descriptor_Endpoint_t* EndpointData = DESCRIPTOR_PCAST(CurrConfigLocation, USB_Descriptor_Endpoint_t);
-
-               /* If the endpoint is a IN type endpoint */
-               if ((EndpointData->EndpointAddress & ENDPOINT_DIR_MASK) == ENDPOINT_DIR_IN)
-               {
-                       /* Check if the found endpoint is a interrupt or bulk type descriptor */
-                       if ((EndpointData->Attributes & EP_TYPE_MASK) == EP_TYPE_INTERRUPT)
-                         EventsEndpoint = EndpointData;
-                       else
-                         DataINEndpoint = EndpointData;
-               }
-               else
-               {
-                       DataOUTEndpoint = EndpointData;
-               }
-       }
-
-       /* Configure the Bluetooth data IN pipe */
-       Pipe_ConfigurePipe(BLUETOOTH_DATA_IN_PIPE, EP_TYPE_BULK, DataINEndpoint->EndpointAddress, DataINEndpoint->EndpointSize, 1);
-
-       /* Configure the Bluetooth data OUT pipe */
-       Pipe_ConfigurePipe(BLUETOOTH_DATA_OUT_PIPE, EP_TYPE_BULK, DataOUTEndpoint->EndpointAddress, DataOUTEndpoint->EndpointSize, 1);
-
-       /* Configure the Bluetooth events pipe */
-       Pipe_ConfigurePipe(BLUETOOTH_EVENTS_PIPE, EP_TYPE_INTERRUPT, EventsEndpoint->EndpointAddress, EventsEndpoint->EndpointSize, 1);
-       Pipe_SetInterruptPeriod(EventsEndpoint->PollingIntervalMS);
-
-       /* Valid data found, return success */
-       return SuccessfulConfigRead;
-}
-
-/** Descriptor comparator function. This comparator function is can be called while processing an attached USB device's
- *  configuration descriptor, to search for a specific sub descriptor. It can also be used to abort the configuration
- *  descriptor processing if an incompatible descriptor configuration is found.
- *
- *  This comparator searches for the next Endpoint descriptor inside the current interface descriptor, aborting the
- *  search if another interface descriptor is found before the required endpoint.
- *
- *  \return A value from the DSEARCH_Return_ErrorCodes_t enum
- */
-uint8_t DComp_NextInterfaceBluetoothDataEndpoint(void* CurrentDescriptor)
-{
-       USB_Descriptor_Header_t* Header = DESCRIPTOR_PCAST(CurrentDescriptor, USB_Descriptor_Header_t);
-
-       /* Determine the type of the current descriptor */
-       if (Header->Type == DTYPE_Endpoint)
-         return DESCRIPTOR_SEARCH_Found;
-       else if (Header->Type == DTYPE_Interface)
-         return DESCRIPTOR_SEARCH_Fail;
-       else
-         return DESCRIPTOR_SEARCH_NotFound;
-}
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/ConfigDescriptor.h b/Demos/Host/Incomplete/BluetoothHost/ConfigDescriptor.h
deleted file mode 100644 (file)
index c46add7..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 ConfigDescriptor.c.
- */
-
-#ifndef _CONFIGDESCRIPTOR_H_
-#define _CONFIGDESCRIPTOR_H_
-
-       /* Includes: */
-               #include <LUFA/Drivers/USB/USB.h>
-
-       /* Macros: */
-               #define BLUETOOTH_DATA_IN_PIPE         (PIPE_DIR_IN  | 1)
-               #define BLUETOOTH_DATA_OUT_PIPE        (PIPE_DIR_OUT | 2)
-               #define BLUETOOTH_EVENTS_PIPE          (PIPE_DIR_IN  | 3)
-
-       /* Enums: */
-               /** Enum for the possible return codes of the \ref ProcessConfigurationDescriptor() function. */
-               enum BluetoothHost_GetConfigDescriptorDataCodes_t
-               {
-                       SuccessfulConfigRead            = 0, /**< Configuration Descriptor was processed successfully */
-                       DevControlError                 = 1, /**< A control request to the device failed to complete successfully */
-                       DescriptorTooLarge              = 2, /**< The device's Configuration Descriptor is too large to process */
-                       InvalidConfigDataReturned       = 3, /**< The device returned an invalid Configuration Descriptor */
-                       NoCompatibleInterfaceFound      = 4, /**< A compatible interface with the required endpoints was not found */
-               };
-
-       /* Function Prototypes: */
-               uint8_t ProcessConfigurationDescriptor(void);
-
-               uint8_t DComp_NextInterfaceBluetoothDataEndpoint(void* CurrentDescriptor);
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/DeviceDescriptor.c b/Demos/Host/Incomplete/BluetoothHost/DeviceDescriptor.c
deleted file mode 100644 (file)
index 3ef6476..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 Descriptor processing routines, to determine the overall device parameters. Descriptors are special
- *  computer-readable structures which the host requests upon device enumeration, to determine information about
- *  the attached device.
- */
-
-#include "DeviceDescriptor.h"
-
-/** Reads and processes an attached device's Device Descriptor, to determine compatibility
- *
- *  This routine checks to ensure that the attached device's class codes match those for Bluetooth devices.
- *
- *  \return An error code from the \ref BluetoothHost_GetDeviceDescriptorDataCodes_t enum.
- */
-uint8_t ProcessDeviceDescriptor(void)
-{
-       USB_Descriptor_Device_t DeviceDescriptor;
-
-       /* Send the request to retrieve the device descriptor */
-       if (USB_Host_GetDeviceDescriptor(&DeviceDescriptor) != HOST_SENDCONTROL_Successful)
-         return DevControlError;
-
-       /* Validate returned data - ensure the returned data is a device descriptor */
-       if (DeviceDescriptor.Header.Type != DTYPE_Device)
-         return InvalidDeviceDataReturned;
-
-       /* Validate returned device Class, SubClass and Protocol values against the Bluetooth spec values */
-       if ((DeviceDescriptor.Class    != BLUETOOTH_DEVICE_CLASS)    ||
-           (DeviceDescriptor.SubClass != BLUETOOTH_DEVICE_SUBCLASS) ||
-           (DeviceDescriptor.Protocol != BLUETOOTH_DEVICE_PROTOCOL))
-       {
-               return IncorrectBTDevice;
-       }
-
-       return SuccessfulDeviceRead;
-}
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/DeviceDescriptor.h b/Demos/Host/Incomplete/BluetoothHost/DeviceDescriptor.h
deleted file mode 100644 (file)
index 7f955c8..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 DeviceDescriptor.c.
- */
-
-#ifndef _DEVICEDESCRIPTOR_H_
-#define _DEVICEDESCRIPTOR_H_
-
-       /* Includes: */
-               #include <LUFA/Drivers/USB/USB.h>
-
-               #include "BluetoothHost.h"
-
-       /* Macros: */
-               /** Device Class value for the Bluetooth Device class. */
-               #define BLUETOOTH_DEVICE_CLASS           0xE0
-
-               /** Device Subclass value for the Bluetooth Device class. */
-               #define BLUETOOTH_DEVICE_SUBCLASS        0x01
-
-               /** Device Protocol value for the Bluetooth Device class. */
-               #define BLUETOOTH_DEVICE_PROTOCOL        0x01
-
-       /* Enums: */
-               /** Enum for the possible return codes of the \ref ProcessDeviceDescriptor() function. */
-               enum BluetoothHost_GetDeviceDescriptorDataCodes_t
-               {
-                       SuccessfulDeviceRead            = 0, /**< Device Descriptor was processed successfully */
-                       ControlError                    = 1, /**< A control request to the device failed to complete successfully */
-                       InvalidDeviceDataReturned       = 2, /**< The device returned an invalid Device Descriptor */
-                       IncorrectBTDevice               = 3, /**< The attached device is not a Bluetooth class device */
-               };
-
-       /* Function Prototypes: */
-               uint8_t ProcessDeviceDescriptor(void);
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Doxygen.conf b/Demos/Host/Incomplete/BluetoothHost/Doxygen.conf
deleted file mode 100644 (file)
index f4d15a6..0000000
+++ /dev/null
@@ -1,1808 +0,0 @@
-# Doxyfile 1.8.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a 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.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or sequence of words) that should
-# identify the project. Note that if you do not use Doxywizard you need
-# to put quotes around the project name if it contains spaces.
-
-PROJECT_NAME           = "LUFA Library - Bluetooth Host Demo"
-
-# 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)
-# base path where the generated documentation will be put.
-# 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 cause performance problems for the file system.
-
-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.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) 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.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) 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.
-
-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" "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.
-
-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.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then 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.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then 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.
-
-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 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 if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-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
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-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 comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-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 behaviour.
-# 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 behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-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.
-
-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.
-
-TAB_SIZE               = 4
-
-# This tag can be used to specify a number of aliases that acts
-# 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.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-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.
-
-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, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. 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 that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If MARKDOWN_SUPPORT is enabled (the default) 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.
-
-MARKDOWN_SUPPORT       = NO
-
-# 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); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip 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.
-
-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 (the default)
-# will make doxygen 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.
-
-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.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) 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.
-
-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).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
-# unions with only public data 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 (the default),
-# structs, classes, and unions are shown on a separate page (for HTML and Man
-# pages) or section (for LaTeX and RTF).
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT 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.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penalty.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will roughly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols.
-
-SYMBOL_CACHE_SIZE      = 0
-
-# Similar to the SYMBOL_CACHE_SIZE 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 appear 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.
-
-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 and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-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.
-
-EXTRACT_PACKAGE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-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.
-
-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 (the default) only methods in the interface are included.
-
-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 namespaces are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) 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.
-
-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 (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-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 (the default) these declarations will be included in the
-# documentation.
-
-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 (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-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 (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-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.
-
-CASE_SENSE_NAMES       = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# 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.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) 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.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-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 default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to 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 default)
-# the group names will appear in their defined order.
-
-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 default), 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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-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.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of 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 initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-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.
-
-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 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 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. See the manual for examples.
-
-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. The 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.
-
-LAYOUT_FILE            =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files
-# containing the references data. This must be a list of .bib files. The
-# .bib extension is automatically appended if omitted. Using this command
-# 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.
-
-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
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = YES
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED 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.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR 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.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The 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 (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-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)
-
-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 stderr.
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be 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.
-
-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, which is
-# also the default input encoding. 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.
-
-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 pattern (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++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS          = *.h \
-                         *.c \
-                         *.txt
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-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.
-
-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
-
-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.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are 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 <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> 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.
-
-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
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non 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 be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-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 option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# 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 also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-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.
-
-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.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# 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.
-
-REFERENCES_LINK_SOURCE = NO
-
-# 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.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) 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.
-
-VERBATIM_HEADERS       = NO
-
-#---------------------------------------------------------------------------
-# 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.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-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 one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-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. If left blank `html' will be used as the default path.
-
-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). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-#  for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is advised to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER            =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-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 the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# style sheet in the HTML output directory as well, or it will be erased!
-
-HTML_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.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the style sheet 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.
-# The allowed range is 0 to 359.
-
-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.
-
-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.
-
-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.
-
-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. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-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.
-
-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, 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.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# 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.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, 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.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# When GENERATE_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.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, 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.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, 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.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, 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).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, 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.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-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.
-
-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.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-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
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, 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.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-#  will be generated, which together with the HTML files, 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.
-
-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.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
-# at top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it. Since the tabs have the same information as the
-# navigation tree you can set this option to NO if you already set
-# GENERATE_TREEVIEW 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.
-# Since the tree basically has the same information as the tab index you
-# could consider to set DISABLE_INDEX to NO when enabling this option.
-
-GENERATE_TREEVIEW      = YES
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) 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.
-
-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.
-
-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.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# 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.
-
-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 before the changes have effect.
-
-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.
-
-USE_MATHJAX            = NO
-
-# 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.
-
-MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
-# names that should be enabled during MathJax rendering.
-
-MATHJAX_EXTENSIONS     =
-
-# 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.
-
-SEARCHENGINE           = NO
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
-# http://en.wikipedia.org/wiki/BibTeX for more info.
-
-LATEX_BIB_STYLE        = plain
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load style sheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = YES
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = YES
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             = __DOXYGEN__ \
-                         PROGMEM
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. For each
-# tag file the location of the external documentation should be added. The
-# format of a tag file without this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths
-# or URLs. Note that each tag file must have a unique name (where the name does
-# NOT include the path). If a tag file is not located in the directory in which
-# doxygen is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = NO
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = NO
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS        = 0
-
-# By default doxygen will use the Helvetica font for all dot files that
-# doxygen generates. When you want a differently looking font you can specify
-# the font name using DOT_FONTNAME. You need to make sure dot is able to find
-# the font, which can be done by putting it in a standard location or by setting
-# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
-# directory containing the font.
-
-DOT_FONTNAME           = FreeSans
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the Helvetica font.
-# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
-# set the path where dot can find it.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = NO
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = NO
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = NO
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = NO
-
-# If the UML_LOOK tag is enabled, the fields and methods are shown inside
-# the class node. If there are many fields or methods and many nodes the
-# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
-# threshold limits the number of items for each type to make the size more
-# managable. Set this to 0 for no limit. Note that the threshold may be
-# exceeded by 50% before the limit is enforced.
-
-UML_LIMIT_NUM_FIELDS   = 10
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = NO
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = NO
-
-# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = NO
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used. If you choose svg you need to set
-# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible in IE 9+ (other browsers do not have this requirement).
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-# Note that this requires a modern browser other than Internet Explorer.
-# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
-# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible. Older versions of IE do not have SVG support.
-
-INTERACTIVE_SVG        = NO
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 15
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 2
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = YES
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c
deleted file mode 100644 (file)
index a02a66b..0000000
+++ /dev/null
@@ -1,809 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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
- *
- *  Bluetooth L2CAP layer management code. This module managed the creation,
- *  configuration and teardown of L2CAP channels, and manages packet reception
- *  and sending to and from other Bluetooth devices.
- */
-
-/*
-       TODO: Make SendPacket respect receiver's MTU
-       TODO: Make ReceivePacket stitch together MTU fragments (?)
- */
-
-#define  INCLUDE_FROM_BLUETOOTH_ACLPACKETS_C
-#include "BluetoothACLPackets.h"
-
-/** Bluetooth ACL processing task. This task should be called repeatedly the main Bluetooth
- *  stack task to manage the ACL processing state.
- */
-void Bluetooth_ACLTask(void)
-{
-       /* Process incoming ACL packets, if any */
-       Bluetooth_ProcessIncomingACLPackets();
-
-       /* Check for any half-open channels, send configuration details to the remote device if found */
-       for (uint8_t i = 0; i < BLUETOOTH_MAX_OPEN_CHANNELS; i++)
-       {
-               Bluetooth_Channel_t* ChannelData = &Bluetooth_Connection.Channels[i];
-
-               bool MustSendConfigReq = true;
-
-               /* Check if we are in a channel state which requires a configuration request to be sent */
-               switch (ChannelData->State)
-               {
-                       case BT_Channel_Config_WaitConfig:
-                               ChannelData->State = BT_Channel_Config_WaitReqResp;
-                               break;
-                       case BT_Channel_Config_WaitSendConfig:
-                               ChannelData->State = BT_Channel_Config_WaitResp;
-                               break;
-                       default:
-                               MustSendConfigReq  = false;
-                               break;
-               }
-
-               /* Only send a configuration request if it the channel was in a state which required it */
-               if (MustSendConfigReq)
-               {
-                       struct
-                       {
-                               BT_Signal_Header_t           SignalCommandHeader;
-                               BT_Signal_ConfigurationReq_t ConfigurationRequest;
-
-                               struct
-                               {
-                                       BT_Config_Option_Header_t Header;
-                                       uint16_t Value;
-                               } Option_LocalMTU;
-                       } PacketData;
-
-                       /* Fill out the Signal Command header in the response packet */
-                       PacketData.SignalCommandHeader.Code            = BT_SIGNAL_CONFIGURATION_REQUEST;
-                       PacketData.SignalCommandHeader.Identifier      = ++Bluetooth_Connection.SignalingIdentifier;
-                       PacketData.SignalCommandHeader.Length          = sizeof(PacketData.ConfigurationRequest) +
-                                                                        sizeof(PacketData.Option_LocalMTU);
-
-                       /* Fill out the Configuration Request in the response packet, including local MTU information */
-                       PacketData.ConfigurationRequest.DestinationChannel = ChannelData->RemoteNumber;
-                       PacketData.ConfigurationRequest.Flags          = 0;
-                       PacketData.Option_LocalMTU.Header.Type         = BT_CONFIG_OPTION_MTU;
-                       PacketData.Option_LocalMTU.Header.Length       = sizeof(PacketData.Option_LocalMTU.Value);
-                       PacketData.Option_LocalMTU.Value               = ChannelData->LocalMTU;
-
-                       Bluetooth_SendPacket(&PacketData, sizeof(PacketData), NULL);
-
-                       BT_ACL_DEBUG(1, ">> L2CAP Configuration Request");
-                       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", PacketData.ConfigurationRequest.DestinationChannel);
-               }
-       }
-}
-
-/** Incoming ACL packet processing task. This task is called by the main ACL processing task to read in and process
- *  any incoming ACL packets to the device, handling signal requests as they are received or passing along channel
- *  data to the user application.
- */
-static void Bluetooth_ProcessIncomingACLPackets(void)
-{
-       BT_ACL_Header_t        ACLPacketHeader;
-       BT_DataPacket_Header_t DataHeader;
-
-       Pipe_SelectPipe(BLUETOOTH_DATA_IN_PIPE);
-       Pipe_Unfreeze();
-
-       if (!(Pipe_IsReadWriteAllowed()))
-       {
-               Pipe_Freeze();
-               return;
-       }
-
-       /* Read in the received ACL packet headers when it has been discovered that a packet has been received */
-       Pipe_Read_Stream_LE(&ACLPacketHeader, sizeof(ACLPacketHeader), NULL);
-       Pipe_Read_Stream_LE(&DataHeader, sizeof(DataHeader), NULL);
-
-       BT_ACL_DEBUG(2, "");
-       BT_ACL_DEBUG(2, "Packet Received");
-       BT_ACL_DEBUG(2, "-- Connection Handle: 0x%04X", (ACLPacketHeader.ConnectionHandle & 0x0FFF));
-       BT_ACL_DEBUG(2, "-- Data Length: 0x%04X", ACLPacketHeader.DataLength);
-       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", DataHeader.DestinationChannel);
-       BT_ACL_DEBUG(2, "-- Payload Length: 0x%04X", DataHeader.PayloadLength);
-
-       /* Check the packet's destination channel - signaling channel should be processed by the stack internally */
-       if (DataHeader.DestinationChannel == BT_CHANNEL_SIGNALING)
-       {
-               /* Read in the Signal Command header of the incoming packet */
-               BT_Signal_Header_t SignalCommandHeader;
-               Pipe_Read_Stream_LE(&SignalCommandHeader, sizeof(SignalCommandHeader), NULL);
-
-               /* Dispatch to the appropriate handler function based on the Signal message code */
-               switch (SignalCommandHeader.Code)
-               {
-                       case BT_SIGNAL_CONNECTION_REQUEST:
-                               Bluetooth_Signal_ConnectionReq(&SignalCommandHeader);
-                               break;
-                       case BT_SIGNAL_CONNECTION_RESPONSE:
-                               Bluetooth_Signal_ConnectionResp(&SignalCommandHeader);
-                               break;
-                       case BT_SIGNAL_CONFIGURATION_REQUEST:
-                               Bluetooth_Signal_ConfigurationReq(&SignalCommandHeader);
-                               break;
-                       case BT_SIGNAL_CONFIGURATION_RESPONSE:
-                               Bluetooth_Signal_ConfigurationResp(&SignalCommandHeader);
-                               break;
-                       case BT_SIGNAL_DISCONNECTION_REQUEST:
-                               Bluetooth_Signal_DisconnectionReq(&SignalCommandHeader);
-                               break;
-                       case BT_SIGNAL_DISCONNECTION_RESPONSE:
-                               Bluetooth_Signal_DisconnectionResp(&SignalCommandHeader);
-                               break;
-                       case BT_SIGNAL_ECHO_REQUEST:
-                               Bluetooth_Signal_EchoReq(&SignalCommandHeader);
-                               break;
-                       case BT_SIGNAL_INFORMATION_REQUEST:
-                               Bluetooth_Signal_InformationReq(&SignalCommandHeader);
-                               break;
-                       case BT_SIGNAL_COMMAND_REJECT:
-                               BT_ACL_DEBUG(1, "<< Command Reject");
-
-                               uint16_t RejectReason;
-                               Pipe_Read_Stream_LE(&RejectReason, sizeof(RejectReason), NULL);
-                               Pipe_Discard_Stream(ACLPacketHeader.DataLength - sizeof(RejectReason), NULL);
-                               Pipe_ClearIN();
-                               Pipe_Freeze();
-
-                               BT_ACL_DEBUG(2, "-- Reason: %d", RejectReason);
-                               break;
-                       default:
-                               BT_ACL_DEBUG(1, "<< Unknown Signaling Command 0x%02X", SignalCommandHeader.Code);
-
-                               Pipe_Discard_Stream(ACLPacketHeader.DataLength, NULL);
-                               Pipe_ClearIN();
-                               Pipe_Freeze();
-                               break;
-               }
-       }
-       else
-       {
-               /* Non-signaling packet received, read in the packet contents and pass to the user application */
-               uint8_t PacketData[DataHeader.PayloadLength];
-               Pipe_Read_Stream_LE(PacketData, DataHeader.PayloadLength, NULL);
-               Pipe_ClearIN();
-               Pipe_Freeze();
-
-               Bluetooth_PacketReceived(PacketData, DataHeader.PayloadLength,
-                                        Bluetooth_GetChannelData(DataHeader.DestinationChannel, CHANNEL_SEARCH_LOCALNUMBER));
-       }
-}
-
-/** Retrieves the channel information structure with the given local or remote channel number from the channel list.
- *
- *  \param[in] SearchValue  Value to search for in the channel structure list
- *  \param[in] SearchKey    Key to search within the channel structure, a \c CHANNEL_SEARCH_* mask
- *
- *  \return Pointer to the matching channel information structure in the channel table if found, NULL otherwise
- */
-Bluetooth_Channel_t* Bluetooth_GetChannelData(const uint16_t SearchValue,
-                                              const uint8_t SearchKey)
-{
-       for (uint8_t i = 0; i < BLUETOOTH_MAX_OPEN_CHANNELS; i++)
-       {
-               Bluetooth_Channel_t* ChannelData = &Bluetooth_Connection.Channels[i];
-
-               /* Closed channels should be ignored as they are not considered valid data */
-               if (ChannelData->State == BT_Channel_Closed)
-                 continue;
-
-               bool FoundMatch = false;
-
-               /* Search the current channel for the search key to see if it matches */
-               switch (SearchKey)
-               {
-                       case CHANNEL_SEARCH_LOCALNUMBER:
-                               FoundMatch = (SearchValue == ChannelData->LocalNumber);
-                               break;
-                       case CHANNEL_SEARCH_REMOTENUMBER:
-                               FoundMatch = (SearchValue == ChannelData->RemoteNumber);
-                               break;
-                       case CHANNEL_SEARCH_PSM:
-                               FoundMatch = (SearchValue == ChannelData->PSM);
-                               break;
-               }
-
-               if (FoundMatch)
-                 return ChannelData;
-       }
-
-       return NULL;
-}
-
-/** Sends a packet to the remote device on the specified channel.
- *
- * \param[in] Data        Pointer to a buffer where the data is to be sourced from
- * \param[in] DataLen     Length of the data to send
- * \param[in] ACLChannel  ACL channel information structure containing the destination channel's information, NULL
- *                        to send to the remote device's signaling channel
- *
- * \return A value from the \ref BT_SendPacket_ErrorCodes_t enum
- */
-uint8_t Bluetooth_SendPacket(void* Data,
-                             const uint16_t DataLen,
-                             Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_ACL_Header_t        ACLPacketHeader;
-       BT_DataPacket_Header_t DataHeader;
-
-       /* A remote device must be connected before a packet transmission is attempted */
-       if (!(Bluetooth_Connection.IsConnected))
-         return BT_SENDPACKET_NotConnected;
-
-       /* If the destination channel is not the signaling channel and it is not currently fully open, abort */
-       if ((ACLChannel != NULL) && (ACLChannel->State != BT_Channel_Open))
-         return BT_SENDPACKET_ChannelNotOpen;
-
-       /* Fill out the packet's header from the remote device connection information structure */
-       ACLPacketHeader.ConnectionHandle      = (Bluetooth_Connection.ConnectionHandle | BT_ACL_FIRST_AUTOFLUSH);
-       ACLPacketHeader.DataLength            = sizeof(DataHeader) + DataLen;
-       DataHeader.PayloadLength              = DataLen;
-       DataHeader.DestinationChannel         = (ACLChannel == NULL) ? BT_CHANNEL_SIGNALING : ACLChannel->RemoteNumber;
-
-       Pipe_SelectPipe(BLUETOOTH_DATA_OUT_PIPE);
-
-       Pipe_WaitUntilReady();
-       Pipe_Unfreeze();
-
-       /* Write the packet contents to the pipe so that it can be sent to the remote device */
-       Pipe_Write_Stream_LE(&ACLPacketHeader, sizeof(ACLPacketHeader), NULL);
-       Pipe_Write_Stream_LE(&DataHeader, sizeof(DataHeader), NULL);
-       Pipe_Write_Stream_LE(Data, DataLen, NULL);
-       Pipe_ClearOUT();
-
-       Pipe_Freeze();
-
-       BT_ACL_DEBUG(2, "");
-       BT_ACL_DEBUG(2, "Packet Sent");
-       BT_ACL_DEBUG(2, "-- Connection Handle: 0x%04X", (ACLPacketHeader.ConnectionHandle & 0x0FFF));
-       BT_ACL_DEBUG(2, "-- Data Length: 0x%04X", ACLPacketHeader.DataLength);
-       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", DataHeader.DestinationChannel);
-       BT_ACL_DEBUG(2, "-- Payload Length: 0x%04X", DataHeader.PayloadLength);
-
-       return BT_SENDPACKET_NoError;
-}
-
-/** Opens a Bluetooth channel to the currently connected remote device, so that data can be exchanged.
- *
- *  \note The channel is not immediately opened when this function returns - it must undergo a two way
- *        connection and configuration process first as the main Bluetooth stack processing task is
- *        repeatedly called. The returned channel is unusable by the user application until its State
- *        element has progressed to the Open state.
- *
- *  \param[in] PSM  PSM of the service that the channel is to be opened for
- *
- *  \return Pointer to the channel information structure of the opened channel, or NULL if no free channels
- */
-Bluetooth_Channel_t* Bluetooth_OpenChannel(const uint16_t PSM)
-{
-       Bluetooth_Channel_t* ChannelData = NULL;
-
-       /* Search through the channel information list for a free channel item */
-       for (uint8_t i = 0; i < BLUETOOTH_MAX_OPEN_CHANNELS; i++)
-       {
-               if (Bluetooth_Connection.Channels[i].State == BT_Channel_Closed)
-               {
-                       ChannelData = &Bluetooth_Connection.Channels[i];
-
-                       /* Set the new channel structure's local channel number to a unique value within the connection orientated
-                          channel address space */
-                       ChannelData->LocalNumber = (BT_CHANNELNUMBER_BASEOFFSET + i);
-                       break;
-               }
-       }
-
-       /* If no free channel item was found in the list, all channels are occupied - abort */
-       if (ChannelData == NULL)
-         return NULL;
-
-       /* Reset and fill out the allocated channel's information structure with defaults */
-       ChannelData->RemoteNumber = 0;
-       ChannelData->PSM          = PSM;
-       ChannelData->LocalMTU     = MAXIMUM_CHANNEL_MTU;
-       ChannelData->State        = BT_Channel_WaitConnectRsp;
-
-       struct
-       {
-               BT_Signal_Header_t        SignalCommandHeader;
-               BT_Signal_ConnectionReq_t ConnectionRequest;
-       } PacketData;
-
-       /* Fill out the Signal Command header in the response packet */
-       PacketData.SignalCommandHeader.Code              = BT_SIGNAL_CONNECTION_REQUEST;
-       PacketData.SignalCommandHeader.Identifier        = ++Bluetooth_Connection.SignalingIdentifier;
-       PacketData.SignalCommandHeader.Length            = sizeof(PacketData.ConnectionRequest);
-
-       /* Fill out the Connection Request in the response packet */
-       PacketData.ConnectionRequest.PSM                 = PSM;
-       PacketData.ConnectionRequest.SourceChannel       = ChannelData->LocalNumber;
-
-       Bluetooth_SendPacket(&PacketData, sizeof(PacketData), NULL);
-
-       BT_ACL_DEBUG(1, ">> L2CAP Connection Request");
-       BT_ACL_DEBUG(2, "-- PSM 0x%04X", PacketData.ConnectionRequest.PSM);
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", PacketData.ConnectionRequest.SourceChannel);
-
-       return ChannelData;
-}
-
-/** Closes a Bluetooth channel that is open to the currently connected remote device, so that no further data
- *  can be exchanged.
- *
- *  \note The channel is not immediately closed when this function returns - it must undergo an asynchronous
- *        disconnection process first as the main Bluetooth stack processing task is repeatedly called. The
- *        returned channel is unusable by the user application upon return however the channel is not completely
- *        closed until its State element has progressed to the Closed state.
- *
- * \param[in,out] ACLChannel  ACL channel information structure of the channel to close
- */
-void Bluetooth_CloseChannel(Bluetooth_Channel_t* const ACLChannel)
-{
-       /* Don't try to close a non-existing or already closed channel */
-       if ((ACLChannel == NULL) || (ACLChannel->State == BT_Channel_Closed))
-         return;
-
-       /* Set the channel's state to the start of the teardown process */
-       ACLChannel->State = BT_Channel_WaitDisconnect;
-
-       struct
-       {
-               BT_Signal_Header_t           SignalCommandHeader;
-               BT_Signal_DisconnectionReq_t DisconnectionRequest;
-       } PacketData;
-
-       /* Fill out the Signal Command header in the response packet */
-       PacketData.SignalCommandHeader.Code            = BT_SIGNAL_DISCONNECTION_REQUEST;
-       PacketData.SignalCommandHeader.Identifier      = ++Bluetooth_Connection.SignalingIdentifier;
-       PacketData.SignalCommandHeader.Length          = sizeof(PacketData.DisconnectionRequest);
-
-       /* Fill out the Disconnection Request in the response packet */
-       PacketData.DisconnectionRequest.DestinationChannel = ACLChannel->RemoteNumber;
-       PacketData.DisconnectionRequest.SourceChannel      = ACLChannel->LocalNumber;
-
-       Bluetooth_SendPacket(&PacketData, sizeof(PacketData), NULL);
-
-       BT_ACL_DEBUG(1, ">> L2CAP Disconnection Request");
-       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", PacketData.DisconnectionRequest.DestinationChannel);
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", PacketData.DisconnectionRequest.SourceChannel);
-}
-
-/** Internal Bluetooth stack Signal Command processing routine for a Connection Request command.
- *
- *  \param[in]  SignalCommandHeader  Pointer to the start of the received packet's Signal Command header
- */
-static inline void Bluetooth_Signal_ConnectionReq(const BT_Signal_Header_t* const SignalCommandHeader)
-{
-       BT_Signal_ConnectionReq_t ConnectionRequest;
-
-       Pipe_Read_Stream_LE(&ConnectionRequest, sizeof(ConnectionRequest), NULL);
-
-       Pipe_ClearIN();
-       Pipe_Freeze();
-
-       BT_ACL_DEBUG(1, "<< L2CAP Connection Request");
-       BT_ACL_DEBUG(2, "-- PSM: 0x%04X", ConnectionRequest.PSM);
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ConnectionRequest.SourceChannel);
-
-       /* Try to retrieve the existing channel's information structure if it exists */
-       Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConnectionRequest.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER);
-
-       /* If an existing channel item with the correct remote channel number was not found, find a free channel entry */
-       if (ChannelData == NULL)
-       {
-               /* Look through the channel information list for a free entry */
-               for (uint8_t i = 0; i < BLUETOOTH_MAX_OPEN_CHANNELS; i++)
-               {
-                       if (Bluetooth_Connection.Channels[i].State == BT_Channel_Closed)
-                       {
-                               ChannelData = &Bluetooth_Connection.Channels[i];
-
-                               /* Set the new channel structure's local channel number to a unique value within the connection orientated
-                                  channel address space */
-                               ChannelData->LocalNumber = (BT_CHANNELNUMBER_BASEOFFSET + i);
-                               break;
-                       }
-               }
-       }
-
-       uint8_t ChannelStatus = BT_CONNECTION_REFUSED_RESOURCES;
-
-       /* Reset the channel item contents only if a channel entry was found for it */
-       if (ChannelData != NULL)
-       {
-               /* Check if the user application will allow the connection based on its PSM */
-               if (Bluetooth_ChannelConnectionRequest(ConnectionRequest.PSM))
-               {
-                       ChannelData->RemoteNumber = ConnectionRequest.SourceChannel;
-                       ChannelData->PSM          = ConnectionRequest.PSM;
-                       ChannelData->LocalMTU     = MAXIMUM_CHANNEL_MTU;
-                       ChannelData->State        = BT_Channel_Config_WaitConfig;
-
-                       ChannelStatus = BT_CONNECTION_SUCCESSFUL;
-               }
-               else
-               {
-                       ChannelStatus = BT_CONNECTION_REFUSED_PSM;
-               }
-       }
-
-       struct
-       {
-               BT_Signal_Header_t         SignalCommandHeader;
-               BT_Signal_ConnectionResp_t ConnectionResponse;
-       } ResponsePacket;
-
-       /* Fill out the Signal Command header in the response packet */
-       ResponsePacket.SignalCommandHeader.Code              = BT_SIGNAL_CONNECTION_RESPONSE;
-       ResponsePacket.SignalCommandHeader.Identifier        = SignalCommandHeader->Identifier;
-       ResponsePacket.SignalCommandHeader.Length            = sizeof(ResponsePacket.ConnectionResponse);
-
-       /* Fill out the Connection Response in the response packet */
-       ResponsePacket.ConnectionResponse.DestinationChannel = (ChannelData != NULL) ? ChannelData->LocalNumber  : 0;
-       ResponsePacket.ConnectionResponse.SourceChannel      = (ChannelData != NULL) ? ChannelData->RemoteNumber : 0;
-       ResponsePacket.ConnectionResponse.Result             = ChannelStatus;
-       ResponsePacket.ConnectionResponse.Status             = 0x00;
-
-       Bluetooth_SendPacket(&ResponsePacket, sizeof(ResponsePacket), NULL);
-
-       BT_ACL_DEBUG(1, ">> L2CAP Connection Response");
-       BT_ACL_DEBUG(2, "-- Result: 0x%02X", ResponsePacket.ConnectionResponse.Result);
-       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", ResponsePacket.ConnectionResponse.DestinationChannel);
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ResponsePacket.ConnectionResponse.SourceChannel);
-}
-
-/** Internal Bluetooth stack Signal Command processing routine for a Connection Response command.
- *
- *  \param[in]  SignalCommandHeader  Pointer to the start of the received packet's Signal Command header
- */
-static inline void Bluetooth_Signal_ConnectionResp(const BT_Signal_Header_t* const SignalCommandHeader)
-{
-       BT_Signal_ConnectionResp_t ConnectionResponse;
-
-       Pipe_Read_Stream_LE(&ConnectionResponse, sizeof(ConnectionResponse), NULL);
-
-       Pipe_ClearIN();
-       Pipe_Freeze();
-
-       BT_ACL_DEBUG(1, "<< L2CAP Connection Response");
-       BT_ACL_DEBUG(2, "-- Result: 0x%02X", ConnectionResponse.Result);
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ConnectionResponse.SourceChannel);
-       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", ConnectionResponse.DestinationChannel);
-
-       /* Search for the referenced channel in the channel information list */
-       Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConnectionResponse.SourceChannel, CHANNEL_SEARCH_LOCALNUMBER);
-
-       /* Only progress if the referenced channel data was found */
-       if (ChannelData != NULL)
-       {
-               /* Set the channel structure's remote channel number to the channel allocated on the remote device */
-               ChannelData->RemoteNumber = ConnectionResponse.SourceChannel;
-               ChannelData->State        = (ConnectionResponse.Result == BT_CONNECTION_SUCCESSFUL) ?
-                                            BT_Channel_Config_WaitConfig : BT_Channel_Closed;
-       }
-}
-
-/** Internal Bluetooth stack Signal Command processing routine for a Configuration Request command.
- *
- *  \param[in]  SignalCommandHeader  Pointer to the start of the received packet's Signal Command header
- */
-static inline void Bluetooth_Signal_ConfigurationReq(const BT_Signal_Header_t* const SignalCommandHeader)
-{
-       BT_Signal_ConfigurationReq_t ConfigurationRequest;
-
-       /* Allocate a buffer large enough to hold the variable number of configuration options in the request */
-       uint8_t OptionsLen = (SignalCommandHeader->Length - sizeof(ConfigurationRequest));
-       uint8_t Options[OptionsLen];
-
-       Pipe_Read_Stream_LE(&ConfigurationRequest, sizeof(ConfigurationRequest), NULL);
-       Pipe_Read_Stream_LE(&Options, sizeof(Options), NULL);
-
-       Pipe_ClearIN();
-       Pipe_Freeze();
-
-       /* Search for the referenced channel in the channel information list */
-       Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConfigurationRequest.DestinationChannel, CHANNEL_SEARCH_LOCALNUMBER);
-
-       BT_ACL_DEBUG(1, "<< L2CAP Configuration Request");
-       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", ConfigurationRequest.DestinationChannel);
-       BT_ACL_DEBUG(2, "-- Options Len: 0x%04X", OptionsLen);
-
-       /* Only look at the channel configuration options if a valid channel entry for the local channel number was found */
-       if (ChannelData != NULL)
-       {
-               /* Iterate through each option in the configuration request to look for ones which can be processed */
-               uint8_t OptionPos = 0;
-               while (OptionPos < OptionsLen)
-               {
-                       BT_Config_Option_Header_t* OptionHeader = (BT_Config_Option_Header_t*)&Options[OptionPos];
-                       void*                      OptionData   = &Options[OptionPos + sizeof(BT_Config_Option_Header_t)];
-
-                       BT_ACL_DEBUG(2, "-- Option Type: 0x%04X", OptionHeader->Type);
-                       BT_ACL_DEBUG(2, "-- Option Length: 0x%04X", (sizeof(BT_Config_Option_Header_t) + OptionHeader->Length));
-
-                       /* Store the remote MTU option's value if present */
-                       if (OptionHeader->Type == BT_CONFIG_OPTION_MTU)
-                         ChannelData->RemoteMTU = *((uint16_t*)OptionData);
-
-                       /* Progress to the next option in the packet */
-                       OptionPos += (sizeof(BT_Config_Option_Header_t) + OptionHeader->Length);
-               }
-       }
-
-       struct
-       {
-               BT_Signal_Header_t            SignalCommandHeader;
-               BT_Signal_ConfigurationResp_t ConfigurationResponse;
-       } ResponsePacket;
-
-       /* Fill out the Signal Command header in the response packet */
-       ResponsePacket.SignalCommandHeader.Code              = BT_SIGNAL_CONFIGURATION_RESPONSE;
-       ResponsePacket.SignalCommandHeader.Identifier        = SignalCommandHeader->Identifier;
-       ResponsePacket.SignalCommandHeader.Length            = sizeof(ResponsePacket.ConfigurationResponse);
-
-       /* Fill out the Configuration Response in the response packet */
-       ResponsePacket.ConfigurationResponse.SourceChannel   = (ChannelData != NULL) ? ChannelData->RemoteNumber   : 0;
-       ResponsePacket.ConfigurationResponse.Flags           = 0x00;
-       ResponsePacket.ConfigurationResponse.Result          = (ChannelData != NULL) ? BT_CONFIGURATION_SUCCESSFUL : BT_CONFIGURATION_REJECTED;
-
-       Bluetooth_SendPacket(&ResponsePacket, sizeof(ResponsePacket), NULL);
-
-       if (ChannelData != NULL)
-       {
-               switch (ChannelData->State)
-               {
-                       case BT_Channel_Config_WaitConfig:
-                               ChannelData->State = BT_Channel_Config_WaitSendConfig;
-                               break;
-                       case BT_Channel_Config_WaitReqResp:
-                               ChannelData->State = BT_Channel_Config_WaitResp;
-                               break;
-                       case BT_Channel_Config_WaitReq:
-                               ChannelData->State = BT_Channel_Open;
-                               Bluetooth_ChannelOpened(ChannelData);
-                               break;
-               }
-       }
-
-       BT_ACL_DEBUG(1, ">> L2CAP Configuration Response");
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ResponsePacket.ConfigurationResponse.SourceChannel);
-       BT_ACL_DEBUG(2, "-- Result: 0x%02X", ResponsePacket.ConfigurationResponse.Result);
-}
-
-/** Internal Bluetooth stack Signal Command processing routine for a Configuration Response command.
- *
- *  \param[in]  SignalCommandHeader  Pointer to the start of the received packet's Signal Command header
- */
-static inline void Bluetooth_Signal_ConfigurationResp(const BT_Signal_Header_t* const SignalCommandHeader)
-{
-       BT_Signal_ConfigurationResp_t ConfigurationResponse;
-
-       Pipe_Read_Stream_LE(&ConfigurationResponse, sizeof(ConfigurationResponse), NULL);
-
-       Pipe_ClearIN();
-       Pipe_Freeze();
-
-       BT_ACL_DEBUG(1, "<< L2CAP Configuration Response");
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ConfigurationResponse.SourceChannel);
-       BT_ACL_DEBUG(2, "-- Result: 0x%02X", ConfigurationResponse.Result);
-
-       /* Search for the referenced channel in the channel information list */
-       Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConfigurationResponse.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER);
-
-       /* Only update the channel's state if it was found in the channel list */
-       if (ChannelData != NULL)
-       {
-               /* Check if the channel configuration completed successfully */
-               if (ConfigurationResponse.Result == BT_CONFIGURATION_SUCCESSFUL)
-               {
-                       switch (ChannelData->State)
-                       {
-                               case BT_Channel_Config_WaitReqResp:
-                                       ChannelData->State = BT_Channel_Config_WaitReq;
-                                       break;
-                               case BT_Channel_Config_WaitResp:
-                                       ChannelData->State = BT_Channel_Open;
-                                       Bluetooth_ChannelOpened(ChannelData);
-                                       break;
-                       }
-               }
-               else
-               {
-                       /* Configuration failed - close the channel */
-                       ChannelData->State = BT_Channel_Closed;
-               }
-       }
-}
-
-/** Internal Bluetooth stack Signal Command processing routine for a Disconnection Request command.
- *
- *  \param[in]  SignalCommandHeader  Pointer to the start of the received packet's Signal Command header
- */
-static inline void Bluetooth_Signal_DisconnectionReq(const BT_Signal_Header_t* const SignalCommandHeader)
-{
-       BT_Signal_DisconnectionReq_t DisconnectionRequest;
-
-       Pipe_Read_Stream_LE(&DisconnectionRequest, sizeof(DisconnectionRequest), NULL);
-
-       BT_ACL_DEBUG(1, "<< L2CAP Disconnection Request");
-       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", DisconnectionRequest.DestinationChannel);
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", DisconnectionRequest.SourceChannel);
-
-       Pipe_ClearIN();
-       Pipe_Freeze();
-
-       /* Search for the referenced channel in the channel information list */
-       Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(DisconnectionRequest.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER);
-
-       struct
-       {
-               BT_Signal_Header_t            SignalCommandHeader;
-               BT_Signal_DisconnectionResp_t DisconnectionResponse;
-       } ResponsePacket;
-
-       /* Fill out the Signal Command header in the response packet */
-       ResponsePacket.SignalCommandHeader.Code                 = BT_SIGNAL_DISCONNECTION_RESPONSE;
-       ResponsePacket.SignalCommandHeader.Identifier           = SignalCommandHeader->Identifier;
-       ResponsePacket.SignalCommandHeader.Length               = sizeof(ResponsePacket.DisconnectionResponse);
-
-       /* Fill out the Disconnection Response in the response packet */
-       ResponsePacket.DisconnectionResponse.DestinationChannel = (ChannelData != NULL) ? ChannelData->RemoteNumber : 0;
-       ResponsePacket.DisconnectionResponse.SourceChannel      = (ChannelData != NULL) ? ChannelData->LocalNumber  : 0;
-
-       Bluetooth_SendPacket(&ResponsePacket, sizeof(ResponsePacket), NULL);
-
-       /* If the channel was found in the channel list, close it */
-       if (ChannelData != NULL)
-         ChannelData->State = BT_Channel_Closed;
-
-       BT_ACL_DEBUG(1, ">> L2CAP Disconnection Response");
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", ResponsePacket.DisconnectionResponse.SourceChannel);
-       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", ResponsePacket.DisconnectionResponse.DestinationChannel);
-}
-
-/** Internal Bluetooth stack Signal Command processing routine for a Disconnection Response command.
- *
- *  \param[in]  SignalCommandHeader  Pointer to the start of the received packet's Signal Command header
- */
-static inline void Bluetooth_Signal_DisconnectionResp(const BT_Signal_Header_t* const SignalCommandHeader)
-{
-       BT_Signal_DisconnectionResp_t DisconnectionResponse;
-
-       Pipe_Read_Stream_LE(&DisconnectionResponse, sizeof(DisconnectionResponse), NULL);
-
-       BT_ACL_DEBUG(1, "<< L2CAP Disconnection Response");
-       BT_ACL_DEBUG(2, "-- Destination Channel: 0x%04X", DisconnectionResponse.DestinationChannel);
-       BT_ACL_DEBUG(2, "-- Source Channel: 0x%04X", DisconnectionResponse.SourceChannel);
-
-       Pipe_ClearIN();
-       Pipe_Freeze();
-
-       /* Search for the referenced channel in the channel information list */
-       Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(DisconnectionResponse.SourceChannel, CHANNEL_SEARCH_REMOTENUMBER);
-
-       /* If the channel was found in the channel list, close it */
-       if (ChannelData != NULL)
-         ChannelData->State = BT_Channel_Closed;
-}
-
-/** Internal Bluetooth stack Signal Command processing routine for an Echo Request command.
- *
- *  \param[in]  SignalCommandHeader  Pointer to the start of the received packet's Signal Command header
- */
-static inline void Bluetooth_Signal_EchoReq(const BT_Signal_Header_t* const SignalCommandHeader)
-{
-       BT_ACL_DEBUG(1, "<< L2CAP Echo Request");
-
-       Pipe_ClearIN();
-       Pipe_Freeze();
-
-       struct
-       {
-               BT_Signal_Header_t SignalCommandHeader;
-       } ResponsePacket;
-
-       /* Fill out the Signal Command header in the response packet */
-       ResponsePacket.SignalCommandHeader.Code                 = BT_SIGNAL_ECHO_RESPONSE;
-       ResponsePacket.SignalCommandHeader.Identifier           = SignalCommandHeader->Identifier;
-       ResponsePacket.SignalCommandHeader.Length               = 0;
-
-       Bluetooth_SendPacket(&ResponsePacket, sizeof(ResponsePacket), NULL);
-
-       BT_ACL_DEBUG(1, ">> L2CAP Echo Response");
-}
-
-/** Internal Bluetooth stack Signal Command processing routine for an Information Request command.
- *
- *  \param[in]  SignalCommandHeader  Pointer to the start of the received packet's Signal Command header
- */
-static inline void Bluetooth_Signal_InformationReq(const BT_Signal_Header_t* const SignalCommandHeader)
-{
-       BT_Signal_InformationReq_t InformationRequest;
-
-       Pipe_Read_Stream_LE(&InformationRequest, sizeof(InformationRequest), NULL);
-
-       BT_ACL_DEBUG(1, "<< L2CAP Information Request");
-       BT_ACL_DEBUG(2, "-- Info Type: 0x%04X", InformationRequest.InfoType);
-
-       Pipe_ClearIN();
-       Pipe_Freeze();
-
-       struct
-       {
-               BT_Signal_Header_t          SignalCommandHeader;
-               BT_Signal_InformationResp_t InformationResponse;
-
-               uint8_t Data[4];
-       } ResponsePacket;
-
-       uint8_t DataLen = 0;
-
-       /* Retrieve the requested information and store it in the outgoing packet, if found */
-       switch (InformationRequest.InfoType)
-       {
-               case BT_INFOREQ_MTU:
-                       ResponsePacket.InformationResponse.Result = BT_INFORMATION_SUCCESSFUL;
-                       DataLen = 2;
-
-                       *((uint16_t*)&ResponsePacket.Data) = MAXIMUM_CHANNEL_MTU;
-                       break;
-               case BT_INFOREQ_EXTENDEDFEATURES:
-                       ResponsePacket.InformationResponse.Result = BT_INFORMATION_SUCCESSFUL;
-                       DataLen = 4;
-
-                       *((uint32_t*)&ResponsePacket.Data) = 0;
-                       break;
-               default:
-                       ResponsePacket.InformationResponse.Result = BT_INFORMATION_NOTSUPPORTED;
-                       DataLen = 0;
-                       break;
-       }
-
-       /* Fill out the Signal Command header in the response packet */
-       ResponsePacket.SignalCommandHeader.Code                 = BT_SIGNAL_INFORMATION_RESPONSE;
-       ResponsePacket.SignalCommandHeader.Identifier           = SignalCommandHeader->Identifier;
-       ResponsePacket.SignalCommandHeader.Length               = sizeof(ResponsePacket.InformationResponse) + DataLen;
-
-       /* Fill out the Information Response in the response packet */
-       ResponsePacket.InformationResponse.InfoType = InformationRequest.InfoType;
-
-       Bluetooth_SendPacket(&ResponsePacket, (sizeof(ResponsePacket) - sizeof(ResponsePacket.Data) + DataLen), NULL);
-
-       BT_ACL_DEBUG(1, ">> L2CAP Information Response");
-       BT_ACL_DEBUG(2, "-- Result: 0x%02X", ResponsePacket.InformationResponse.Result);
-}
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h
deleted file mode 100644 (file)
index c9a4ac4..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 BluetoothACLPackets.c.
- */
-
-#ifndef _BLUETOOTH_ACLPACKETS_
-#define _BLUETOOTH_ACLPACKETS_
-
-       /* Includes: */
-               #include <avr/io.h>
-               #include <string.h>
-               #include <stdbool.h>
-               #include <stdio.h>
-
-               #include <LUFA/Drivers/USB/USB.h>
-               #include <LUFA/Drivers/Peripheral/Serial.h>
-
-               #include "BluetoothStack.h"
-
-       /* Macros: */
-               #define BT_ACL_DEBUG(l, s, ...)           do { if (ACL_DEBUG_LEVEL >= l) printf_P(PSTR("(ACL) " s "\r\n"), ##__VA_ARGS__); } while (0)
-               #define ACL_DEBUG_LEVEL                   0
-
-               /** Lowest possible channel number for L2CAP data channels. */
-               #define BT_CHANNELNUMBER_BASEOFFSET       0x0040
-
-               /** Bluetooth specification defined channel number for signaling commands. */
-               #define BT_CHANNEL_SIGNALING              0x0001
-
-               /** Bluetooth specification defined channel number for connectionless data. */
-               #define BT_CHANNEL_CONNECTIONLESS         0x0002
-
-               #define BT_ACL_FIRST_AUTOFLUSH            (1 << 13)
-
-               #define BT_SIGNAL_COMMAND_REJECT          0x01
-               #define BT_SIGNAL_CONNECTION_REQUEST      0x02
-               #define BT_SIGNAL_CONNECTION_RESPONSE     0x03
-               #define BT_SIGNAL_CONFIGURATION_REQUEST   0x04
-               #define BT_SIGNAL_CONFIGURATION_RESPONSE  0x05
-               #define BT_SIGNAL_DISCONNECTION_REQUEST   0x06
-               #define BT_SIGNAL_DISCONNECTION_RESPONSE  0x07
-               #define BT_SIGNAL_ECHO_REQUEST            0x08
-               #define BT_SIGNAL_ECHO_RESPONSE           0x09
-               #define BT_SIGNAL_INFORMATION_REQUEST     0x0A
-               #define BT_SIGNAL_INFORMATION_RESPONSE    0x0B
-
-               #define BT_INFOREQ_MTU                    0x0001
-               #define BT_INFOREQ_EXTENDEDFEATURES       0x0002
-
-               #define BT_INFORMATION_SUCCESSFUL         0x0000
-               #define BT_INFORMATION_NOTSUPPORTED       0x0001
-
-               #define BT_CONNECTION_SUCCESSFUL          0x0000
-               #define BT_CONNECTION_REFUSED_PSM         0x0002
-               #define BT_CONNECTION_REFUSED_RESOURCES   0x0004
-
-               #define BT_CONFIGURATION_SUCCESSFUL       0x0000
-               #define BT_CONFIGURATION_REJECTED         0x0002
-               #define BT_CONFIGURATION_UNKNOWNOPTIONS   0x0003
-
-               #define BT_CONFIG_OPTION_MTU              1
-
-       /* Type Defines: */
-               /** Bluetooth ACL header structure, common to all ACL data packets. */
-               typedef struct
-               {
-                       uint16_t ConnectionHandle; /**< Unique device connection handle of the ACL packet */
-                       uint16_t DataLength; /**< Length of the packet payload, in bytes */
-               } BT_ACL_Header_t;
-
-               /** Bluetooth ACL data packet header structure, for ACL packets containing L2CAP data. */
-               typedef struct
-               {
-                       uint16_t PayloadLength; /**< Size of the data payload, in bytes */
-                       uint16_t DestinationChannel; /**< Destination channel in the device the data is directed to */
-               } BT_DataPacket_Header_t;
-
-               /** Bluetooth signaling command header structure, for all ACL packets containing a signaling command. */
-               typedef struct
-               {
-                       uint8_t  Code; /**< Signal code, a \c BT_SIGNAL_* mask value */
-                       uint8_t  Identifier; /**< Unique signal command identifier to link requests and responses */
-                       uint16_t Length; /**< Length of the signaling command data, in bytes */
-               } BT_Signal_Header_t;
-
-               /** Connection Request signaling command structure, for channel connection requests. */
-               typedef struct
-               {
-                       uint16_t PSM; /**< Type of data the channel will carry, a \c CHANNEL_PSM_* mask value */
-                       uint16_t SourceChannel; /**< Channel source on the sending device this channel will link to */
-               } BT_Signal_ConnectionReq_t;
-
-               /** Connection response signaling command structure, for responses to channel connection requests. */
-               typedef struct
-               {
-                       uint16_t DestinationChannel; /**< Destination device channel that the connection request was processed on */
-                       uint16_t SourceChannel; /**< Source device channel address that the connection request came from */
-                       uint16_t Result; /**< Connection result, a \c BT_CONNECTION_* mask value */
-                       uint16_t Status; /**< Status of the request if the result was set to the Pending value */
-               } BT_Signal_ConnectionResp_t;
-
-               /** Disconnection request signaling command structure, for channel disconnection requests. */
-               typedef struct
-               {
-                       uint16_t DestinationChannel; /**< Destination channel address which is to be disconnected */
-                       uint16_t SourceChannel; /**< Source channel address which is to be disconnected */
-               } BT_Signal_DisconnectionReq_t;
-
-               /** Disconnection response signaling command structure, for responses to channel disconnection requests. */
-               typedef struct
-               {
-                       uint16_t DestinationChannel; /**< Destination channel address which was disconnected */
-                       uint16_t SourceChannel; /**< Source channel address which was disconnected */
-               } BT_Signal_DisconnectionResp_t;
-
-               /** Configuration Request signaling command structure, for channel configuration requests. */
-               typedef struct
-               {
-                       uint16_t DestinationChannel; /**< Destination channel address which is to be configured */
-                       uint16_t Flags; /**< Configuration flags for the request, including command continuation */
-               } BT_Signal_ConfigurationReq_t;
-
-               /** Configuration Response signaling command structure, for responses to channel configuration requests. */
-               typedef struct
-               {
-                       uint16_t SourceChannel; /**< Source channel that the configuration request was directed at */
-                       uint16_t Flags; /**< Configuration flags for the response, including response continuation */
-                       uint16_t Result; /**< Configuration result, a \c BT_CONFIGURATION_* mask value */
-               } BT_Signal_ConfigurationResp_t;
-
-               /** Information Request signaling command structure, for device information requests. */
-               typedef struct
-               {
-                       uint16_t InfoType; /**< Data type that is being requested, a \c BT_INFOREQ_* mask value */
-               } BT_Signal_InformationReq_t;
-
-               /** Information Response signaling command structure, for responses to information requests. */
-               typedef struct
-               {
-                       uint16_t InfoType; /**< Data type that was requested, a \c BT_INFOREQ_* mask value */
-                       uint16_t Result; /**< Result of the request, a \c BT_INFORMATION_* mask value */
-               } BT_Signal_InformationResp_t;
-
-               /** Configuration Option header structure, placed at the start of each option in a Channel Configuration
-                *  request's options list.
-                */
-               typedef struct
-               {
-                       uint8_t Type; /**< Option type, a \c BT_CONFIG_OPTION_* mask value */
-                       uint8_t Length; /**< Length of the option's value, in bytes */
-               } BT_Config_Option_Header_t;
-
-       /* Function Prototypes: */
-               void Bluetooth_ACLTask(void);
-
-               #if defined(INCLUDE_FROM_BLUETOOTH_ACLPACKETS_C)
-                       static void Bluetooth_ProcessIncomingACLPackets(void);
-
-                       static inline void Bluetooth_Signal_ConnectionReq(const BT_Signal_Header_t* const SignalCommandHeader);
-                       static inline void Bluetooth_Signal_ConnectionResp(const BT_Signal_Header_t* const SignalCommandHeader);
-                       static inline void Bluetooth_Signal_ConfigurationReq(const BT_Signal_Header_t* const SignalCommandHeader);
-                       static inline void Bluetooth_Signal_ConfigurationResp(const BT_Signal_Header_t* const SignalCommandHeader);
-                       static inline void Bluetooth_Signal_DisconnectionReq(const BT_Signal_Header_t* const SignalCommandHeader);
-                       static inline void Bluetooth_Signal_DisconnectionResp(const BT_Signal_Header_t* const SignalCommandHeader);
-                       static inline void Bluetooth_Signal_EchoReq(const BT_Signal_Header_t* const SignalCommandHeader);
-                       static inline void Bluetooth_Signal_InformationReq(const BT_Signal_Header_t* const SignalCommandHeader);
-               #endif
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothClassCodes.h b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothClassCodes.h
deleted file mode 100644 (file)
index 589685b..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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
- *
- *  Bluetooth class codes, used to describe the type and overall function of a
- *  Bluetooth device to other Bluetooth devices.
- */
-
-#ifndef _BLUETOOTH_CLASS_CODES_H_
-#define _BLUETOOTH_CLASS_CODES_H_
-
-       /* Macros: */
-               #define DEVICE_CLASS_SERVICE_POSITIONING               (1UL << 16)
-               #define DEVICE_CLASS_SERVICE_NETWORKING                (1UL << 17)
-               #define DEVICE_CLASS_SERVICE_RENDERING                 (1UL << 18)
-               #define DEVICE_CLASS_SERVICE_CAPTURING                 (1UL << 19)
-               #define DEVICE_CLASS_SERVICE_OBJECTTRANSFER            (1UL << 20)
-               #define DEVICE_CLASS_SERVICE_AUDIO                     (1UL << 21)
-               #define DEVICE_CLASS_SERVICE_TELEPHONY                 (1UL << 22)
-               #define DEVICE_CLASS_SERVICE_INFORMATION               (1UL << 23)
-
-               #define DEVICE_CLASS_MAJOR_MISC                        (0x00 << 8)
-               #define DEVICE_CLASS_MAJOR_COMPUTER                    (0x01 << 8)
-               #define DEVICE_CLASS_MAJOR_PHONE                       (0x02 << 8)
-               #define DEVICE_CLASS_MAJOR_LAN                         (0x03 << 8)
-               #define DEVICE_CLASS_MAJOR_AUDIOVIDEO                  (0x04 << 8)
-               #define DEVICE_CLASS_MAJOR_PERIPHERAL                  (0x05 << 8)
-               #define DEVICE_CLASS_MAJOR_IMAGING                     (0x06 << 8)
-               #define DEVICE_CLASS_MAJOR_UNCLASSIFIED                (0x1F << 8)
-
-               #define DEVICE_CLASS_MINOR_COMPUTER_UNCATEGORIZED      (0x00 << 2)
-               #define DEVICE_CLASS_MINOR_COMPUTER_DESKTOP            (0x01 << 2)
-               #define DEVICE_CLASS_MINOR_COMPUTER_SERVER             (0x02 << 2)
-               #define DEVICE_CLASS_MINOR_COMPUTER_LAPTOP             (0x03 << 2)
-               #define DEVICE_CLASS_MINOR_COMPUTER_HANDHELD           (0x04 << 2)
-               #define DEVICE_CLASS_MINOR_COMPUTER_PALM               (0x05 << 2)
-               #define DEVICE_CLASS_MINOR_COMPUTER_WEARABLE           (0x06 << 2)
-
-               #define DEVICE_CLASS_MINOR_PHONE_UNCATEGORIZED         (0x00 << 2)
-               #define DEVICE_CLASS_MINOR_PHONE_CELLULAR              (0x01 << 2)
-               #define DEVICE_CLASS_MINOR_PHONE_CORDLESS              (0x02 << 2)
-               #define DEVICE_CLASS_MINOR_PHONE_SMARTPHONE            (0x03 << 2)
-               #define DEVICE_CLASS_MINOR_PHONE_WIREDMODEM            (0x04 << 2)
-               #define DEVICE_CLASS_MINOR_PHONE_ISDN                  (0x05 << 2)
-
-               #define DEVICE_CLASS_MINOR_LAN_FULLY_AVAILABLE         (0x00 << 5)
-               #define DEVICE_CLASS_MINOR_LAN_1_TO_17_PC_UTILIZED     (0x01 << 5)
-               #define DEVICE_CLASS_MINOR_LAN_17_TO_33_PC_UTILIZED    (0x02 << 5)
-               #define DEVICE_CLASS_MINOR_LAN_33_TO_50_PC_UTILIZED    (0x03 << 5)
-               #define DEVICE_CLASS_MINOR_LAN_50_TO_67_PC_UTILIZED    (0x04 << 5)
-               #define DEVICE_CLASS_MINOR_LAN_67_TO_83_PC_UTILIZED    (0x05 << 5)
-               #define DEVICE_CLASS_MINOR_LAN_83_TO_99_PC_UTILIZED    (0x06 << 5)
-               #define DEVICE_CLASS_MINOR_LAN_NO_SERVICE_AVAILABLE    (0x07 << 5)
-
-               #define DEVICE_CLASS_MINOR_AV_UNCATEGORIZED            (0x00 << 2)
-               #define DEVICE_CLASS_MINOR_AV_HEADSET                  (0x01 << 2)
-               #define DEVICE_CLASS_MINOR_AV_HANDSFREE                (0x02 << 2)
-               #define DEVICE_CLASS_MINOR_AV_MICROPHONE               (0x04 << 2)
-               #define DEVICE_CLASS_MINOR_AV_LOUDSPEAKER              (0x05 << 2)
-               #define DEVICE_CLASS_MINOR_AV_HEADPHONES               (0x06 << 2)
-               #define DEVICE_CLASS_MINOR_AV_PORTABLE_AUDIO           (0x07 << 2)
-               #define DEVICE_CLASS_MINOR_AV_CARAUDIO                 (0x08 << 2)
-               #define DEVICE_CLASS_MINOR_AV_SETTOP_BOX               (0x09 << 2)
-               #define DEVICE_CLASS_MINOR_AV_HIFI                     (0x0A << 2)
-               #define DEVICE_CLASS_MINOR_AV_VCR                      (0x0B << 2)
-               #define DEVICE_CLASS_MINOR_AV_VIDEO_CAMERA             (0x0C << 2)
-               #define DEVICE_CLASS_MINOR_AV_CAMCORDER                (0x0D << 2)
-               #define DEVICE_CLASS_MINOR_AV_VIDEO_MONITOR            (0x0E << 2)
-               #define DEVICE_CLASS_MINOR_AV_DISPLAY_AND_LOUDSPEAKER  (0x0F << 2)
-               #define DEVICE_CLASS_MINOR_AV_VIDEO_CONFERENCING       (0x10 << 2)
-               #define DEVICE_CLASS_MINOR_AV_GAMING_TOY               (0x12 << 2)
-
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_KEYBOARD         (0x01 << 6)
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_POINTING         (0x02 << 6)
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_COMBO            (0x03 << 6)
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_UNCATEGORIZED    (0x00 << 2)
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_JOYSTICK         (0x01 << 2)
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_GAMEPAD          (0x02 << 2)
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_REMOTE_CONTROL   (0x03 << 2)
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_SENSING_DEVICE   (0x04 << 2)
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_DIGITIZER        (0x05 << 2)
-               #define DEVICE_CLASS_MINOR_PERIPHERAL_CARD_READER      (0x06 << 2)
-
-               #define DEVICE_CLASS_MINOR_IMAGING_DISPLAY             (1 << 4)
-               #define DEVICE_CLASS_MINOR_IMAGING_CAMERA              (1 << 5)
-               #define DEVICE_CLASS_MINOR_IMAGING_SCANNER             (1 << 6)
-               #define DEVICE_CLASS_MINOR_IMAGING_PRINTER             (1 << 7)
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.c b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.c
deleted file mode 100644 (file)
index 6c555f7..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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
- *
- *  Bluetooth HCI layer management code. This module manages the overall
- *  Bluetooth stack connection state to and from other devices, processes
- *  received events from the Bluetooth controller, and issues commands to
- *  modify the controller's configuration, such as the broadcast name of the
- *  device.
- */
-
-/*
-       TODO: Add local to remote device connections
- */
-
-#define  INCLUDE_FROM_BLUETOOTHHCICOMMANDS_C
-#include "BluetoothHCICommands.h"
-
-/** Temporary Bluetooth Device Address, for HCI responses which must include the destination address */
-static uint8_t Bluetooth_TempDeviceAddress[6];
-
-/** Bluetooth HCI processing task. This task should be called repeatedly the main Bluetooth
- *  stack task to manage the HCI processing state.
- */
-void Bluetooth_HCITask(void)
-{
-       BT_HCICommand_Header_t HCICommandHeader;
-
-       switch (Bluetooth_State.CurrentHCIState)
-       {
-               case Bluetooth_ProcessEvents:
-                       Pipe_SelectPipe(BLUETOOTH_EVENTS_PIPE);
-                       Pipe_Unfreeze();
-
-                       if (Pipe_IsReadWriteAllowed())
-                       {
-                               BT_HCIEvent_Header_t HCIEventHeader;
-
-                               /* Read in the event header to fetch the event code and payload length */
-                               Pipe_Read_Stream_LE(&HCIEventHeader, sizeof(HCIEventHeader), NULL);
-
-                               /* Create a temporary buffer for the event parameters */
-                               uint8_t EventParams[HCIEventHeader.ParameterLength];
-
-                               /* Read in the event parameters into the temporary buffer */
-                               Pipe_Read_Stream_LE(&EventParams, HCIEventHeader.ParameterLength, NULL);
-                               Pipe_ClearIN();
-
-                               BT_HCI_DEBUG(1, "Event Received (0x%02X)", HCIEventHeader.EventCode);
-
-                               switch (HCIEventHeader.EventCode)
-                               {
-                                       case EVENT_COMMAND_COMPLETE:
-                                               BT_HCI_DEBUG(1, "<< Command Complete");
-
-                                               /* Check which operation was completed in case we need to process the even parameters */
-                                               switch (((BT_HCIEvent_CommandComplete_t*)&EventParams)->Opcode)
-                                               {
-                                                       case (OGF_CTRLR_INFORMATIONAL | OCF_CTRLR_INFORMATIONAL_READBDADDR):
-                                                               /* A READ BDADDR command completed, copy over the local device's BDADDR from the response */
-                                                               memcpy(Bluetooth_State.LocalBDADDR,
-                                                                      &((BT_HCIEvent_CommandComplete_t*)&EventParams)->ReturnParams[1],
-                                                                      sizeof(Bluetooth_State.LocalBDADDR));
-                                                               break;
-                                               }
-
-                                               Bluetooth_State.CurrentHCIState = Bluetooth_State.NextHCIState;
-                                               break;
-                                       case EVENT_COMMAND_STATUS:
-                                               BT_HCI_DEBUG(1, "<< Command Status");
-                                               BT_HCI_DEBUG(2, "-- Status Code: 0x%02X", (((BT_HCIEvent_CommandStatus_t*)&EventParams)->Status));
-
-                                               /* If the execution of a command failed, reset the stack */
-                                               if (((BT_HCIEvent_CommandStatus_t*)&EventParams)->Status)
-                                                 Bluetooth_State.CurrentHCIState = Bluetooth_Init;
-                                               break;
-                                       case EVENT_CONNECTION_REQUEST:
-                                               BT_HCI_DEBUG(1, "<< Connection Request");
-                                               BT_HCI_DEBUG(2, "-- Link Type: 0x%02X", (((BT_HCIEvent_ConnectionRequest_t*)&EventParams)->LinkType));
-
-                                               /* Need to store the remote device's BT address in a temporary buffer for later use */
-                                               memcpy(Bluetooth_TempDeviceAddress,
-                                                      &((BT_HCIEvent_ConnectionRequest_t*)&EventParams)->RemoteAddress,
-                                                      sizeof(Bluetooth_TempDeviceAddress));
-
-                                               bool IsACLConnection = (((BT_HCIEvent_ConnectionRequest_t*)&EventParams)->LinkType == 0x01);
-
-                                               /* Only accept the connection if it is a ACL (data) connection, a device is not already connected
-                                                  and the user application has indicated that the connection should be allowed */
-                                               Bluetooth_State.CurrentHCIState = (Bluetooth_Connection.IsConnected || !(IsACLConnection) ||
-                                                                                                             !(Bluetooth_ConnectionRequest(Bluetooth_TempDeviceAddress))) ?
-                                                                                                             Bluetooth_Conn_RejectConnection : Bluetooth_Conn_AcceptConnection;
-
-                                               BT_HCI_DEBUG(2, "-- Connection %S", (Bluetooth_State.CurrentHCIState == Bluetooth_Conn_RejectConnection) ?
-                                                                                    PSTR("REJECTED") : PSTR("ACCEPTED"));
-
-                                               break;
-                                       case EVENT_PIN_CODE_REQUEST:
-                                               BT_HCI_DEBUG(1, "<< Pin Code Request");
-
-                                               /* Need to store the remote device's BT address in a temporary buffer for later use */
-                                               memcpy(Bluetooth_TempDeviceAddress,
-                                                      &((BT_HCIEvent_PinCodeReq_t*)&EventParams)->RemoteAddress,
-                                                      sizeof(Bluetooth_TempDeviceAddress));
-
-                                               Bluetooth_State.CurrentHCIState = Bluetooth_Conn_SendPINCode;
-                                               break;
-                                       case EVENT_LINK_KEY_REQUEST:
-                                               BT_HCI_DEBUG(1, "<< Link Key Request");
-
-                                               /* Need to store the remote device's BT address in a temporary buffer for later use */
-                                               memcpy(Bluetooth_TempDeviceAddress,
-                                                      &((BT_HCIEvent_LinkKeyReq_t*)&EventParams)->RemoteAddress,
-                                                      sizeof(Bluetooth_TempDeviceAddress));
-
-                                               Bluetooth_State.CurrentHCIState = Bluetooth_Conn_SendLinkKeyNAK;
-                                               break;
-                                       case EVENT_CONNECTION_COMPLETE:
-                                               BT_HCI_DEBUG(1, "<< Connection Complete");
-                                               BT_HCI_DEBUG(2, "-- Handle: 0x%04X", ((BT_HCIEvent_ConnectionComplete_t*)&EventParams)->ConnectionHandle);
-
-                                               /* Need to store the remote device's BT address in a temporary buffer for later use */
-                                               memcpy(Bluetooth_Connection.RemoteAddress,
-                                                      &((BT_HCIEvent_ConnectionComplete_t*)&EventParams)->RemoteAddress,
-                                                      sizeof(Bluetooth_TempDeviceAddress));
-
-                                               /* Store the created connection handle and indicate that the connection has been established */
-                                               Bluetooth_Connection.ConnectionHandle = ((BT_HCIEvent_ConnectionComplete_t*)&EventParams)->ConnectionHandle;
-                                               Bluetooth_Connection.IsConnected      = true;
-
-                                               Bluetooth_ConnectionComplete();
-                                               break;
-                                       case EVENT_DISCONNECTION_COMPLETE:
-                                               BT_HCI_DEBUG(1, "<< Disconnection Complete");
-
-                                               /* Device disconnected, indicate connection information no longer valid */
-                                               Bluetooth_Connection.IsConnected = false;
-
-                                               Bluetooth_DisconnectionComplete();
-                                               break;
-                               }
-                       }
-
-                       Pipe_Freeze();
-
-                       break;
-               case Bluetooth_Init:
-                       BT_HCI_DEBUG(1, "# Init");
-
-                       Bluetooth_State.IsInitialized = false;
-
-                       /* Reset the connection information structure to destroy any previous connection state */
-                       memset(&Bluetooth_Connection, 0x00, sizeof(Bluetooth_Connection));
-
-                       Bluetooth_State.CurrentHCIState = Bluetooth_Init_Reset;
-                       break;
-               case Bluetooth_Init_Reset:
-                       BT_HCI_DEBUG(1, "# Reset");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                       {
-                               OpCode: (OGF_CTRLR_BASEBAND | OCF_CTRLR_BASEBAND_RESET),
-                               ParameterLength: 0,
-                       };
-
-                       /* Send the command to reset the Bluetooth dongle controller */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, NULL, 0);
-
-                       Bluetooth_State.NextHCIState    = Bluetooth_Init_ReadBufferSize;
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Init_ReadBufferSize:
-                       BT_HCI_DEBUG(1, "# Read Buffer Size");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                       {
-                               OpCode: (OGF_CTRLR_INFORMATIONAL | OCF_CTRLR_INFORMATIONAL_READBUFFERSIZE),
-                               ParameterLength: 0,
-                       };
-
-                       /* Send the command to read the Bluetooth buffer size (mandatory before device sends any data) */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, NULL, 0);
-
-                       Bluetooth_State.NextHCIState    = Bluetooth_Init_GetBDADDR;
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Init_GetBDADDR:
-                       BT_HCI_DEBUG(1, "# Get BDADDR");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                       {
-                               OpCode: (OGF_CTRLR_INFORMATIONAL | OCF_CTRLR_INFORMATIONAL_READBDADDR),
-                               ParameterLength: 0,
-                       };
-
-                       /* Send the command to retrieve the BDADDR of the inserted Bluetooth dongle */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, NULL, 0);
-
-                       Bluetooth_State.NextHCIState    = Bluetooth_Init_SetLocalName;
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Init_SetLocalName:
-                       BT_HCI_DEBUG(1, "# Set Local Name");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                               {
-                                       OpCode: (OGF_CTRLR_BASEBAND | OCF_CTRLR_BASEBAND_WRITE_LOCAL_NAME),
-                                       ParameterLength: 248,
-                               };
-
-                       /* Send the command to set the Bluetooth dongle's name for other devices to see */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, Bluetooth_DeviceConfiguration.Name, strlen(Bluetooth_DeviceConfiguration.Name));
-
-                       Bluetooth_State.NextHCIState    = Bluetooth_Init_SetDeviceClass;
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Init_SetDeviceClass:
-                       BT_HCI_DEBUG(1, "# Set Device Class");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                               {
-                                       OpCode: (OGF_CTRLR_BASEBAND | OCF_CTRLR_BASEBAND_WRITE_CLASS_OF_DEVICE),
-                                       ParameterLength: 3,
-                               };
-
-                       /* Send the command to set the class of the device for other devices to see */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, &Bluetooth_DeviceConfiguration.Class, 3);
-
-                       Bluetooth_State.NextHCIState    = Bluetooth_Init_WriteScanEnable;
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Init_WriteScanEnable:
-                       BT_HCI_DEBUG(1, "# Write Scan Enable");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                       {
-                               OpCode: (OGF_CTRLR_BASEBAND | OCF_CTRLR_BASEBAND_WRITE_SCAN_ENABLE),
-                               ParameterLength: 1,
-                       };
-
-                       uint8_t Interval = BT_SCANMODE_InquiryAndPageScans;
-
-                       /* Send the command to set the remote device scanning mode */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, &Interval, 1);
-
-                       Bluetooth_State.NextHCIState    = Bluetooth_Init_FinalizeInit;
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Init_FinalizeInit:
-                       Bluetooth_State.IsInitialized = true;
-
-                       /* Fire the user application callback to indicate that the stack is now fully initialized */
-                       Bluetooth_StackInitialized();
-
-                       Bluetooth_State.NextHCIState    = Bluetooth_ProcessEvents;
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Conn_AcceptConnection:
-                       BT_HCI_DEBUG(1, "# Accept Connection");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                               {
-                                       OpCode: (OGF_LINK_CONTROL | OCF_LINK_CONTROL_ACCEPT_CONNECTION_REQUEST),
-                                       ParameterLength: sizeof(BT_HCICommand_AcceptConnectionReq_t),
-                               };
-
-                       /* Copy over the temporary BT device address saved from the Connection Request event, indicate slave
-                          connection role */
-                       BT_HCICommand_AcceptConnectionReq_t AcceptConnectionParams;
-                       memcpy(AcceptConnectionParams.RemoteAddress, Bluetooth_TempDeviceAddress,
-                              sizeof(AcceptConnectionParams.RemoteAddress));
-                       AcceptConnectionParams.SlaveRole = true;
-
-                       /* Send the command to accept the remote connection request */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, &AcceptConnectionParams, sizeof(BT_HCICommand_AcceptConnectionReq_t));
-
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Conn_RejectConnection:
-                       BT_HCI_DEBUG(1, "# Reject Connection");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                               {
-                                       OpCode: (OGF_LINK_CONTROL | OCF_LINK_CONTROL_REJECT_CONNECTION_REQUEST),
-                                       ParameterLength: sizeof(BT_HCICommand_RejectConnectionReq_t),
-                               };
-
-                       /* Copy over the temporary BT device address saved from the Connection Request event, indicate failure
-                          to accept the connection due to limited device resources or incorrect device address */
-                       BT_HCICommand_RejectConnectionReq_t RejectConnectionParams;
-                       memcpy(RejectConnectionParams.RemoteAddress, Bluetooth_TempDeviceAddress, sizeof(RejectConnectionParams.RemoteAddress));
-                       RejectConnectionParams.Reason = Bluetooth_Connection.IsConnected ? ERROR_LIMITED_RESOURCES : ERROR_UNACCEPTABLE_BDADDR;
-
-                       /* Send the command to reject the remote connection request */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, &RejectConnectionParams, sizeof(BT_HCICommand_RejectConnectionReq_t));
-
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Conn_SendPINCode:
-                       BT_HCI_DEBUG(1, "# Send Pin Code");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                               {
-                                       OpCode: (OGF_LINK_CONTROL | OCF_LINK_CONTROL_PIN_CODE_REQUEST_REPLY),
-                                       ParameterLength: sizeof(BT_HCICommand_PinCodeResp_t),
-                               };
-
-                       /* Copy over the temporary BT device address saved from the PIN Code Request event, copy over the
-                          local PIN authentication code to the response */
-                       BT_HCICommand_PinCodeResp_t PINCodeRequestParams;
-                       memcpy(PINCodeRequestParams.RemoteAddress, Bluetooth_TempDeviceAddress, sizeof(PINCodeRequestParams.RemoteAddress));
-                       PINCodeRequestParams.PINCodeLength = strlen(Bluetooth_DeviceConfiguration.PINCode);
-                       memcpy(PINCodeRequestParams.PINCode, Bluetooth_DeviceConfiguration.PINCode, sizeof(PINCodeRequestParams.PINCode));
-
-                       /* Send the command to transmit the device's local PIN number for authentication */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, &PINCodeRequestParams, sizeof(BT_HCICommand_PinCodeResp_t));
-
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-               case Bluetooth_Conn_SendLinkKeyNAK:
-                       BT_HCI_DEBUG(1, "# Send Link Key NAK");
-
-                       HCICommandHeader = (BT_HCICommand_Header_t)
-                               {
-                                       OpCode: (OGF_LINK_CONTROL | OCF_LINK_CONTROL_LINK_KEY_REQUEST_NEG_REPLY),
-                                       ParameterLength: sizeof(BT_HCICommand_LinkKeyNAKResp_t),
-                               };
-
-                       /* Copy over the temporary BT device address saved from the Link Key Request event */
-                       BT_HCICommand_LinkKeyNAKResp_t LinkKeyNAKParams;
-                       memcpy(LinkKeyNAKParams.RemoteAddress, Bluetooth_TempDeviceAddress, sizeof(LinkKeyNAKParams.RemoteAddress));
-
-                       /* Send the command to transmit the link key NAK to the receiver */
-                       Bluetooth_SendHCICommand(&HCICommandHeader, &LinkKeyNAKParams, sizeof(BT_HCICommand_LinkKeyNAKResp_t));
-
-                       Bluetooth_State.CurrentHCIState = Bluetooth_ProcessEvents;
-                       break;
-       }
-}
-
-/** Sends a Bluetooth HCI control command to the attached Bluetooth device.
- *
- *  \param[in] HCICommandHeader  HCI command header to send to the attached device
- *  \param[in] Parameters        Pointer to the source of the control parameters (if any)
- *  \param[in] ParameterLength   Length of the parameters to send in bytes
- *
- *  \return A value from the USB_Host_SendControlErrorCodes_t enum.
- */
-static uint8_t Bluetooth_SendHCICommand(const BT_HCICommand_Header_t* const HCICommandHeader,
-                                        const void* Parameters,
-                                        const uint16_t ParameterLength)
-{
-       /* Need to reserve the amount of bytes given in the header for the complete payload */
-       uint8_t CommandBuffer[sizeof(BT_HCICommand_Header_t) + HCICommandHeader->ParameterLength];
-
-       USB_ControlRequest = (USB_Request_Header_t)
-               {
-                       .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_DEVICE),
-                       .bRequest      = 0,
-                       .wValue        = 0,
-                       .wIndex        = 0,
-                       .wLength       = sizeof(CommandBuffer)
-               };
-
-       /* Copy over the HCI command header to the allocated buffer */
-       memcpy(CommandBuffer, HCICommandHeader, sizeof(BT_HCICommand_Header_t));
-
-       /* Zero out the parameter section of the response so that all padding bytes are known to be zero */
-       memset(&CommandBuffer[sizeof(BT_HCICommand_Header_t)], 0x00, HCICommandHeader->ParameterLength);
-
-       /* Copy over the command parameters (if any) to the command buffer - note, the number of actual source parameter bytes
-          may differ to those in the header; any difference in length is filled with 0x00 padding bytes */
-       memcpy(&CommandBuffer[sizeof(BT_HCICommand_Header_t)], Parameters, ParameterLength);
-
-       Pipe_SelectPipe(PIPE_CONTROLPIPE);
-       return USB_Host_SendControlRequest(CommandBuffer);
-}
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.h b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothHCICommands.h
deleted file mode 100644 (file)
index 434e3ea..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 BluetoothHCICommands.c.
- */
-
-#ifndef _BLUETOOTH_HCICOMMANDS_H_
-#define _BLUETOOTH_HCICOMMANDS_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-               #include <string.h>
-               #include <stdbool.h>
-               #include <stdio.h>
-
-               #include <LUFA/Drivers/USB/USB.h>
-               #include <LUFA/Drivers/Peripheral/Serial.h>
-
-               #include "BluetoothStack.h"
-               #include "BluetoothClassCodes.h"
-
-       /* Macros: */
-               #define BT_HCI_DEBUG(l, s, ...)                        do { if (HCI_DEBUG_LEVEL >= l) printf_P(PSTR("(HCI) " s "\r\n"), ##__VA_ARGS__); } while (0)
-               #define HCI_DEBUG_LEVEL                                0
-
-               #define OGF_LINK_CONTROL                              (0x01 << 10)
-               #define OGF_CTRLR_BASEBAND                            (0x03 << 10)
-               #define OGF_CTRLR_INFORMATIONAL                       (0x04 << 10)
-
-               #define OCF_LINK_CONTROL_INQUIRY                       0x0001
-               #define OCF_LINK_CONTROL_INQUIRY_CANCEL                0x0002
-               #define OCF_LINK_CONTROL_PERIODIC_INQUIRY              0x0003
-               #define OCF_LINK_CONTROL_EXIT_PERIODIC_INQUIRY         0x0004
-               #define OCF_LINK_CONTROL_CREATE_CONNECTION             0x0005
-               #define OCF_LINK_CONTROL_DISCONNECT                    0x0006
-               #define OCF_LINK_CONTROL_CREATE_CONNECTION_CANCEL      0x0008
-               #define OCF_LINK_CONTROL_ACCEPT_CONNECTION_REQUEST     0x0009
-               #define OCF_LINK_CONTROL_REJECT_CONNECTION_REQUEST     0x000A
-               #define OCF_LINK_CONTROL_LINK_KEY_REQUEST_REPLY        0x000B
-               #define OCF_LINK_CONTROL_LINK_KEY_REQUEST_NEG_REPLY    0x000C
-               #define OCF_LINK_CONTROL_PIN_CODE_REQUEST_REPLY        0x000D
-               #define OCF_LINK_CONTROL_PIN_CODE_REQUEST_NEG_REPLY    0x000E
-               #define OCF_LINK_CONTROL_CHANGE_CONNECTION_PACKET_TYPE 0x000F
-               #define OCF_LINK_CONTROL_REMOTE_NAME_REQUEST           0x0019
-               #define OCF_CTRLR_BASEBAND_SET_EVENT_MASK              0x0001
-               #define OCF_CTRLR_BASEBAND_RESET                       0x0003
-               #define OCF_CTRLR_BASEBAND_WRITE_PIN_TYPE              0x000A
-               #define OCF_CTRLR_BASEBAND_WRITE_LOCAL_NAME            0x0013
-               #define OCF_CTRLR_BASEBAND_READ_LOCAL_NAME             0x0014
-               #define OCF_CTRLR_BASEBAND_WRITE_SCAN_ENABLE           0x001A
-               #define OCF_CTRLR_BASEBAND_WRITE_CLASS_OF_DEVICE       0x0024
-               #define OCF_CTRLR_BASEBAND_WRITE_SIMPLE_PAIRING_MODE   0x0056
-               #define OCF_CTRLR_BASEBAND_WRITE_AUTHENTICATION_ENABLE 0x0020
-               #define OCF_CTRLR_INFORMATIONAL_READBUFFERSIZE         0x0005
-               #define OCF_CTRLR_INFORMATIONAL_READBDADDR             0x0009
-
-               #define EVENT_COMMAND_STATUS                           0x0F
-               #define EVENT_COMMAND_COMPLETE                         0x0E
-               #define EVENT_CONNECTION_COMPLETE                      0x03
-               #define EVENT_CONNECTION_REQUEST                       0x04
-               #define EVENT_DISCONNECTION_COMPLETE                   0x05
-               #define EVENT_REMOTE_NAME_REQUEST_COMPLETE             0x07
-               #define EVENT_PIN_CODE_REQUEST                         0x16
-               #define EVENT_LINK_KEY_REQUEST                         0x17
-
-               #define ERROR_LIMITED_RESOURCES                        0x0D
-               #define ERROR_UNACCEPTABLE_BDADDR                      0x0F
-
-       /* Type Defines: */
-               typedef struct
-               {
-                       uint16_t OpCode;
-                       uint8_t  ParameterLength;
-                       uint8_t  Parameters[];
-               } BT_HCICommand_Header_t;
-
-               typedef struct
-               {
-                       uint8_t  EventCode;
-                       uint8_t  ParameterLength;
-               } BT_HCIEvent_Header_t;
-
-               typedef struct
-               {
-                       uint8_t  Status;
-                       uint8_t  Packets;
-                       uint16_t OpCode;
-               } BT_HCIEvent_CommandStatus_t;
-
-               typedef struct
-               {
-                       uint8_t  HCIPacketsAllowable;
-                       uint16_t Opcode;
-                       uint8_t  ReturnParams[];
-               } BT_HCIEvent_CommandComplete_t;
-
-               typedef struct
-               {
-                       uint8_t  RemoteAddress[6];
-                       uint8_t  ClassOfDevice_Service;
-                       uint16_t ClassOfDevice_MajorMinor;
-                       uint8_t  LinkType;
-               } BT_HCIEvent_ConnectionRequest_t;
-
-               typedef struct
-               {
-                       uint8_t  Status;
-                       uint16_t ConnectionHandle;
-                       uint8_t  RemoteAddress[6];
-                       uint8_t  LinkType;
-                       uint8_t  EncryptionEnabled;
-               } BT_HCIEvent_ConnectionComplete_t;
-
-               typedef struct
-               {
-                       uint8_t  RemoteAddress[6];
-               } BT_HCIEvent_PinCodeReq_t;
-
-               typedef struct
-               {
-                       uint8_t  RemoteAddress[6];
-               } BT_HCIEvent_LinkKeyReq_t;
-
-               typedef struct
-               {
-                       uint8_t  RemoteAddress[6];
-               } BT_HCICommand_LinkKeyNAKResp_t;
-
-               typedef struct
-               {
-                       uint8_t  RemoteAddress[6];
-                       uint8_t  PINCodeLength;
-                       char     PINCode[16];
-               } BT_HCICommand_PinCodeResp_t;
-
-               typedef struct
-               {
-                       uint8_t  RemoteAddress[6];
-                       uint8_t  SlaveRole;
-               } BT_HCICommand_AcceptConnectionReq_t;
-
-               typedef struct
-               {
-                       uint8_t  RemoteAddress[6];
-                       uint8_t  Reason;
-               } BT_HCICommand_RejectConnectionReq_t;
-
-       /* Enums: */
-               enum BT_ScanEnable_Modes_t
-               {
-                       BT_SCANMODE_NoScansEnabled       = 0,
-                       BT_SCANMODE_InquiryScanOnly      = 1,
-                       BT_SCANMODE_PageScanOnly         = 2,
-                       BT_SCANMODE_InquiryAndPageScans  = 3,
-               };
-
-               enum BT_HCIStates_t
-               {
-                       Bluetooth_ProcessEvents          = 0,
-                       Bluetooth_Init                   = 1,
-                       Bluetooth_Init_Reset             = 2,
-                       Bluetooth_Init_ReadBufferSize    = 3,
-                       Bluetooth_Init_GetBDADDR         = 4,
-                       Bluetooth_Init_SetLocalName      = 5,
-                       Bluetooth_Init_SetDeviceClass    = 6,
-                       Bluetooth_Init_WriteScanEnable   = 7,
-                       Bluetooth_Init_FinalizeInit      = 8,
-                       Bluetooth_Conn_AcceptConnection  = 9,
-                       Bluetooth_Conn_RejectConnection  = 10,
-                       Bluetooth_Conn_SendPINCode       = 11,
-                       Bluetooth_Conn_SendLinkKeyNAK    = 12,
-               };
-
-       /* Function Prototypes: */
-               void Bluetooth_HCITask(void);
-
-               #if defined(INCLUDE_FROM_BLUETOOTHHCICOMMANDS_C)
-                       static uint8_t Bluetooth_SendHCICommand(const BT_HCICommand_Header_t* const HCICommandHeader,
-                                                               const void* Parameters,
-                                                               const uint16_t ParameterLength);
-               #endif
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.c b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.c
deleted file mode 100644 (file)
index ef8aa77..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 module for the Bluetooth stack. This module contains the overall Bluetooth
- *  stack state variables and the main Bluetooth stack management functions.
- */
-
-#include "BluetoothStack.h"
-
-/** Bluetooth device connection information structure. Once connected to a remote device, this structure tracks the
- *  connection state of the individual L2CAP channels.
- */
-Bluetooth_Connection_t Bluetooth_Connection = { IsConnected: false };
-
-/** Bluetooth device state information structure. This structure contains details on the current Bluetooth stack
- *  state.
- */
-Bluetooth_Stack_State_t Bluetooth_State     = { IsInitialized: false };
-
-/** Bluetooth stack initialization function. This function must be called once to initialize the Bluetooth stack,
- *  ready for connection to remote devices.
- *
- *  \note This function only begins the initialization process; the stack is initialized as the main Bluetooth stack
- *        management task is repeatedly called. The initialization process ends when the IsInitialized element of the
- *        \ref Bluetooth_State structure becomes true and the \ref Bluetooth_StackInitialized() callback fires.
- */
-void Bluetooth_Stack_Init(void)
-{
-       /* Reset the HCI state machine - this will reset the adapter and stack when the Bluetooth stack task is called */
-       Bluetooth_State.CurrentHCIState = Bluetooth_Init;
-       Bluetooth_State.NextHCIState    = Bluetooth_Init;
-}
-
-/** Bluetooth stack management task. This task must be repeatedly called to maintain the Bluetooth stack and any connection
- *  to remote Bluetooth devices, including both the HCI control layer and the ACL channel layer.
- */
-void Bluetooth_Stack_USBTask(void)
-{
-       if (USB_HostState != HOST_STATE_Configured)
-         return;
-
-       Bluetooth_HCITask();
-       Bluetooth_ACLTask();
-}
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.h b/Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.h
deleted file mode 100644 (file)
index ef95bd7..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 BluetoothStack.c.
- */
-
-#ifndef _BLUETOOTH_STACK_
-#define _BLUETOOTH_STACK_
-
-       /* Includes: */
-               #include <LUFA/Drivers/USB/USB.h>
-
-               #include "../ConfigDescriptor.h"
-
-       /* Macros: */
-               #define BLUETOOTH_MAX_OPEN_CHANNELS    6
-
-               #define CHANNEL_PSM_SDP                0x0001
-               #define CHANNEL_PSM_UDP                0x0002
-               #define CHANNEL_PSM_RFCOMM             0x0003
-               #define CHANNEL_PSM_TCP                0x0004
-               #define CHANNEL_PSM_IP                 0x0009
-               #define CHANNEL_PSM_FTP                0x000A
-               #define CHANNEL_PSM_HTTP               0x000C
-               #define CHANNEL_PSM_UPNP               0x0010
-               #define CHANNEL_PSM_HIDP               0x0011
-
-               #define CHANNEL_SEARCH_LOCALNUMBER     0
-               #define CHANNEL_SEARCH_REMOTENUMBER    1
-               #define CHANNEL_SEARCH_PSM             2
-
-               #define MAXIMUM_CHANNEL_MTU            255
-
-       /* Enums: */
-               /** Enum for the possible states for a Bluetooth ACL channel. */
-               enum BT_ChannelStates_t
-               {
-                       BT_Channel_Closed                = 0, /**< Channel is closed and inactive. No data may be sent or received. */
-                       BT_Channel_WaitConnect           = 1, /**< A connection request has been received, but a response has not been sent. */
-                       BT_Channel_WaitConnectRsp        = 2, /**< A connection request has been sent, but a response has not been received. */
-                       BT_Channel_Config_WaitConfig     = 3, /**< Channel has been connected, but not yet configured on either end. */
-                       BT_Channel_Config_WaitSendConfig = 4, /**< Channel configuration has been received and accepted, but not yet sent. */
-                       BT_Channel_Config_WaitReqResp    = 5, /**< Channel configuration has been sent but not responded to, and a configuration
-                                                              *   request from the remote end has not yet been received.
-                                                              */
-                       BT_Channel_Config_WaitResp       = 6, /**< Channel configuration has been sent but not accepted, but a configuration request
-                                                              *   from the remote end has been accepted.
-                                                              */
-                       BT_Channel_Config_WaitReq        = 7, /**< Channel configuration has been sent and accepted, but a configuration request
-                                                              *   from the remote end has not yet been accepted.
-                                                              */
-                       BT_Channel_Open                  = 8, /**< Channel is open and ready to send or receive data */
-                       BT_Channel_WaitDisconnect        = 9, /**< A disconnection request has been sent, but not yet acknowledged. */
-               };
-
-               /** Enum for the possible error codes returned by the \ref Bluetooth_SendPacket() function. */
-               enum BT_SendPacket_ErrorCodes_t
-               {
-                       BT_SENDPACKET_NoError            = 0, /**< The packet was sent successfully. */
-                       BT_SENDPACKET_NotConnected       = 1, /**< The Bluetooth stack is not currently connected to a remote device. */
-                       BT_SENDPACKET_ChannelNotOpen     = 2, /**< The given channel is not currently in the Open state. */
-               };
-
-       /* Type Defines: */
-               /** Type define for a Bluetooth ACL channel information structure. This structure contains all the relevant
-                *  information on an ACL channel for data transmission and reception by the stack.
-                */
-               typedef struct
-               {
-                       uint8_t  State; /**< Current channel state, a value from the \ref BT_ChannelStates_t enum. */
-                       uint16_t LocalNumber; /**< Local channel number on the device. */
-                       uint16_t RemoteNumber; /**< Remote channel number on the connected device. */
-                       uint16_t PSM; /**< Protocol used on the channel. */
-                       uint16_t LocalMTU; /**< MTU of data sent from the connected device to the local device. */
-                       uint16_t RemoteMTU; /**< MTU of data sent from the local device to the connected device. */
-               } Bluetooth_Channel_t;
-
-               /** Type define for a Bluetooth device connection information structure. This structure contains all the
-                *  information needed to maintain a connection to a remote Bluetooth device via the Bluetooth stack.
-                */
-               typedef struct
-               {
-                       bool                IsConnected; /**< Indicates if the stack is currently connected to a remote device - if this value is
-                                                         *   false, the remaining elements are invalid.
-                                                                                         */
-                       uint16_t            ConnectionHandle; /**< Connection handle to the remote device, used internally in the stack. */
-                       uint8_t             RemoteAddress[6]; /**< Bluetooth device address of the attached remote device. */
-                       Bluetooth_Channel_t Channels[BLUETOOTH_MAX_OPEN_CHANNELS]; /**< Channel information structures for the connection. */
-                       uint8_t             SignalingIdentifier; /**< Next Signaling Channel unique command sequence identifier. */
-               } Bluetooth_Connection_t;
-
-               /** Local Bluetooth device information structure, for the defining of local device characteristics for the Bluetooth stack. */
-               typedef struct
-               {
-                       uint32_t Class; /**< Class of the local device, a mask of \c DEVICE_CLASS_* masks. */
-                       char     PINCode[16]; /**< Pin code required to send or receive in order to authenticate with a remote device. */
-                       char     Name[]; /**< Name of the local Bluetooth device, up to 248 characters. */
-               } Bluetooth_Device_t;
-
-               /** Bluetooth stack state information structure, for the containment of the Bluetooth stack state. The values in
-                *  this structure are set by the Bluetooth stack internally, and should all be treated as read only by the user
-                *  application.
-                */
-               typedef struct
-               {
-                       uint8_t CurrentHCIState; /**< Current HCI state machine state. */
-                       uint8_t NextHCIState; /**< Next HCI state machine state to progress to once the currently issued command completes. */
-                       bool    IsInitialized; /**< Indicates if the Bluetooth stack is currently initialized and ready for connections
-                                               *   to or from a remote Bluetooth device.
-                                               */
-                       uint8_t LocalBDADDR[6]; /**< Local Bluetooth adapter's BDADDR, valid when the stack is fully initialized. */
-               } Bluetooth_Stack_State_t;
-
-       /* Includes: */
-               #include "BluetoothHCICommands.h"
-               #include "BluetoothACLPackets.h"
-
-       /* Function Prototypes: */
-               void Bluetooth_Stack_Init(void);
-               void Bluetooth_Stack_USBTask(void);
-
-               void                 Bluetooth_StackInitialized(void);
-               bool                 Bluetooth_ConnectionRequest(const uint8_t* RemoteAddress);
-               void                 Bluetooth_ConnectionComplete(void);
-               void                 Bluetooth_DisconnectionComplete(void);
-               bool                 Bluetooth_ChannelConnectionRequest(const uint16_t PSM);
-               void                 Bluetooth_PacketReceived(void* Data, uint16_t DataLen,
-                                                             Bluetooth_Channel_t* const ACLChannel);
-               void                 Bluetooth_ChannelOpened(Bluetooth_Channel_t* const ACLChannel);
-
-               Bluetooth_Channel_t* Bluetooth_GetChannelData(const uint16_t SearchValue,
-                                                             const uint8_t SearchKey);
-               Bluetooth_Channel_t* Bluetooth_OpenChannel(const uint16_t PSM);
-               void                 Bluetooth_CloseChannel(Bluetooth_Channel_t* const ACLChannel);
-               uint8_t              Bluetooth_SendPacket(void* Data,
-                                                         uint16_t DataLen,
-                                                         Bluetooth_Channel_t* const ACLChannel);
-
-       /* External Variables: */
-               extern Bluetooth_Device_t      Bluetooth_DeviceConfiguration;
-               extern Bluetooth_Connection_t  Bluetooth_Connection;
-               extern Bluetooth_Stack_State_t Bluetooth_State;
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.c b/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.c
deleted file mode 100644 (file)
index c6b7f09..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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
- *
- *  RFCOMM layer module. This module manages the RFCOMM layer of the
- *  stack, providing virtual serial port channels on top of the lower
- *  L2CAP layer.
- */
-
-#define  INCLUDE_FROM_RFCOMM_C
-#include "RFCOMM.h"
-
-/** 8-Bit CRC table used by the FCS field of each RFCOMM encoded frame, sourced from the ETSI TS 101 369 V7.2.0
- *  specification document, upon which the RFCOMM specification is based.
- */
-const uint8_t CRC8_Table[256] PROGMEM =
-       {
-               0x00, 0x91, 0xE3, 0x72, 0x07, 0x96, 0xE4, 0x75, 0x0E, 0x9F, 0xED, 0x7C, 0x09, 0x98, 0xEA, 0x7B,
-               0x1C, 0x8D, 0xFF, 0x6E, 0x1B, 0x8A, 0xF8, 0x69, 0x12, 0x83, 0xF1, 0x60, 0x15, 0x84, 0xF6, 0x67,
-               0x38, 0xA9, 0xDB, 0x4A, 0x3F, 0xAE, 0xDC, 0x4D, 0x36, 0xA7, 0xD5, 0x44, 0x31, 0xA0, 0xD2, 0x43,
-               0x24, 0xB5, 0xC7, 0x56, 0x23, 0xB2, 0xC0, 0x51, 0x2A, 0xBB, 0xC9, 0x58, 0x2D, 0xBC, 0xCE, 0x5F,
-               0x70, 0xE1, 0x93, 0x02, 0x77, 0xE6, 0x94, 0x05, 0x7E, 0xEF, 0x9D, 0x0C, 0x79, 0xE8, 0x9A, 0x0B,
-               0x6C, 0xFD, 0x8F, 0x1E, 0x6B, 0xFA, 0x88, 0x19, 0x62, 0xF3, 0x81, 0x10, 0x65, 0xF4, 0x86, 0x17,
-               0x48, 0xD9, 0xAB, 0x3A, 0x4F, 0xDE, 0xAC, 0x3D, 0x46, 0xD7, 0xA5, 0x34, 0x41, 0xD0, 0xA2, 0x33,
-               0x54, 0xC5, 0xB7, 0x26, 0x53, 0xC2, 0xB0, 0x21, 0x5A, 0xCB, 0xB9, 0x28, 0x5D, 0xCC, 0xBE, 0x2F,
-               0xE0, 0x71, 0x03, 0x92, 0xE7, 0x76, 0x04, 0x95, 0xEE, 0x7F, 0x0D, 0x9C, 0xE9, 0x78, 0x0A, 0x9B,
-               0xFC, 0x6D, 0x1F, 0x8E, 0xFB, 0x6A, 0x18, 0x89, 0xF2, 0x63, 0x11, 0x80, 0xF5, 0x64, 0x16, 0x87,
-               0xD8, 0x49, 0x3B, 0xAA, 0xDF, 0x4E, 0x3C, 0xAD, 0xD6, 0x47, 0x35, 0xA4, 0xD1, 0x40, 0x32, 0xA3,
-               0xC4, 0x55, 0x27, 0xB6, 0xC3, 0x52, 0x20, 0xB1, 0xCA, 0x5B, 0x29, 0xB8, 0xCD, 0x5C, 0x2E, 0xBF,
-               0x90, 0x01, 0x73, 0xE2, 0x97, 0x06, 0x74, 0xE5, 0x9E, 0x0F, 0x7D, 0xEC, 0x99, 0x08, 0x7A, 0xEB,
-               0x8C, 0x1D, 0x6F, 0xFE, 0x8B, 0x1A, 0x68, 0xF9, 0x82, 0x13, 0x61, 0xF0, 0x85, 0x14, 0x66, 0xF7,
-               0xA8, 0x39, 0x4B, 0xDA, 0xAF, 0x3E, 0x4C, 0xDD, 0xA6, 0x37, 0x45, 0xD4, 0xA1, 0x30, 0x42, 0xD3,
-               0xB4, 0x25, 0x57, 0xC6, 0xB3, 0x22, 0x50, 0xC1, 0xBA, 0x2B, 0x59, 0xC8, 0xBD, 0x2C, 0x5E, 0xCF
-       };
-
-/** RFCOMM channel state structure, to retain information about each open channel in the RFCOMM multiplexer. */
-RFCOMM_Channel_t RFCOMM_Channels[RFCOMM_MAX_OPEN_CHANNELS];
-
-
-/** Initializes the RFCOMM service, ready for new connections from a SDP client. */
-void RFCOMM_Initialize(void)
-{
-       /* Reset the RFCOMM channel structures, to invalidate any configured RFCOMM channels */
-       for (uint8_t i = 0; i < RFCOMM_MAX_OPEN_CHANNELS; i++)
-         RFCOMM_Channels[i].State = RFCOMM_Channel_Closed;
-}
-
-/** Services all the logical RFCOMM channels on the given ACL channel, sending any RFCOMM control requests to
- *  the remote device as needed to establish new logical RFCOMM channels. This function should be called repeatedly
- *  in the main program loop when an ACL channel with an RFCOMM PSM has been established between the local and remote
- *  device.
- *
- *  \param[in] ACLChannel  ACL channel which has been previously opened to handle RFCOMM traffic between devices
- */
-void RFCOMM_ServiceChannels(Bluetooth_Channel_t* const ACLChannel)
-{
-       /* Abort if the RFCOMM ACL channel is not currently open */
-       if ((ACLChannel == NULL) || (ACLChannel->State != BT_Channel_Open))
-         return;
-
-       /* Loop through each of the RFCOMM channels, send any required RFCOMM control commands */
-       for (uint8_t i = 0; i < RFCOMM_MAX_OPEN_CHANNELS; i++)
-       {
-               RFCOMM_Channel_t* RFCOMMChannel = &RFCOMM_Channels[i];
-
-               if (RFCOMMChannel->State == RFCOMM_Channel_Configure)
-               {
-                       /* Check if the local signals have not yet been sent on the current channel */
-                       if (!(RFCOMMChannel->ConfigFlags & RFCOMM_CONFIG_LOCALSIGNALSSENT))
-                       {
-                               /* Indicate that the local signals have been sent, transmit them to the remote device */
-                               RFCOMMChannel->ConfigFlags |= RFCOMM_CONFIG_LOCALSIGNALSSENT;
-                               RFCOMM_SendChannelSignals(RFCOMMChannel, ACLChannel);
-                       }
-
-                       /* If signals have been configured in both directions, progress to the open state */
-                       if ((RFCOMMChannel->ConfigFlags & (RFCOMM_CONFIG_REMOTESIGNALS | RFCOMM_CONFIG_LOCALSIGNALS)) ==
-                                                         (RFCOMM_CONFIG_REMOTESIGNALS | RFCOMM_CONFIG_LOCALSIGNALS))
-                       {
-                               RFCOMMChannel->State = RFCOMM_Channel_Open;
-                               RFCOMM_ChannelOpened(RFCOMMChannel);
-                       }
-               }
-       }
-}
-
-/** Processes an incoming RFCOMM packet on an ACL channel which has been previously opened between the local and
- *  a remote device to handle RFCOMM traffic.
- *
- *  \param[in] Data        Incoming packet data containing the RFCOMM packet
- *  \param[in] ACLChannel  ACL channel the request was issued to by the remote device
- */
-void RFCOMM_ProcessPacket(void* Data,
-                          Bluetooth_Channel_t* const ACLChannel)
-{
-       const RFCOMM_Header_t* FrameHeader  = (const RFCOMM_Header_t*)Data;
-       const uint8_t*         FrameData    = (const uint8_t*)Data + sizeof(RFCOMM_Header_t);
-       uint16_t               FrameDataLen = RFCOMM_GetVariableFieldValue(&FrameData);
-
-       /* Decode the RFCOMM frame type from the header */
-       switch (FrameHeader->Control & ~FRAME_POLL_FINAL)
-       {
-               case RFCOMM_Frame_DM:
-                       RFCOMM_ProcessDM(&FrameHeader->Address, ACLChannel);
-                       break;
-               case RFCOMM_Frame_DISC:
-                       RFCOMM_ProcessDISC(&FrameHeader->Address, ACLChannel);
-                       break;
-               case RFCOMM_Frame_SABM:
-                       RFCOMM_ProcessSABM(&FrameHeader->Address, ACLChannel);
-                       break;
-               case RFCOMM_Frame_UA:
-                       RFCOMM_ProcessUA(&FrameHeader->Address, ACLChannel);
-                       break;
-               case RFCOMM_Frame_UIH:
-                       RFCOMM_ProcessUIH(&FrameHeader->Address, FrameDataLen, FrameData, ACLChannel);
-                       break;
-               default:
-                       BT_RFCOMM_DEBUG(1, "<< Unknown Frame Received");
-                       break;
-       }
-}
-
-/** Sends an RFCOMM notification to the remote device that the local terminal control signals (located in the
- *  "Local" structure of the RFCOMM channel) have changed, pushing the new signals to the remote device.
- *
- *  \param[in] RFCOMMChannel  RFCOMM logical channel whose local terminal signals have changed
- *  \param[in] ACLChannel     ACL channel which has been opened to carry RFCOMM traffic between devices
- */
-void RFCOMM_SendChannelSignals(const RFCOMM_Channel_t* const RFCOMMChannel,
-                               Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_RFCOMM_DEBUG(1, ">> MSC Command");
-       BT_RFCOMM_DEBUG(2, "-- DLCI 0x%02X", RFCOMMChannel->DLCI);
-
-       struct
-       {
-               RFCOMM_Command_t        CommandHeader;
-               uint8_t                 Length;
-               RFCOMM_MSC_Parameters_t Params;
-       } MSCommand;
-
-       MSCommand.CommandHeader      = (RFCOMM_Command_t){.Command = RFCOMM_Control_ModemStatus, .EA = true, .CR = true};
-       MSCommand.Length             = (sizeof(MSCommand.Params) << 1) | 0x01;
-       MSCommand.Params.Channel     = (RFCOMM_Address_t){.DLCI = RFCOMMChannel->DLCI, .EA = true, .CR = true};
-       MSCommand.Params.Signals     = RFCOMMChannel->Local.Signals;
-       MSCommand.Params.BreakSignal = RFCOMMChannel->Local.BreakSignal;
-
-       /* Send the MSC command to the remote device */
-       RFCOMM_SendFrame(RFCOMM_CONTROL_DLCI, true, RFCOMM_Frame_UIH, sizeof(MSCommand), &MSCommand, ACLChannel);
-}
-
-/** Sends new data through an open logical RFCOMM channel. This should be used to transmit data through a
- *  RFCOMM channel once it has been opened.
- *
- *  \param[in] DataLen        Length of the RFCOMM data to send, in bytes
- *  \param[in] Data           Pointer to a buffer where the data to send is located
- *  \param[in] RFCOMMChannel  RFCOMM logical channel which is to be transmitted to
- *  \param[in] ACLChannel     ACL channel which has been opened to carry RFCOMM traffic between devices
- */
-void RFCOMM_SendData(const uint16_t DataLen,
-                     const uint8_t* Data,
-                     const RFCOMM_Channel_t* const RFCOMMChannel,
-                     Bluetooth_Channel_t* const ACLChannel)
-{
-       if (RFCOMMChannel->State != RFCOMM_Channel_Open)
-         return;
-
-       BT_RFCOMM_DEBUG(1, ">> UIH Frame");
-       BT_RFCOMM_DEBUG(2, "-- DLCI 0x%02X", RFCOMMChannel->DLCI);
-
-       /* Send the MSC command to the remote device */
-       RFCOMM_SendFrame(RFCOMMChannel->DLCI, false, RFCOMM_Frame_UIH, DataLen, Data, ACLChannel);
-}
-
-RFCOMM_Channel_t* RFCOMM_GetFreeChannelEntry(const uint8_t DLCI)
-{
-       /* Find a free entry in the RFCOMM channel multiplexer state array */
-       for (uint8_t i = 0; i < RFCOMM_MAX_OPEN_CHANNELS; i++)
-       {
-               RFCOMM_Channel_t* RFCOMMChannel = &RFCOMM_Channels[i];
-
-               /* If the channel's state is closed, the channel state entry is free */
-               if (RFCOMMChannel->State == RFCOMM_Channel_Closed)
-               {
-                       RFCOMMChannel->DLCI               = DLCI;
-                       RFCOMMChannel->State              = RFCOMM_Channel_Configure;
-                       RFCOMMChannel->Priority           = 7 + (RFCOMMChannel->DLCI & 0xF8);
-                       RFCOMMChannel->MTU                = 0xFFFF;
-                       RFCOMMChannel->Remote.Signals     = 0 | (1 << 0);
-                       RFCOMMChannel->Remote.BreakSignal = 0 | (1 << 0);
-                       RFCOMMChannel->Local.Signals      = RFCOMM_SIGNAL_RTC | RFCOMM_SIGNAL_RTR | RFCOMM_SIGNAL_DV | (1 << 0);
-                       RFCOMMChannel->Local.BreakSignal  = 0 | (1 << 0);
-                       RFCOMMChannel->ConfigFlags        = 0;
-
-                       return RFCOMMChannel;
-               }
-       }
-
-       return NULL;
-}
-
-RFCOMM_Channel_t* RFCOMM_GetChannelData(const uint8_t DLCI)
-{
-       /* Search through the RFCOMM channel list, looking for the specified channel */
-       for (uint8_t i = 0; i < RFCOMM_MAX_OPEN_CHANNELS; i++)
-       {
-               RFCOMM_Channel_t* CurrRFCOMMChannel = &RFCOMM_Channels[i];
-
-               /* If the current non-closed channel's DLCI matches the search DLCI, return it to the caller */
-               if ((CurrRFCOMMChannel->State != RFCOMM_Channel_Closed) && (CurrRFCOMMChannel->DLCI == DLCI))
-                 return CurrRFCOMMChannel;
-       }
-
-       /* Channel not found in the channel state table, return failure */
-       return NULL;
-}
-
-uint16_t RFCOMM_GetVariableFieldValue(const uint8_t** BufferPos)
-{
-       uint8_t FirstOctet;
-       uint8_t SecondOctet = 0;
-
-       FirstOctet = **BufferPos;
-       (*BufferPos)++;
-
-       /* If the field size is more than a single byte, fetch the next byte in the variable length field */
-       if (!(FirstOctet & 0x01))
-       {
-               SecondOctet = **BufferPos;
-               (*BufferPos)++;
-
-               /* Discard any remaining bytes in the variable length field that won't fit in the return value */
-               while (!(**BufferPos & 0x01))
-                 (*BufferPos)++;
-       }
-
-       /* Bit-shift the bytes that comprise the variable length field so that they form a single integer */
-       return (((uint16_t)SecondOctet << 7) | FirstOctet >> 1);
-}
-
-void RFCOMM_SendFrame(const uint8_t DLCI,
-                      const bool CommandResponse,
-                      const uint8_t Control,
-                      const uint16_t DataLen,
-                      const void* Data,
-                      Bluetooth_Channel_t* const ACLChannel)
-{
-       struct
-       {
-               RFCOMM_Header_t FrameHeader;
-               uint8_t         Size[(DataLen < 128) ? 1 : 2];
-               uint8_t         Data[DataLen];
-               uint8_t         FCS;
-       } ResponsePacket;
-
-       /* Set the frame header values to the specified address and frame type */
-       ResponsePacket.FrameHeader.Control = Control;
-       ResponsePacket.FrameHeader.Address = (RFCOMM_Address_t){.DLCI = DLCI, .EA   = true, .CR = CommandResponse};
-
-       /* Set the lower 7 bits of the packet length */
-       ResponsePacket.Size[0] = (DataLen << 1);
-
-       /* Terminate the size field if size is 7 bits or lower, otherwise set the upper 8 bits of the length */
-       if (DataLen < 128)
-         ResponsePacket.Size[0] |= 0x01;
-       else
-         ResponsePacket.Size[1]  = (DataLen >> 7);
-
-       /* Copy over the packet data from the source buffer to the response packet buffer */
-       memcpy(ResponsePacket.Data, Data, DataLen);
-
-       /* Determine the length of the frame which is to be used to calculate the CRC value */
-       uint8_t CRCLength = sizeof(ResponsePacket.FrameHeader);
-
-       /* UIH frames do not have the CRC calculated on the Size field in the response, all other frames do */
-       if ((Control & ~FRAME_POLL_FINAL) != RFCOMM_Frame_UIH)
-         CRCLength += sizeof(ResponsePacket.Size);
-
-       /* Calculate the frame checksum from the appropriate fields */
-       ResponsePacket.FCS = RFCOMM_GetFCSValue(&ResponsePacket, CRCLength);
-
-       /* Send the completed response packet to the sender */
-       Bluetooth_SendPacket(&ResponsePacket, sizeof(ResponsePacket), ACLChannel);
-}
-
-static uint8_t RFCOMM_GetFCSValue(const void* FrameStart,
-                                  uint8_t Length)
-{
-       uint8_t FCS = 0xFF;
-
-       /* Calculate new Frame CRC value via the given data bytes and the CRC table */
-       for (uint8_t i = 0; i < Length; i++)
-         FCS = pgm_read_byte(&CRC8_Table[FCS ^ ((const uint8_t*)FrameStart)[i]]);
-
-       return ~FCS;
-}
-
-static void RFCOMM_ProcessDM(const RFCOMM_Address_t* const FrameAddress,
-                             Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_RFCOMM_DEBUG(1, "<< DM Received");
-       BT_RFCOMM_DEBUG(2, "-- DLCI 0x%02X", FrameAddress->DLCI);
-}
-
-static void RFCOMM_ProcessDISC(const RFCOMM_Address_t* const FrameAddress,
-                               Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_RFCOMM_DEBUG(1, "<< DISC Received");
-       BT_RFCOMM_DEBUG(2, "-- DLCI 0x%02X", FrameAddress->DLCI);
-
-       RFCOMM_Channel_t* RFCOMMChannel = RFCOMM_GetChannelData(FrameAddress->DLCI);
-
-       /* If the requested channel is currently open, destroy it */
-       if (RFCOMMChannel != NULL)
-         RFCOMMChannel->State = RFCOMM_Channel_Closed;
-
-       BT_RFCOMM_DEBUG(1, ">> UA Sent");
-       RFCOMM_SendFrame(FrameAddress->DLCI, true, (RFCOMM_Frame_UA | FRAME_POLL_FINAL), 0, NULL, ACLChannel);
-}
-
-static void RFCOMM_ProcessSABM(const RFCOMM_Address_t* const FrameAddress,
-                               Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_RFCOMM_DEBUG(1, "<< SABM Received");
-       BT_RFCOMM_DEBUG(2, "-- DLCI 0x%02X", FrameAddress->DLCI);
-
-       if (FrameAddress->DLCI == RFCOMM_CONTROL_DLCI)
-       {
-               BT_RFCOMM_DEBUG(1, ">> UA Sent");
-
-               /* Free channel found, or request was to the control channel - accept SABM by sending a UA frame */
-               RFCOMM_SendFrame(FrameAddress->DLCI, true, (RFCOMM_Frame_UA | FRAME_POLL_FINAL), 0, NULL, ACLChannel);
-
-               return;
-       }
-
-       /* Find the existing channel's entry in the channel table */
-       RFCOMM_Channel_t* RFCOMMChannel = RFCOMM_GetChannelData(FrameAddress->DLCI);
-
-       /* Existing entry not found, create a new entry for the channel */
-       if (RFCOMMChannel == NULL)
-         RFCOMMChannel = RFCOMM_GetFreeChannelEntry(FrameAddress->DLCI);
-
-       /* If space was found in the channel table for the new channel, ACK the request */
-       if (RFCOMMChannel != NULL)
-       {
-               BT_RFCOMM_DEBUG(1, ">> UA Sent");
-
-               /* Free channel found, or request was to the control channel - accept SABM by sending a UA frame */
-               RFCOMM_SendFrame(FrameAddress->DLCI, true, (RFCOMM_Frame_UA | FRAME_POLL_FINAL), 0, NULL, ACLChannel);
-       }
-       else
-       {
-               BT_RFCOMM_DEBUG(1, ">> DM Sent");
-
-               /* No free channel in the multiplexer - decline the SABM by sending a DM frame */
-               RFCOMM_SendFrame(FrameAddress->DLCI, true, (RFCOMM_Frame_DM | FRAME_POLL_FINAL), 0, NULL, ACLChannel);
-       }
-}
-
-static void RFCOMM_ProcessUA(const RFCOMM_Address_t* const FrameAddress,
-                             Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_RFCOMM_DEBUG(1, "<< UA Received");
-       BT_RFCOMM_DEBUG(2, "-- DLCI 0x%02X", FrameAddress->DLCI);
-}
-
-static void RFCOMM_ProcessUIH(const RFCOMM_Address_t* const FrameAddress,
-                              const uint16_t FrameLength,
-                              const uint8_t* FrameData,
-                              Bluetooth_Channel_t* const ACLChannel)
-{
-       if (FrameAddress->DLCI == RFCOMM_CONTROL_DLCI)
-       {
-               RFCOMM_ProcessControlCommand(FrameData, ACLChannel);
-               return;
-       }
-
-       BT_RFCOMM_DEBUG(1, "<< UIH Received");
-       BT_RFCOMM_DEBUG(2, "-- DLCI 0x%02X", FrameAddress->DLCI);
-       BT_RFCOMM_DEBUG(2, "-- Length 0x%02X", FrameLength);
-
-       RFCOMM_Channel_t* RFCOMMChannel = RFCOMM_GetChannelData(FrameAddress->DLCI);
-
-       if (RFCOMMChannel != NULL)
-         RFCOMM_DataReceived(RFCOMMChannel, FrameLength, FrameData);
-}
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.h b/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMM.h
deleted file mode 100644 (file)
index 639873e..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 RFCOMM.c.
- */
-
-#ifndef _RFCOMM_H_
-#define _RFCOMM_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-               #include <avr/pgmspace.h>
-               #include <string.h>
-               #include <stdbool.h>
-               #include <stdio.h>
-
-               #include <LUFA/Common/Common.h>
-               #include <LUFA/Drivers/Peripheral/Serial.h>
-
-               #include "BluetoothStack.h"
-               #include "RFCOMMControl.h"
-
-       /* Macros: */
-               #define BT_RFCOMM_DEBUG(l, s, ...)              do { if (RFCOMM_DEBUG_LEVEL >= l) printf_P(PSTR("(RFCOMM) " s "\r\n"), ##__VA_ARGS__); } while (0)
-               #define RFCOMM_DEBUG_LEVEL                      0
-
-               #define FRAME_POLL_FINAL                        (1 << 4)
-
-               #define RFCOMM_CONTROL_DLCI                     0
-               #define RFCOMM_MAX_OPEN_CHANNELS                5
-
-       /* Enums: */
-               /** Enum for the types of RFCOMM frames which can be exchanged on a Bluetooth channel. */
-               enum RFCOMM_Frame_Types_t
-               {
-                       RFCOMM_Frame_DM    = 0x0F, /**< Disconnected Mode Field */
-                       RFCOMM_Frame_DISC  = 0x43, /**< Disconnect Field */
-                       RFCOMM_Frame_SABM  = 0x2F, /**< Set Asynchronous Balance Mode Field */
-                       RFCOMM_Frame_UA    = 0x63, /**< Unnumbered Acknowledgement Field */
-                       RFCOMM_Frame_UIH   = 0xEF, /**< Unnumbered Information with Header check Field */
-               };
-
-               enum RFCOMM_Channel_States_t
-               {
-                       RFCOMM_Channel_Closed      = 0,
-                       RFCOMM_Channel_Configure   = 1,
-                       RFCOMM_Channel_Open        = 2,
-               };
-
-       /* Type Defines: */
-               typedef struct
-               {
-                       uint8_t  DLCI;
-                       uint8_t  State;
-                       uint8_t  Priority;
-                       uint16_t MTU;
-                       uint8_t  ConfigFlags;
-                       struct
-                       {
-                               uint8_t Signals;
-                               uint8_t BreakSignal;
-                       } Remote;
-                       struct
-                       {
-                               uint8_t Signals;
-                               uint8_t BreakSignal;
-                       } Local;
-               } RFCOMM_Channel_t;
-
-       /* External Variables: */
-               extern RFCOMM_Channel_t RFCOMM_Channels[RFCOMM_MAX_OPEN_CHANNELS];
-
-       /* Function Prototypes: */
-               void              RFCOMM_Initialize(void);
-               void              RFCOMM_ServiceChannels(Bluetooth_Channel_t* const ACLChannel);
-               void              RFCOMM_ProcessPacket(void* Data,
-                                                      Bluetooth_Channel_t* const ACLChannel);
-
-               void              RFCOMM_SendChannelSignals(const RFCOMM_Channel_t* const RFCOMMChannel,
-                                                           Bluetooth_Channel_t* const ACLChannel);
-               void              RFCOMM_SendData(const uint16_t DataLen,
-                                                 const uint8_t* Data,
-                                                 const RFCOMM_Channel_t* const RFCOMMChannel,
-                                                 Bluetooth_Channel_t* const ACLChannel);
-
-               void              RFCOMM_ChannelOpened(RFCOMM_Channel_t* const RFCOMMChannel);
-               void              RFCOMM_DataReceived(RFCOMM_Channel_t* const RFCOMMChannel,
-                                                     uint16_t DataLen,
-                                                     const uint8_t* Data);
-               void              RFCOMM_ChannelSignalsReceived(RFCOMM_Channel_t* const RFCOMMChannel);
-
-               RFCOMM_Channel_t* RFCOMM_GetFreeChannelEntry(const uint8_t DLCI);
-               RFCOMM_Channel_t* RFCOMM_GetChannelData(const uint8_t DLCI);
-               uint16_t          RFCOMM_GetVariableFieldValue(const uint8_t** BufferPos);
-               void              RFCOMM_SendFrame(const uint8_t DLCI,
-                                                  const bool CommandResponse,
-                                                  const uint8_t Control,
-                                                      const uint16_t DataLen,
-                                                  const void* Data,
-                                                  Bluetooth_Channel_t* const ACLChannel);
-
-               #if defined(INCLUDE_FROM_RFCOMM_C)
-                       static uint8_t RFCOMM_GetFCSValue(const void* FrameStart,
-                                                         uint8_t Length);
-
-                       static void RFCOMM_ProcessDM(const RFCOMM_Address_t* const FrameAddress,
-                                                    Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessDISC(const RFCOMM_Address_t* const FrameAddress,
-                                                      Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessSABM(const RFCOMM_Address_t* const FrameAddress,
-                                                      Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessUA(const RFCOMM_Address_t* const FrameAddress,
-                                                    Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessUIH(const RFCOMM_Address_t* const FrameAddress,
-                                                     const uint16_t FrameLength,
-                                          const uint8_t* FrameData,
-                                                     Bluetooth_Channel_t* const ACLChannel);
-               #endif
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMMControl.c b/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMMControl.c
deleted file mode 100644 (file)
index 8901544..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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
- *
- *  RFCOMM multiplexer control layer module. This module handles multiplexer
- *  channel commands to the control DLCI in the RFCOMM layer, to open, configure,
- *  test and close logical RFCOMM channels.
- */
-
-#define  INCLUDE_FROM_RFCOMM_CONTROL_C
-#include "RFCOMMControl.h"
-
-void RFCOMM_ProcessControlCommand(const uint8_t* Command,
-                                  Bluetooth_Channel_t* const ACLChannel)
-{
-       const RFCOMM_Command_t* CommandHeader  = (const RFCOMM_Command_t*)Command;
-       const uint8_t*          CommandData    = (const uint8_t*)Command + sizeof(RFCOMM_Command_t);
-       uint8_t                 CommandDataLen = RFCOMM_GetVariableFieldValue(&CommandData);
-
-       switch (CommandHeader->Command)
-       {
-               case RFCOMM_Control_Test:
-                       RFCOMM_ProcessTestCommand(CommandHeader, CommandDataLen, CommandData, ACLChannel);
-                       break;
-               case RFCOMM_Control_FlowControlEnable:
-                       RFCOMM_ProcessFCECommand(CommandHeader, CommandData, ACLChannel);
-                       break;
-               case RFCOMM_Control_FlowControlDisable:
-                       RFCOMM_ProcessFCDCommand(CommandHeader, CommandData, ACLChannel);
-                       break;
-               case RFCOMM_Control_ModemStatus:
-                       RFCOMM_ProcessMSCCommand(CommandHeader, CommandDataLen, CommandData, ACLChannel);
-                       break;
-               case RFCOMM_Control_RemotePortNegotiation:
-                       RFCOMM_ProcessRPNCommand(CommandHeader, CommandData, ACLChannel);
-                       break;
-               case RFCOMM_Control_RemoteLineStatus:
-                       RFCOMM_ProcessRLSCommand(CommandHeader, CommandData, ACLChannel);
-                       break;
-               case RFCOMM_Control_DLCParameterNegotiation:
-                       RFCOMM_ProcessDPNCommand(CommandHeader, CommandData, ACLChannel);
-                       break;
-               default:
-                       BT_RFCOMM_DEBUG(1, "<< Unknown Command");
-                       break;
-       }
-}
-
-static void RFCOMM_ProcessTestCommand(const RFCOMM_Command_t* const CommandHeader,
-                                      const uint8_t CommandDataLen,
-                                      const uint8_t* CommandData,
-                                      Bluetooth_Channel_t* const ACLChannel)
-{
-       const uint8_t* Params = (const uint8_t*)CommandData;
-
-       BT_RFCOMM_DEBUG(1, "<< TEST Command");
-
-       struct
-       {
-               RFCOMM_Command_t CommandHeader;
-               uint8_t          Length;
-               uint8_t          TestData[CommandDataLen];
-       } TestResponse;
-
-       /* Fill out the Test response data */
-       TestResponse.CommandHeader = (RFCOMM_Command_t){.Command = RFCOMM_Control_Test, .EA = true, .CR = false};
-       TestResponse.Length        = (CommandDataLen << 1) | 0x01;
-       memcpy(TestResponse.TestData, Params, CommandDataLen);
-
-       BT_RFCOMM_DEBUG(1, ">> TEST Response");
-
-       /* Send the PDN response to acknowledge the command */
-       RFCOMM_SendFrame(RFCOMM_CONTROL_DLCI, false, RFCOMM_Frame_UIH, sizeof(TestResponse), &TestResponse, ACLChannel);
-}
-
-static void RFCOMM_ProcessFCECommand(const RFCOMM_Command_t* const CommandHeader,
-                                     const uint8_t* CommandData,
-                                                Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_RFCOMM_DEBUG(1, "<< FCE Command");
-}
-
-static void RFCOMM_ProcessFCDCommand(const RFCOMM_Command_t* const CommandHeader,
-                                     const uint8_t* CommandData,
-                                                Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_RFCOMM_DEBUG(1, "<< FCD Command");
-}
-
-static void RFCOMM_ProcessMSCCommand(const RFCOMM_Command_t* const CommandHeader,
-                                     const uint8_t CommandDataLen,
-                                     const uint8_t* CommandData,
-                                     Bluetooth_Channel_t* const ACLChannel)
-{
-       const RFCOMM_MSC_Parameters_t* Params = (const RFCOMM_MSC_Parameters_t*)CommandData;
-
-       BT_RFCOMM_DEBUG(1, "<< MSC %s", (CommandHeader->CR) ? "Command" : "Response");
-       BT_RFCOMM_DEBUG(2, "-- DLCI: 0x%02X", Params->Channel.DLCI);
-
-       /* Ignore status flags sent to the control channel */
-       if (Params->Channel.DLCI == RFCOMM_CONTROL_DLCI)
-         return;
-
-       /* Retrieve existing channel configuration data, if already opened */
-       RFCOMM_Channel_t* RFCOMMChannel = RFCOMM_GetChannelData(Params->Channel.DLCI);
-
-       /* If the channel does not exist, abort */
-       if (RFCOMMChannel == NULL)
-         return;
-
-       /* Check if the MSC packet is a command or a response */
-       if (CommandHeader->CR)
-       {
-               /* Save the new channel signals to the channel state structure */
-               RFCOMMChannel->Remote.Signals  = Params->Signals;
-               RFCOMMChannel->ConfigFlags    |= RFCOMM_CONFIG_REMOTESIGNALS;
-
-               /* If the command contains the optional break signals field, store the value */
-               if (CommandDataLen == sizeof(RFCOMM_MSC_Parameters_t))
-                 RFCOMMChannel->Remote.BreakSignal = Params->BreakSignal;
-
-               /* Notify the user application that the signals have been received */
-               RFCOMM_ChannelSignalsReceived(RFCOMMChannel);
-
-               struct
-               {
-                       RFCOMM_Command_t        CommandHeader;
-                       uint8_t                 Length;
-                       RFCOMM_MSC_Parameters_t Params;
-               } MSResponse;
-
-               /* Fill out the MS response data */
-               MSResponse.CommandHeader  = (RFCOMM_Command_t){.Command = RFCOMM_Control_ModemStatus, .EA = true, .CR = false};
-               MSResponse.Length         = (CommandDataLen << 1) | 0x01;
-               memcpy(&MSResponse.Params, Params, sizeof(RFCOMM_MSC_Parameters_t));
-
-               BT_RFCOMM_DEBUG(1, ">> MSC Response");
-
-               /* Send the MSC response to acknowledge the command */
-               RFCOMM_SendFrame(RFCOMM_CONTROL_DLCI, false, RFCOMM_Frame_UIH,
-                                                (sizeof(MSResponse) - sizeof(MSResponse.Params) + CommandDataLen), &MSResponse, ACLChannel);
-       }
-       else
-       {
-               /* Indicate that the remote device has acknowledged the sent signals */
-               RFCOMMChannel->ConfigFlags |= RFCOMM_CONFIG_LOCALSIGNALS;
-       }
-}
-
-static void RFCOMM_ProcessRPNCommand(const RFCOMM_Command_t* const CommandHeader,
-                                     const uint8_t* CommandData,
-                                                Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_RFCOMM_DEBUG(1, "<< RPN Command");
-}
-
-static void RFCOMM_ProcessRLSCommand(const RFCOMM_Command_t* const CommandHeader,
-                                     const uint8_t* CommandData,
-                                                Bluetooth_Channel_t* const ACLChannel)
-{
-       BT_RFCOMM_DEBUG(1, "<< RLS Command");
-}
-
-static void RFCOMM_ProcessDPNCommand(const RFCOMM_Command_t* const CommandHeader,
-                                     const uint8_t* CommandData,
-                                                Bluetooth_Channel_t* const ACLChannel)
-{
-       const RFCOMM_DPN_Parameters_t* Params = (const RFCOMM_DPN_Parameters_t*)CommandData;
-
-       BT_RFCOMM_DEBUG(1, "<< DPN Command");
-       BT_RFCOMM_DEBUG(2, "-- DLCI: 0x%02X", Params->DLCI);
-
-       /* Ignore parameter negotiations to the control channel */
-       if (Params->DLCI == RFCOMM_CONTROL_DLCI)
-         return;
-
-       /* Retrieve existing channel configuration data, if already opened */
-       RFCOMM_Channel_t* RFCOMMChannel = RFCOMM_GetChannelData(Params->DLCI);
-
-       /* Check if the channel has no corresponding entry - remote did not open it first */
-       if (RFCOMMChannel == NULL)
-       {
-               /* Create a new entry in the channel table for the new channel */
-               RFCOMMChannel = RFCOMM_GetFreeChannelEntry(Params->DLCI);
-
-               /* No free entry was found, discard the request */
-               if (RFCOMMChannel == NULL)
-               {
-                       BT_RFCOMM_DEBUG(2, "-- No Free Channel");
-                       return;
-               }
-       }
-
-       /* Save the new channel configuration */
-       RFCOMMChannel->State       = RFCOMM_Channel_Configure;
-       RFCOMMChannel->Priority    = Params->Priority;
-       RFCOMMChannel->MTU         = Params->MaximumFrameSize;
-
-       struct
-       {
-               RFCOMM_Command_t        CommandHeader;
-               uint8_t                 Length;
-               RFCOMM_DPN_Parameters_t Params;
-       } DPNResponse;
-
-       /* Fill out the DPN response data */
-       DPNResponse.CommandHeader = (RFCOMM_Command_t){.Command = RFCOMM_Control_DLCParameterNegotiation, .EA = true, .CR = false};
-       DPNResponse.Length                  = (sizeof(DPNResponse.Params) << 1) | 0x01;
-       memcpy(&DPNResponse.Params, Params, sizeof(RFCOMM_DPN_Parameters_t));
-       DPNResponse.Params.ConvergenceLayer = 0x00; // TODO: Enable credit based transaction support
-
-       BT_RFCOMM_DEBUG(1, ">> DPN Response");
-
-       /* Send the DPN response to acknowledge the command */
-       RFCOMM_SendFrame(RFCOMM_CONTROL_DLCI, false, RFCOMM_Frame_UIH, sizeof(DPNResponse), &DPNResponse, ACLChannel);
-}
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMMControl.h b/Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMMControl.h
deleted file mode 100644 (file)
index 9e3c38b..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 RFCOMMControl.c.
- */
-
-#ifndef _RFCOMM_CONTROL_H_
-#define _RFCOMM_CONTROL_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-               #include <avr/pgmspace.h>
-               #include <string.h>
-               #include <stdbool.h>
-               #include <stdio.h>
-
-               #include <LUFA/Common/Common.h>
-               #include <LUFA/Drivers/Peripheral/Serial.h>
-
-               #include "BluetoothStack.h"
-               #include "RFCOMM.h"
-
-       /* Macros: */
-               #define RFCOMM_SIGNAL_FC               (1 << 1)
-               #define RFCOMM_SIGNAL_RTC              (1 << 2)
-               #define RFCOMM_SIGNAL_RTR              (1 << 3)
-               #define RFCOMM_SIGNAL_IC               (1 << 6)
-               #define RFCOMM_SIGNAL_DV               (1 << 7)
-
-               #define RFCOMM_CONFIG_REMOTESIGNALS    (1 << 0)
-               #define RFCOMM_CONFIG_LOCALSIGNALS     (1 << 1)
-               #define RFCOMM_CONFIG_LOCALSIGNALSSENT (1 << 2)
-               #define RFCOMM_CONFIG_ABMMODESET       (1 << 3)
-
-       /* Enums: */
-               enum RFCOMM_Control_Commands_t
-               {
-                       RFCOMM_Control_Test                    = (0x20 >> 2),
-                       RFCOMM_Control_FlowControlEnable       = (0xA0 >> 2),
-                       RFCOMM_Control_FlowControlDisable      = (0x60 >> 2),
-                       RFCOMM_Control_ModemStatus             = (0xE0 >> 2),
-                       RFCOMM_Control_RemotePortNegotiation   = (0x90 >> 2),
-                       RFCOMM_Control_RemoteLineStatus        = (0x50 >> 2),
-                       RFCOMM_Control_DLCParameterNegotiation = (0x80 >> 2),
-                       RFCOMM_Control_NonSupportedCommand     = (0x10 >> 2),
-               };
-
-       /* Type Defines: */
-               typedef struct
-               {
-                       unsigned EA   : 1;
-                       unsigned CR   : 1;
-                       unsigned DLCI : 6;
-               } RFCOMM_Address_t;
-
-               typedef struct
-               {
-                       RFCOMM_Address_t Address;
-                       uint8_t          Control;
-               } RFCOMM_Header_t;
-
-               typedef struct
-               {
-                       unsigned EA      : 1;
-                       unsigned CR      : 1;
-                       unsigned Command : 6;
-               } RFCOMM_Command_t;
-
-               typedef struct
-               {
-                       uint8_t  DLCI;
-                       unsigned FrameType        : 4;
-                       unsigned ConvergenceLayer : 4;
-                       uint8_t  Priority;
-                       uint8_t  ACKTimerTicks;
-                       uint16_t MaximumFrameSize;
-                       uint8_t  MaxRetransmissions;
-                       uint8_t  RecoveryWindowSize;
-               } RFCOMM_DPN_Parameters_t;
-
-               typedef struct
-               {
-                       RFCOMM_Address_t Channel;
-                       uint8_t          Signals;
-                       uint8_t          BreakSignal;
-               } RFCOMM_MSC_Parameters_t;
-
-       /* Function Prototypes: */
-               void RFCOMM_ProcessControlCommand(const uint8_t* Command,
-                                                 Bluetooth_Channel_t* const Channel);
-
-               #if defined(INCLUDE_FROM_RFCOMM_CONTROL_C)
-                       static void RFCOMM_ProcessTestCommand(const RFCOMM_Command_t* const CommandHeader,
-                                                             const uint8_t CommandDataLen,
-                                                             const uint8_t* CommandData,
-                                                             Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessFCECommand(const RFCOMM_Command_t* const CommandHeader,
-                                                            const uint8_t* CommandData,
-                                                            Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessFCDCommand(const RFCOMM_Command_t* const CommandHeader,
-                                                            const uint8_t* CommandData,
-                                                            Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessMSCCommand(const RFCOMM_Command_t* const CommandHeader,
-                                                            const uint8_t CommandDataLen,
-                                                            const uint8_t* CommandData,
-                                                            Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessRPNCommand(const RFCOMM_Command_t* const CommandHeader,
-                                                            const uint8_t* CommandData,
-                                                            Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessRLSCommand(const RFCOMM_Command_t* const CommandHeader,
-                                                            const uint8_t* CommandData,
-                                                            Bluetooth_Channel_t* const ACLChannel);
-                       static void RFCOMM_ProcessDPNCommand(const RFCOMM_Command_t* const CommandHeader,
-                                                            const uint8_t* CommandData,
-                                                            Bluetooth_Channel_t* const ACLChannel);
-               #endif
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.c b/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.c
deleted file mode 100644 (file)
index 94979de..0000000
+++ /dev/null
@@ -1,716 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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
- *
- *  SDP layer module. This module implements a simple Service Discovery
- *  Protocol server, which can broadcast the device's supported services
- *  to other Bluetooth devices upon request, so that they can determine
- *  what services are available.
- */
-
-/*
-       TODO: Honor remote device's buffer size constraints via continuation state
- */
-
-#define  INCLUDE_FROM_SERVICEDISCOVERYPROTOCOL_C
-#include "SDP.h"
-
-/** Service attribute table list, containing a pointer to each service attribute table the device contains */
-const ServiceAttributeTable_t* SDP_Services_Table[] PROGMEM =
-       {
-               SerialPort_Attribute_Table,
-       };
-
-/** Base UUID value common to all standardized Bluetooth services */
-const UUID_t BaseUUID PROGMEM = {0x00000000, BASE_80BIT_UUID};
-
-/** Main Service Discovery Protocol packet processing routine. This function processes incoming SDP packets from
- *  a connected Bluetooth device, and sends back appropriate responses to allow other devices to determine the
- *  services the local device exposes.
- *
- *  \param[in] Data     Incoming packet data containing the SDP request
- *  \param[in] Channel  ACL channel the request was issued to by the remote device
- */
-void SDP_ProcessPacket(void* Data, Bluetooth_Channel_t* const Channel)
-{
-       SDP_PDUHeader_t* SDPHeader = (SDP_PDUHeader_t*)Data;
-       SDPHeader->ParameterLength = SwapEndian_16(SDPHeader->ParameterLength);
-
-       BT_SDP_DEBUG(1, "SDP Packet Received");
-       BT_SDP_DEBUG(2, "-- PDU ID: 0x%02X", SDPHeader->PDU);
-       BT_SDP_DEBUG(2, "-- Param Length: 0x%04X", SDPHeader->ParameterLength);
-
-       /* Dispatch to the correct processing routine for the given SDP packet type */
-       switch (SDPHeader->PDU)
-       {
-               case SDP_PDU_SERVICESEARCHREQUEST:
-                       SDP_ProcessServiceSearch(SDPHeader, Channel);
-                       break;
-               case SDP_PDU_SERVICEATTRIBUTEREQUEST:
-                       SDP_ProcessServiceAttribute(SDPHeader, Channel);
-                       break;
-               case SDP_PDU_SERVICESEARCHATTRIBUTEREQUEST:
-                       SDP_ProcessServiceSearchAttribute(SDPHeader, Channel);
-                       break;
-       }
-}
-
-/** Internal processing routine for SDP Service Search Requests.
- *
- *  \param[in] SDPHeader  Pointer to the start of the issued SDP request
- *  \param[in] Channel    Pointer to the Bluetooth channel structure the request was issued to
- */
-static void SDP_ProcessServiceSearch(const SDP_PDUHeader_t* const SDPHeader,
-                                     Bluetooth_Channel_t* const Channel)
-{
-       const void* CurrentParameter = ((const void*)SDPHeader + sizeof(SDP_PDUHeader_t));
-
-       BT_SDP_DEBUG(1, "<< Service Search");
-
-       /* Retrieve the list of search UUIDs from the request */
-       uint8_t UUIDList[12][UUID_SIZE_BYTES];
-       uint8_t TotalUUIDs = SDP_GetUUIDList(UUIDList, &CurrentParameter);
-       BT_SDP_DEBUG(2, "-- Total UUIDs: %d", TotalUUIDs);
-
-       /* Retrieve the maximum service record response count from the request */
-       uint16_t MaxServiceRecordCount = SDP_ReadData16(&CurrentParameter);
-       BT_SDP_DEBUG(2, "-- Max Return Service Count: 0x%04X", MaxServiceRecordCount);
-
-       struct
-       {
-               SDP_PDUHeader_t SDPHeader;
-               uint16_t        TotalServiceRecordCount;
-               uint16_t        CurrentServiceRecordCount;
-               uint8_t         ResponseData[100];
-       } ResponsePacket;
-
-       uint8_t AddedServiceHandles = 0;
-
-       /* Create a pointer to the buffer to indicate the current location for response data to be added */
-       void* CurrResponsePos = ResponsePacket.ResponseData;
-
-       /* Search through the global service list an item at a time */
-       for (uint8_t CurrTableItem = 0; CurrTableItem < (sizeof(SDP_Services_Table) / sizeof(void*)); CurrTableItem++)
-       {
-               /* Read in a pointer to the current UUID table entry's Attribute table */
-               ServiceAttributeTable_t* CurrAttributeTable = pgm_read_ptr(&SDP_Services_Table[CurrTableItem]);
-
-               if (!(SDP_SearchServiceTable(UUIDList, TotalUUIDs, CurrAttributeTable)))
-                 continue;
-
-               BT_SDP_DEBUG(2, " -- Found search match in table");
-
-               /* Retrieve a PROGMEM pointer to the value of the service's record handle */
-               const void* AttributeValue = SDP_GetAttributeValue(CurrAttributeTable, SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE);
-
-               /* Copy over the service record handle to the response list */
-               uint8_t AttrHeaderSize;
-               uint8_t AttrSize = SDP_GetLocalAttributeContainerSize(AttributeValue, &AttrHeaderSize);
-               memcpy_P(CurrResponsePos, AttributeValue + AttrHeaderSize, AttrSize);
-               CurrResponsePos += AttrHeaderSize + AttrSize;
-
-               AddedServiceHandles++;
-       }
-
-       /* Continuation state - always zero */
-       SDP_WriteData8(&CurrResponsePos, 0);
-
-       /* Fill out the service record count values in the returned packet */
-       ResponsePacket.TotalServiceRecordCount   = SwapEndian_16(AddedServiceHandles);
-       ResponsePacket.CurrentServiceRecordCount = ResponsePacket.TotalServiceRecordCount;
-
-       /* Calculate the total parameter length that is to be sent, including the fixed return parameters, the created service
-          handle list and the SDP continuation state */
-       uint16_t ParamLength = (ResponsePacket.CurrentServiceRecordCount << 2) +
-                               sizeof(ResponsePacket.CurrentServiceRecordCount) +
-                               sizeof(ResponsePacket.TotalServiceRecordCount) +
-                               sizeof(uint8_t);
-
-       /* Fill in the response packet's header */
-       ResponsePacket.SDPHeader.PDU             = SDP_PDU_SERVICESEARCHRESPONSE;
-       ResponsePacket.SDPHeader.TransactionID   = SDPHeader->TransactionID;
-       ResponsePacket.SDPHeader.ParameterLength = SwapEndian_16(ParamLength);
-
-       BT_SDP_DEBUG(1, ">> Service Search Response");
-
-       /* Send the completed response packet to the sender */
-       Bluetooth_SendPacket(&ResponsePacket, (sizeof(ResponsePacket.SDPHeader) + ParamLength), Channel);
-}
-
-/** Internal processing routine for SDP Service Attribute Requests.
- *
- *  \param[in] SDPHeader  Pointer to the start of the issued SDP request
- *  \param[in] Channel    Pointer to the Bluetooth channel structure the request was issued to
- */
-static void SDP_ProcessServiceAttribute(const SDP_PDUHeader_t* const SDPHeader,
-                                        Bluetooth_Channel_t* const Channel)
-{
-       const void* CurrentParameter = ((const void*)SDPHeader + sizeof(SDP_PDUHeader_t));
-
-       BT_SDP_DEBUG(1, "<< Service Attribute");
-
-       /* Retrieve the service handle whose attributes are to be examined */
-       uint32_t ServiceHandle = SDP_ReadData32(&CurrentParameter);
-       BT_SDP_DEBUG(2, "-- Service Handle: 0x%08lX", ServiceHandle);
-
-       /* Retrieve the maximum Attribute response size from the request */
-       uint16_t MaxAttributeSize = SDP_ReadData16(&CurrentParameter);
-       BT_SDP_DEBUG(2, "-- Max Return Attribute Bytes: 0x%04X", MaxAttributeSize);
-
-       /* Retrieve the list of Attributes from the request */
-       uint16_t AttributeList[8][2];
-       uint8_t  TotalAttributes = SDP_GetAttributeList(AttributeList, &CurrentParameter);
-       BT_SDP_DEBUG(2, "-- Total Attributes: %d", TotalAttributes);
-
-       struct
-       {
-               SDP_PDUHeader_t SDPHeader;
-               uint16_t        AttributeListByteCount;
-               uint8_t         ResponseData[100];
-       } ResponsePacket;
-
-       /* Create a pointer to the buffer to indicate the current location for response data to be added */
-       void* CurrResponsePos = ResponsePacket.ResponseData;
-
-       /* Clamp the maximum attribute size to the size of the allocated buffer */
-       if (MaxAttributeSize > sizeof(ResponsePacket.ResponseData))
-         MaxAttributeSize = sizeof(ResponsePacket.ResponseData);
-
-       uint16_t TotalResponseSize = 0;
-
-       /* Search through the global UUID list an item at a time */
-       for (uint8_t CurrTableItem = 0; CurrTableItem < (sizeof(SDP_Services_Table) / sizeof(void*)); CurrTableItem++)
-       {
-               /* Read in a pointer to the current UUID table entry's Attribute table */
-               ServiceAttributeTable_t* CurrAttributeTable = pgm_read_ptr(&SDP_Services_Table[CurrTableItem]);
-
-               /* Retrieve a PROGMEM pointer to the value of the Service Record Handle */
-               const void* ServiceRecord = SDP_GetAttributeValue(CurrAttributeTable, SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE);
-
-               /* Get the size of the header for the Service Record Handle */
-               uint8_t AttrHeaderSize;
-               SDP_GetLocalAttributeContainerSize(ServiceRecord, &AttrHeaderSize);
-
-               /* Retrieve the endian-swapped service handle of the current service being examined */
-               uint32_t CurrServiceHandle = SwapEndian_32(pgm_read_dword(ServiceRecord + AttrHeaderSize));
-
-               /* Check if the current service in the service table has the requested service handle */
-               if (ServiceHandle == CurrServiceHandle)
-               {
-                       /* Add the listed attributes for the found UUID to the response */
-                       TotalResponseSize = SDP_AddListedAttributesToResponse(CurrAttributeTable, AttributeList, TotalAttributes,
-                                                                         &CurrResponsePos);
-
-                       /* Requested service found, abort the search through the service table */
-                       break;
-               }
-       }
-
-       /* Continuation state - always zero */
-       SDP_WriteData8(&CurrResponsePos, 0);
-
-       /* Set the total response list size to the size of the outer container plus its header size and continuation state */
-       ResponsePacket.AttributeListByteCount    = SwapEndian_16(TotalResponseSize);
-
-       /* Calculate the total parameter length that is to be sent, including the fixed return parameters, the created attribute
-          value list and the SDP continuation state */
-       uint16_t ParamLength = (sizeof(ResponsePacket.AttributeListByteCount) + TotalResponseSize + sizeof(uint8_t));
-
-       /* Fill in the response packet's header */
-       ResponsePacket.SDPHeader.PDU             = SDP_PDU_SERVICEATTRIBUTERESPONSE;
-       ResponsePacket.SDPHeader.TransactionID   = SDPHeader->TransactionID;
-       ResponsePacket.SDPHeader.ParameterLength = SwapEndian_16(ParamLength);
-
-       BT_SDP_DEBUG(1, ">> Service Attribute Response");
-       BT_SDP_DEBUG(2, "-- Param Len 0x%04X", ParamLength);
-
-       /* Send the completed response packet to the sender */
-       Bluetooth_SendPacket(&ResponsePacket, (sizeof(ResponsePacket.SDPHeader) + ParamLength), Channel);
-}
-
-/** Internal processing routine for SDP Service Search Attribute Requests.
- *
- *  \param[in] SDPHeader  Pointer to the start of the issued SDP request
- *  \param[in] Channel    Pointer to the Bluetooth channel structure the request was issued to
- */
-static void SDP_ProcessServiceSearchAttribute(const SDP_PDUHeader_t* const SDPHeader,
-                                              Bluetooth_Channel_t* const Channel)
-{
-       const void* CurrentParameter = ((const void*)SDPHeader + sizeof(SDP_PDUHeader_t));
-
-       BT_SDP_DEBUG(1, "<< Service Search Attribute");
-
-       /* Retrieve the list of search UUIDs from the request */
-       uint8_t UUIDList[12][UUID_SIZE_BYTES];
-       uint8_t TotalUUIDs = SDP_GetUUIDList(UUIDList, &CurrentParameter);
-       BT_SDP_DEBUG(2, "-- Total UUIDs: %d", TotalUUIDs);
-
-       /* Retrieve the maximum Attribute response size from the request */
-       uint16_t MaxAttributeSize = SDP_ReadData16(&CurrentParameter);
-       BT_SDP_DEBUG(2, "-- Max Return Attribute Bytes: 0x%04X", MaxAttributeSize);
-
-       /* Retrieve the list of Attributes from the request */
-       uint16_t AttributeList[8][2];
-       uint8_t  TotalAttributes = SDP_GetAttributeList(AttributeList, &CurrentParameter);
-       BT_SDP_DEBUG(2, "-- Total Attributes: %d", TotalAttributes);
-
-       struct
-       {
-               SDP_PDUHeader_t SDPHeader;
-               uint16_t        AttributeListByteCount;
-               uint8_t         ResponseData[100];
-       } ResponsePacket;
-
-       /* Create a pointer to the buffer to indicate the current location for response data to be added */
-       void* CurrResponsePos = ResponsePacket.ResponseData;
-
-       /* Clamp the maximum attribute size to the size of the allocated buffer */
-       if (MaxAttributeSize > sizeof(ResponsePacket.ResponseData))
-         MaxAttributeSize = sizeof(ResponsePacket.ResponseData);
-
-       /* Add the outer Data Element Sequence header for all of the retrieved Attributes */
-       uint16_t* TotalResponseSize = SDP_AddSequence16(&CurrResponsePos);
-
-       /* Search through the global service list an item at a time */
-       for (uint8_t CurrTableItem = 0; CurrTableItem < (sizeof(SDP_Services_Table) / sizeof(void*)); CurrTableItem++)
-       {
-               /* Read in a pointer to the current UUID table entry's Attribute table */
-               ServiceAttributeTable_t* CurrAttributeTable = pgm_read_ptr(&SDP_Services_Table[CurrTableItem]);
-
-               if (!(SDP_SearchServiceTable(UUIDList, TotalUUIDs, CurrAttributeTable)))
-                 continue;
-
-               BT_SDP_DEBUG(2, " -- Found search match in table");
-
-               /* Add the listed attributes for the found UUID to the response */
-               *TotalResponseSize += SDP_AddListedAttributesToResponse(CurrAttributeTable, AttributeList, TotalAttributes,
-                                                                       &CurrResponsePos);
-       }
-
-       /* Continuation state - always zero */
-       SDP_WriteData8(&CurrResponsePos, 0);
-
-       /* Set the total response list size to the size of the outer container plus its header size and continuation state */
-       ResponsePacket.AttributeListByteCount    = SwapEndian_16(3 + *TotalResponseSize);
-
-       /* Calculate the total parameter length that is to be sent, including the fixed return parameters, the created attribute
-          value list and the SDP continuation state */
-       uint16_t ParamLength = (sizeof(ResponsePacket.AttributeListByteCount) +
-                               (3 + *TotalResponseSize) +
-                               sizeof(uint8_t));
-
-       /* Flip the endianness of the container's size */
-       *TotalResponseSize = SwapEndian_16(*TotalResponseSize);
-
-       /* Fill in the response packet's header */
-       ResponsePacket.SDPHeader.PDU             = SDP_PDU_SERVICESEARCHATTRIBUTERESPONSE;
-       ResponsePacket.SDPHeader.TransactionID   = SDPHeader->TransactionID;
-       ResponsePacket.SDPHeader.ParameterLength = SwapEndian_16(ParamLength);
-
-       BT_SDP_DEBUG(1, ">> Service Search Attribute Response");
-       BT_SDP_DEBUG(2, "-- Param Len 0x%04X", ParamLength);
-
-       /* Send the completed response packet to the sender */
-       Bluetooth_SendPacket(&ResponsePacket, (sizeof(ResponsePacket.SDPHeader) + ParamLength), Channel);
-}
-
-/** Adds all the Attributes in the given service table to the response that appear in the Attribute table.
- *
- *  \param[in]  AttributeTable   Pointer to an Attribute table for the service to examine
- *  \param[in]  AttributeList    Pointer to a list of Attribute ranges
- *  \param[in]  TotalAttributes  Number of Attributes stored in the Attribute list
- *  \param[out] BufferPos       Pointer to the output buffer position where the retrieved attributes are to be stored
- *
- *  \return Number of bytes added to the output buffer
- */
-static uint16_t SDP_AddListedAttributesToResponse(const ServiceAttributeTable_t* AttributeTable,
-                                                  uint16_t AttributeList[][2],
-                                                  const uint8_t TotalAttributes,
-                                                  void** const BufferPos)
-{
-       uint16_t TotalResponseSize;
-
-       /* Add an inner Data Element Sequence header for the current services's found Attributes */
-       uint16_t* AttributeListSize = SDP_AddSequence16(BufferPos);
-
-       /* Search through the list of Attributes one at a time looking for values in the current UUID's Attribute table */
-       for (uint8_t CurrAttribute = 0; CurrAttribute < TotalAttributes; CurrAttribute++)
-       {
-               uint16_t* AttributeIDRange = AttributeList[CurrAttribute];
-               void*     AttributeValue;
-
-               /* Look through the current service's attribute list, examining all the attributes */
-               while ((AttributeValue = pgm_read_ptr(&AttributeTable->Data)) != NULL)
-               {
-                       /* Get the current Attribute's ID from the current attribute table entry */
-                       uint16_t CurrAttributeID = pgm_read_word(&AttributeTable->AttributeID);
-
-                       /* Check if the current Attribute's ID is within the current Attribute range */
-                       if ((CurrAttributeID >= AttributeIDRange[0]) && (CurrAttributeID <= AttributeIDRange[1]))
-                       {
-                               /* Increment the current UUID's returned Attribute container size by the number of added bytes */
-                               *AttributeListSize += SDP_AddAttributeToResponse(CurrAttributeID, AttributeValue, BufferPos);
-                       }
-
-                       AttributeTable++;
-               }
-       }
-
-       /* Record the total number of added bytes to the buffer */
-       TotalResponseSize = 3 + *AttributeListSize;
-
-       /* Fix endianness of the added attribute data element sequence */
-       *AttributeListSize = SwapEndian_16(*AttributeListSize);
-
-       return TotalResponseSize;
-}
-
-/** Adds the given attribute ID and value to the response buffer, and advances the response buffer pointer past the added data.
- *
- *  \param[in] AttributeID          Attribute ID to add to the response buffer
- *  \param[in] AttributeValue       Pointer to the start of the Attribute's value, located in PROGMEM
- *  \param[in, out] ResponseBuffer  Pointer to a buffer where the Attribute and Attribute Value is to be added
- *
- *  \return Number of bytes added to the response buffer
- */
-static uint16_t SDP_AddAttributeToResponse(const uint16_t AttributeID,
-                                           const void* AttributeValue,
-                                           void** ResponseBuffer)
-{
-       /* Retrieve the size of the attribute value from its container header */
-       uint8_t  AttributeHeaderLength;
-       uint16_t AttributeValueLength = SDP_GetLocalAttributeContainerSize(AttributeValue, &AttributeHeaderLength);
-
-       BT_SDP_DEBUG(2, " -- Add Attribute (0x%04X) 0x%04X", (AttributeHeaderLength + AttributeValueLength), AttributeID);
-
-       /* Add a Data Element header to the response for the Attribute ID */
-       SDP_WriteData8(ResponseBuffer, (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit));
-
-       /* Add the Attribute ID to the created Data Element */
-       SDP_WriteData16(ResponseBuffer, AttributeID);
-
-       /* Copy over the Attribute value Data Element container to the response */
-       memcpy_P(*ResponseBuffer, AttributeValue, AttributeHeaderLength + AttributeValueLength);
-       *ResponseBuffer += AttributeHeaderLength + AttributeValueLength;
-
-       return (sizeof(uint8_t) + sizeof(uint16_t) + AttributeHeaderLength + AttributeValueLength);
-}
-
-/** Retrieves a pointer to the value of the given Attribute ID from the given Attribute table.
- *
- *  \param[in] AttributeTable  Pointer to the Attribute table to search in
- *  \param[in] AttributeID     Attribute ID to search for within the table
- *
- *  \return Pointer to the start of the Attribute's value if found within the table, NULL otherwise
- */
-static void* SDP_GetAttributeValue(const ServiceAttributeTable_t* AttributeTable,
-                                   const uint16_t AttributeID)
-{
-       void* CurrTableItemData;
-
-       /* Search through the current Attribute table, abort when the terminator item has been reached */
-       while ((CurrTableItemData = pgm_read_ptr(&AttributeTable->Data)) != NULL)
-       {
-               /* Check if the current Attribute ID matches the search ID - if so return a pointer to it */
-               if (pgm_read_word(&AttributeTable->AttributeID) == AttributeID)
-                 return CurrTableItemData;
-
-               AttributeTable++;
-       }
-
-       return NULL;
-}
-
-/** Retrieves the Attribute table for the given UUID list if it exists.
- *
- *  \param[in] UUIDList            List of UUIDs which must be matched within the service attribute table
- *  \param[in] TotalUUIDs          Total number of UUIDs stored in the UUID list
- *  \param[in] CurrAttributeTable  Pointer to the service attribute table to search through
- *
- *  \return True if all the UUIDs given in the UUID list appear in the given attribute table, false otherwise
- */
-static bool SDP_SearchServiceTable(uint8_t UUIDList[][UUID_SIZE_BYTES],
-                                   const uint8_t TotalUUIDs,
-                                              const ServiceAttributeTable_t* CurrAttributeTable)
-{
-       const void* CurrAttribute;
-       uint16_t    UUIDMatchFlags = 0;
-
-       /* Search through the current attribute table, checking each attribute value for UUID matches */
-       while ((CurrAttribute = pgm_read_ptr(&CurrAttributeTable->Data)) != NULL)
-       {
-               SDP_CheckUUIDMatch(UUIDList, TotalUUIDs, &UUIDMatchFlags, CurrAttribute);
-               CurrAttributeTable++;
-       }
-
-       /* Determine how many UUID matches in the list we have found */
-       uint8_t UUIDMatches;
-       for (UUIDMatches = 0; UUIDMatchFlags; UUIDMatches++)
-         UUIDMatchFlags &= (UUIDMatchFlags - 1);
-
-       /* If all UUIDs have been matched to the current service, return true */
-       return (UUIDMatches == TotalUUIDs);
-}
-
-/** Recursively unwraps the given locally stored attribute (in PROGMEM space), searching for UUIDs to match against
- *  the given UUID list. As matches are found, they are indicated in the UUIDMatch flag list.
- *
- *  \param[in]      UUIDList        List of UUIDs which must be matched within the service attribute table
- *  \param[in]      TotalUUIDs      Total number of UUIDs stored in the UUID list
- *  \param[in, out] UUIDMatchFlags  Array of flags indicating which UUIDs in the list have already been matched
- *  \param[in]      CurrAttribute   Pointer to the current attribute to search through
- *
- *  \return True if all the UUIDs given in the UUID list appear in the given attribute table, false otherwise
- */
-static void SDP_CheckUUIDMatch(uint8_t UUIDList[][UUID_SIZE_BYTES],
-                               const uint8_t TotalUUIDs,
-                               uint16_t* const UUIDMatchFlags,
-                               const void* CurrAttribute)
-{
-       uint8_t CurrAttributeType = (pgm_read_byte(CurrAttribute) & ~0x07);
-
-       /* Check the data type of the current attribute value - if UUID, compare, if Sequence, unwrap and recurse */
-       if (CurrAttributeType == SDP_DATATYPE_UUID)
-       {
-               uint16_t CurrUUIDMatchMask = (1 << 0);
-
-               /* Look for matches in the UUID list against the current attribute UUID value */
-               for (uint8_t i = 0; i < TotalUUIDs; i++)
-               {
-                       /* Check if the current unmatched UUID is identical to the search UUID */
-                       if (!(*UUIDMatchFlags & CurrUUIDMatchMask) && !(memcmp_P(UUIDList[i], (CurrAttribute + 1), UUID_SIZE_BYTES)))
-                       {
-                               /* Indicate match found for the current attribute UUID and early-abort */
-                               *UUIDMatchFlags |= CurrUUIDMatchMask;
-                               break;
-                       }
-
-                       CurrUUIDMatchMask <<= 1;
-               }
-       }
-       else if (CurrAttributeType == SDP_DATATYPE_Sequence)
-       {
-               uint8_t  SequenceHeaderSize;
-               uint16_t SequenceSize = SDP_GetLocalAttributeContainerSize(CurrAttribute, &SequenceHeaderSize);
-
-               CurrAttribute += SequenceHeaderSize;
-
-               /* Recursively unwrap the sequence container, and re-search its contents for UUIDs */
-               while (SequenceSize)
-               {
-                       uint8_t  InnerHeaderSize;
-                       uint16_t InnerSize = SDP_GetLocalAttributeContainerSize(CurrAttribute, &InnerHeaderSize);
-
-                       /* Recursively search of the next element in the sequence, trying to match UUIDs with the UUID list */
-                       SDP_CheckUUIDMatch(UUIDList, TotalUUIDs, UUIDMatchFlags, CurrAttribute);
-
-                       /* Skip to the next element in the sequence */
-                       SequenceSize  -= InnerHeaderSize + InnerSize;
-                       CurrAttribute += InnerHeaderSize + InnerSize;
-               }
-       }
-}
-
-/** Reads in the collection of Attribute ranges from the input buffer's Data Element Sequence container, into the given
- *  Attribute list for later use. Once complete, the input buffer pointer is advanced to the end of the Attribute container.
- *
- *  \param[out] AttributeList     Pointer to a buffer where the list of Attribute ranges are to be stored
- *  \param[in]  CurrentParameter  Pointer to a Buffer containing a Data Element Sequence of Attribute and Attribute Range elements
- *
- *  \return Total number of Attribute ranges stored in the Data Element Sequence
- */
-static uint8_t SDP_GetAttributeList(uint16_t AttributeList[][2],
-                                    const void** const CurrentParameter)
-{
-       uint8_t ElementHeaderSize;
-       uint8_t TotalAttributes = 0;
-
-       /* Retrieve the total size of the Attribute container, and unwrap the outer Data Element Sequence container */
-       uint16_t AttributeIDListLength = SDP_GetDataElementSize(CurrentParameter, &ElementHeaderSize);
-       BT_SDP_DEBUG(2, "-- Total Attribute Length: 0x%04X", AttributeIDListLength);
-       while (AttributeIDListLength)
-       {
-               /* Retrieve the size of the next Attribute in the container and get a pointer to the next free Attribute element in the list */
-               uint16_t* CurrentAttributeRange = AttributeList[TotalAttributes++];
-               uint8_t   AttributeLength       = SDP_GetDataElementSize(CurrentParameter, &ElementHeaderSize);
-
-               /* Copy over the starting Attribute ID and (if it the current element is a range) the ending Attribute ID */
-               memcpy(&CurrentAttributeRange[0], *CurrentParameter, AttributeLength);
-
-               /* If the element is not an Attribute Range, copy over the starting ID to the ending ID to make a range of 1 */
-               if (AttributeLength == 2)
-                 CurrentAttributeRange[1] = CurrentAttributeRange[0];
-
-               /* Swap the endianness of the attribute range values */
-               CurrentAttributeRange[0] = SwapEndian_16(CurrentAttributeRange[0]);
-               CurrentAttributeRange[1] = SwapEndian_16(CurrentAttributeRange[1]);
-
-               BT_SDP_DEBUG(2, "-- Attribute: 0x%04X-0x%04X", CurrentAttributeRange[0], CurrentAttributeRange[1]);
-
-               AttributeIDListLength -= (AttributeLength + ElementHeaderSize);
-               *CurrentParameter     += AttributeLength;
-       }
-
-       return TotalAttributes;
-}
-
-/** Reads in the collection of UUIDs from the input buffer's Data Element Sequence container, into the given
- *  UUID list for later use. Once complete, the input buffer pointer is advanced to the end of the UUID container.
- *
- *  \param[out] UUIDList          Pointer to a buffer where the list of UUIDs are to be stored
- *  \param[in]  CurrentParameter  Pointer to a Buffer containing a Data Element Sequence of UUID elements
- *
- *  \return Total number of UUIDs stored in the Data Element Sequence
- */
-static uint8_t SDP_GetUUIDList(uint8_t UUIDList[][UUID_SIZE_BYTES],
-                               const void** const CurrentParameter)
-{
-       uint8_t ElementHeaderSize;
-       uint8_t TotalUUIDs = 0;
-
-       /* Retrieve the total size of the UUID container, and unwrap the outer Data Element Sequence container */
-       uint16_t ServicePatternLength = SDP_GetDataElementSize(CurrentParameter, &ElementHeaderSize);
-       BT_SDP_DEBUG(2, "-- Total UUID Length: 0x%04X", ServicePatternLength);
-       while (ServicePatternLength)
-       {
-               /* Retrieve the size of the next UUID in the container and get a pointer to the next free UUID element in the list */
-               uint8_t* CurrentUUID = UUIDList[TotalUUIDs++];
-               uint8_t  UUIDLength  = SDP_GetDataElementSize(CurrentParameter, &ElementHeaderSize);
-
-               /* Copy over UUID from the container to the free slot */
-               if (UUIDLength <= 4)
-               {
-                       /* Copy over the base UUID value to the free UUID slot in the list */
-                       memcpy_P(CurrentUUID, &BaseUUID, sizeof(BaseUUID));
-
-                       /* Copy over short UUID */
-                       memcpy(CurrentUUID + (4 - UUIDLength), *CurrentParameter, UUIDLength);
-               }
-               else
-               {
-                       /* Copy over full UUID */
-                       memcpy(CurrentUUID, *CurrentParameter, UUIDLength);
-               }
-
-               BT_SDP_DEBUG(2, "-- UUID (%d): %02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X",
-                               UUIDLength,
-                               CurrentUUID[0], CurrentUUID[1], CurrentUUID[2], CurrentUUID[3],
-                               CurrentUUID[4], CurrentUUID[5],
-                                               CurrentUUID[6], CurrentUUID[7],
-                               CurrentUUID[8], CurrentUUID[9],
-                                               CurrentUUID[10], CurrentUUID[11], CurrentUUID[12],  CurrentUUID[13],  CurrentUUID[14],  CurrentUUID[15]);
-
-               ServicePatternLength -= (UUIDLength + ElementHeaderSize);
-               *CurrentParameter    += UUIDLength;
-       }
-
-       return TotalUUIDs;
-}
-
-/** Retrieves the total size of the given locally stored (in PROGMEM) attribute Data Element container.
- *
- *  \param[in]  AttributeData  Pointer to the start of the Attribute container, located in PROGMEM
- *  \param[out] HeaderSize     Pointer to a location where the header size of the data element is to be stored
- *
- *  \return Size in bytes of the entire attribute container, including the header
- */
-static uint32_t SDP_GetLocalAttributeContainerSize(const void* const AttributeData,
-                                                   uint8_t* const HeaderSize)
-{
-       /* Fetch the size of the Data Element structure from the header */
-       uint8_t SizeIndex = (pgm_read_byte(AttributeData) & 0x07);
-
-       uint32_t ElementValueSize;
-
-       /* Convert the Data Element size index into a size in bytes */
-       switch (SizeIndex)
-       {
-               case SDP_DATASIZE_Variable8Bit:
-                       *HeaderSize = (1 + sizeof(uint8_t));
-                       ElementValueSize = pgm_read_byte(AttributeData + 1);
-                       break;
-               case SDP_DATASIZE_Variable16Bit:
-                       *HeaderSize = (1 + sizeof(uint16_t));
-                       ElementValueSize = SwapEndian_16(pgm_read_word(AttributeData + 1));
-                       break;
-               case SDP_DATASIZE_Variable32Bit:
-                       *HeaderSize = (1 + sizeof(uint32_t));
-                       ElementValueSize = SwapEndian_32(pgm_read_dword(AttributeData + 1));
-                       break;
-               default:
-                       *HeaderSize = 1;
-                       ElementValueSize = (1 << SizeIndex);
-                       break;
-       }
-
-       return ElementValueSize;
-}
-
-/** Retrieves the size of a Data Element container from the current input buffer, and advances the input buffer
- *  pointer to the start of the Data Element's contents.
- *
- *  \param[in, out] DataElementHeader  Pointer to the start of a Data Element header
- *  \param[out]     ElementHeaderSize  Size in bytes of the header that was skipped
- *
- *  \return Size in bytes of the Data Element container's contents, minus the header
- */
-static uint32_t SDP_GetDataElementSize(const void** const DataElementHeader,
-                                       uint8_t* const ElementHeaderSize)
-{
-       /* Fetch the size of the Data Element structure from the header, increment the current buffer pos */
-       uint8_t  SizeIndex = (SDP_ReadData8(DataElementHeader) & 0x07);
-
-       uint32_t ElementValueSize;
-
-       /* Convert the Data Element size index into a size in bytes */
-       switch (SizeIndex)
-       {
-               case SDP_DATASIZE_Variable8Bit:
-                       *ElementHeaderSize  = (1 + sizeof(uint8_t));
-                       ElementValueSize    = SDP_ReadData8(DataElementHeader);
-                       break;
-               case SDP_DATASIZE_Variable16Bit:
-                       *ElementHeaderSize  = (1 + sizeof(uint16_t));
-                       ElementValueSize    = SDP_ReadData16(DataElementHeader);
-                       break;
-               case SDP_DATASIZE_Variable32Bit:
-                       *ElementHeaderSize  = (1 + sizeof(uint32_t));
-                       ElementValueSize    = SDP_ReadData32(DataElementHeader);
-                       break;
-               default:
-                       *ElementHeaderSize  = 1;
-                       ElementValueSize    = (1 << SizeIndex);
-                       break;
-       }
-
-       return ElementValueSize;
-}
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.h b/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.h
deleted file mode 100644 (file)
index 83e6730..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 ServiceDiscoveryProtocol.c.
- */
-
-#ifndef _SERVICEDISCOVERYPROTOCOL_H_
-#define _SERVICEDISCOVERYPROTOCOL_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-               #include <avr/pgmspace.h>
-               #include <string.h>
-               #include <stdbool.h>
-               #include <stdio.h>
-
-               #include <LUFA/Common/Common.h>
-               #include <LUFA/Drivers/Peripheral/Serial.h>
-
-               #include "BluetoothStack.h"
-               #include "SDPServices.h"
-
-       /* Macros: */
-               #define BT_SDP_DEBUG(l, s, ...)                 do { if (SDP_DEBUG_LEVEL >= l) printf_P(PSTR("(SDP) " s "\r\n"), ##__VA_ARGS__); } while (0)
-               #define SDP_DEBUG_LEVEL                         0
-
-               #define SDP_PDU_ERRORRESPONSE                   0x01
-               #define SDP_PDU_SERVICESEARCHREQUEST            0x02
-               #define SDP_PDU_SERVICESEARCHRESPONSE           0x03
-               #define SDP_PDU_SERVICEATTRIBUTEREQUEST         0x04
-               #define SDP_PDU_SERVICEATTRIBUTERESPONSE        0x05
-               #define SDP_PDU_SERVICESEARCHATTRIBUTEREQUEST   0x06
-               #define SDP_PDU_SERVICESEARCHATTRIBUTERESPONSE  0x07
-
-       /* Enums: */
-               /** Data sizes for SDP Data Element headers, to indicate the size of the data contained in the element. When creating
-                *  a Data Element, a value from this enum should be ORed with a value from the \ref ServiceDiscovery_DataTypes_t enum.
-                */
-               enum ServiceDiscovery_DataSizes_t
-               {
-                       SDP_DATASIZE_8Bit          = 0, /**< Contained data is 8 bits in length. */
-                       SDP_DATASIZE_16Bit         = 1, /**< Contained data is 16 bits in length. */
-                       SDP_DATASIZE_32Bit         = 2, /**< Contained data is 32 bits in length. */
-                       SDP_DATASIZE_64Bit         = 3, /**< Contained data is 64 bits in length. */
-                       SDP_DATASIZE_128Bit        = 4, /**< Contained data is 128 bits in length. */
-                       SDP_DATASIZE_Variable8Bit  = 5, /**< Contained data is encoded in an 8 bit size integer following the header. */
-                       SDP_DATASIZE_Variable16Bit = 6, /**< Contained data is encoded in an 16 bit size integer following the header. */
-                       SDP_DATASIZE_Variable32Bit = 7, /**< Contained data is encoded in an 32 bit size integer following the header. */
-               };
-
-               /** Data types for SDP Data Element headers, to indicate the type of data contained in the element. When creating
-                *  a Data Element, a value from this enum should be ORed with a value from the \ref ServiceDiscovery_DataSizes_t enum.
-                */
-               enum ServiceDiscovery_DataTypes_t
-               {
-                       SDP_DATATYPE_Nill        = (0 << 3), /**< Indicates the container data is a Nill (null) type. */
-                       SDP_DATATYPE_UnsignedInt = (1 << 3), /**< Indicates the container data is an unsigned integer. */
-                       SDP_DATATYPE_SignedInt   = (2 << 3), /**< Indicates the container data is a signed integer. */
-                       SDP_DATATYPE_UUID        = (3 << 3), /**< Indicates the container data is a UUID. */
-                       SDP_DATATYPE_String      = (4 << 3), /**< Indicates the container data is an ASCII string. */
-                       SDP_DATATYPE_Boolean     = (5 << 3), /**< Indicates the container data is a logical boolean. */
-                       SDP_DATATYPE_Sequence    = (6 << 3), /**< Indicates the container data is a sequence of containers. */
-                       SDP_DATATYPE_Alternative = (7 << 3), /**< Indicates the container data is a sequence of alternative containers. */
-                       SDP_DATATYPE_URL         = (8 << 3), /**< Indicates the container data is a URL. */
-               };
-
-       /* Type Defines: */
-               /** Header for all SPD transaction packets. This header is sent at the start of all SDP packets sent to or from a SDP
-                *  server.
-                */
-               typedef struct
-               {
-                       uint8_t  PDU; /**< SDP packet type, a \c SDP_PDU_* mask value */
-                       uint16_t TransactionID; /**< Unique transaction ID number to associate requests and responses */
-                       uint16_t ParameterLength; /**< Length of the data following the SDP header */
-               } SDP_PDUHeader_t;
-
-       /* Inline Functions: */
-               /** Writes 8 bits of raw data to the given buffer, incrementing the buffer position afterwards.
-                *
-                *  \param[in, out] BufferPos  Current position in the buffer where the data is to be written to
-                *  \param[in]      Data       Data to write to the buffer
-                */
-               static inline void SDP_WriteData8(void** BufferPos,
-                                                 const uint8_t Data)
-               {
-                       *((uint8_t*)*BufferPos) = Data;
-                       *BufferPos += sizeof(uint8_t);
-               }
-
-               /** Writes 16 bits of raw data to the given buffer, incrementing the buffer position afterwards.
-                *
-                *  \param[in, out] BufferPos  Current position in the buffer where the data is to be written to
-                *  \param[in]      Data       Data to write to the buffer
-                */
-               static inline void SDP_WriteData16(void** BufferPos,
-                                                  const uint16_t Data)
-               {
-                       *((uint16_t*)*BufferPos) = SwapEndian_16(Data);
-                       *BufferPos += sizeof(uint16_t);
-               }
-
-               /** Writes 32 bits of raw data to the given buffer, incrementing the buffer position afterwards.
-                *
-                *  \param[in, out] BufferPos  Current position in the buffer where the data is to be written to
-                *  \param[in]      Data       Data to write to the buffer
-                */
-               static inline void SDP_WriteData32(void** BufferPos,
-                                                  const uint32_t Data)
-               {
-                       *((uint32_t*)*BufferPos) = SwapEndian_32(Data);
-                       *BufferPos += sizeof(uint32_t);
-               }
-
-               /** Reads 8 bits of raw data from the given buffer, incrementing the buffer position afterwards.
-                *
-                *  \param[in, out] BufferPos  Current position in the buffer where the data is to be read from
-                *
-                *  \return Data read from the buffer
-                */
-               static inline uint8_t SDP_ReadData8(const void** BufferPos)
-               {
-                       uint8_t Data = *((const uint8_t*)*BufferPos);
-                       *BufferPos += sizeof(uint8_t);
-
-                       return Data;
-               }
-
-               /** Reads 16 bits of raw data from the given buffer, incrementing the buffer position afterwards.
-                *
-                *  \param[in, out] BufferPos  Current position in the buffer where the data is to be read from
-                *
-                *  \return Data read from the buffer
-                */
-               static inline uint16_t SDP_ReadData16(const void** BufferPos)
-               {
-                       uint16_t Data = SwapEndian_16(*((const uint16_t*)*BufferPos));
-                       *BufferPos += sizeof(uint16_t);
-
-                       return Data;
-               }
-
-               /** Reads 32 bits of raw data from the given buffer, incrementing the buffer position afterwards.
-                *
-                *  \param[in, out] BufferPos  Current position in the buffer where the data is to be read from
-                *
-                *  \return Data read from the buffer
-                */
-               static inline uint32_t SDP_ReadData32(const void** BufferPos)
-               {
-                       uint32_t Data = SwapEndian_32(*((const uint32_t*)*BufferPos));
-                       *BufferPos += sizeof(uint32_t);
-
-                       return Data;
-               }
-
-               /** Adds a new Data Element Sequence container with a 16-bit size header to the buffer. The buffer
-                *  pointer's position is advanced past the added header once the element has been added. The returned
-                *  size header value is pre-zeroed out so that it can be incremented as data is placed into the Data
-                *  Element Sequence container.
-                *
-                *  The total added size of the container header is three bytes, regardless of the size of its contents
-                *  as long as the contents' size in bytes fits into a 16-bit integer.
-                *
-                *  \param[in, out] BufferPos  Pointer to a buffer where the container header is to be placed
-                *
-                *  \return Pointer to the 16-bit size value of the container header, which has been pre-zeroed
-                */
-               static inline uint16_t* SDP_AddSequence16(void** BufferPos)
-               {
-                       SDP_WriteData8(BufferPos, (SDP_DATASIZE_Variable16Bit | SDP_DATATYPE_Sequence));
-
-                       uint16_t* SizePos = *BufferPos;
-                       SDP_WriteData16(BufferPos, 0);
-
-                       return SizePos;
-               }
-
-       /* Function Prototypes: */
-               void SDP_ProcessPacket(void* Data,
-                                      Bluetooth_Channel_t* const Channel);
-
-               #if defined(INCLUDE_FROM_SERVICEDISCOVERYPROTOCOL_C)
-                       static void     SDP_ProcessServiceSearch(const SDP_PDUHeader_t* const SDPHeader,
-                                                                Bluetooth_Channel_t* const Channel);
-                       static void     SDP_ProcessServiceAttribute(const SDP_PDUHeader_t* const SDPHeader,
-                                                                   Bluetooth_Channel_t* const Channel);
-                       static void     SDP_ProcessServiceSearchAttribute(const SDP_PDUHeader_t* const SDPHeader,
-                                                                         Bluetooth_Channel_t* const Channel);
-
-                       static uint16_t SDP_AddListedAttributesToResponse(const ServiceAttributeTable_t* AttributeTable,
-                                                                         uint16_t AttributeList[][2],
-                                                                         const uint8_t TotalAttributes,
-                                                                         void** const BufferPos);
-                       static uint16_t SDP_AddAttributeToResponse(const uint16_t AttributeID,
-                                                                  const void* AttributeValue,
-                                                                  void** ResponseBuffer);
-                       static void*    SDP_GetAttributeValue(const ServiceAttributeTable_t* AttributeTable,
-                                                             const uint16_t AttributeID);
-
-                       static bool     SDP_SearchServiceTable(uint8_t UUIDList[][UUID_SIZE_BYTES],
-                                                              const uint8_t TotalUUIDs,
-                                                              const ServiceAttributeTable_t* CurrAttributeTable);
-                       static void     SDP_CheckUUIDMatch(uint8_t UUIDList[][UUID_SIZE_BYTES],
-                                                          const uint8_t TotalUUIDs,
-                                                          uint16_t* const UUIDMatchFlags,
-                                                          const void* CurrAttribute);
-
-                       static uint8_t  SDP_GetAttributeList(uint16_t AttributeList[][2],
-                                                            const void** const CurrentParameter);
-                       static uint8_t  SDP_GetUUIDList(uint8_t UUIDList[][UUID_SIZE_BYTES],
-                                                       const void** const CurrentParameter);
-
-                       static uint32_t SDP_GetLocalAttributeContainerSize(const void* const AttributeData,
-                                                                          uint8_t* const HeaderSize);
-                       static uint32_t SDP_GetDataElementSize(const void** const AttributeHeader,
-                                                              uint8_t* const ElementHeaderSize);
-               #endif
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c b/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.c
deleted file mode 100644 (file)
index 1170121..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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
- *
- *  SDP Service Attribute definitions. This file contains the attributes
- *  and attribute tables of all the services the device supports, which can
- *  then be retrieved by a connected Bluetooth device via the SDP server.
- */
-
-#include "SDPServices.h"
-
-/** Serial Port Profile attribute, listing the unique service handle of the Serial Port service
- *  within the device. This handle can then be requested by the SDP client in future transactions
- *  in lieu of a search UUID list.
- */
-const struct
-{
-       uint8_t  Header;
-       uint32_t Data;
-} PROGMEM SerialPort_Attribute_ServiceHandle =
-       {
-               (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_32Bit),
-               SWAPENDIAN_32(0x00010001),
-       };
-
-/** Serial Port Profile attribute, listing the implemented Service Class UUIDs of the Serial Port service
- *  within the device. This list indicates all the class UUIDs that apply to the Serial Port service, so that
- *  a SDP client can search by a generalized class rather than a specific UUID to determine supported services.
- */
-const struct
-{
-       uint8_t    Header;
-       uint8_t    Size;
-       ItemUUID_t UUIDList[];
-} PROGMEM SerialPort_Attribute_ServiceClassIDs =
-       {
-               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-               (sizeof(ItemUUID_t) * 1),
-               {
-                       {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), SP_CLASS_UUID},
-               },
-       };
-
-/** Serial Port Profile attribute, listing the Protocols (and their attributes) of the Serial Port service
- *  within the device. This list indicates what protocols the service is layered on top of, as well as any
- *  configuration information for each layer.
- */
-const struct
-{
-       uint8_t                  Header;
-       uint8_t                  Size;
-
-       ItemProtocol_t           L2CAP;
-       ItemProtocol_8BitParam_t RFCOMM;
-} PROGMEM SerialPort_Attribute_ProtocolDescriptor =
-       {
-               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-               (sizeof(ItemProtocol_t) + sizeof(ItemProtocol_8BitParam_t)),
-               {
-                       (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-                       sizeof(ItemUUID_t),
-                       {
-                               {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), L2CAP_UUID},
-                       },
-               },
-               {
-                       (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-                       (sizeof(ItemUUID_t) + sizeof(Item8Bit_t)),
-                       {
-                               {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), RFCOMM_UUID},
-                               {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_8Bit), 0x03},
-                       },
-               },
-       };
-
-/** Serial Port Profile attribute, listing the Browse Group List UUIDs which this service is a member of.
- *  Browse Group UUIDs give a way to group together services within a device in a simple hierarchy, so that
- *  a SDP client can progressively narrow down an general browse to a specific service which it requires.
- */
-const struct
-{
-       uint8_t    Header;
-       uint8_t    Size;
-       ItemUUID_t UUIDList[];
-} PROGMEM SerialPort_Attribute_BrowseGroupList =
-       {
-               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-               (sizeof(ItemUUID_t) * 1),
-               {
-                       {(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), PUBLICBROWSEGROUP_CLASS_UUID},
-               },
-       };
-
-/** Serial Port Profile attribute, listing the languages (and their encodings) supported
- *  by the Serial Port service in its text string attributes.
- */
-const struct
-{
-       uint8_t            Header;
-       uint8_t            Size;
-       ItemLangEncoding_t LanguageEncodings[];
-} PROGMEM SerialPort_Attribute_LanguageBaseIDOffset =
-       {
-               (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit),
-               (sizeof(ItemLangEncoding_t) * 1),
-               {
-                       {
-                               {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x454E)},
-                               {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x006A)},
-                               {(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit), SWAPENDIAN_16(0x0100)},
-                       },
-               },
-       };
-
-/** Serial Port Profile attribute, listing a human readable name of the service. */
-const struct
-{
-       uint8_t Header;
-       uint8_t Size;
-       char    Text[];
-} PROGMEM SerialPort_Attribute_ServiceName =
-       {
-               (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),
-               sizeof("Wireless Serial Port") - 1,
-               "Wireless Serial Port",
-       };
-
-/** Serial Port Profile attribute, listing a human readable description of the service. */
-const struct
-{
-       uint8_t Header;
-       uint8_t Size;
-       char    Text[];
-} PROGMEM SerialPort_Attribute_ServiceDescription =
-       {
-               (SDP_DATATYPE_String | SDP_DATASIZE_Variable8Bit),
-               sizeof("Wireless Serial Port Service") - 1,
-               "Wireless Serial Port Service",
-       };
-
-/** Service Attribute Table for the Serial Port service, linking each supported attribute ID to its data, so that
- *  the SDP server can retrieve it for transmission back to a SDP client upon request.
- */
-const ServiceAttributeTable_t PROGMEM SerialPort_Attribute_Table[] =
-       {
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE,    .Data = &SerialPort_Attribute_ServiceHandle       },
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICECLASSIDS,        .Data = &SerialPort_Attribute_ServiceClassIDs     },
-               {.AttributeID = SDP_ATTRIBUTE_ID_PROTOCOLDESCRIPTORLIST, .Data = &SerialPort_Attribute_ProtocolDescriptor  },
-               {.AttributeID = SDP_ATTRIBUTE_ID_BROWSEGROUPLIST,        .Data = &SerialPort_Attribute_BrowseGroupList     },
-               {.AttributeID = SDP_ATTRIBUTE_ID_LANGUAGEBASEATTROFFSET, .Data = &SerialPort_Attribute_LanguageBaseIDOffset},
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICENAME,            .Data = &SerialPort_Attribute_ServiceName         },
-               {.AttributeID = SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION,     .Data = &SerialPort_Attribute_ServiceDescription  },
-
-               SERVICE_ATTRIBUTE_TABLE_TERMINATOR
-       };
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h b/Demos/Host/Incomplete/BluetoothHost/Lib/SDPServices.h
deleted file mode 100644 (file)
index 8850a29..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 SDPServices.c.
- */
-
-#ifndef _SDPSERVICES_H_
-#define _SDPSERVICES_H_
-
-       /* Includes: */
-               #include "SDP.h"
-
-       /* Macros: */
-               /** Size of a full 128 bit UUID, in bytes. */
-               #define UUID_SIZE_BYTES                         16
-
-               /** First 80 bits common to all standardized Bluetooth services. */
-               #define BASE_80BIT_UUID                         0x0000, 0x0010, 0x0080, {0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB}
-
-               #define RFCOMM_UUID                             {SWAPENDIAN_32(0x00000003), BASE_80BIT_UUID}
-               #define L2CAP_UUID                              {SWAPENDIAN_32(0x00000100), BASE_80BIT_UUID}
-               #define SP_CLASS_UUID                           {SWAPENDIAN_32(0x00001101), BASE_80BIT_UUID}
-               #define PUBLICBROWSEGROUP_CLASS_UUID            {SWAPENDIAN_32(0x00001002), BASE_80BIT_UUID}
-
-               #define SDP_ATTRIBUTE_ID_SERVICERECORDHANDLE    0x0000
-               #define SDP_ATTRIBUTE_ID_SERVICECLASSIDS        0x0001
-               #define SDP_ATTRIBUTE_ID_PROTOCOLDESCRIPTORLIST 0x0004
-               #define SDP_ATTRIBUTE_ID_BROWSEGROUPLIST        0x0005
-               #define SDP_ATTRIBUTE_ID_LANGUAGEBASEATTROFFSET 0x0006
-               #define SDP_ATTRIBUTE_ID_SERVICENAME            0x0100
-               #define SDP_ATTRIBUTE_ID_SERVICEDESCRIPTION     0x0101
-
-               /** Terminator for a service attribute table of type \ref ServiceAttributeTable_t. */
-               #define SERVICE_ATTRIBUTE_TABLE_TERMINATOR      {.Data = NULL}
-
-       /* Type Defines: */
-               /** Type define for a UUID value structure. This struct can be used to hold full 128-bit UUIDs. */
-               typedef struct
-               {
-                       uint32_t A; /**< Bits 0-31 of the UUID. */
-                       uint16_t B; /**< Bits 32-47 of the UUID. */
-                       uint16_t C; /**< Bits 48-63 of the UUID. */
-                       uint16_t D; /**< Bits 64-79 of the UUID. */
-                       uint8_t  E[6]; /**< Bits 80-127 of the UUID. */
-               } UUID_t;
-
-               /** Structure for the association of attribute ID values to an attribute value in FLASH. A table of these
-                *  structures can then be built up for each supported UUID service within the device.
-                *
-                *  \attention This table must be terminated with a \ref SERVICE_ATTRIBUTE_TABLE_TERMINATOR element.
-                */
-               typedef struct
-               {
-                       uint16_t    AttributeID; /**< Attribute ID of the table element which the UUID service supports */
-                       const void* Data; /**< Pointer to the attribute data, located in PROGMEM memory space */
-               } ServiceAttributeTable_t;
-
-               /** Structure for a list of Data Elements containing 8-bit integers, for service attributes requiring such lists. */
-               typedef struct
-               {
-                       uint8_t Header; /**< Data Element header, should be (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_8Bit) */
-                       uint8_t Value; /**< Value to store in the list Data Element */
-               } Item8Bit_t;
-
-               /** Structure for a list of Data Elements containing 16-bit integers, for service attributes requiring such lists. */
-               typedef struct
-               {
-                       uint8_t  Header; /**< Data Element header, should be (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit) */
-                       uint16_t Value; /**< Value to store in the list Data Element */
-               } Item16Bit_t;
-
-               /** Structure for a list of Data Elements containing 32-bit integers, for service attributes requiring such lists. */
-               typedef struct
-               {
-                       uint8_t  Header; /**< Data Element header, should be (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_32Bit) */
-                       uint32_t Value; /**< Value to store in the list Data Element */
-               } Item32Bit_t;
-
-               /** Structure for a list of Data Elements containing UUIDs, for service attributes requiring UUID lists. */
-               typedef struct
-               {
-                       uint8_t Header; /**< Data Element header, should be (SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit) */
-                       UUID_t  UUID; /**< UUID to store in the list Data Element */
-               } ItemUUID_t;
-
-               /** Structure for a list of Data Elements Sequences containing UUID Data Elements, for service attributes requiring
-                *  protocol lists.
-                */
-               typedef struct
-               {
-                       uint8_t        Header; /**< Data Element header, should be (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit) */
-                       uint8_t        Size; /**< Size of the inner Data Element sequence */
-
-                       struct
-                       {
-                               ItemUUID_t UUID; /**< UUID to store in the protocol list Data Element sequence */
-                       } Protocol;
-               } ItemProtocol_t;
-
-               /** Structure for a list of Data Elements Sequences containing UUID Data Elements and an 8-bit param value, for service
-                *  attributes requiring extended protocol lists containing an 8-bit value.
-                */
-               typedef struct
-               {
-                       uint8_t        Header; /**< Data Element header, should be (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit) */
-                       uint8_t        Size; /**< Size of the inner Data Element sequence */
-
-                       struct
-                       {
-                               ItemUUID_t UUID; /**< UUID to store in the protocol list Data Element sequence */
-                               Item8Bit_t Param; /**< 8-Bit Parameter associated with the service */
-                       } Protocol;
-               } ItemProtocol_8BitParam_t;
-
-               /** Structure for a list of Data Elements Sequences containing UUID Data Elements and an 16-bit param value, for service
-                *  attributes requiring extended protocol lists containing an 16-bit value.
-                */
-               typedef struct
-               {
-                       uint8_t        Header; /**< Data Element header, should be (SDP_DATATYPE_Sequence | SDP_DATASIZE_Variable8Bit) */
-                       uint8_t        Size; /**< Size of the inner Data Element sequence */
-
-                       struct
-                       {
-                               ItemUUID_t UUID; /**< UUID to store in the protocol list Data Element sequence */
-                               Item16Bit_t Channel; /**< 16-Bit Parameter associated with the service */
-                       } Protocol;
-               } ItemProtocol_16BitParam_t;
-
-               /** Structure for a list of Data Elements containing language encodings, including the language ID, Encoding ID and
-                *  Attribute base offset.
-                */
-               typedef struct
-               {
-                       Item16Bit_t LanguageID; /**< Language ID for the current language */
-                       Item16Bit_t EncodingID; /**< Encoding used for the current language */
-                       Item16Bit_t OffsetID; /**< Attribute offset added to all strings using this language within the service */
-               } ItemLangEncoding_t;
-
-       /* External Variables: */
-               extern const ServiceAttributeTable_t SerialPort_Attribute_Table[];
-               extern const ServiceAttributeTable_t PnP_Attribute_Table[];
-
-#endif
-
diff --git a/Demos/Host/Incomplete/BluetoothHost/makefile b/Demos/Host/Incomplete/BluetoothHost/makefile
deleted file mode 100644 (file)
index 4830fe4..0000000
+++ /dev/null
@@ -1,733 +0,0 @@
-# Hey Emacs, this is a -*- makefile -*-
-#----------------------------------------------------------------------------
-# WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al.
-#  >> Modified for use with the LUFA project. <<
-#
-# Released to the Public Domain
-#
-# Additional material for this makefile was written by:
-# Peter Fleury
-# Tim Henigan
-# Colin O'Flynn
-# Reiner Patommel
-# Markus Pfaff
-# Sander Pool
-# Frederik Rouleau
-# Carlos Lamas
-# Dean Camera
-# Opendous Inc.
-# Denver Gingerich
-#
-#----------------------------------------------------------------------------
-# On command line:
-#
-# make all = Make software.
-#
-# make clean = Clean out built project files.
-#
-# make coff = Convert ELF to AVR COFF.
-#
-# make extcoff = Convert ELF to AVR Extended COFF.
-#
-# make program = Download the hex file to the device, using avrdude.
-#                Please customize the avrdude settings below first!
-#
-# make dfu = Download the hex file to the device, using dfu-programmer (must
-#            have dfu-programmer installed).
-#
-# make flip = Download the hex file to the device, using Atmel FLIP (must
-#             have Atmel FLIP installed).
-#
-# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
-#               (must have dfu-programmer installed).
-#
-# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
-#                (must have Atmel FLIP installed).
-#
-# make doxygen = Generate DoxyGen documentation for the project (must have
-#                DoxyGen installed)
-#
-# make debug = Start either simulavr or avarice as specified for debugging,
-#              with avr-gdb or avr-insight as the front end for debugging.
-#
-# make filename.s = Just compile filename.c into the assembler code only.
-#
-# make filename.i = Create a preprocessed source file for use in submitting
-#                   bug reports to the GCC project.
-#
-# To rebuild project do "make clean" then "make all".
-#----------------------------------------------------------------------------
-
-
-# MCU name
-MCU = at90usb1287
-
-
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-
-# Target board (see library "Board Types" documentation, NONE for projects not requiring
-# LUFA board drivers). If USER is selected, put custom board drivers in a directory called
-# "Board" inside the application directory.
-BOARD = USBKEY
-
-
-# Processor frequency.
-#     This will define a symbol, F_CPU, in all source code files equal to the
-#     processor frequency in Hz. You can then use this symbol in your source code to
-#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-#     automatically to create a 32-bit value in your source code.
-#
-#     This will be an integer division of F_USB below, as it is sourced by
-#     F_USB after it has run through any CPU prescalers. Note that this value
-#     does not *change* the processor frequency - it should merely be updated to
-#     reflect the processor speed set externally so that the code can use accurate
-#     software delays.
-F_CPU = 8000000
-
-
-# Input clock frequency.
-#     This will define a symbol, F_USB, in all source code files equal to the
-#     input clock frequency (before any prescaling is performed) in Hz. This value may
-#     differ from F_CPU if prescaling is used on the latter, and is required as the
-#     raw input clock is fed directly to the PLL sections of the AVR for high speed
-#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-#     at the end, this will be done automatically to create a 32-bit value in your
-#     source code.
-#
-#     If no clock division is performed on the input clock inside the AVR (via the
-#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-
-# Output format. (can be srec, ihex, binary)
-FORMAT = ihex
-
-
-# Target file name (without extension).
-TARGET = BluetoothHost
-
-
-# Object files directory
-#     To put object files in current directory, use a dot (.), do NOT make
-#     this an empty or blank macro!
-OBJDIR = .
-
-
-# Path to the LUFA library
-LUFA_PATH = ../../../..
-
-
-# LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-
-# Create the LUFA source path variables by including the LUFA root makefile
-include $(LUFA_PATH)/LUFA/makefile
-
-
-# List C source files here. (C dependencies are automatically generated.)
-SRC = $(TARGET).c                                                 \
-         BluetoothEvents.c                                           \
-         DeviceDescriptor.c                                          \
-         ConfigDescriptor.c                                          \
-         Lib/BluetoothStack.c                                        \
-         Lib/BluetoothHCICommands.c                                  \
-         Lib/BluetoothACLPackets.c                                   \
-         Lib/SDP.c                                                   \
-         Lib/SDPServices.c                                           \
-         Lib/RFCOMM.c                                                \
-         Lib/RFCOMMControl.c                                         \
-         $(LUFA_SRC_USB)                                             \
-         $(LUFA_SRC_SERIAL)
-
-
-# List C++ source files here. (C dependencies are automatically generated.)
-CPPSRC =
-
-
-# List Assembler source files here.
-#     Make them always end in a capital .S.  Files ending in a lowercase .s
-#     will not be considered source files but generated files (assembler
-#     output from the compiler), and will be deleted upon "make clean"!
-#     Even though the DOS/Win* filesystem matches both .s and .S the same,
-#     it will preserve the spelling of the filenames, and gcc itself does
-#     care about how the name is spelled on its command-line.
-ASRC =
-
-
-# Optimization level, can be [0, 1, 2, 3, s].
-#     0 = turn off optimization. s = optimize for size.
-#     (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
-OPT = s
-
-
-# Debugging format.
-#     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
-#     AVR Studio 4.10 requires dwarf-2.
-#     AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
-DEBUG = dwarf-2
-
-
-# List any extra directories to look for include files here.
-#     Each directory must be seperated by a space.
-#     Use forward slashes for directory separators.
-#     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
-
-
-# Compiler flag to set the C Standard level.
-#     c89   = "ANSI" C
-#     gnu89 = c89 plus GCC extensions
-#     c99   = ISO C99 standard (not yet fully implemented)
-#     gnu99 = c99 plus GCC extensions
-CSTANDARD = -std=c99
-
-
-# Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL
-CDEFS += -DF_USB=$(F_USB)UL
-CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
-CDEFS += $(LUFA_OPTS)
-
-
-# Place -D or -U options here for ASM sources
-ADEFS  = -DF_CPU=$(F_CPU)
-ADEFS += -DF_USB=$(F_USB)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
-ADEFS += $(LUFA_OPTS)
-
-# Place -D or -U options here for C++ sources
-CPPDEFS  = -DF_CPU=$(F_CPU)UL
-CPPDEFS += -DF_USB=$(F_USB)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
-CPPDEFS += $(LUFA_OPTS)
-#CPPDEFS += -D__STDC_LIMIT_MACROS
-#CPPDEFS += -D__STDC_CONSTANT_MACROS
-
-
-
-#---------------- Compiler Options C ----------------
-#  -g*:          generate debugging information
-#  -O*:          optimization level
-#  -f...:        tuning, see GCC manual and avr-libc documentation
-#  -Wall...:     warning level
-#  -Wa,...:      tell GCC to pass this to the assembler.
-#    -adhlns...: create assembler listing
-CFLAGS = -g$(DEBUG)
-CFLAGS += $(CDEFS)
-CFLAGS += -O$(OPT)
-CFLAGS += -funsigned-char
-CFLAGS += -funsigned-bitfields
-CFLAGS += -ffunction-sections
-CFLAGS += -fno-inline-small-functions
-CFLAGS += -fpack-struct
-CFLAGS += -fshort-enums
-CFLAGS += -fno-strict-aliasing
-CFLAGS += -Wall
-CFLAGS += -Wstrict-prototypes
-#CFLAGS += -mshort-calls
-#CFLAGS += -fno-unit-at-a-time
-#CFLAGS += -Wundef
-#CFLAGS += -Wunreachable-code
-#CFLAGS += -Wsign-compare
-CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)
-CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
-CFLAGS += $(CSTANDARD)
-
-
-#---------------- Compiler Options C++ ----------------
-#  -g*:          generate debugging information
-#  -O*:          optimization level
-#  -f...:        tuning, see GCC manual and avr-libc documentation
-#  -Wall...:     warning level
-#  -Wa,...:      tell GCC to pass this to the assembler.
-#    -adhlns...: create assembler listing
-CPPFLAGS = -g$(DEBUG)
-CPPFLAGS += $(CPPDEFS)
-CPPFLAGS += -O$(OPT)
-CPPFLAGS += -funsigned-char
-CPPFLAGS += -funsigned-bitfields
-CPPFLAGS += -fpack-struct
-CPPFLAGS += -fshort-enums
-CPPFLAGS += -fno-exceptions
-CPPFLAGS += -Wall
-CPPFLAGS += -Wundef
-#CPPFLAGS += -mshort-calls
-#CPPFLAGS += -fno-unit-at-a-time
-#CPPFLAGS += -Wstrict-prototypes
-#CPPFLAGS += -Wunreachable-code
-#CPPFLAGS += -Wsign-compare
-CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst)
-CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
-#CPPFLAGS += $(CSTANDARD)
-
-
-#---------------- Assembler Options ----------------
-#  -Wa,...:   tell GCC to pass this to the assembler.
-#  -adhlns:   create listing
-#  -gstabs:   have the assembler create line number information; note that
-#             for use in COFF files, additional information about filenames
-#             and function names needs to be present in the assembler source
-#             files -- see avr-libc docs [FIXME: not yet described there]
-#  -listing-cont-lines: Sets the maximum number of continuation lines of hex
-#       dump that will be displayed for a given single line of source input.
-ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100
-
-
-#---------------- Library Options ----------------
-# Minimalistic printf version
-PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
-
-# Floating point printf version (requires MATH_LIB = -lm below)
-PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
-
-# If this is left blank, then it will use the Standard printf version.
-PRINTF_LIB =
-#PRINTF_LIB = $(PRINTF_LIB_MIN)
-#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
-
-
-# Minimalistic scanf version
-SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
-
-# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
-SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
-
-# If this is left blank, then it will use the Standard scanf version.
-SCANF_LIB =
-#SCANF_LIB = $(SCANF_LIB_MIN)
-#SCANF_LIB = $(SCANF_LIB_FLOAT)
-
-
-MATH_LIB = -lm
-
-
-# List any extra directories to look for libraries here.
-#     Each directory must be seperated by a space.
-#     Use forward slashes for directory separators.
-#     For a directory that has spaces, enclose it in quotes.
-EXTRALIBDIRS =
-
-
-
-#---------------- External Memory Options ----------------
-
-# 64 KB of external RAM, starting after internal RAM (ATmega128!),
-# used for variables (.data/.bss) and heap (malloc()).
-#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
-
-# 64 KB of external RAM, starting after internal RAM (ATmega128!),
-# only used for heap (malloc()).
-#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff
-
-EXTMEMOPTS =
-
-
-
-#---------------- Linker Options ----------------
-#  -Wl,...:     tell GCC to pass this to linker.
-#    -Map:      create map file
-#    --cref:    add cross reference to  map file
-LDFLAGS  = -Wl,-Map=$(TARGET).map,--cref
-LDFLAGS += -Wl,--relax
-LDFLAGS += -Wl,--gc-sections
-LDFLAGS += $(EXTMEMOPTS)
-LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
-LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
-#LDFLAGS += -T linker_script.x
-
-
-
-#---------------- Programming Options (avrdude) ----------------
-
-# Programming hardware
-# Type: avrdude -c ?
-# to get a full listing.
-#
-AVRDUDE_PROGRAMMER = jtagmkII
-
-# com1 = serial port. Use lpt1 to connect to parallel port.
-AVRDUDE_PORT = usb
-
-AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
-#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
-
-
-# Uncomment the following if you want avrdude's erase cycle counter.
-# Note that this counter needs to be initialized first using -Yn,
-# see avrdude manual.
-#AVRDUDE_ERASE_COUNTER = -y
-
-# Uncomment the following if you do /not/ wish a verification to be
-# performed after programming the device.
-#AVRDUDE_NO_VERIFY = -V
-
-# Increase verbosity level.  Please use this when submitting bug
-# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
-# to submit bug reports.
-#AVRDUDE_VERBOSE = -v -v
-
-AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
-AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
-AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
-AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
-
-
-
-#---------------- Debugging Options ----------------
-
-# For simulavr only - target MCU frequency.
-DEBUG_MFREQ = $(F_CPU)
-
-# Set the DEBUG_UI to either gdb or insight.
-# DEBUG_UI = gdb
-DEBUG_UI = insight
-
-# Set the debugging back-end to either avarice, simulavr.
-DEBUG_BACKEND = avarice
-#DEBUG_BACKEND = simulavr
-
-# GDB Init Filename.
-GDBINIT_FILE = __avr_gdbinit
-
-# When using avarice settings for the JTAG
-JTAG_DEV = /dev/com1
-
-# Debugging port used to communicate between GDB / avarice / simulavr.
-DEBUG_PORT = 4242
-
-# Debugging host used to communicate between GDB / avarice / simulavr, normally
-#     just set to localhost unless doing some sort of crazy debugging when
-#     avarice is running on a different computer.
-DEBUG_HOST = localhost
-
-
-
-#============================================================================
-
-
-# Define programs and commands.
-SHELL = sh
-CC = avr-gcc
-OBJCOPY = avr-objcopy
-OBJDUMP = avr-objdump
-SIZE = avr-size
-AR = avr-ar rcs
-NM = avr-nm
-AVRDUDE = avrdude
-REMOVE = rm -f
-REMOVEDIR = rm -rf
-COPY = cp
-WINSHELL = cmd
-
-
-# Define Messages
-# English
-MSG_ERRORS_NONE = Errors: none
-MSG_BEGIN = -------- begin --------
-MSG_END = --------  end  --------
-MSG_SIZE_BEFORE = Size before:
-MSG_SIZE_AFTER = Size after:
-MSG_COFF = Converting to AVR COFF:
-MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
-MSG_FLASH = Creating load file for Flash:
-MSG_EEPROM = Creating load file for EEPROM:
-MSG_EXTENDED_LISTING = Creating Extended Listing:
-MSG_SYMBOL_TABLE = Creating Symbol Table:
-MSG_LINKING = Linking:
-MSG_COMPILING = Compiling C:
-MSG_COMPILING_CPP = Compiling C++:
-MSG_ASSEMBLING = Assembling:
-MSG_CLEANING = Cleaning project:
-MSG_CREATING_LIBRARY = Creating library:
-
-
-
-
-# Define all object files.
-OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o)
-
-# Define all listing files.
-LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst)
-
-
-# Compiler flags to generate dependency files.
-GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d
-
-
-# Combine all necessary flags and optional flags.
-# Add target processor to flags.
-ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
-ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS)
-ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
-
-
-
-
-
-# Default target.
-all: begin gccversion sizebefore build sizeafter end
-
-# Change the build target to build a HEX file or a library.
-build: elf hex eep lss sym
-#build: lib
-
-
-elf: $(TARGET).elf
-hex: $(TARGET).hex
-eep: $(TARGET).eep
-lss: $(TARGET).lss
-sym: $(TARGET).sym
-LIBNAME=lib$(TARGET).a
-lib: $(LIBNAME)
-
-
-
-# Eye candy.
-# AVR Studio 3.x does not check make's exit code but relies on
-# the following magic strings to be generated by the compile job.
-begin:
-       @echo
-       @echo $(MSG_BEGIN)
-
-end:
-       @echo $(MSG_END)
-       @echo
-
-
-# Display size of file.
-HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
-ELFSIZE = $(SIZE) $(MCU_FLAG) $(FORMAT_FLAG) $(TARGET).elf
-MCU_FLAG = $(shell $(SIZE) --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) )
-FORMAT_FLAG = $(shell $(SIZE) --help | grep -- --format=.*avr > /dev/null && echo --format=avr )
-
-
-sizebefore:
-       @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
-       2>/dev/null; echo; fi
-
-sizeafter:
-       @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
-       2>/dev/null; echo; fi
-
-
-
-# Display compiler version information.
-gccversion :
-       @$(CC) --version
-
-
-# Program the device.
-program: $(TARGET).hex $(TARGET).eep
-       $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
-
-flip: $(TARGET).hex
-       batchisp -hardware usb -device $(MCU) -operation erase f
-       batchisp -hardware usb -device $(MCU) -operation loadbuffer $(TARGET).hex program
-       batchisp -hardware usb -device $(MCU) -operation start reset 0
-
-dfu: $(TARGET).hex
-       dfu-programmer $(MCU) erase
-       dfu-programmer $(MCU) flash $(TARGET).hex
-       dfu-programmer $(MCU) reset
-
-flip-ee: $(TARGET).hex $(TARGET).eep
-       $(COPY) $(TARGET).eep $(TARGET)eep.hex
-       batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase
-       batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(TARGET)eep.hex program
-       batchisp -hardware usb -device $(MCU) -operation start reset 0
-       $(REMOVE) $(TARGET)eep.hex
-
-dfu-ee: $(TARGET).hex $(TARGET).eep
-       dfu-programmer $(MCU) eeprom-flash $(TARGET).eep
-       dfu-programmer $(MCU) reset
-
-
-# Generate avr-gdb config/init file which does the following:
-#     define the reset signal, load the target file, connect to target, and set
-#     a breakpoint at main().
-gdb-config:
-       @$(REMOVE) $(GDBINIT_FILE)
-       @echo define reset >> $(GDBINIT_FILE)
-       @echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
-       @echo end >> $(GDBINIT_FILE)
-       @echo file $(TARGET).elf >> $(GDBINIT_FILE)
-       @echo target remote $(DEBUG_HOST):$(DEBUG_PORT)  >> $(GDBINIT_FILE)
-ifeq ($(DEBUG_BACKEND),simulavr)
-       @echo load  >> $(GDBINIT_FILE)
-endif
-       @echo break main >> $(GDBINIT_FILE)
-
-debug: gdb-config $(TARGET).elf
-ifeq ($(DEBUG_BACKEND), avarice)
-       @echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
-       @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
-       $(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
-       @$(WINSHELL) /c pause
-
-else
-       @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
-       $(DEBUG_MFREQ) --port $(DEBUG_PORT)
-endif
-       @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
-
-
-
-
-# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
-COFFCONVERT = $(OBJCOPY) --debugging
-COFFCONVERT += --change-section-address .data-0x800000
-COFFCONVERT += --change-section-address .bss-0x800000
-COFFCONVERT += --change-section-address .noinit-0x800000
-COFFCONVERT += --change-section-address .eeprom-0x810000
-
-
-
-coff: $(TARGET).elf
-       @echo
-       @echo $(MSG_COFF) $(TARGET).cof
-       $(COFFCONVERT) -O coff-avr $< $(TARGET).cof
-
-
-extcoff: $(TARGET).elf
-       @echo
-       @echo $(MSG_EXTENDED_COFF) $(TARGET).cof
-       $(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
-
-
-
-# Create final output files (.hex, .eep) from ELF output file.
-%.hex: %.elf
-       @echo
-       @echo $(MSG_FLASH) $@
-       $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock $< $@
-
-%.eep: %.elf
-       @echo
-       @echo $(MSG_EEPROM) $@
-       -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
-       --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0
-
-# Create extended listing file from ELF output file.
-%.lss: %.elf
-       @echo
-       @echo $(MSG_EXTENDED_LISTING) $@
-       $(OBJDUMP) -h -S -z $< > $@
-
-# Create a symbol table from ELF output file.
-%.sym: %.elf
-       @echo
-       @echo $(MSG_SYMBOL_TABLE) $@
-       $(NM) -n $< > $@
-
-
-
-# Create library from object files.
-.SECONDARY : $(TARGET).a
-.PRECIOUS : $(OBJ)
-%.a: $(OBJ)
-       @echo
-       @echo $(MSG_CREATING_LIBRARY) $@
-       $(AR) $@ $(OBJ)
-
-
-# Link: create ELF output file from object files.
-.SECONDARY : $(TARGET).elf
-.PRECIOUS : $(OBJ)
-%.elf: $(OBJ)
-       @echo
-       @echo $(MSG_LINKING) $@
-       $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
-
-
-# Compile: create object files from C source files.
-$(OBJDIR)/%.o : %.c
-       @echo
-       @echo $(MSG_COMPILING) $<
-       $(CC) -c $(ALL_CFLAGS) $< -o $@
-
-
-# Compile: create object files from C++ source files.
-$(OBJDIR)/%.o : %.cpp
-       @echo
-       @echo $(MSG_COMPILING_CPP) $<
-       $(CC) -c $(ALL_CPPFLAGS) $< -o $@
-
-
-# Compile: create assembler files from C source files.
-%.s : %.c
-       $(CC) -S $(ALL_CFLAGS) $< -o $@
-
-
-# Compile: create assembler files from C++ source files.
-%.s : %.cpp
-       $(CC) -S $(ALL_CPPFLAGS) $< -o $@
-
-
-# Assemble: create object files from assembler source files.
-$(OBJDIR)/%.o : %.S
-       @echo
-       @echo $(MSG_ASSEMBLING) $<
-       $(CC) -c $(ALL_ASFLAGS) $< -o $@
-
-
-# Create preprocessed source for use in sending a bug report.
-%.i : %.c
-       $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
-
-
-# Target: clean project.
-clean: begin clean_list end
-
-clean_list :
-       @echo
-       @echo $(MSG_CLEANING)
-       $(REMOVE) $(TARGET).hex
-       $(REMOVE) $(TARGET).eep
-       $(REMOVE) $(TARGET).cof
-       $(REMOVE) $(TARGET).elf
-       $(REMOVE) $(TARGET).map
-       $(REMOVE) $(TARGET).sym
-       $(REMOVE) $(TARGET).lss
-       $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o)
-       $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst)
-       $(REMOVE) $(SRC:.c=.s)
-       $(REMOVE) $(SRC:.c=.d)
-       $(REMOVE) $(SRC:.c=.i)
-       $(REMOVEDIR) .dep
-
-doxygen:
-       @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
-         exit 1; \
-       fi;
-       @echo Documentation Generation Complete.
-
-clean_doxygen:
-       rm -rf Documentation
-
-checksource:
-       @for f in $(SRC) $(CPPSRC) $(ASRC); do \
-               if [ -f $$f ]; then \
-                       echo "Found Source File: $$f" ; \
-               else \
-                       echo "Source File Not Found: $$f" ; \
-               fi; done 
-
-
-# Create object files directory
-$(shell mkdir $(OBJDIR) 2>/dev/null)
-
-
-# Include the dependency files.
--include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
-
-
-# Listing of phony targets.
-.PHONY : all begin finish end sizebefore sizeafter gccversion \
-build elf hex eep lss sym coff extcoff doxygen clean          \
-clean_list clean_doxygen program dfu flip flip-ee dfu-ee      \
-debug gdb-config checksource
index c699e25..454e389 100644 (file)
@@ -48,7 +48,6 @@
                #include "ConfigDescriptor.h"
                #include "Lib/AndroidAccessoryCommands.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
diff --git a/Demos/Host/LowLevel/AndroidAccessoryHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/AndroidAccessoryHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f3307c6
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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          0
+//      #define NO_AUTO_VBUS_MANAGEMENT
+//      #define INVERTED_VBUS_ENABLE_LINE
+
+       #else
+
+               #error Unsupported architecture for this LUFA configuration file.
+
+       #endif
+#endif
index b11f45d..586b802 100644 (file)
@@ -120,9 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D HOST_DEVICE_SETTLE_DELAY_MS=0
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +167,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index 4568ddd..10b9d8b 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
diff --git a/Demos/Host/LowLevel/AudioInputHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/AudioInputHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 16a24db..f56ed12 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index a1f255f..eddd38f 100644 (file)
@@ -74,6 +74,9 @@ void SetupHardware(void)
 
        /* Create a stdio stream for the serial port for stdin and stdout */
        Serial_CreateStream(NULL);
+
+       /* Start the ADC conversion in free running mode */
+       ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_GET_CHANNEL_MASK(MIC_IN_ADC_CHANNEL));   
 }
 
 /** Event handler for the USB_DeviceAttached event. This indicates that a device has been attached to the host, and
index 1834e70..189abcf 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/Buttons.h>
 
                #include "ConfigDescriptor.h"
+               #include "Config/AppConfig.h"
 
        /* Macros: */
-               /** ADC channel number for the microphone input. */
-               #define MIC_IN_ADC_CHANNEL        2
-
-               /** ADC channel MUX mask for the microphone input. */
-               #define MIC_IN_ADC_MUX_MASK       ADC_CHANNEL2
-
                /** Maximum audio sample value for the microphone input. */
                #define SAMPLE_MAX_RANGE          0xFFFF
 
index e6caaf9..3af62bc 100644 (file)
  *    <td><b>Description:</b></td>
  *   </tr>
  *   <tr>
+ *    <td>MIC_IN_ADC_CHANNEL</td>
+ *    <td>AppConfig.h</td>
+ *    <td>Sets the ADC channel used by the demo for the input audio samples from an attached microphone.</td>
+ *   </tr>
+ *   <tr>
  *    <td>USE_TEST_TONE</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
  *        instead of sampling the board microphone.</td>
  *   </tr>
  *   <tr>
  *    <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
  *   </tr>
  *  </table>
diff --git a/Demos/Host/LowLevel/AudioOutputHost/Config/AppConfig.h b/Demos/Host/LowLevel/AudioOutputHost/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..7702e25
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 MIC_IN_ADC_CHANNEL               2
+
+       #define MICROPHONE_BIASED_TO_HALF_RAIL
+       #define USE_TEST_TONE
+
+#endif
\ No newline at end of file
diff --git a/Demos/Host/LowLevel/AudioOutputHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/AudioOutputHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 0c4f067..0292ea4 100644 (file)
@@ -40,7 +40,8 @@
                #include <LUFA/Drivers/USB/USB.h>
 
                #include "AudioOutputHost.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Pipe address for the Audio data OUT pipe. */
                #define AUDIO_DATA_OUT_PIPE          (PIPE_DIR_OUT | 1)
index b939fdb..c3074d7 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-LUFA_OPTS += -D MICROPHONE_BIASED_TO_HALF_RAIL
-LUFA_OPTS += -D USE_TEST_TONE
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/GenericHIDHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/GenericHIDHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 3e9d9fa..22dd516 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/power.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index 641cbff..5a0d259 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/JoystickHostWithParser/Config/LUFAConfig.h b/Demos/Host/LowLevel/JoystickHostWithParser/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 8fc539e..89a073c 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 6a7d90d..7d5c495 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -167,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/KeyboardHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/KeyboardHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 68d4bed..e0b3268 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index f6b8e93..af6929f 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/KeyboardHostWithParser/Config/LUFAConfig.h b/Demos/Host/LowLevel/KeyboardHostWithParser/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 680bc47..547bd85 100644 (file)
@@ -39,7 +39,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index f482eb9..dbe7921 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -167,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/MIDIHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/MIDIHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 780e615..93a6869 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index bddd0ec..7976efc 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/MassStorageHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/MassStorageHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..20b0912
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
+//             #define USB_DEVICE_ONLY
+               #define USB_HOST_ONLY
+               #define USB_STREAM_TIMEOUT_MS            5000
+//             #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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 45baa55..db15af6 100644 (file)
@@ -50,7 +50,6 @@
 
                #include "Lib/MassStoreCommands.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index a738781..37a9d90 100644 (file)
@@ -120,9 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D USB_STREAM_TIMEOUT_MS=5000
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -168,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/MouseHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/MouseHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 9c5d87c..d501056 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/power.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index 27984fd..bffc656 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/MouseHostWithParser/Config/LUFAConfig.h b/Demos/Host/LowLevel/MouseHostWithParser/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 0c05efc..ca18449 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 27aa146..ffedb73 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -167,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/PrinterHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/PrinterHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index dcb826d..581edd7 100644 (file)
@@ -48,7 +48,6 @@
                #include "ConfigDescriptor.h"
                #include "Lib/PrinterCommands.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index 1ea3934..974090c 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -167,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/RNDISEthernetHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/RNDISEthernetHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index a1dc414..1a15f9a 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index bf02e83..8c499f0 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -167,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/StillImageHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/StillImageHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 168272d..c91be34 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -167,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Demos/Host/LowLevel/VirtualSerialHost/Config/LUFAConfig.h b/Demos/Host/LowLevel/VirtualSerialHost/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index c939510..75cee27 100644 (file)
@@ -44,7 +44,6 @@
                #include <avr/interrupt.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
index 6f4b0df..e6c9f71 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../../../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index 2a49593..3cf240c 100644 (file)
@@ -1 +1,1691 @@
-<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="ClassDriver"><Folder name="AudioInput"><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioOutput\makefile"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c"></File><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h"></File><File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt"></File><File path="Demos\Device\ClassDriver\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\ClassDriver\Joystick\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Joystick\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.c"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.h"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.txt"></File><File path="Demos\Device\ClassDriver\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt"></File><File path="Demos\Device\ClassDriver\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\makefile"></File></Folder><Folder name="KeyboardMouseMultiReport"><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorage\makefile"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt"></File></Folder><Folder name="MassStorageKeyboard"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\makefile"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\ClassDriver\MIDI\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MIDI\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MIDI\makefile"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.c"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.h"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\ClassDriver\Mouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Mouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Mouse\makefile"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.c"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.h"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\makefile"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.txt"></File></Folder><Folder name="VirtualSerialMassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\LUFA VirtualSerialMassStorage.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Descriptors.h"></File></Folder><Folder name="VirtualSerialMouse"><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\LUFA VirtualSerialMouse.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.txt"></File></Folder><File path="Demos\Device\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AudioInput"><File path="Demos\Device\LowLevel\AudioInput\AudioInput.c"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.h"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioInput\makefile"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioOutput\makefile"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\makefile"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\LowLevel\GenericHID\Descriptors.c"></File><File path="Demos\Device\LowLevel\GenericHID\Descriptors.h"></File><File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.c"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.h"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt"></File><File path="Demos\Device\LowLevel\GenericHID\makefile"></File></Folder><Folder name="Joystick"><File path="Demos\Device\LowLevel\Joystick\Descriptors.c"></File><File path="Demos\Device\LowLevel\Joystick\Descriptors.h"></File><File path="Demos\Device\LowLevel\Joystick\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.c"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.h"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.txt"></File><File path="Demos\Device\LowLevel\Joystick\makefile"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\LowLevel\Keyboard\Descriptors.c"></File><File path="Demos\Device\LowLevel\Keyboard\Descriptors.h"></File><File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.c"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.h"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt"></File><File path="Demos\Device\LowLevel\Keyboard\makefile"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\LowLevel\KeyboardMouse\makefile"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\LowLevel\MassStorage\Descriptors.c"></File><File path="Demos\Device\LowLevel\MassStorage\Descriptors.h"></File><File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MassStorage\makefile"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.c"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.h"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt"></File></Folder><Folder name="MIDI"><File path="Demos\Device\LowLevel\MIDI\Descriptors.c"></File><File path="Demos\Device\LowLevel\MIDI\Descriptors.h"></File><File path="Demos\Device\LowLevel\MIDI\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MIDI\makefile"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.c"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.h"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.txt"></File></Folder><Folder name="Mouse"><File path="Demos\Device\LowLevel\Mouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\Mouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\Mouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Mouse\makefile"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.c"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.h"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.txt"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\makefile"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\LowLevel\VirtualSerial\makefile"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.txt"></File></Folder><File path="Demos\Device\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="SideShow"><Folder name="Lib"><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.h"></File></Folder><File path="Demos\Device\Incomplete\Sideshow\Descriptors.c"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.h"></File><File path="Demos\Device\Incomplete\Sideshow\makefile"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.c"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.h"></File></Folder><Folder name="TestAndMeasurement"><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\makefile"></File></Folder></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><Folder name="AndroidAccessoryHost"><File path="Demos\Host\ClassDriver\AndroidAccessoryHost\AndroidAccessoryHost.c"></File><File path="Demos\Host\ClassDriver\AndroidAccessoryHost\AndroidAccessoryHost.h"></File><File path="Demos\Host\ClassDriver\AndroidAccessoryHost\AndroidAccessoryHost.txt"></File><File path="Demos\Host\ClassDriver\AndroidAccessoryHost\makefile"></File><File path="Demos\Host\ClassDriver\AndroidAccessoryHost\Doxygen.conf"></File></Folder><Folder name="AudioInputHost"><File path="Demos\Host\ClassDriver\AudioInputHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\AudioInputHost\makefile"></File><File path="Demos\Host\ClassDriver\AudioInputHost\AudioInputHost.c"></File><File path="Demos\Host\ClassDriver\AudioInputHost\AudioInputHost.h"></File><File path="Demos\Host\ClassDriver\AudioInputHost\AudioInputHost.txt"></File></Folder><Folder name="AudioOutputHost"><File path="Demos\Host\ClassDriver\AudioOutputHost\AudioOutputHost.c"></File><File path="Demos\Host\ClassDriver\AudioOutputHost\AudioOutputHost.h"></File><File path="Demos\Host\ClassDriver\AudioOutputHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\AudioOutputHost\makefile"></File><File path="Demos\Host\ClassDriver\AudioOutputHost\AudioOutputHost.txt"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\ClassDriver\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\makefile"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\ClassDriver\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\ClassDriver\KeyboardHost\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.txt"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File></Folder><Folder name="MassStorageHost"><File path="Demos\Host\ClassDriver\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MassStorageHost\makefile"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.txt"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\ClassDriver\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MIDIHost\makefile"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.txt"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\ClassDriver\MouseHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHost\makefile"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.c"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.h"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\ClassDriver\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.h"></File></Folder><Folder name="PrinterHost"><File path="Demos\Host\ClassDriver\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\PrinterHost\makefile"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.txt"></File></Folder><Folder name="RNDISEthernetHost"><File path="Demos\Host\ClassDriver\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\makefile"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.txt"></File></Folder><Folder name="StillImageHost"><File path="Demos\Host\ClassDriver\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\StillImageHost\makefile"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.txt"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\ClassDriver\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\makefile"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.txt"></File></Folder><File path="Demos\Host\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AndroidAccessoryHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\AndroidAccessoryHost\Lib\AndroidAccessoryCommands.c"></File><File path="Demos\Host\LowLevel\AndroidAccessoryHost\Lib\AndroidAccessoryCommands.h"></File></Folder><File path="Demos\Host\LowLevel\AndroidAccessoryHost\AndroidAccessoryHost.c"></File><File path="Demos\Host\LowLevel\AndroidAccessoryHost\AndroidAccessoryHost.h"></File><File path="Demos\Host\LowLevel\AndroidAccessoryHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\AndroidAccessoryHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\AndroidAccessoryHost\DeviceDescriptor.c"></File><File path="Demos\Host\LowLevel\AndroidAccessoryHost\DeviceDescriptor.h"></File><File path="Demos\Host\LowLevel\AndroidAccessoryHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\AndroidAccessoryHost\makefile"></File><File path="Demos\Host\LowLevel\AndroidAccessoryHost\AndroidAccessoryHost.txt"></File></Folder><Folder name="AudioInputHost"><File path="Demos\Host\LowLevel\AudioInputHost\AudioInputHost.c"></File><File path="Demos\Host\LowLevel\AudioInputHost\AudioInputHost.h"></File><File path="Demos\Host\LowLevel\AudioInputHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\AudioInputHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\AudioInputHost\makefile"></File><File path="Demos\Host\LowLevel\AudioInputHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\AudioInputHost\AudioInputHost.txt"></File></Folder><Folder name="AudioOutputHost"><File path="Demos\Host\LowLevel\AudioOutputHost\AudioOutputHost.c"></File><File path="Demos\Host\LowLevel\AudioOutputHost\AudioOutputHost.h"></File><File path="Demos\Host\LowLevel\AudioOutputHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\AudioOutputHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\AudioOutputHost\makefile"></File><File path="Demos\Host\LowLevel\AudioOutputHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\AudioOutputHost\AudioOutputHost.txt"></File></Folder><Folder name="GenericHIDHost"><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt"></File><File path="Demos\Host\LowLevel\GenericHIDHost\makefile"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\makefile"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\LowLevel\KeyboardHost\makefile"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File></Folder><Folder name="MassStorageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h"></File></Folder><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MassStorageHost\makefile"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MIDIHost\makefile"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.txt"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHost\makefile"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.c"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.h"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h"></File></Folder><Folder name="PrinterHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.c"></File><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.h"></File></Folder><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\PrinterHost\makefile"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\LowLevel\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.txt"></File></Folder><Folder name="RNDISEthernetHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.h"></File></Folder><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\makefile"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISHost.txt"></File></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File></Folder><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\StillImageHost\makefile"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\makefile"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.txt"></File></Folder><File path="Demos\Host\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="BluetoothHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothClassCodes.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.h"></File></Folder><File path="Demos\Host\Incomplete\BluetoothHost\makefile"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Doxygen.conf"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.h"></File></Folder></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="DualRole"><Folder name="ClassDriver"><Folder name="MouseHostDevice"><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Doxygen.conf"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\makefile"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.txt"></File></Folder><File path="Demos\DualRole\ClassDriver\makefile"></File></Folder><File path="Demos\DualRole\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="CodeTemplates"><Folder name="DriverStubs"><File path="LUFA\CodeTemplates\DriverStubs\Buttons.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Dataflash.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Joystick.h"></File><File path="LUFA\CodeTemplates\DriverStubs\LEDs.h"></File></Folder><File path="LUFA\CodeTemplates\makefile_template.avr8"></File><File path="LUFA\CodeTemplates\makefile_template.uc3"></File><File path="LUFA\CodeTemplates\makefile_template.xmega"></File><File path="LUFA\CodeTemplates\LUFAConfig.h"></File></Folder><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\BoardTypes.h"></File><File path="LUFA\Common\Attributes.h"></File><File path="LUFA\Common\Architectures.h"></File><File path="LUFA\Common\Endianness.h"></File><File path="LUFA\Common\CompilerSpecific.h"></File><File path="LUFA\Common\ArchitectureSpecific.h"></File></Folder><Folder name="DoxygenPages"><Folder name="Style"><File path="LUFA\DoxygenPages\Style\Footer.htm"></File><File path="LUFA\DoxygenPages\Style\Style.css"></File></Folder><Folder name="Images"><Folder name="AS5_AS6_Import"><File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step1.png"></File><File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step2.png"></File><File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step3.png"></File><File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step4.png"></File><File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step5_1.png"></File><File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step5_2.png"></File><File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step5_3.png"></File></Folder><File path="LUFA\DoxygenPages\Images\Author.jpg"></File><File path="LUFA\DoxygenPages\Images\LUFA.png"></File><File path="LUFA\DoxygenPages\Images\LUFA_thumb.png"></File></Folder><File path="LUFA\DoxygenPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\DoxygenPages\ChangeLog.txt"></File><File path="LUFA\DoxygenPages\CompileTimeTokens.txt"></File><File path="LUFA\DoxygenPages\CompilingApps.txt"></File><File path="LUFA\DoxygenPages\ConfiguringApps.txt"></File><File path="LUFA\DoxygenPages\DevelopingWithLUFA.txt"></File><File path="LUFA\DoxygenPages\DeviceSupport.txt"></File><File path="LUFA\DoxygenPages\DirectorySummaries.txt"></File><File path="LUFA\DoxygenPages\Donating.txt"></File><File path="LUFA\DoxygenPages\FutureChanges.txt"></File><File path="LUFA\DoxygenPages\GettingStarted.txt"></File><File path="LUFA\DoxygenPages\Groups.txt"></File><File path="LUFA\DoxygenPages\LibraryResources.txt"></File><File path="LUFA\DoxygenPages\LicenseInfo.txt"></File><File path="LUFA\DoxygenPages\LUFAPoweredProjects.txt"></File><File path="LUFA\DoxygenPages\MainPage.txt"></File><File path="LUFA\DoxygenPages\MigrationInformation.txt"></File><File path="LUFA\DoxygenPages\ProgrammingApps.txt"></File><File path="LUFA\DoxygenPages\SoftwareBootloaderJump.txt"></File><File path="LUFA\DoxygenPages\VIDAndPIDValues.txt"></File><File path="LUFA\DoxygenPages\WritingBoardDrivers.txt"></File><File path="LUFA\DoxygenPages\ExportingLibrary.txt"></File><File path="LUFA\DoxygenPages\KnownIssues.txt"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\AudioClassDevice.c"></File><File path="LUFA\Drivers\USB\Class\Device\AudioClassDevice.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDCClassDevice.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDCClassDevice.h"></File><File path="LUFA\Drivers\USB\Class\Device\HIDClassDevice.c"></File><File path="LUFA\Drivers\USB\Class\Device\HIDClassDevice.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorageClassDevice.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorageClassDevice.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDIClassDevice.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDIClassDevice.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDISClassDevice.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDISClassDevice.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\AudioClassHost.c"></File><File path="LUFA\Drivers\USB\Class\Host\AudioClassHost.h"></File><File path="LUFA\Drivers\USB\Class\Host\CDCClassHost.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDCClassHost.h"></File><File path="LUFA\Drivers\USB\Class\Host\HIDClassHost.c"></File><File path="LUFA\Drivers\USB\Class\Host\HIDClassHost.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorageClassHost.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorageClassHost.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDIClassHost.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDIClassHost.h"></File><File path="LUFA\Drivers\USB\Class\Host\PrinterClassHost.c"></File><File path="LUFA\Drivers\USB\Class\Host\PrinterClassHost.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDISClassHost.c"></File><File path="LUFA\Drivers\USB\Class\Host\RNDISClassHost.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImageClassHost.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImageClassHost.h"></File><File path="LUFA\Drivers\USB\Class\Host\AndroidAccessoryClassHost.c"></File><File path="LUFA\Drivers\USB\Class\Host\AndroidAccessoryClassHost.h"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\AudioClassCommon.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDCClassCommon.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDClassCommon.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDReportData.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorageClassCommon.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDIClassCommon.h"></File><File path="LUFA\Drivers\USB\Class\Common\PrinterClassCommon.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDISClassCommon.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImageClassCommon.h"></File><File path="LUFA\Drivers\USB\Class\Common\AndroidAccessoryClassCommon.h"></File></Folder><File path="LUFA\Drivers\USB\Class\AudioClass.h"></File><File path="LUFA\Drivers\USB\Class\CDCClass.h"></File><File path="LUFA\Drivers\USB\Class\HIDClass.h"></File><File path="LUFA\Drivers\USB\Class\MassStorageClass.h"></File><File path="LUFA\Drivers\USB\Class\MIDIClass.h"></File><File path="LUFA\Drivers\USB\Class\PrinterClass.h"></File><File path="LUFA\Drivers\USB\Class\RNDISClass.h"></File><File path="LUFA\Drivers\USB\Class\StillImageClass.h"></File><File path="LUFA\Drivers\USB\Class\AndroidAccessoryClass.h"></File></Folder><Folder name="Core"><Folder name="AVR8"><Folder name="Template"><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\Core\AVR8\Device_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Device_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\Endpoint_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Endpoint_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\Host_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Host_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\OTG_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\Pipe_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\Pipe_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBController_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBController_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBInterrupt_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\USBInterrupt_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\EndpointStream_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\EndpointStream_AVR8.h"></File><File path="LUFA\Drivers\USB\Core\AVR8\PipeStream_AVR8.c"></File><File path="LUFA\Drivers\USB\Core\AVR8\PipeStream_AVR8.h"></File></Folder><Folder name="UC3"><Folder name="Template"><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\Core\UC3\Device_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Device_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\Endpoint_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Endpoint_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\Pipe_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Pipe_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\USBController_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\USBController_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\USBInterrupt_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\USBInterrupt_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\Host_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\Host_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\EndpointStream_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\EndpointStream_UC3.h"></File><File path="LUFA\Drivers\USB\Core\UC3\PipeStream_UC3.c"></File><File path="LUFA\Drivers\USB\Core\UC3\PipeStream_UC3.h"></File></Folder><Folder name="XMEGA"><Folder name="Template"><File path="LUFA\Drivers\USB\Core\XMEGA\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\Template\Template_Endpoint_RW.c"></File></Folder><File path="LUFA\Drivers\USB\Core\XMEGA\Device_XMEGA.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\Device_XMEGA.h"></File><File path="LUFA\Drivers\USB\Core\XMEGA\Endpoint_XMEGA.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\Endpoint_XMEGA.h"></File><File path="LUFA\Drivers\USB\Core\XMEGA\EndpointStream_XMEGA.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\EndpointStream_XMEGA.h"></File><File path="LUFA\Drivers\USB\Core\XMEGA\Host_XMEGA.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\Pipe_XMEGA.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\PipeStream_XMEGA.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\USBController_XMEGA.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\USBController_XMEGA.h"></File><File path="LUFA\Drivers\USB\Core\XMEGA\USBInterrupt_XMEGA.c"></File><File path="LUFA\Drivers\USB\Core\XMEGA\USBInterrupt_XMEGA.h"></File></Folder><File path="LUFA\Drivers\USB\Core\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\Core\ConfigDescriptor.h"></File><File path="LUFA\Drivers\USB\Core\DeviceStandardReq.c"></File><File path="LUFA\Drivers\USB\Core\DeviceStandardReq.h"></File><File path="LUFA\Drivers\USB\Core\Events.c"></File><File path="LUFA\Drivers\USB\Core\Events.h"></File><File path="LUFA\Drivers\USB\Core\HostStandardReq.c"></File><File path="LUFA\Drivers\USB\Core\HostStandardReq.h"></File><File path="LUFA\Drivers\USB\Core\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\Core\StdRequestType.h"></File><File path="LUFA\Drivers\USB\Core\USBMode.h"></File><File path="LUFA\Drivers\USB\Core\USBTask.c"></File><File path="LUFA\Drivers\USB\Core\USBTask.h"></File><File path="LUFA\Drivers\USB\Core\Device.h"></File><File path="LUFA\Drivers\USB\Core\Endpoint.h"></File><File path="LUFA\Drivers\USB\Core\Host.h"></File><File path="LUFA\Drivers\USB\Core\Pipe.h"></File><File path="LUFA\Drivers\USB\Core\USBController.h"></File><File path="LUFA\Drivers\USB\Core\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\Core\OTG.h"></File><File path="LUFA\Drivers\USB\Core\EndpointStream.h"></File><File path="LUFA\Drivers\USB\Core\PipeStream.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File><File path="LUFA\Drivers\Misc\RingBuffer.h"></File><File path="LUFA\Drivers\Misc\AT45DB321C.h"></File><File path="LUFA\Drivers\Misc\AT45DB642D.h"></File></Folder><Folder name="Board"><Folder name="AVR8"><Folder name="ADAFRUITU4"><File path="LUFA\Drivers\Board\AVR8\ADAFRUITU4\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\AVR8\ATAVRUSBRF01\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\ATAVRUSBRF01\LEDs.h"></File></Folder><Folder name="BENITO"><File path="LUFA\Drivers\Board\AVR8\BENITO\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\BENITO\LEDs.h"></File></Folder><Folder name="BIGMULTIO"><File path="LUFA\Drivers\Board\AVR8\BIGMULTIO\LEDs.h"></File></Folder><Folder name="BLACKCAT"><File path="LUFA\Drivers\Board\AVR8\BLACKCAT\LEDs.h"></File></Folder><Folder name="BUI"><File path="LUFA\Drivers\Board\AVR8\BUI\LEDs.h"></File></Folder><Folder name="BUMBLEB"><File path="LUFA\Drivers\Board\AVR8\BUMBLEB\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\BUMBLEB\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\BUMBLEB\LEDs.h"></File></Folder><Folder name="CULV3"><File path="LUFA\Drivers\Board\AVR8\CULV3\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\CULV3\LEDs.h"></File></Folder><Folder name="DUCE"><File path="LUFA\Drivers\Board\AVR8\DUCE\LEDs.h"></File></Folder><Folder name="EVK527"><File path="LUFA\Drivers\Board\AVR8\EVK527\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\EVK527\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\EVK527\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\EVK527\LEDs.h"></File></Folder><Folder name="JMDBU2"><File path="LUFA\Drivers\Board\AVR8\JMDBU2\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\JMDBU2\LEDs.h"></File></Folder><Folder name="MAXIMUS"><File path="LUFA\Drivers\Board\AVR8\MAXIMUS\LEDs.h"></File></Folder><Folder name="MICROPENDOUS"><File path="LUFA\Drivers\Board\AVR8\MICROPENDOUS\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\MICROPENDOUS\LEDs.h"></File></Folder><Folder name="MICROSIN162"><File path="LUFA\Drivers\Board\AVR8\MICROSIN162\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\MICROSIN162\LEDs.h"></File></Folder><Folder name="MINIMUS"><File path="LUFA\Drivers\Board\AVR8\MINIMUS\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\MINIMUS\LEDs.h"></File></Folder><Folder name="MULTIO"><File path="LUFA\Drivers\Board\AVR8\MULTIO\LEDs.h"></File></Folder><Folder name="OLIMEX32U4"><File path="LUFA\Drivers\Board\AVR8\OLIMEX32U4\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\OLIMEX32U4\LEDs.h"></File></Folder><Folder name="OLIMEX162"><File path="LUFA\Drivers\Board\AVR8\OLIMEX162\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\OLIMEX162\LEDs.h"></File></Folder><Folder name="OLIMEXT32U4"><File path="LUFA\Drivers\Board\AVR8\OLIMEXT32U4\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\OLIMEXT32U4\LEDs.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\AVR8\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="SPARKFUN8U2"><File path="LUFA\Drivers\Board\AVR8\SPARKFUN8U2\LEDs.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\AVR8\STK525\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\STK525\LEDs.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\AVR8\STK526\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\STK526\LEDs.h"></File></Folder><Folder name="TEENSY"><File path="LUFA\Drivers\Board\AVR8\TEENSY\LEDs.h"></File></Folder><Folder name="TUL"><File path="LUFA\Drivers\Board\AVR8\TUL\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\TUL\LEDs.h"></File></Folder><Folder name="UDIP"><File path="LUFA\Drivers\Board\AVR8\UDIP\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\UDIP\LEDs.h"></File></Folder><Folder name="UNO"><File path="LUFA\Drivers\Board\AVR8\UNO\LEDs.h"></File></Folder><Folder name="USB2AX"><File path="LUFA\Drivers\Board\AVR8\USB2AX\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USB2AX\LEDs.h"></File></Folder><Folder name="USBFOO"><File path="LUFA\Drivers\Board\AVR8\USBFOO\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USBFOO\LEDs.h"></File></Folder><Folder name="USBKEY"><File path="LUFA\Drivers\Board\AVR8\USBKEY\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\AVR8\USBKEY\LEDs.h"></File></Folder><Folder name="USBTINYMKII"><File path="LUFA\Drivers\Board\AVR8\USBTINYMKII\Buttons.h"></File><File path="LUFA\Drivers\Board\AVR8\USBTINYMKII\LEDs.h"></File></Folder><Folder name="XPLAIN"><File path="LUFA\Drivers\Board\AVR8\XPLAIN\Dataflash.h"></File><File path="LUFA\Drivers\Board\AVR8\XPLAIN\LEDs.h"></File></Folder></Folder><Folder name="UC3"><Folder name="EVK1100"><File path="LUFA\Drivers\Board\UC3\EVK1100\Buttons.h"></File><File path="LUFA\Drivers\Board\UC3\EVK1100\Joystick.h"></File><File path="LUFA\Drivers\Board\UC3\EVK1100\LEDs.h"></File></Folder><Folder name="EVK1101"><File path="LUFA\Drivers\Board\UC3\EVK1101\Buttons.h"></File><File path="LUFA\Drivers\Board\UC3\EVK1101\Joystick.h"></File><File path="LUFA\Drivers\Board\UC3\EVK1101\LEDs.h"></File></Folder><Folder name="EVK1104"><File path="LUFA\Drivers\Board\UC3\EVK1104\Buttons.h"></File><File path="LUFA\Drivers\Board\UC3\EVK1104\LEDs.h"></File></Folder></Folder><Folder name="XMEGA"><Folder name="A3BU_XPLAINED"><File path="LUFA\Drivers\Board\XMEGA\A3BU_XPLAINED\Buttons.h"></File><File path="LUFA\Drivers\Board\XMEGA\A3BU_XPLAINED\LEDs.h"></File><File path="LUFA\Drivers\Board\XMEGA\A3BU_XPLAINED\Dataflash.h"></File></Folder><Folder name="B1_XPLAINED"><File path="LUFA\Drivers\Board\XMEGA\B1_XPLAINED\Buttons.h"></File><File path="LUFA\Drivers\Board\XMEGA\B1_XPLAINED\LEDs.h"></File><File path="LUFA\Drivers\Board\XMEGA\B1_XPLAINED\Dataflash.h"></File></Folder></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AVR8"><File path="LUFA\Drivers\Peripheral\AVR8\ADC_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\Serial_AVR8.c"></File><File path="LUFA\Drivers\Peripheral\AVR8\Serial_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\SPI_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\TWI_AVR8.c"></File><File path="LUFA\Drivers\Peripheral\AVR8\TWI_AVR8.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\SerialSPI_AVR8.h"></File></Folder><Folder name="UC3"></Folder><Folder name="XMEGA"><File path="LUFA\Drivers\Peripheral\XMEGA\SPI_XMEGA.h"></File><File path="LUFA\Drivers\Peripheral\XMEGA\Serial_XMEGA.c"></File><File path="LUFA\Drivers\Peripheral\XMEGA\Serial_XMEGA.h"></File><File path="LUFA\Drivers\Peripheral\XMEGA\SerialSPI_XMEGA.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\TWI.h"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\SerialSPI.h"></File></Folder></Folder><Folder name="Platform"><Folder name="AVR8"></Folder><Folder name="UC3"><File path="LUFA\Platform\UC3\InterruptManagement.h"></File><File path="LUFA\Platform\UC3\InterruptManagement.c"></File><File path="LUFA\Platform\UC3\Exception.S"></File><File path="LUFA\Platform\UC3\ClockManagement.h"></File></Folder><Folder name="XMEGA"><File path="LUFA\Platform\XMEGA\ClockManagement.h"></File></Folder></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File><File path="LUFA\License.txt"></File></Folder><Folder name="Bootloaders"><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File><File path="Bootloaders\CDC\BootloaderAPI.c"></File><File path="Bootloaders\CDC\BootloaderAPI.h"></File><File path="Bootloaders\CDC\BootloaderAPITable.S"></File></Folder><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File><File path="Bootloaders\DFU\BootloaderAPI.c"></File><File path="Bootloaders\DFU\BootloaderAPI.h"></File><File path="Bootloaders\DFU\BootloaderAPITable.S"></File></Folder><Folder name="HID"><Folder name="HostLoaderApp"><File path="Bootloaders\HID\HostLoaderApp\gpl3.txt"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile.bsd"></File><File path="Bootloaders\HID\HostLoaderApp\hid_bootloader_cli.c"></File></Folder><File path="Bootloaders\HID\Descriptors.c"></File><File path="Bootloaders\HID\Descriptors.h"></File><File path="Bootloaders\HID\makefile"></File><File path="Bootloaders\HID\BootloaderHID.txt"></File><File path="Bootloaders\HID\BootloaderHID.c"></File><File path="Bootloaders\HID\BootloaderHID.h"></File><File path="Bootloaders\HID\Doxygen.conf"></File></Folder><File path="Bootloaders\makefile"></File></Folder><Folder name="Projects"><Folder name="AVRISP-MKII"><Folder name="Lib"><Folder name="ISP"><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.h"></File></Folder><Folder name="XPROG"><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.h"></File></Folder><File path="Projects\AVRISP-MKII\Lib\V2Protocol.c"></File><File path="Projects\AVRISP-MKII\Lib\V2Protocol.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolConstants.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.c"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.h"></File></Folder><File path="Projects\AVRISP-MKII\Doxygen.conf"></File><File path="Projects\AVRISP-MKII\makefile"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.c"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.h"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.txt"></File><File path="Projects\AVRISP-MKII\AVRISPDescriptors.c"></File><File path="Projects\AVRISP-MKII\AVRISPDescriptors.h"></File></Folder><Folder name="Benito"><File path="Projects\Benito\Benito.c"></File><File path="Projects\Benito\Benito.h"></File><File path="Projects\Benito\Descriptors.c"></File><File path="Projects\Benito\Descriptors.h"></File><File path="Projects\Benito\Doxygen.conf"></File><File path="Projects\Benito\makefile"></File><File path="Projects\Benito\Benito.txt"></File><File path="Projects\Benito\Benito Programmer.inf"></File></Folder><Folder name="HIDReportViewer"><File path="Projects\HIDReportViewer\HIDReportViewer.c"></File><File path="Projects\HIDReportViewer\HIDReportViewer.h"></File><File path="Projects\HIDReportViewer\makefile"></File><File path="Projects\HIDReportViewer\HIDReportViewer.txt"></File><File path="Projects\HIDReportViewer\Doxygen.conf"></File></Folder><Folder name="LEDNotifier"><Folder name="CPUUsageApp"><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.csproj"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.Designer.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.resx"></File><File path="Projects\LEDNotifier\CPUUsageApp\Program.cs"></File></Folder><Folder name="HotmailNotifierApp"><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.csproj"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.Designer.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.resx"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\Program.cs"></File></Folder><Folder name="LEDMixerApp"><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.csproj"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.Designer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.resx"></File><File path="Projects\LEDNotifier\LEDMixerApp\Program.cs"></File></Folder><File path="Projects\LEDNotifier\Descriptors.c"></File><File path="Projects\LEDNotifier\Descriptors.h"></File><File path="Projects\LEDNotifier\Doxygen.conf"></File><File path="Projects\LEDNotifier\LEDNotifier.c"></File><File path="Projects\LEDNotifier\LEDNotifier.h"></File><File path="Projects\LEDNotifier\LEDNotifier.txt"></File><File path="Projects\LEDNotifier\LUFA LED Notifier.inf"></File><File path="Projects\LEDNotifier\makefile"></File></Folder><Folder name="MagStripe"><Folder name="Lib"><File path="Projects\Magstripe\Lib\CircularBitBuffer.c"></File><File path="Projects\Magstripe\Lib\CircularBitBuffer.h"></File><File path="Projects\Magstripe\Lib\MagstripeHW.h"></File></Folder><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File></Folder><Folder name="MediaController"><File path="Projects\MediaController\Descriptors.c"></File><File path="Projects\MediaController\Descriptors.h"></File><File path="Projects\MediaController\Doxygen.conf"></File><File path="Projects\MediaController\makefile"></File><File path="Projects\MediaController\MediaController.c"></File><File path="Projects\MediaController\MediaController.h"></File><File path="Projects\MediaController\MediaController.txt"></File></Folder><Folder name="MIDIToneGenerator"><File path="Projects\MIDIToneGenerator\Descriptors.c"></File><File path="Projects\MIDIToneGenerator\Descriptors.h"></File><File path="Projects\MIDIToneGenerator\makefile"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.c"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.h"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.txt"></File><File path="Projects\MIDIToneGenerator\Doxygen.conf"></File></Folder><Folder name="MissileLauncher"><File path="Projects\MissileLauncher\ConfigDescriptor.c"></File><File path="Projects\MissileLauncher\ConfigDescriptor.h"></File><File path="Projects\MissileLauncher\Doxygen.conf"></File><File path="Projects\MissileLauncher\makefile"></File><File path="Projects\MissileLauncher\MissileLauncher.c"></File><File path="Projects\MissileLauncher\MissileLauncher.h"></File><File path="Projects\MissileLauncher\MissileLauncher.txt"></File></Folder><Folder name="RelayBoard"><File path="Projects\RelayBoard\Descriptors.c"></File><File path="Projects\RelayBoard\Descriptors.h"></File><File path="Projects\RelayBoard\Doxygen.conf"></File><File path="Projects\RelayBoard\makefile"></File><File path="Projects\RelayBoard\RelayBoard.c"></File><File path="Projects\RelayBoard\RelayBoard.h"></File><File path="Projects\RelayBoard\RelayBoard.txt"></File></Folder><Folder name="SerialToLCD"><Folder name="Lib"><File path="Projects\SerialToLCD\Lib\HD44780.c"></File><File path="Projects\SerialToLCD\Lib\HD44780.h"></File></Folder><File path="Projects\SerialToLCD\Descriptors.c"></File><File path="Projects\SerialToLCD\Descriptors.h"></File><File path="Projects\SerialToLCD\makefile"></File><File path="Projects\SerialToLCD\SerialToLCD.c"></File><File path="Projects\SerialToLCD\SerialToLCD.h"></File><File path="Projects\SerialToLCD\SerialToLCD.txt"></File><File path="Projects\SerialToLCD\Doxygen.conf"></File></Folder><Folder name="TempDataLogger"><Folder name="Lib"><Folder name="FATFs"><File path="Projects\TempDataLogger\Lib\FATFs\diskio.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\diskio.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ffconf.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\integer.h"></File></Folder><File path="Projects\TempDataLogger\Lib\DataflashManager.c"></File><File path="Projects\TempDataLogger\Lib\DataflashManager.h"></File><File path="Projects\TempDataLogger\Lib\DS1307.c"></File><File path="Projects\TempDataLogger\Lib\DS1307.h"></File><File path="Projects\TempDataLogger\Lib\SCSI.c"></File><File path="Projects\TempDataLogger\Lib\SCSI.h"></File></Folder><Folder name="TempLogHostApp"><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.Designer.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.resx"></File><File path="Projects\TempDataLogger\TempLogHostApp\Program.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\TempLoggerHostApp.csproj"></File></Folder><File path="Projects\TempDataLogger\Descriptors.c"></File><File path="Projects\TempDataLogger\Descriptors.h"></File><File path="Projects\TempDataLogger\Doxygen.conf"></File><File path="Projects\TempDataLogger\makefile"></File><File path="Projects\TempDataLogger\TempDataLogger.c"></File><File path="Projects\TempDataLogger\TempDataLogger.h"></File><File path="Projects\TempDataLogger\TemperatureDataLogger.txt"></File></Folder><Folder name="USBtoSerial"><File path="Projects\USBtoSerial\Descriptors.h"></File><File path="Projects\USBtoSerial\Doxygen.conf"></File><File path="Projects\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Projects\USBtoSerial\makefile"></File><File path="Projects\USBtoSerial\USBtoSerial.c"></File><File path="Projects\USBtoSerial\USBtoSerial.h"></File><File path="Projects\USBtoSerial\USBtoSerial.txt"></File><File path="Projects\USBtoSerial\Descriptors.c"></File></Folder><Folder name="Webserver"><Folder name="Lib"><Folder name="uip"><File path="Projects\Webserver\Lib\uip\clock.c"></File><File path="Projects\Webserver\Lib\uip\clock.h"></File><File path="Projects\Webserver\Lib\uip\timer.c"></File><File path="Projects\Webserver\Lib\uip\timer.h"></File><File path="Projects\Webserver\Lib\uip\uip.c"></File><File path="Projects\Webserver\Lib\uip\uip.h"></File><File path="Projects\Webserver\Lib\uip\uip_arp.c"></File><File path="Projects\Webserver\Lib\uip\uip_arp.h"></File><File path="Projects\Webserver\Lib\uip\uipopt.h"></File><File path="Projects\Webserver\Lib\uip\uip-split.c"></File><File path="Projects\Webserver\Lib\uip\uip-split.h"></File></Folder><Folder name="FATFs"><File path="Projects\Webserver\Lib\FATFs\diskio.c"></File><File path="Projects\Webserver\Lib\FATFs\diskio.h"></File><File path="Projects\Webserver\Lib\FATFs\ff.c"></File><File path="Projects\Webserver\Lib\FATFs\ff.h"></File><File path="Projects\Webserver\Lib\FATFs\ffconf.h"></File><File path="Projects\Webserver\Lib\FATFs\integer.h"></File></Folder><File path="Projects\Webserver\Lib\DataflashManager.c"></File><File path="Projects\Webserver\Lib\DataflashManager.h"></File><File path="Projects\Webserver\Lib\uIPManagement.c"></File><File path="Projects\Webserver\Lib\uIPManagement.h"></File><File path="Projects\Webserver\Lib\HTTPServerApp.c"></File><File path="Projects\Webserver\Lib\HTTPServerApp.h"></File><File path="Projects\Webserver\Lib\SCSI.c"></File><File path="Projects\Webserver\Lib\SCSI.h"></File><File path="Projects\Webserver\Lib\TELNETServerApp.c"></File><File path="Projects\Webserver\Lib\TELNETServerApp.h"></File><File path="Projects\Webserver\Lib\DHCPClientApp.c"></File><File path="Projects\Webserver\Lib\DHCPClientApp.h"></File><File path="Projects\Webserver\Lib\DHCPCommon.h"></File><File path="Projects\Webserver\Lib\DHCPServerApp.c"></File><File path="Projects\Webserver\Lib\DHCPServerApp.h"></File><File path="Projects\Webserver\Lib\DHCPCommon.c"></File></Folder><File path="Projects\Webserver\makefile"></File><File path="Projects\Webserver\Webserver.c"></File><File path="Projects\Webserver\Webserver.h"></File><File path="Projects\Webserver\Doxygen.conf"></File><File path="Projects\Webserver\Webserver.txt"></File><File path="Projects\Webserver\Descriptors.c"></File><File path="Projects\Webserver\Descriptors.h"></File><File path="Projects\Webserver\USBHostMode.c"></File><File path="Projects\Webserver\USBHostMode.h"></File><File path="Projects\Webserver\USBDeviceMode.c"></File><File path="Projects\Webserver\USBDeviceMode.h"></File><File path="Projects\Webserver\LUFA Webserver RNDIS.inf"></File></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\SoftUART.c"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File></Folder><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\USARTDescriptors.h"></File><File path="Projects\XPLAINBridge\USARTDescriptors.c"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\Doxygen.conf"></File></Folder><Folder name="Incomplete"><Folder name="StandaloneProgrammer"><Folder name="Lib"><Folder name="PetiteFATFs"><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\integer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\makefile"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.h"></File></Folder></Folder><File path="Projects\makefile"></File></Folder><Folder name="BuildTests"><Folder name="BoardDriverTest"><Folder name="Board"><File path="BuildTests\BoardDriverTest\Board\Buttons.h"></File><File path="BuildTests\BoardDriverTest\Board\Dataflash.h"></File><File path="BuildTests\BoardDriverTest\Board\Joystick.h"></File><File path="BuildTests\BoardDriverTest\Board\LEDs.h"></File></Folder><File path="BuildTests\BoardDriverTest\BoardDeviceMap.cfg"></File><File path="BuildTests\BoardDriverTest\makefile"></File><File path="BuildTests\BoardDriverTest\makefile.avr8"></File><File path="BuildTests\BoardDriverTest\makefile.uc3"></File><File path="BuildTests\BoardDriverTest\makefile.xmega"></File><File path="BuildTests\BoardDriverTest\Test.c"></File></Folder><Folder name="BootloaderTest"><File path="BuildTests\BootloaderTest\BootloaderDeviceMap.cfg"></File><File path="BuildTests\BootloaderTest\makefile"></File></Folder><Folder name="ModuleTest"><File path="BuildTests\ModuleTest\makefile"></File><File path="BuildTests\ModuleTest\makefile.avr8"></File><File path="BuildTests\ModuleTest\makefile.uc3"></File><File path="BuildTests\ModuleTest\makefile.xmega"></File><File path="BuildTests\ModuleTest\Modules.h"></File><File path="BuildTests\ModuleTest\Test_C.c"></File><File path="BuildTests\ModuleTest\Test_CPP.cpp"></File><File path="BuildTests\ModuleTest\Dummy.S"></File></Folder><Folder name="SingleUSBModeTest"><File path="BuildTests\SingleUSBModeTest\makefile"></File><File path="BuildTests\SingleUSBModeTest\makefile.avr8"></File><File path="BuildTests\SingleUSBModeTest\makefile.uc3"></File><File path="BuildTests\SingleUSBModeTest\makefile.xmega"></File><File path="BuildTests\SingleUSBModeTest\Test.c"></File><File path="BuildTests\SingleUSBModeTest\Dummy.S"></File></Folder><Folder name="StaticAnalysisTest"><File path="BuildTests\StaticAnalysisTest\makefile"></File></Folder><File path="BuildTests\makefile"></File></Folder><Folder name="Maintenance"><File path="Maintenance\makefile"></File><File path="Maintenance\AS4Template.aps"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<Project name="LUFA">
+   <Folder name="Demos">
+      <Folder name="Device">
+         <Folder name="ClassDriver">
+            <Folder name="AudioInput">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\AudioInput\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\ClassDriver\AudioInput\Config\AppConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c" />
+               <File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h" />
+               <File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt" />
+               <File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\AudioInput\makefile" />
+            </Folder>
+            <Folder name="AudioOutput">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\AudioOutput\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\ClassDriver\AudioOutput\Config\AppConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c" />
+               <File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h" />
+               <File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt" />
+               <File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\AudioOutput\makefile" />
+            </Folder>
+            <Folder name="DualVirtualSerial">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\DualVirtualSerial\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\DualVirtualSerial\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.c" />
+               <File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.h" />
+               <File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.txt" />
+               <File path="Demos\Device\ClassDriver\DualVirtualSerial\LUFA DualVirtualSerial.inf" />
+               <File path="Demos\Device\ClassDriver\DualVirtualSerial\makefile" />
+            </Folder>
+            <Folder name="GenericHID">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\GenericHID\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\ClassDriver\GenericHID\Config\AppConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c" />
+               <File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h" />
+               <File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt" />
+               <File path="Demos\Device\ClassDriver\GenericHID\makefile" />
+            </Folder>
+            <Folder name="Joystick">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\Joystick\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\Joystick\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\Joystick\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\Joystick\Joystick.c" />
+               <File path="Demos\Device\ClassDriver\Joystick\Joystick.h" />
+               <File path="Demos\Device\ClassDriver\Joystick\Joystick.txt" />
+               <File path="Demos\Device\ClassDriver\Joystick\makefile" />
+            </Folder>
+            <Folder name="Keyboard">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\Keyboard\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c" />
+               <File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h" />
+               <File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt" />
+               <File path="Demos\Device\ClassDriver\Keyboard\makefile" />
+            </Folder>
+            <Folder name="KeyboardMouse">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\KeyboardMouse\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouse\makefile" />
+            </Folder>
+            <Folder name="KeyboardMouseMultiReport">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.c" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.h" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.txt" />
+               <File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\makefile" />
+            </Folder>
+            <Folder name="MassStorage">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\MassStorage\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\ClassDriver\MassStorage\Config\AppConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c" />
+                  <File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h" />
+                  <File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c" />
+                  <File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\MassStorage\makefile" />
+               <File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c" />
+               <File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h" />
+               <File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt" />
+            </Folder>
+            <Folder name="MassStorageKeyboard">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\MassStorageKeyboard\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\ClassDriver\MassStorageKeyboard\Config\AppConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.c" />
+                  <File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.h" />
+                  <File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.c" />
+                  <File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\MassStorageKeyboard\makefile" />
+               <File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.c" />
+               <File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.h" />
+               <File path="Demos\Device\ClassDriver\MassStorageKeyboard\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.txt" />
+            </Folder>
+            <Folder name="MIDI">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\MIDI\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\MIDI\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\MIDI\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\MIDI\makefile" />
+               <File path="Demos\Device\ClassDriver\MIDI\MIDI.c" />
+               <File path="Demos\Device\ClassDriver\MIDI\MIDI.h" />
+               <File path="Demos\Device\ClassDriver\MIDI\MIDI.txt" />
+            </Folder>
+            <Folder name="Mouse">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\Mouse\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\Mouse\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\Mouse\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\Mouse\makefile" />
+               <File path="Demos\Device\ClassDriver\Mouse\Mouse.c" />
+               <File path="Demos\Device\ClassDriver\Mouse\Mouse.h" />
+               <File path="Demos\Device\ClassDriver\Mouse\Mouse.txt" />
+            </Folder>
+            <Folder name="RNDISEthernet">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Config\AppConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h" />
+                  <File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf" />
+               <File path="Demos\Device\ClassDriver\RNDISEthernet\makefile" />
+               <File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c" />
+               <File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h" />
+               <File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt" />
+            </Folder>
+            <Folder name="VirtualSerial">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\VirtualSerial\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\VirtualSerial\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\VirtualSerial\LUFA VirtualSerial.inf" />
+               <File path="Demos\Device\ClassDriver\VirtualSerial\makefile" />
+               <File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.c" />
+               <File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.h" />
+               <File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.txt" />
+            </Folder>
+            <Folder name="VirtualSerialMassStorage">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Config\AppConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\DataflashManager.c" />
+                  <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\DataflashManager.h" />
+                  <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\SCSI.c" />
+                  <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Lib\SCSI.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\LUFA VirtualSerialMassStorage.inf" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\makefile" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.c" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.h" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\VirtualSerialMassStorage.txt" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMassStorage\Descriptors.h" />
+            </Folder>
+            <Folder name="VirtualSerialMouse">
+               <Folder name="Config">
+                  <File path="Demos\Device\ClassDriver\VirtualSerialMouse\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.c" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.h" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMouse\Doxygen.conf" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMouse\LUFA VirtualSerialMouse.inf" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMouse\makefile" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.c" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.h" />
+               <File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.txt" />
+            </Folder>
+            <File path="Demos\Device\ClassDriver\makefile" />
+         </Folder>
+         <Folder name="LowLevel">
+            <Folder name="AudioInput">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\AudioInput\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\LowLevel\AudioInput\Config\AppConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\AudioInput\AudioInput.c" />
+               <File path="Demos\Device\LowLevel\AudioInput\AudioInput.h" />
+               <File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt" />
+               <File path="Demos\Device\LowLevel\AudioInput\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\AudioInput\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\AudioInput\makefile" />
+            </Folder>
+            <Folder name="AudioOutput">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\AudioOutput\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\LowLevel\AudioOutput\Config\AppConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c" />
+               <File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h" />
+               <File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt" />
+               <File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\AudioOutput\makefile" />
+            </Folder>
+            <Folder name="DualVirtualSerial">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\DualVirtualSerial\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\DualVirtualSerial\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.c" />
+               <File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.h" />
+               <File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.txt" />
+               <File path="Demos\Device\LowLevel\DualVirtualSerial\LUFA DualVirtualSerial.inf" />
+               <File path="Demos\Device\LowLevel\DualVirtualSerial\makefile" />
+            </Folder>
+            <Folder name="GenericHID">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\GenericHID\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\LowLevel\GenericHID\Config\AppConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\GenericHID\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\GenericHID\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\GenericHID\GenericHID.c" />
+               <File path="Demos\Device\LowLevel\GenericHID\GenericHID.h" />
+               <File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt" />
+               <File path="Demos\Device\LowLevel\GenericHID\makefile" />
+            </Folder>
+            <Folder name="Joystick">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\Joystick\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\Joystick\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\Joystick\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\Joystick\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\Joystick\Joystick.c" />
+               <File path="Demos\Device\LowLevel\Joystick\Joystick.h" />
+               <File path="Demos\Device\LowLevel\Joystick\Joystick.txt" />
+               <File path="Demos\Device\LowLevel\Joystick\makefile" />
+            </Folder>
+            <Folder name="Keyboard">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\Keyboard\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\Keyboard\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\Keyboard\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\Keyboard\Keyboard.c" />
+               <File path="Demos\Device\LowLevel\Keyboard\Keyboard.h" />
+               <File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt" />
+               <File path="Demos\Device\LowLevel\Keyboard\makefile" />
+            </Folder>
+            <Folder name="KeyboardMouse">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\KeyboardMouse\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c" />
+               <File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h" />
+               <File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt" />
+               <File path="Demos\Device\LowLevel\KeyboardMouse\makefile" />
+            </Folder>
+            <Folder name="MassStorage">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\MassStorage\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\LowLevel\MassStorage\Config\AppConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c" />
+                  <File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h" />
+                  <File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c" />
+                  <File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\MassStorage\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\MassStorage\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\MassStorage\makefile" />
+               <File path="Demos\Device\LowLevel\MassStorage\MassStorage.c" />
+               <File path="Demos\Device\LowLevel\MassStorage\MassStorage.h" />
+               <File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt" />
+            </Folder>
+            <Folder name="MIDI">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\MIDI\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\MIDI\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\MIDI\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\MIDI\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\MIDI\makefile" />
+               <File path="Demos\Device\LowLevel\MIDI\MIDI.c" />
+               <File path="Demos\Device\LowLevel\MIDI\MIDI.h" />
+               <File path="Demos\Device\LowLevel\MIDI\MIDI.txt" />
+            </Folder>
+            <Folder name="Mouse">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\Mouse\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\Mouse\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\Mouse\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\Mouse\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\Mouse\makefile" />
+               <File path="Demos\Device\LowLevel\Mouse\Mouse.c" />
+               <File path="Demos\Device\LowLevel\Mouse\Mouse.h" />
+               <File path="Demos\Device\LowLevel\Mouse\Mouse.txt" />
+            </Folder>
+            <Folder name="RNDISEthernet">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Config\LUFAConfig.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Config\AppConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h" />
+                  <File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf" />
+               <File path="Demos\Device\LowLevel\RNDISEthernet\makefile" />
+               <File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c" />
+               <File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h" />
+               <File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt" />
+            </Folder>
+            <Folder name="VirtualSerial">
+               <Folder name="Config">
+                  <File path="Demos\Device\LowLevel\VirtualSerial\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.c" />
+               <File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.h" />
+               <File path="Demos\Device\LowLevel\VirtualSerial\Doxygen.conf" />
+               <File path="Demos\Device\LowLevel\VirtualSerial\LUFA VirtualSerial.inf" />
+               <File path="Demos\Device\LowLevel\VirtualSerial\makefile" />
+               <File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.c" />
+               <File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.h" />
+               <File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.txt" />
+            </Folder>
+            <File path="Demos\Device\LowLevel\makefile" />
+         </Folder>
+         <Folder name="Incomplete">
+            <Folder name="SideShow">
+               <Folder name="Config">
+                  <File path="Demos\Device\Incomplete\Sideshow\Config\LUFAConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.c" />
+                  <File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.h" />
+                  <File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.c" />
+                  <File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.h" />
+                  <File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.c" />
+                  <File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.h" />
+                  <File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.c" />
+                  <File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.h" />
+               </Folder>
+               <File path="Demos\Device\Incomplete\Sideshow\Descriptors.c" />
+               <File path="Demos\Device\Incomplete\Sideshow\Descriptors.h" />
+               <File path="Demos\Device\Incomplete\Sideshow\makefile" />
+               <File path="Demos\Device\Incomplete\Sideshow\Sideshow.c" />
+               <File path="Demos\Device\Incomplete\Sideshow\Sideshow.h" />
+            </Folder>
+            <Folder name="TestAndMeasurement">
+               <Folder name="Config">
+                  <File path="Demos\Device\Incomplete\TestAndMeasurement\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.c" />
+               <File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.h" />
+               <File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.c" />
+               <File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.h" />
+               <File path="Demos\Device\Incomplete\TestAndMeasurement\makefile" />
+            </Folder>
+         </Folder>
+         <File path="Demos\Device\makefile" />
+      </Folder>
+      <Folder name="Host">
+         <Folder name="ClassDriver">
+            <Folder name="AndroidAccessoryHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\AndroidAccessoryHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\AndroidAccessoryHost\AndroidAccessoryHost.c" />
+               <File path="Demos\Host\ClassDriver\AndroidAccessoryHost\AndroidAccessoryHost.h" />
+               <File path="Demos\Host\ClassDriver\AndroidAccessoryHost\AndroidAccessoryHost.txt" />
+               <File path="Demos\Host\ClassDriver\AndroidAccessoryHost\makefile" />
+               <File path="Demos\Host\ClassDriver\AndroidAccessoryHost\Doxygen.conf" />
+            </Folder>
+            <Folder name="AudioInputHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\AudioInputHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\AudioInputHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\AudioInputHost\makefile" />
+               <File path="Demos\Host\ClassDriver\AudioInputHost\AudioInputHost.c" />
+               <File path="Demos\Host\ClassDriver\AudioInputHost\AudioInputHost.h" />
+               <File path="Demos\Host\ClassDriver\AudioInputHost\AudioInputHost.txt" />
+            </Folder>
+            <Folder name="AudioOutputHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\AudioOutputHost\Config\LUFAConfig.h" />
+                  <File path="Demos\Host\ClassDriver\AudioOutputHost\Config\AppConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\AudioOutputHost\AudioOutputHost.c" />
+               <File path="Demos\Host\ClassDriver\AudioOutputHost\AudioOutputHost.h" />
+               <File path="Demos\Host\ClassDriver\AudioOutputHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\AudioOutputHost\makefile" />
+               <File path="Demos\Host\ClassDriver\AudioOutputHost\AudioOutputHost.txt" />
+            </Folder>
+            <Folder name="JoystickHostWithParser">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\JoystickHostWithParser\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\JoystickHostWithParser\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.c" />
+               <File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.h" />
+               <File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.txt" />
+               <File path="Demos\Host\ClassDriver\JoystickHostWithParser\makefile" />
+            </Folder>
+            <Folder name="KeyboardHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\KeyboardHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\KeyboardHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.c" />
+               <File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.h" />
+               <File path="Demos\Host\ClassDriver\KeyboardHost\makefile" />
+               <File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.txt" />
+            </Folder>
+            <Folder name="KeyboardHostWithParser">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\KeyboardHostWithParser\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\KeyboardHostWithParser\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.c" />
+               <File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.h" />
+               <File path="Demos\Host\ClassDriver\KeyboardHostWithParser\makefile" />
+               <File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.txt" />
+            </Folder>
+            <Folder name="MassStorageHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\MassStorageHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\MassStorageHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\MassStorageHost\makefile" />
+               <File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.c" />
+               <File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.h" />
+               <File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.txt" />
+            </Folder>
+            <Folder name="MIDIHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\MIDIHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\MIDIHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\MIDIHost\makefile" />
+               <File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.c" />
+               <File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.h" />
+               <File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.txt" />
+            </Folder>
+            <Folder name="MouseHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\MouseHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\MouseHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\MouseHost\makefile" />
+               <File path="Demos\Host\ClassDriver\MouseHost\MouseHost.c" />
+               <File path="Demos\Host\ClassDriver\MouseHost\MouseHost.h" />
+               <File path="Demos\Host\ClassDriver\MouseHost\MouseHost.txt" />
+            </Folder>
+            <Folder name="MouseHostWithParser">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\MouseHostWithParser\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\MouseHostWithParser\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\MouseHostWithParser\makefile" />
+               <File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.txt" />
+               <File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.c" />
+               <File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.h" />
+            </Folder>
+            <Folder name="PrinterHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\PrinterHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\PrinterHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\PrinterHost\makefile" />
+               <File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.c" />
+               <File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.h" />
+               <File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.txt" />
+            </Folder>
+            <Folder name="RNDISEthernetHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\RNDISEthernetHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\RNDISEthernetHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\RNDISEthernetHost\makefile" />
+               <File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.c" />
+               <File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.h" />
+               <File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.txt" />
+            </Folder>
+            <Folder name="StillImageHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\StillImageHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\StillImageHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\StillImageHost\makefile" />
+               <File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.c" />
+               <File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.h" />
+               <File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.txt" />
+            </Folder>
+            <Folder name="VirtualSerialHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\ClassDriver\VirtualSerialHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\ClassDriver\VirtualSerialHost\Doxygen.conf" />
+               <File path="Demos\Host\ClassDriver\VirtualSerialHost\makefile" />
+               <File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.c" />
+               <File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.h" />
+               <File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.txt" />
+            </Folder>
+            <File path="Demos\Host\ClassDriver\makefile" />
+         </Folder>
+         <Folder name="LowLevel">
+            <Folder name="AndroidAccessoryHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\AndroidAccessoryHost\Config\LUFAConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Host\LowLevel\AndroidAccessoryHost\Lib\AndroidAccessoryCommands.c" />
+                  <File path="Demos\Host\LowLevel\AndroidAccessoryHost\Lib\AndroidAccessoryCommands.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\AndroidAccessoryHost\AndroidAccessoryHost.c" />
+               <File path="Demos\Host\LowLevel\AndroidAccessoryHost\AndroidAccessoryHost.h" />
+               <File path="Demos\Host\LowLevel\AndroidAccessoryHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\AndroidAccessoryHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\AndroidAccessoryHost\DeviceDescriptor.c" />
+               <File path="Demos\Host\LowLevel\AndroidAccessoryHost\DeviceDescriptor.h" />
+               <File path="Demos\Host\LowLevel\AndroidAccessoryHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\AndroidAccessoryHost\makefile" />
+               <File path="Demos\Host\LowLevel\AndroidAccessoryHost\AndroidAccessoryHost.txt" />
+            </Folder>
+            <Folder name="AudioInputHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\AudioInputHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\AudioInputHost\AudioInputHost.c" />
+               <File path="Demos\Host\LowLevel\AudioInputHost\AudioInputHost.h" />
+               <File path="Demos\Host\LowLevel\AudioInputHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\AudioInputHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\AudioInputHost\makefile" />
+               <File path="Demos\Host\LowLevel\AudioInputHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\AudioInputHost\AudioInputHost.txt" />
+            </Folder>
+            <Folder name="AudioOutputHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\AudioOutputHost\Config\LUFAConfig.h" />
+                  <File path="Demos\Host\LowLevel\AudioOutputHost\Config\AppConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\AudioOutputHost\AudioOutputHost.c" />
+               <File path="Demos\Host\LowLevel\AudioOutputHost\AudioOutputHost.h" />
+               <File path="Demos\Host\LowLevel\AudioOutputHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\AudioOutputHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\AudioOutputHost\makefile" />
+               <File path="Demos\Host\LowLevel\AudioOutputHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\AudioOutputHost\AudioOutputHost.txt" />
+            </Folder>
+            <Folder name="GenericHIDHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\GenericHIDHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c" />
+               <File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h" />
+               <File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt" />
+               <File path="Demos\Host\LowLevel\GenericHIDHost\makefile" />
+            </Folder>
+            <Folder name="JoystickHostWithParser">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\JoystickHostWithParser\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\JoystickHostWithParser\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.c" />
+               <File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.h" />
+               <File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.c" />
+               <File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.h" />
+               <File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.txt" />
+               <File path="Demos\Host\LowLevel\JoystickHostWithParser\makefile" />
+            </Folder>
+            <Folder name="KeyboardHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\KeyboardHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c" />
+               <File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h" />
+               <File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt" />
+               <File path="Demos\Host\LowLevel\KeyboardHost\makefile" />
+            </Folder>
+            <Folder name="KeyboardHostWithParser">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\KeyboardHostWithParser\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile" />
+               <File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c" />
+               <File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h" />
+               <File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c" />
+               <File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h" />
+               <File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt" />
+            </Folder>
+            <Folder name="MassStorageHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\MassStorageHost\Config\LUFAConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c" />
+                  <File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\MassStorageHost\makefile" />
+               <File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c" />
+               <File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h" />
+               <File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt" />
+            </Folder>
+            <Folder name="MIDIHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\MIDIHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\MIDIHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\MIDIHost\makefile" />
+               <File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.c" />
+               <File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.h" />
+               <File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.txt" />
+            </Folder>
+            <Folder name="MouseHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\MouseHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\MouseHost\makefile" />
+               <File path="Demos\Host\LowLevel\MouseHost\MouseHost.c" />
+               <File path="Demos\Host\LowLevel\MouseHost\MouseHost.h" />
+               <File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt" />
+            </Folder>
+            <Folder name="MouseHostWithParser">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\MouseHostWithParser\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt" />
+               <File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c" />
+               <File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h" />
+               <File path="Demos\Host\LowLevel\MouseHostWithParser\makefile" />
+               <File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c" />
+               <File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h" />
+            </Folder>
+            <Folder name="PrinterHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\PrinterHost\Config\LUFAConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.c" />
+                  <File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\PrinterHost\makefile" />
+               <File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.c" />
+               <File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.h" />
+               <File path="Demos\Host\LowLevel\PrinterHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.txt" />
+            </Folder>
+            <Folder name="RNDISEthernetHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\RNDISEthernetHost\Config\LUFAConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.c" />
+                  <File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\RNDISEthernetHost\makefile" />
+               <File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.c" />
+               <File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.h" />
+               <File path="Demos\Host\LowLevel\RNDISEthernetHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISHost.txt" />
+            </Folder>
+            <Folder name="StillImageHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\StillImageHost\Config\LUFAConfig.h" />
+               </Folder>
+               <Folder name="Lib">
+                  <File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c" />
+                  <File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h" />
+                  <File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\StillImageHost\makefile" />
+               <File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c" />
+               <File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h" />
+               <File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt" />
+            </Folder>
+            <Folder name="VirtualSerialHost">
+               <Folder name="Config">
+                  <File path="Demos\Host\LowLevel\VirtualSerialHost\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.c" />
+               <File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.h" />
+               <File path="Demos\Host\LowLevel\VirtualSerialHost\Doxygen.conf" />
+               <File path="Demos\Host\LowLevel\VirtualSerialHost\makefile" />
+               <File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.c" />
+               <File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.h" />
+               <File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.txt" />
+            </Folder>
+            <File path="Demos\Host\LowLevel\makefile" />
+         </Folder>
+         <File path="Demos\Host\makefile" />
+      </Folder>
+      <Folder name="DualRole">
+         <Folder name="ClassDriver">
+            <Folder name="MouseHostDevice">
+               <Folder name="Config">
+                  <File path="Demos\DualRole\ClassDriver\MouseHostDevice\Config\LUFAConfig.h" />
+               </Folder>
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\Doxygen.conf" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\makefile" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.c" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.h" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.c" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.h" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.c" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.c" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.h" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.h" />
+               <File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.txt" />
+            </Folder>
+            <File path="Demos\DualRole\ClassDriver\makefile" />
+         </Folder>
+         <File path="Demos\DualRole\makefile" />
+      </Folder>
+      <File path="Demos\makefile" />
+   </Folder>
+   <Folder name="LUFA">
+      <Folder name="CodeTemplates">
+         <Folder name="DriverStubs">
+            <File path="LUFA\CodeTemplates\DriverStubs\Buttons.h" />
+            <File path="LUFA\CodeTemplates\DriverStubs\Dataflash.h" />
+            <File path="LUFA\CodeTemplates\DriverStubs\Joystick.h" />
+            <File path="LUFA\CodeTemplates\DriverStubs\LEDs.h" />
+         </Folder>
+         <File path="LUFA\CodeTemplates\makefile_template.avr8" />
+         <File path="LUFA\CodeTemplates\makefile_template.uc3" />
+         <File path="LUFA\CodeTemplates\makefile_template.xmega" />
+         <File path="LUFA\CodeTemplates\LUFAConfig.h" />
+      </Folder>
+      <Folder name="Common">
+         <File path="LUFA\Common\Common.h" />
+         <File path="LUFA\Common\BoardTypes.h" />
+         <File path="LUFA\Common\Attributes.h" />
+         <File path="LUFA\Common\Architectures.h" />
+         <File path="LUFA\Common\Endianness.h" />
+         <File path="LUFA\Common\CompilerSpecific.h" />
+         <File path="LUFA\Common\ArchitectureSpecific.h" />
+      </Folder>
+      <Folder name="DoxygenPages">
+         <Folder name="Style">
+            <File path="LUFA\DoxygenPages\Style\Footer.htm" />
+            <File path="LUFA\DoxygenPages\Style\Style.css" />
+         </Folder>
+         <Folder name="Images">
+            <Folder name="AS5_AS6_Import">
+               <File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step1.png" />
+               <File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step2.png" />
+               <File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step3.png" />
+               <File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step4.png" />
+               <File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step5_1.png" />
+               <File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step5_2.png" />
+               <File path="LUFA\DoxygenPages\Images\AS5_AS6_Import\AS5_AS6_Import_Step5_3.png" />
+            </Folder>
+            <File path="LUFA\DoxygenPages\Images\Author.jpg" />
+            <File path="LUFA\DoxygenPages\Images\LUFA.png" />
+            <File path="LUFA\DoxygenPages\Images\LUFA_thumb.png" />
+         </Folder>
+         <File path="LUFA\DoxygenPages\BuildingLinkableLibraries.txt" />
+         <File path="LUFA\DoxygenPages\ChangeLog.txt" />
+         <File path="LUFA\DoxygenPages\CompileTimeTokens.txt" />
+         <File path="LUFA\DoxygenPages\CompilingApps.txt" />
+         <File path="LUFA\DoxygenPages\ConfiguringApps.txt" />
+         <File path="LUFA\DoxygenPages\DevelopingWithLUFA.txt" />
+         <File path="LUFA\DoxygenPages\DeviceSupport.txt" />
+         <File path="LUFA\DoxygenPages\DirectorySummaries.txt" />
+         <File path="LUFA\DoxygenPages\Donating.txt" />
+         <File path="LUFA\DoxygenPages\FutureChanges.txt" />
+         <File path="LUFA\DoxygenPages\GettingStarted.txt" />
+         <File path="LUFA\DoxygenPages\Groups.txt" />
+         <File path="LUFA\DoxygenPages\LibraryResources.txt" />
+         <File path="LUFA\DoxygenPages\LicenseInfo.txt" />
+         <File path="LUFA\DoxygenPages\LUFAPoweredProjects.txt" />
+         <File path="LUFA\DoxygenPages\MainPage.txt" />
+         <File path="LUFA\DoxygenPages\MigrationInformation.txt" />
+         <File path="LUFA\DoxygenPages\ProgrammingApps.txt" />
+         <File path="LUFA\DoxygenPages\SoftwareBootloaderJump.txt" />
+         <File path="LUFA\DoxygenPages\VIDAndPIDValues.txt" />
+         <File path="LUFA\DoxygenPages\WritingBoardDrivers.txt" />
+         <File path="LUFA\DoxygenPages\ExportingLibrary.txt" />
+         <File path="LUFA\DoxygenPages\KnownIssues.txt" />
+      </Folder>
+      <Folder name="Drivers">
+         <Folder name="USB">
+            <Folder name="Class">
+               <Folder name="Device">
+                  <File path="LUFA\Drivers\USB\Class\Device\AudioClassDevice.c" />
+                  <File path="LUFA\Drivers\USB\Class\Device\AudioClassDevice.h" />
+                  <File path="LUFA\Drivers\USB\Class\Device\CDCClassDevice.c" />
+                  <File path="LUFA\Drivers\USB\Class\Device\CDCClassDevice.h" />
+                  <File path="LUFA\Drivers\USB\Class\Device\HIDClassDevice.c" />
+                  <File path="LUFA\Drivers\USB\Class\Device\HIDClassDevice.h" />
+                  <File path="LUFA\Drivers\USB\Class\Device\MassStorageClassDevice.c" />
+                  <File path="LUFA\Drivers\USB\Class\Device\MassStorageClassDevice.h" />
+                  <File path="LUFA\Drivers\USB\Class\Device\MIDIClassDevice.c" />
+                  <File path="LUFA\Drivers\USB\Class\Device\MIDIClassDevice.h" />
+                  <File path="LUFA\Drivers\USB\Class\Device\RNDISClassDevice.c" />
+                  <File path="LUFA\Drivers\USB\Class\Device\RNDISClassDevice.h" />
+               </Folder>
+               <Folder name="Host">
+                  <File path="LUFA\Drivers\USB\Class\Host\AudioClassHost.c" />
+                  <File path="LUFA\Drivers\USB\Class\Host\AudioClassHost.h" />
+                  <File path="LUFA\Drivers\USB\Class\Host\CDCClassHost.c" />
+                  <File path="LUFA\Drivers\USB\Class\Host\CDCClassHost.h" />
+                  <File path="LUFA\Drivers\USB\Class\Host\HIDClassHost.c" />
+                  <File path="LUFA\Drivers\USB\Class\Host\HIDClassHost.h" />
+                  <File path="LUFA\Drivers\USB\Class\Host\MassStorageClassHost.c" />
+                  <File path="LUFA\Drivers\USB\Class\Host\MassStorageClassHost.h" />
+                  <File path="LUFA\Drivers\USB\Class\Host\MIDIClassHost.c" />
+                  <File path="LUFA\Drivers\USB\Class\Host\MIDIClassHost.h" />
+                  <File path="LUFA\Drivers\USB\Class\Host\PrinterClassHost.c" />
+                  <File path="LUFA\Drivers\USB\Class\Host\PrinterClassHost.h" />
+                  <File path="LUFA\Drivers\USB\Class\Host\RNDISClassHost.c" />
+                  <File path="LUFA\Drivers\USB\Class\Host\RNDISClassHost.h" />
+                  <File path="LUFA\Drivers\USB\Class\Host\StillImageClassHost.c" />
+                  <File path="LUFA\Drivers\USB\Class\Host\StillImageClassHost.h" />
+                  <File path="LUFA\Drivers\USB\Class\Host\AndroidAccessoryClassHost.c" />
+                  <File path="LUFA\Drivers\USB\Class\Host\AndroidAccessoryClassHost.h" />
+               </Folder>
+               <Folder name="Common">
+                  <File path="LUFA\Drivers\USB\Class\Common\AudioClassCommon.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\CDCClassCommon.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\HIDClassCommon.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\HIDParser.c" />
+                  <File path="LUFA\Drivers\USB\Class\Common\HIDParser.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\HIDReportData.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\MassStorageClassCommon.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\MIDIClassCommon.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\PrinterClassCommon.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\RNDISClassCommon.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\StillImageClassCommon.h" />
+                  <File path="LUFA\Drivers\USB\Class\Common\AndroidAccessoryClassCommon.h" />
+               </Folder>
+               <File path="LUFA\Drivers\USB\Class\AudioClass.h" />
+               <File path="LUFA\Drivers\USB\Class\CDCClass.h" />
+               <File path="LUFA\Drivers\USB\Class\HIDClass.h" />
+               <File path="LUFA\Drivers\USB\Class\MassStorageClass.h" />
+               <File path="LUFA\Drivers\USB\Class\MIDIClass.h" />
+               <File path="LUFA\Drivers\USB\Class\PrinterClass.h" />
+               <File path="LUFA\Drivers\USB\Class\RNDISClass.h" />
+               <File path="LUFA\Drivers\USB\Class\StillImageClass.h" />
+               <File path="LUFA\Drivers\USB\Class\AndroidAccessoryClass.h" />
+            </Folder>
+            <Folder name="Core">
+               <Folder name="AVR8">
+                  <Folder name="Template">
+                     <File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_Control_R.c" />
+                     <File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_Control_W.c" />
+                     <File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Endpoint_RW.c" />
+                     <File path="LUFA\Drivers\USB\Core\AVR8\Template\Template_Pipe_RW.c" />
+                  </Folder>
+                  <File path="LUFA\Drivers\USB\Core\AVR8\Device_AVR8.c" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\Device_AVR8.h" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\Endpoint_AVR8.c" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\Endpoint_AVR8.h" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\Host_AVR8.c" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\Host_AVR8.h" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\OTG_AVR8.h" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\Pipe_AVR8.c" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\Pipe_AVR8.h" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\USBController_AVR8.c" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\USBController_AVR8.h" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\USBInterrupt_AVR8.c" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\USBInterrupt_AVR8.h" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\EndpointStream_AVR8.c" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\EndpointStream_AVR8.h" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\PipeStream_AVR8.c" />
+                  <File path="LUFA\Drivers\USB\Core\AVR8\PipeStream_AVR8.h" />
+               </Folder>
+               <Folder name="UC3">
+                  <Folder name="Template">
+                     <File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_Control_R.c" />
+                     <File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_Control_W.c" />
+                     <File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Endpoint_RW.c" />
+                     <File path="LUFA\Drivers\USB\Core\UC3\Template\Template_Pipe_RW.c" />
+                  </Folder>
+                  <File path="LUFA\Drivers\USB\Core\UC3\Device_UC3.c" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\Device_UC3.h" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\Endpoint_UC3.c" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\Endpoint_UC3.h" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\Pipe_UC3.c" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\Pipe_UC3.h" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\USBController_UC3.c" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\USBController_UC3.h" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\USBInterrupt_UC3.c" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\USBInterrupt_UC3.h" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\Host_UC3.c" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\Host_UC3.h" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\EndpointStream_UC3.c" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\EndpointStream_UC3.h" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\PipeStream_UC3.c" />
+                  <File path="LUFA\Drivers\USB\Core\UC3\PipeStream_UC3.h" />
+               </Folder>
+               <Folder name="XMEGA">
+                  <Folder name="Template">
+                     <File path="LUFA\Drivers\USB\Core\XMEGA\Template\Template_Endpoint_Control_R.c" />
+                     <File path="LUFA\Drivers\USB\Core\XMEGA\Template\Template_Endpoint_Control_W.c" />
+                     <File path="LUFA\Drivers\USB\Core\XMEGA\Template\Template_Endpoint_RW.c" />
+                  </Folder>
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\Device_XMEGA.c" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\Device_XMEGA.h" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\Endpoint_XMEGA.c" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\Endpoint_XMEGA.h" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\EndpointStream_XMEGA.c" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\EndpointStream_XMEGA.h" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\Host_XMEGA.c" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\Pipe_XMEGA.c" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\PipeStream_XMEGA.c" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\USBController_XMEGA.c" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\USBController_XMEGA.h" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\USBInterrupt_XMEGA.c" />
+                  <File path="LUFA\Drivers\USB\Core\XMEGA\USBInterrupt_XMEGA.h" />
+               </Folder>
+               <File path="LUFA\Drivers\USB\Core\ConfigDescriptor.c" />
+               <File path="LUFA\Drivers\USB\Core\ConfigDescriptor.h" />
+               <File path="LUFA\Drivers\USB\Core\DeviceStandardReq.c" />
+               <File path="LUFA\Drivers\USB\Core\DeviceStandardReq.h" />
+               <File path="LUFA\Drivers\USB\Core\Events.c" />
+               <File path="LUFA\Drivers\USB\Core\Events.h" />
+               <File path="LUFA\Drivers\USB\Core\HostStandardReq.c" />
+               <File path="LUFA\Drivers\USB\Core\HostStandardReq.h" />
+               <File path="LUFA\Drivers\USB\Core\StdDescriptors.h" />
+               <File path="LUFA\Drivers\USB\Core\StdRequestType.h" />
+               <File path="LUFA\Drivers\USB\Core\USBMode.h" />
+               <File path="LUFA\Drivers\USB\Core\USBTask.c" />
+               <File path="LUFA\Drivers\USB\Core\USBTask.h" />
+               <File path="LUFA\Drivers\USB\Core\Device.h" />
+               <File path="LUFA\Drivers\USB\Core\Endpoint.h" />
+               <File path="LUFA\Drivers\USB\Core\Host.h" />
+               <File path="LUFA\Drivers\USB\Core\Pipe.h" />
+               <File path="LUFA\Drivers\USB\Core\USBController.h" />
+               <File path="LUFA\Drivers\USB\Core\USBInterrupt.h" />
+               <File path="LUFA\Drivers\USB\Core\OTG.h" />
+               <File path="LUFA\Drivers\USB\Core\EndpointStream.h" />
+               <File path="LUFA\Drivers\USB\Core\PipeStream.h" />
+            </Folder>
+            <File path="LUFA\Drivers\USB\USB.h" />
+         </Folder>
+         <Folder name="Misc">
+            <File path="LUFA\Drivers\Misc\TerminalCodes.h" />
+            <File path="LUFA\Drivers\Misc\RingBuffer.h" />
+            <File path="LUFA\Drivers\Misc\AT45DB321C.h" />
+            <File path="LUFA\Drivers\Misc\AT45DB642D.h" />
+         </Folder>
+         <Folder name="Board">
+            <Folder name="AVR8">
+               <Folder name="ADAFRUITU4">
+                  <File path="LUFA\Drivers\Board\AVR8\ADAFRUITU4\LEDs.h" />
+               </Folder>
+               <Folder name="ATAVRUSBRF01">
+                  <File path="LUFA\Drivers\Board\AVR8\ATAVRUSBRF01\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\ATAVRUSBRF01\LEDs.h" />
+               </Folder>
+               <Folder name="BENITO">
+                  <File path="LUFA\Drivers\Board\AVR8\BENITO\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\BENITO\LEDs.h" />
+               </Folder>
+               <Folder name="BIGMULTIO">
+                  <File path="LUFA\Drivers\Board\AVR8\BIGMULTIO\LEDs.h" />
+               </Folder>
+               <Folder name="BLACKCAT">
+                  <File path="LUFA\Drivers\Board\AVR8\BLACKCAT\LEDs.h" />
+               </Folder>
+               <Folder name="BUI">
+                  <File path="LUFA\Drivers\Board\AVR8\BUI\LEDs.h" />
+               </Folder>
+               <Folder name="BUMBLEB">
+                  <File path="LUFA\Drivers\Board\AVR8\BUMBLEB\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\BUMBLEB\Joystick.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\BUMBLEB\LEDs.h" />
+               </Folder>
+               <Folder name="CULV3">
+                  <File path="LUFA\Drivers\Board\AVR8\CULV3\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\CULV3\LEDs.h" />
+               </Folder>
+               <Folder name="DUCE">
+                  <File path="LUFA\Drivers\Board\AVR8\DUCE\LEDs.h" />
+               </Folder>
+               <Folder name="EVK527">
+                  <File path="LUFA\Drivers\Board\AVR8\EVK527\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\EVK527\Dataflash.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\EVK527\Joystick.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\EVK527\LEDs.h" />
+               </Folder>
+               <Folder name="JMDBU2">
+                  <File path="LUFA\Drivers\Board\AVR8\JMDBU2\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\JMDBU2\LEDs.h" />
+               </Folder>
+               <Folder name="MAXIMUS">
+                  <File path="LUFA\Drivers\Board\AVR8\MAXIMUS\LEDs.h" />
+               </Folder>
+               <Folder name="MICROPENDOUS">
+                  <File path="LUFA\Drivers\Board\AVR8\MICROPENDOUS\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\MICROPENDOUS\LEDs.h" />
+               </Folder>
+               <Folder name="MICROSIN162">
+                  <File path="LUFA\Drivers\Board\AVR8\MICROSIN162\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\MICROSIN162\LEDs.h" />
+               </Folder>
+               <Folder name="MINIMUS">
+                  <File path="LUFA\Drivers\Board\AVR8\MINIMUS\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\MINIMUS\LEDs.h" />
+               </Folder>
+               <Folder name="MULTIO">
+                  <File path="LUFA\Drivers\Board\AVR8\MULTIO\LEDs.h" />
+               </Folder>
+               <Folder name="OLIMEX32U4">
+                  <File path="LUFA\Drivers\Board\AVR8\OLIMEX32U4\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\OLIMEX32U4\LEDs.h" />
+               </Folder>
+               <Folder name="OLIMEX162">
+                  <File path="LUFA\Drivers\Board\AVR8\OLIMEX162\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\OLIMEX162\LEDs.h" />
+               </Folder>
+               <Folder name="OLIMEXT32U4">
+                  <File path="LUFA\Drivers\Board\AVR8\OLIMEXT32U4\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\OLIMEXT32U4\LEDs.h" />
+               </Folder>
+               <Folder name="RZUSBSTICK">
+                  <File path="LUFA\Drivers\Board\AVR8\RZUSBSTICK\LEDs.h" />
+               </Folder>
+               <Folder name="SPARKFUN8U2">
+                  <File path="LUFA\Drivers\Board\AVR8\SPARKFUN8U2\LEDs.h" />
+               </Folder>
+               <Folder name="STK525">
+                  <File path="LUFA\Drivers\Board\AVR8\STK525\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\STK525\Dataflash.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\STK525\Joystick.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\STK525\LEDs.h" />
+               </Folder>
+               <Folder name="STK526">
+                  <File path="LUFA\Drivers\Board\AVR8\STK526\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\STK526\Dataflash.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\STK526\Joystick.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\STK526\LEDs.h" />
+               </Folder>
+               <Folder name="TEENSY">
+                  <File path="LUFA\Drivers\Board\AVR8\TEENSY\LEDs.h" />
+               </Folder>
+               <Folder name="TUL">
+                  <File path="LUFA\Drivers\Board\AVR8\TUL\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\TUL\LEDs.h" />
+               </Folder>
+               <Folder name="UDIP">
+                  <File path="LUFA\Drivers\Board\AVR8\UDIP\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\UDIP\LEDs.h" />
+               </Folder>
+               <Folder name="UNO">
+                  <File path="LUFA\Drivers\Board\AVR8\UNO\LEDs.h" />
+               </Folder>
+               <Folder name="USB2AX">
+                  <File path="LUFA\Drivers\Board\AVR8\USB2AX\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\USB2AX\LEDs.h" />
+               </Folder>
+               <Folder name="USBFOO">
+                  <File path="LUFA\Drivers\Board\AVR8\USBFOO\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\USBFOO\LEDs.h" />
+               </Folder>
+               <Folder name="USBKEY">
+                  <File path="LUFA\Drivers\Board\AVR8\USBKEY\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\USBKEY\Dataflash.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\USBKEY\Joystick.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\USBKEY\LEDs.h" />
+               </Folder>
+               <Folder name="USBTINYMKII">
+                  <File path="LUFA\Drivers\Board\AVR8\USBTINYMKII\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\USBTINYMKII\LEDs.h" />
+               </Folder>
+               <Folder name="XPLAIN">
+                  <File path="LUFA\Drivers\Board\AVR8\XPLAIN\Dataflash.h" />
+                  <File path="LUFA\Drivers\Board\AVR8\XPLAIN\LEDs.h" />
+               </Folder>
+            </Folder>
+            <Folder name="UC3">
+               <Folder name="EVK1100">
+                  <File path="LUFA\Drivers\Board\UC3\EVK1100\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\UC3\EVK1100\Joystick.h" />
+                  <File path="LUFA\Drivers\Board\UC3\EVK1100\LEDs.h" />
+               </Folder>
+               <Folder name="EVK1101">
+                  <File path="LUFA\Drivers\Board\UC3\EVK1101\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\UC3\EVK1101\Joystick.h" />
+                  <File path="LUFA\Drivers\Board\UC3\EVK1101\LEDs.h" />
+               </Folder>
+               <Folder name="EVK1104">
+                  <File path="LUFA\Drivers\Board\UC3\EVK1104\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\UC3\EVK1104\LEDs.h" />
+               </Folder>
+            </Folder>
+            <Folder name="XMEGA">
+               <Folder name="A3BU_XPLAINED">
+                  <File path="LUFA\Drivers\Board\XMEGA\A3BU_XPLAINED\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\XMEGA\A3BU_XPLAINED\LEDs.h" />
+                  <File path="LUFA\Drivers\Board\XMEGA\A3BU_XPLAINED\Dataflash.h" />
+               </Folder>
+               <Folder name="B1_XPLAINED">
+                  <File path="LUFA\Drivers\Board\XMEGA\B1_XPLAINED\Buttons.h" />
+                  <File path="LUFA\Drivers\Board\XMEGA\B1_XPLAINED\LEDs.h" />
+                  <File path="LUFA\Drivers\Board\XMEGA\B1_XPLAINED\Dataflash.h" />
+               </Folder>
+            </Folder>
+            <File path="LUFA\Drivers\Board\Temperature.h" />
+            <File path="LUFA\Drivers\Board\Dataflash.h" />
+            <File path="LUFA\Drivers\Board\Joystick.h" />
+            <File path="LUFA\Drivers\Board\Temperature.c" />
+            <File path="LUFA\Drivers\Board\LEDs.h" />
+            <File path="LUFA\Drivers\Board\Buttons.h" />
+         </Folder>
+         <Folder name="Peripheral">
+            <Folder name="AVR8">
+               <File path="LUFA\Drivers\Peripheral\AVR8\ADC_AVR8.h" />
+               <File path="LUFA\Drivers\Peripheral\AVR8\Serial_AVR8.c" />
+               <File path="LUFA\Drivers\Peripheral\AVR8\Serial_AVR8.h" />
+               <File path="LUFA\Drivers\Peripheral\AVR8\SPI_AVR8.h" />
+               <File path="LUFA\Drivers\Peripheral\AVR8\TWI_AVR8.c" />
+               <File path="LUFA\Drivers\Peripheral\AVR8\TWI_AVR8.h" />
+               <File path="LUFA\Drivers\Peripheral\AVR8\SerialSPI_AVR8.h" />
+            </Folder>
+            <Folder name="UC3" />
+            <Folder name="XMEGA">
+               <File path="LUFA\Drivers\Peripheral\XMEGA\SPI_XMEGA.h" />
+               <File path="LUFA\Drivers\Peripheral\XMEGA\Serial_XMEGA.c" />
+               <File path="LUFA\Drivers\Peripheral\XMEGA\Serial_XMEGA.h" />
+               <File path="LUFA\Drivers\Peripheral\XMEGA\SerialSPI_XMEGA.h" />
+            </Folder>
+            <File path="LUFA\Drivers\Peripheral\ADC.h" />
+            <File path="LUFA\Drivers\Peripheral\TWI.h" />
+            <File path="LUFA\Drivers\Peripheral\Serial.h" />
+            <File path="LUFA\Drivers\Peripheral\SPI.h" />
+            <File path="LUFA\Drivers\Peripheral\SerialSPI.h" />
+         </Folder>
+      </Folder>
+      <Folder name="Platform">
+         <Folder name="AVR8" />
+         <Folder name="UC3">
+            <File path="LUFA\Platform\UC3\InterruptManagement.h" />
+            <File path="LUFA\Platform\UC3\InterruptManagement.c" />
+            <File path="LUFA\Platform\UC3\Exception.S" />
+            <File path="LUFA\Platform\UC3\ClockManagement.h" />
+         </Folder>
+         <Folder name="XMEGA">
+            <File path="LUFA\Platform\XMEGA\ClockManagement.h" />
+         </Folder>
+      </Folder>
+      <File path="LUFA\makefile" />
+      <File path="LUFA\Version.h" />
+      <File path="LUFA\Doxygen.conf" />
+      <File path="LUFA\License.txt" />
+   </Folder>
+   <Folder name="Bootloaders">
+      <Folder name="CDC">
+         <Folder name="Config">
+            <File path="Bootloaders\CDC\Config\LUFAConfig.h" />
+            <File path="Bootloaders\CDC\Config\AppConfig.h" />
+         </Folder>
+         <File path="Bootloaders\CDC\BootloaderCDC.c" />
+         <File path="Bootloaders\CDC\BootloaderCDC.h" />
+         <File path="Bootloaders\CDC\Descriptors.c" />
+         <File path="Bootloaders\CDC\Descriptors.h" />
+         <File path="Bootloaders\CDC\makefile" />
+         <File path="Bootloaders\CDC\LUFA CDC Bootloader.inf" />
+         <File path="Bootloaders\CDC\Doxygen.conf" />
+         <File path="Bootloaders\CDC\BootloaderCDC.txt" />
+         <File path="Bootloaders\CDC\BootloaderAPI.c" />
+         <File path="Bootloaders\CDC\BootloaderAPI.h" />
+         <File path="Bootloaders\CDC\BootloaderAPITable.S" />
+      </Folder>
+      <Folder name="DFU">
+         <Folder name="Config">
+            <File path="Bootloaders\DFU\Config\LUFAConfig.h" />
+            <File path="Bootloaders\DFU\Config\AppConfig.h" />
+         </Folder>
+         <File path="Bootloaders\DFU\BootloaderDFU.c" />
+         <File path="Bootloaders\DFU\BootloaderDFU.h" />
+         <File path="Bootloaders\DFU\Descriptors.c" />
+         <File path="Bootloaders\DFU\Descriptors.h" />
+         <File path="Bootloaders\DFU\makefile" />
+         <File path="Bootloaders\DFU\BootloaderDFU.txt" />
+         <File path="Bootloaders\DFU\Doxygen.conf" />
+         <File path="Bootloaders\DFU\BootloaderAPI.c" />
+         <File path="Bootloaders\DFU\BootloaderAPI.h" />
+         <File path="Bootloaders\DFU\BootloaderAPITable.S" />
+      </Folder>
+      <Folder name="HID">
+         <Folder name="Config">
+            <File path="Bootloaders\HID\Config\LUFAConfig.h" />
+         </Folder>
+         <Folder name="HostLoaderApp">
+            <File path="Bootloaders\HID\HostLoaderApp\gpl3.txt" />
+            <File path="Bootloaders\HID\HostLoaderApp\Makefile" />
+            <File path="Bootloaders\HID\HostLoaderApp\Makefile.bsd" />
+            <File path="Bootloaders\HID\HostLoaderApp\hid_bootloader_cli.c" />
+         </Folder>
+         <File path="Bootloaders\HID\Descriptors.c" />
+         <File path="Bootloaders\HID\Descriptors.h" />
+         <File path="Bootloaders\HID\makefile" />
+         <File path="Bootloaders\HID\BootloaderHID.txt" />
+         <File path="Bootloaders\HID\BootloaderHID.c" />
+         <File path="Bootloaders\HID\BootloaderHID.h" />
+         <File path="Bootloaders\HID\Doxygen.conf" />
+      </Folder>
+      <File path="Bootloaders\makefile" />
+   </Folder>
+   <Folder name="Projects">
+      <Folder name="AVRISP-MKII">
+         <Folder name="Config">
+            <File path="Projects\AVRISP-MKII\Config\AppConfig.h" />
+            <File path="Projects\AVRISP-MKII\Config\LUFAConfig.h" />
+         </Folder>
+         <Folder name="Lib">
+            <Folder name="ISP">
+               <File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.c" />
+               <File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.h" />
+               <File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.c" />
+               <File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.h" />
+            </Folder>
+            <Folder name="XPROG">
+               <File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.c" />
+               <File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.h" />
+               <File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.c" />
+               <File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.h" />
+               <File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.c" />
+               <File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.h" />
+               <File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.c" />
+               <File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.h" />
+            </Folder>
+            <File path="Projects\AVRISP-MKII\Lib\V2Protocol.c" />
+            <File path="Projects\AVRISP-MKII\Lib\V2Protocol.h" />
+            <File path="Projects\AVRISP-MKII\Lib\V2ProtocolConstants.h" />
+            <File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.c" />
+            <File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.h" />
+         </Folder>
+         <File path="Projects\AVRISP-MKII\Doxygen.conf" />
+         <File path="Projects\AVRISP-MKII\makefile" />
+         <File path="Projects\AVRISP-MKII\AVRISP-MKII.c" />
+         <File path="Projects\AVRISP-MKII\AVRISP-MKII.h" />
+         <File path="Projects\AVRISP-MKII\AVRISP-MKII.txt" />
+         <File path="Projects\AVRISP-MKII\AVRISPDescriptors.c" />
+         <File path="Projects\AVRISP-MKII\AVRISPDescriptors.h" />
+      </Folder>
+      <Folder name="Benito">
+         <Folder name="Config">
+            <File path="Projects\Benito\Config\LUFAConfig.h" />
+            <File path="Projects\Benito\Config\AppConfig.h" />
+         </Folder>
+         <File path="Projects\Benito\Benito.c" />
+         <File path="Projects\Benito\Benito.h" />
+         <File path="Projects\Benito\Descriptors.c" />
+         <File path="Projects\Benito\Descriptors.h" />
+         <File path="Projects\Benito\Doxygen.conf" />
+         <File path="Projects\Benito\makefile" />
+         <File path="Projects\Benito\Benito.txt" />
+         <File path="Projects\Benito\Benito Programmer.inf" />
+      </Folder>
+      <Folder name="HIDReportViewer">
+         <Folder name="Config">
+            <File path="Projects\HIDReportViewer\Config\LUFAConfig.h" />
+         </Folder>
+         <File path="Projects\HIDReportViewer\HIDReportViewer.c" />
+         <File path="Projects\HIDReportViewer\HIDReportViewer.h" />
+         <File path="Projects\HIDReportViewer\makefile" />
+         <File path="Projects\HIDReportViewer\HIDReportViewer.txt" />
+         <File path="Projects\HIDReportViewer\Doxygen.conf" />
+      </Folder>
+      <Folder name="LEDNotifier">
+         <Folder name="Config">
+            <File path="Projects\LEDNotifier\Config\LUFAConfig.h" />
+         </Folder>
+         <Folder name="CPUUsageApp">
+            <File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.cs" />
+            <File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.csproj" />
+            <File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.Designer.cs" />
+            <File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.resx" />
+            <File path="Projects\LEDNotifier\CPUUsageApp\Program.cs" />
+         </Folder>
+         <Folder name="HotmailNotifierApp">
+            <File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.cs" />
+            <File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.csproj" />
+            <File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.Designer.cs" />
+            <File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.resx" />
+            <File path="Projects\LEDNotifier\HotmailNotifierApp\Program.cs" />
+         </Folder>
+         <Folder name="LEDMixerApp">
+            <File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.cs" />
+            <File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.csproj" />
+            <File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.Designer.cs" />
+            <File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.resx" />
+            <File path="Projects\LEDNotifier\LEDMixerApp\Program.cs" />
+         </Folder>
+         <File path="Projects\LEDNotifier\Descriptors.c" />
+         <File path="Projects\LEDNotifier\Descriptors.h" />
+         <File path="Projects\LEDNotifier\Doxygen.conf" />
+         <File path="Projects\LEDNotifier\LEDNotifier.c" />
+         <File path="Projects\LEDNotifier\LEDNotifier.h" />
+         <File path="Projects\LEDNotifier\LEDNotifier.txt" />
+         <File path="Projects\LEDNotifier\LUFA LED Notifier.inf" />
+         <File path="Projects\LEDNotifier\makefile" />
+      </Folder>
+      <Folder name="MagStripe">
+         <Folder name="Config">
+            <File path="Projects\Magstripe\Config\AppConfig.h" />
+            <File path="Projects\Magstripe\Config\LUFAConfig.h" />
+         </Folder>
+         <Folder name="Lib">
+            <File path="Projects\Magstripe\Lib\CircularBitBuffer.c" />
+            <File path="Projects\Magstripe\Lib\CircularBitBuffer.h" />
+            <File path="Projects\Magstripe\Lib\MagstripeHW.h" />
+         </Folder>
+         <File path="Projects\Magstripe\Descriptors.c" />
+         <File path="Projects\Magstripe\Descriptors.h" />
+         <File path="Projects\Magstripe\Magstripe.c" />
+         <File path="Projects\Magstripe\Magstripe.h" />
+         <File path="Projects\Magstripe\makefile" />
+         <File path="Projects\Magstripe\Magstripe.txt" />
+         <File path="Projects\Magstripe\Doxygen.conf" />
+      </Folder>
+      <Folder name="MediaController">
+         <Folder name="Config">
+            <File path="Projects\MediaController\Config\LUFAConfig.h" />
+         </Folder>
+         <File path="Projects\MediaController\Descriptors.c" />
+         <File path="Projects\MediaController\Descriptors.h" />
+         <File path="Projects\MediaController\Doxygen.conf" />
+         <File path="Projects\MediaController\makefile" />
+         <File path="Projects\MediaController\MediaController.c" />
+         <File path="Projects\MediaController\MediaController.h" />
+         <File path="Projects\MediaController\MediaController.txt" />
+      </Folder>
+      <Folder name="MIDIToneGenerator">
+         <Folder name="Config">
+            <File path="Projects\MIDIToneGenerator\Config\LUFAConfig.h" />
+            <File path="Projects\MIDIToneGenerator\Config\AppConfig.h" />
+         </Folder>
+         <File path="Projects\MIDIToneGenerator\Descriptors.c" />
+         <File path="Projects\MIDIToneGenerator\Descriptors.h" />
+         <File path="Projects\MIDIToneGenerator\makefile" />
+         <File path="Projects\MIDIToneGenerator\MIDIToneGenerator.c" />
+         <File path="Projects\MIDIToneGenerator\MIDIToneGenerator.h" />
+         <File path="Projects\MIDIToneGenerator\MIDIToneGenerator.txt" />
+         <File path="Projects\MIDIToneGenerator\Doxygen.conf" />
+      </Folder>
+      <Folder name="MissileLauncher">
+         <Folder name="Config">
+            <File path="Projects\MissileLauncher\Config\LUFAConfig.h" />
+         </Folder>
+         <File path="Projects\MissileLauncher\ConfigDescriptor.c" />
+         <File path="Projects\MissileLauncher\ConfigDescriptor.h" />
+         <File path="Projects\MissileLauncher\Doxygen.conf" />
+         <File path="Projects\MissileLauncher\makefile" />
+         <File path="Projects\MissileLauncher\MissileLauncher.c" />
+         <File path="Projects\MissileLauncher\MissileLauncher.h" />
+         <File path="Projects\MissileLauncher\MissileLauncher.txt" />
+      </Folder>
+      <Folder name="RelayBoard">
+         <Folder name="Config">
+            <File path="Projects\RelayBoard\Config\LUFAConfig.h" />
+         </Folder>
+         <File path="Projects\RelayBoard\Descriptors.c" />
+         <File path="Projects\RelayBoard\Descriptors.h" />
+         <File path="Projects\RelayBoard\Doxygen.conf" />
+         <File path="Projects\RelayBoard\makefile" />
+         <File path="Projects\RelayBoard\RelayBoard.c" />
+         <File path="Projects\RelayBoard\RelayBoard.h" />
+         <File path="Projects\RelayBoard\RelayBoard.txt" />
+      </Folder>
+      <Folder name="SerialToLCD">
+         <Folder name="Config">
+            <File path="Projects\SerialToLCD\Config\LUFAConfig.h" />
+         </Folder>
+         <Folder name="Lib">
+            <File path="Projects\SerialToLCD\Lib\HD44780.c" />
+            <File path="Projects\SerialToLCD\Lib\HD44780.h" />
+         </Folder>
+         <File path="Projects\SerialToLCD\Descriptors.c" />
+         <File path="Projects\SerialToLCD\Descriptors.h" />
+         <File path="Projects\SerialToLCD\makefile" />
+         <File path="Projects\SerialToLCD\SerialToLCD.c" />
+         <File path="Projects\SerialToLCD\SerialToLCD.h" />
+         <File path="Projects\SerialToLCD\SerialToLCD.txt" />
+         <File path="Projects\SerialToLCD\Doxygen.conf" />
+      </Folder>
+      <Folder name="TempDataLogger">
+         <Folder name="Config">
+            <File path="Projects\TempDataLogger\Config\LUFAConfig.h" />
+            <File path="Projects\TempDataLogger\Config\AppConfig.h" />
+         </Folder>
+         <Folder name="Lib">
+            <Folder name="FATFs">
+               <File path="Projects\TempDataLogger\Lib\FATFs\diskio.c" />
+               <File path="Projects\TempDataLogger\Lib\FATFs\diskio.h" />
+               <File path="Projects\TempDataLogger\Lib\FATFs\ff.c" />
+               <File path="Projects\TempDataLogger\Lib\FATFs\ff.h" />
+               <File path="Projects\TempDataLogger\Lib\FATFs\ffconf.h" />
+               <File path="Projects\TempDataLogger\Lib\FATFs\integer.h" />
+            </Folder>
+            <File path="Projects\TempDataLogger\Lib\DataflashManager.c" />
+            <File path="Projects\TempDataLogger\Lib\DataflashManager.h" />
+            <File path="Projects\TempDataLogger\Lib\DS1307.c" />
+            <File path="Projects\TempDataLogger\Lib\DS1307.h" />
+            <File path="Projects\TempDataLogger\Lib\SCSI.c" />
+            <File path="Projects\TempDataLogger\Lib\SCSI.h" />
+         </Folder>
+         <Folder name="TempLogHostApp">
+            <File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.cs" />
+            <File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.Designer.cs" />
+            <File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.resx" />
+            <File path="Projects\TempDataLogger\TempLogHostApp\Program.cs" />
+            <File path="Projects\TempDataLogger\TempLogHostApp\TempLoggerHostApp.csproj" />
+         </Folder>
+         <File path="Projects\TempDataLogger\Descriptors.c" />
+         <File path="Projects\TempDataLogger\Descriptors.h" />
+         <File path="Projects\TempDataLogger\Doxygen.conf" />
+         <File path="Projects\TempDataLogger\makefile" />
+         <File path="Projects\TempDataLogger\TempDataLogger.c" />
+         <File path="Projects\TempDataLogger\TempDataLogger.h" />
+         <File path="Projects\TempDataLogger\TemperatureDataLogger.txt" />
+      </Folder>
+      <Folder name="USBtoSerial">
+         <Folder name="Config">
+            <File path="Projects\USBtoSerial\Config\LUFAConfig.h" />
+         </Folder>
+         <File path="Projects\USBtoSerial\Descriptors.h" />
+         <File path="Projects\USBtoSerial\Doxygen.conf" />
+         <File path="Projects\USBtoSerial\LUFA USBtoSerial.inf" />
+         <File path="Projects\USBtoSerial\makefile" />
+         <File path="Projects\USBtoSerial\USBtoSerial.c" />
+         <File path="Projects\USBtoSerial\USBtoSerial.h" />
+         <File path="Projects\USBtoSerial\USBtoSerial.txt" />
+         <File path="Projects\USBtoSerial\Descriptors.c" />
+      </Folder>
+      <Folder name="Webserver">
+         <Folder name="Config">
+            <File path="Projects\Webserver\Config\LUFAConfig.h" />
+            <File path="Projects\Webserver\Config\AppConfig.h" />
+         </Folder>
+         <Folder name="Lib">
+            <Folder name="uip">
+               <File path="Projects\Webserver\Lib\uip\clock.c" />
+               <File path="Projects\Webserver\Lib\uip\clock.h" />
+               <File path="Projects\Webserver\Lib\uip\timer.c" />
+               <File path="Projects\Webserver\Lib\uip\timer.h" />
+               <File path="Projects\Webserver\Lib\uip\uip.c" />
+               <File path="Projects\Webserver\Lib\uip\uip.h" />
+               <File path="Projects\Webserver\Lib\uip\uip_arp.c" />
+               <File path="Projects\Webserver\Lib\uip\uip_arp.h" />
+               <File path="Projects\Webserver\Lib\uip\uipopt.h" />
+               <File path="Projects\Webserver\Lib\uip\uip-split.c" />
+               <File path="Projects\Webserver\Lib\uip\uip-split.h" />
+            </Folder>
+            <Folder name="FATFs">
+               <File path="Projects\Webserver\Lib\FATFs\diskio.c" />
+               <File path="Projects\Webserver\Lib\FATFs\diskio.h" />
+               <File path="Projects\Webserver\Lib\FATFs\ff.c" />
+               <File path="Projects\Webserver\Lib\FATFs\ff.h" />
+               <File path="Projects\Webserver\Lib\FATFs\ffconf.h" />
+               <File path="Projects\Webserver\Lib\FATFs\integer.h" />
+            </Folder>
+            <File path="Projects\Webserver\Lib\DataflashManager.c" />
+            <File path="Projects\Webserver\Lib\DataflashManager.h" />
+            <File path="Projects\Webserver\Lib\uIPManagement.c" />
+            <File path="Projects\Webserver\Lib\uIPManagement.h" />
+            <File path="Projects\Webserver\Lib\HTTPServerApp.c" />
+            <File path="Projects\Webserver\Lib\HTTPServerApp.h" />
+            <File path="Projects\Webserver\Lib\SCSI.c" />
+            <File path="Projects\Webserver\Lib\SCSI.h" />
+            <File path="Projects\Webserver\Lib\TELNETServerApp.c" />
+            <File path="Projects\Webserver\Lib\TELNETServerApp.h" />
+            <File path="Projects\Webserver\Lib\DHCPClientApp.c" />
+            <File path="Projects\Webserver\Lib\DHCPClientApp.h" />
+            <File path="Projects\Webserver\Lib\DHCPCommon.h" />
+            <File path="Projects\Webserver\Lib\DHCPServerApp.c" />
+            <File path="Projects\Webserver\Lib\DHCPServerApp.h" />
+            <File path="Projects\Webserver\Lib\DHCPCommon.c" />
+         </Folder>
+         <File path="Projects\Webserver\makefile" />
+         <File path="Projects\Webserver\Webserver.c" />
+         <File path="Projects\Webserver\Webserver.h" />
+         <File path="Projects\Webserver\Doxygen.conf" />
+         <File path="Projects\Webserver\Webserver.txt" />
+         <File path="Projects\Webserver\Descriptors.c" />
+         <File path="Projects\Webserver\Descriptors.h" />
+         <File path="Projects\Webserver\USBHostMode.c" />
+         <File path="Projects\Webserver\USBHostMode.h" />
+         <File path="Projects\Webserver\USBDeviceMode.c" />
+         <File path="Projects\Webserver\USBDeviceMode.h" />
+         <File path="Projects\Webserver\LUFA Webserver RNDIS.inf" />
+      </Folder>
+      <Folder name="XPLAINBridge">
+         <Folder name="Config">
+            <File path="Projects\XPLAINBridge\Config\AppConfig.h" />
+            <File path="Projects\XPLAINBridge\Config\LUFAConfig.h" />
+         </Folder>
+         <Folder name="Lib">
+            <File path="Projects\XPLAINBridge\Lib\SoftUART.c" />
+            <File path="Projects\XPLAINBridge\Lib\SoftUART.h" />
+         </Folder>
+         <File path="Projects\XPLAINBridge\XPLAINBridge.txt" />
+         <File path="Projects\XPLAINBridge\XPLAINBridge.h" />
+         <File path="Projects\XPLAINBridge\XPLAINBridge.c" />
+         <File path="Projects\XPLAINBridge\USARTDescriptors.h" />
+         <File path="Projects\XPLAINBridge\USARTDescriptors.c" />
+         <File path="Projects\XPLAINBridge\makefile" />
+         <File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf" />
+         <File path="Projects\XPLAINBridge\Doxygen.conf" />
+      </Folder>
+      <File path="Projects\makefile" />
+   </Folder>
+   <Folder name="BuildTests">
+      <Folder name="BoardDriverTest">
+         <Folder name="Board">
+            <File path="BuildTests\BoardDriverTest\Board\Buttons.h" />
+            <File path="BuildTests\BoardDriverTest\Board\Dataflash.h" />
+            <File path="BuildTests\BoardDriverTest\Board\Joystick.h" />
+            <File path="BuildTests\BoardDriverTest\Board\LEDs.h" />
+         </Folder>
+         <File path="BuildTests\BoardDriverTest\BoardDeviceMap.cfg" />
+         <File path="BuildTests\BoardDriverTest\makefile" />
+         <File path="BuildTests\BoardDriverTest\makefile.avr8" />
+         <File path="BuildTests\BoardDriverTest\makefile.uc3" />
+         <File path="BuildTests\BoardDriverTest\makefile.xmega" />
+         <File path="BuildTests\BoardDriverTest\Test.c" />
+      </Folder>
+      <Folder name="BootloaderTest">
+         <File path="BuildTests\BootloaderTest\BootloaderDeviceMap.cfg" />
+         <File path="BuildTests\BootloaderTest\makefile" />
+      </Folder>
+      <Folder name="ModuleTest">
+         <File path="BuildTests\ModuleTest\makefile" />
+         <File path="BuildTests\ModuleTest\makefile.avr8" />
+         <File path="BuildTests\ModuleTest\makefile.uc3" />
+         <File path="BuildTests\ModuleTest\makefile.xmega" />
+         <File path="BuildTests\ModuleTest\Modules.h" />
+         <File path="BuildTests\ModuleTest\Test_C.c" />
+         <File path="BuildTests\ModuleTest\Test_CPP.cpp" />
+         <File path="BuildTests\ModuleTest\Dummy.S" />
+      </Folder>
+      <Folder name="SingleUSBModeTest">
+         <File path="BuildTests\SingleUSBModeTest\makefile" />
+         <File path="BuildTests\SingleUSBModeTest\makefile.avr8" />
+         <File path="BuildTests\SingleUSBModeTest\makefile.uc3" />
+         <File path="BuildTests\SingleUSBModeTest\makefile.xmega" />
+         <File path="BuildTests\SingleUSBModeTest\Test.c" />
+         <File path="BuildTests\SingleUSBModeTest\Dummy.S" />
+      </Folder>
+      <Folder name="StaticAnalysisTest">
+         <File path="BuildTests\StaticAnalysisTest\makefile" />
+      </Folder>
+      <File path="BuildTests\makefile" />
+   </Folder>
+   <Folder name="Maintenance">
+      <File path="Maintenance\makefile" />
+      <File path="Maintenance\AS4Template.aps" />
+   </Folder>
+   <File path="makefile" />
+   <File path="README.txt" />
+</Project>
\ No newline at end of file
index 35e8f65..0c9dca3 100644 (file)
 //      #define NO_AUTO_VBUS_MANAGEMENT
 //      #define INVERTED_VBUS_ENABLE_LINE
 
+       #else
+
+               #error Unsupported architecture for this LUFA configuration file.
+
        #endif
 #endif
 
index 87cface..8f0fabc 100644 (file)
@@ -42,7 +42,6 @@
                #include <avr/interrupt.h>
                #include <avr/power.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/USB/USB.h>
 
@@ -52,6 +51,7 @@
 
                #include "AVRISPDescriptors.h"
                #include "Lib/V2Protocol.h"
+               #include "Config/AppConfig.h"
 
        /* Macros: */
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
index 44ed1e4..2cf8ceb 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>AUX_LINE_PORT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>PORT register for the programmer's AUX target line. The use of this line varies between the programming protocols,
  *        but is generally used for the target's /RESET line.
  *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
  *   </tr>
  *   <tr>
  *    <td>AUX_LINE_PIN</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>PIN register for the programmer's AUX target line. The use of this line varies between the programming protocols,
  *        but is generally used for the target's /RESET line.
  *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
  *   </tr>
  *   <tr>
  *    <td>AUX_LINE_DDR</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>DDR register for the programmer's AUX target line. The use of this line varies between the programming protocols,
  *        but is generally used for the target's /RESET line.
  *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
  *   </tr>
  *   <tr>
  *    <td>AUX_LINE_MASK</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Mask for the programmer's AUX target line. The use of this line varies between the programming protocols,
  *        but is generally used for the target's /RESET line. <b>Must not be the AVR's /SS pin</b>.
  *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
  *   </tr>
  *   <tr>
  *    <td>VTARGET_ADC_CHANNEL</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>ADC channel number (on supported AVRs) to use for VTARGET level detection, if NO_VTARGET_DETECT is not defined.
  *        \n \n <i>Ignored when compiled for targets lacking an ADC.</i></td>
  *   </tr>
  *   <tr>
  *    <td>ENABLE_ISP_PROTOCOL</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to enable SPI programming protocol support.
  *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
  *   </tr>
  *   <tr>
  *    <td>ENABLE_XPROG_PROTOCOL</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to enable PDI and TPI programming protocol support.
  *        \n \n <i>Ignored when compiled for the XPLAIN board.</i></td>
  *   </tr>
  *   <tr>
  *    <td>NO_VTARGET_DETECT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to disable VTARGET sampling and reporting on AVR models with an ADC converter. This will cause the programmer
  *        to report a fixed 3.3V target voltage to the host regardless of the real target voltage. 
  *        \n \n <i>Ignored when compiled for targets lacking an ADC.</i></td>
  *   </tr>
  *   <tr>
  *    <td>VTARGET_REF_VOLTS</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Indicates the programmer AVR's AVCC reference voltage when measuring the target's supply voltage. Note that the supply
  *        voltage should never exceed the reference voltage on the programmer AVR without some form of protection to prevent damage
  *        to the ADC.
  *   </tr>
  *   <tr>
  *    <td>VTARGET_USE_INTERNAL_REF</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Selects the internal 2.56V ADC reference voltage, instead of using the AVR's VREF pin. When enabled, this option will
  *        override the VTARGET_REF_VOLTS configuration option.
  *        \n \n <i>Ignored when compiled for targets lacking an ADC, or when NO_VTARGET_DETECT is defined.</i></td>
  *   </tr>
  *   <tr>
  *    <td>VTARGET_SCALE_FACTOR</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Indicates the target's supply voltage scale factor when applied to the ADC. A simple resistive divider can be used on the
  *        ADC pin for measuring the target's supply voltage, so that voltages above the programmer AVR's AVCC reference voltage can be
  *        measured. This should be the reciprocal of the division performed - e.g. if the VTARGET voltage is halved, this should be set
  *   </tr>
  *   <tr>
  *    <td>LIBUSB_DRIVER_COMPAT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
  *        the code compatible with software such as avrdude (all platforms) that use the libUSB driver.
  *
  *   </tr>
  *   <tr>
  *    <td>RESET_TOGGLES_LIBUSB_COMPAT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to make the /RESET line of the AVR toggle between Jungo and libUSB driver compatibility modes. Each time the AVR is
  *        reset externally via the reset pin, the compatibility mode will be toggled. The compatibility mode is preserved between
  *        power cycles and is not toggled via other forms of reset such as Watchdog or Brown Out.
  *   </tr>
  *   <tr>
  *    <td>XCK_RESCUE_CLOCK_ENABLE</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to move the ISP rescue clock to the AVR's XCK pin instead of the OCR1A output pin. This is useful for existing programming
  *        hardware that does not expose the OCR1A pin of the AVR, but <i>may</i> cause some issues with PDI programming mode.</td>
  *   </tr>
  *   <tr>
  *    <td>INVERTED_ISP_MISO</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to invert the received data on the ISP MISO line. This is sometimes needed depending on the level translation hardware used,
  *        if the translator hardware inverts the received logic level.</td>
  *   </tr>
  *   <tr>
  *    <td>FIRMWARE_VERSION_MINOR</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to set the minor firmware revision nunber reported to the host on request. By default this will use a firmware version compatible
  *        with the latest Atmel IDE version, however if desired the reported minor value can be adjusted here.</td>
  *   </tr>
diff --git a/Projects/AVRISP-MKII/Config/AppConfig.h b/Projects/AVRISP-MKII/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..26198e3
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 AUX_LINE_PORT              PORTB
+       #define AUX_LINE_PIN               PINB
+       #define AUX_LINE_DDR               DDRB
+       #define AUX_LINE_MASK              (1 << 4)
+
+       #define ENABLE_ISP_PROTOCOL
+       #define ENABLE_XPROG_PROTOCOL
+
+       #define VTARGET_ADC_CHANNEL        2
+       #define VTARGET_REF_VOLTS          5
+       #define VTARGET_SCALE_FACTOR       1
+//     #define VTARGET_USE_INTERNAL_REF
+//     #define NO_VTARGET_DETECT
+//     #define XCK_RESCUE_CLOCK_ENABLE
+//     #define INVERTED_ISP_MISO
+
+//     #define LIBUSB_DRIVER_COMPAT
+//     #define RESET_TOGGLES_LIBUSB_COMPAT
+//     #define FIRMWARE_VERSION_MINOR     0x11
+
+#endif
\ No newline at end of file
diff --git a/Projects/AVRISP-MKII/Config/LUFAConfig.h b/Projects/AVRISP-MKII/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..2071bfd
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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      16
+               #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
index 4ad5263..7f65e46 100644 (file)
@@ -43,7 +43,8 @@
                #include <LUFA/Drivers/USB/USB.h>
 
                #include "../V2Protocol.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Preprocessor Checks: */
                #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))
                        #undef ENABLE_ISP_PROTOCOL
index 9124b1a..4c0ea82 100644 (file)
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Peripheral/SPI.h>
 
-               #include "../V2ProtocolParams.h"
-
+               #include "../V2Protocol.h"
+               #include "ISPProtocol.h"
+               #include "Config/AppConfig.h"
+               
        /* Preprocessor Checks: */
                #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))
                        #undef ENABLE_ISP_PROTOCOL
index a730aa2..ae69eff 100644 (file)
@@ -48,7 +48,8 @@
                #include "V2ProtocolParams.h"
                #include "ISP/ISPProtocol.h"
                #include "XPROG/XPROGProtocol.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Preprocessor Checks: */
                #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))
                        #undef ENABLE_ISP_PROTOCOL
index ab47664..53cad8d 100644 (file)
@@ -40,8 +40,6 @@
                #include <avr/io.h>
                #include <avr/eeprom.h>
 
-               #include <LUFA/Version.h>
-
                #if defined(ADC)
                        #include <LUFA/Drivers/Peripheral/ADC.h>
                #endif
@@ -49,7 +47,8 @@
                #include "V2Protocol.h"
                #include "V2ProtocolConstants.h"
                #include "ISP/ISPTarget.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Parameter privilege mask to allow the host PC to read the parameter's value. */
                #define PARAM_PRIV_READ     (1 << 0)
index c028321..696e5f5 100644 (file)
@@ -45,7 +45,8 @@
 
                #include "XPROGProtocol.h"
                #include "XPROGTarget.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Preprocessor Checks: */
                #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))
                        #undef ENABLE_ISP_PROTOCOL
index a8704df..2789d02 100644 (file)
@@ -45,7 +45,8 @@
 
                #include "XPROGProtocol.h"
                #include "XPROGTarget.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Preprocessor Checks: */
                #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))
                        #undef ENABLE_ISP_PROTOCOL
index 6056535..2d99d56 100644 (file)
@@ -46,7 +46,8 @@
                #include "../V2Protocol.h"
                #include "XMEGANVM.h"
                #include "TINYNVM.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Preprocessor Checks: */
                #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))
                        /* On the XPLAIN board, we only need PDI programming
index 09c6ee5..2df1e38 100644 (file)
@@ -45,7 +45,8 @@
 
                #include "../V2Protocol.h"
                #include "XPROGProtocol.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Preprocessor Checks: */
                #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))
                        #undef ENABLE_ISP_PROTOCOL
index a336ebd..c54f4ec 100644 (file)
@@ -120,32 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=16
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D NO_INTERNAL_SERIAL
-LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
-LUFA_OPTS += -D NO_DEVICE_SELF_POWER
-
-LUFA_OPTS += -D AUX_LINE_PORT=PORTB
-LUFA_OPTS += -D AUX_LINE_PIN=PINB
-LUFA_OPTS += -D AUX_LINE_DDR=DDRB
-LUFA_OPTS += -D AUX_LINE_MASK="(1 << 4)"
-LUFA_OPTS += -D ENABLE_ISP_PROTOCOL
-LUFA_OPTS += -D ENABLE_XPROG_PROTOCOL
-LUFA_OPTS += -D VTARGET_ADC_CHANNEL=2
-LUFA_OPTS += -D VTARGET_REF_VOLTS=5
-LUFA_OPTS += -D VTARGET_SCALE_FACTOR=1
-#LUFA_OPTS += -D VTARGET_USE_INTERNAL_REF
-#LUFA_OPTS += -D NO_VTARGET_DETECT
-#LUFA_OPTS += -D LIBUSB_DRIVER_COMPAT
-#LUFA_OPTS += -D RESET_TOGGLES_LIBUSB_COMPAT
-#LUFA_OPTS += -D XCK_RESCUE_CLOCK_ENABLE
-#LUFA_OPTS += -D INVERTED_ISP_MISO
-#LUFA_OPTS += -D FIRMWARE_VERSION_MINOR=0x11
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -197,7 +172,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
index 9b91c7c..8585fc4 100644 (file)
@@ -42,8 +42,8 @@
                #include <avr/interrupt.h>
 
                #include "Descriptors.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Misc/RingBuffer.h>
index b4fb053..3712961 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>AVR_RESET_LINE_PORT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Indicates the PORT register of the pin used to generate the target /RESET line pulse.</td>
  *   </tr>
  *   <tr>
  *    <td>AVR_RESET_LINE_DDR</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Indicates the DDR register of the pin used to generate the target /RESET line pulse.</td>
  *   </tr>
  *   <tr>
  *    <td>AVR_RESET_LINE_MASK</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Indicates the mask of the pin used to generate the target /RESET line pulse.</td>
  *   </tr>
  *   <tr>
  *    <td>AVR_RESET_PULSE_MS</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Pulse length in milliseconds for the target /RESET pulse.</td>
  *   </tr>
  *   <tr>
  *    <td>TX_RX_LED_PULSE_MS</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Pulse length in milliseconds for the activity Tx/Rx LEDs.</td>
  *   </tr>
  *   <tr>
  *    <td>PING_PONG_LED_PULSE_MS</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Pulse length in milliseconds for the enumeration LED ping-ponging between toggles.</td>
  *   </tr>
  *   <tr>
  *    <td>RECEIVE_BUFFER_FLUSH_MS</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Period between flushings of received data buffer to the attached USB host.</td>
  *   </tr>
  *  </table>
diff --git a/Projects/Benito/Config/AppConfig.h b/Projects/Benito/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..ce511eb
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 AVR_RESET_LINE_PORT            PORTD
+       #define AVR_RESET_LINE_DDR             DDRD
+       #define AVR_RESET_LINE_MASK            (1 << 4)
+
+       #define AVR_RESET_PULSE_MS             10
+
+       #define TX_RX_LED_PULSE_MS             30
+       #define PING_PONG_LED_PULSE_MS         100
+
+       #define RECEIVE_BUFFER_FLUSH_MS        10
+
+#endif
\ No newline at end of file
diff --git a/Projects/Benito/Config/LUFAConfig.h b/Projects/Benito/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..3921cd6
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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
index e481793..a1df0b4 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Endpoint address of the CDC device-to-host notification IN endpoint. */
                #define CDC_NOTIFICATION_EPADDR        (ENDPOINT_DIR_IN  | 2)
index 4b8f1e5..ff3828e 100644 (file)
@@ -120,22 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
-
-LUFA_OPTS += -D AVR_RESET_LINE_PORT="PORTD"
-LUFA_OPTS += -D AVR_RESET_LINE_DDR="DDRD"
-LUFA_OPTS += -D AVR_RESET_LINE_MASK="(1 << 4)"
-LUFA_OPTS += -D AVR_RESET_PULSE_MS=10
-LUFA_OPTS += -D TX_RX_LED_PULSE_MS=30
-LUFA_OPTS += -D PING_PONG_LED_PULSE_MS=100
-LUFA_OPTS += -D RECEIVE_BUFFER_FLUSH_MS=10
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -180,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/HIDReportViewer/Config/LUFAConfig.h b/Projects/HIDReportViewer/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..dab8831
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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
index 64f5843..79440b2 100644 (file)
@@ -45,7 +45,6 @@
                #include <stdio.h>
                #include <inttypes.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Misc/TerminalCodes.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Board/LEDs.h>
index 504c46b..519d499 100644 (file)
@@ -120,8 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -166,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/Incomplete/StandaloneProgrammer/Descriptors.c b/Projects/Incomplete/StandaloneProgrammer/Descriptors.c
deleted file mode 100644 (file)
index 61176e6..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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"
-
-#if defined(USB_CAN_BE_DEVICE)
-
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
-
-/** Device descriptor structure. This descriptor, located in FLASH 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 PROGMEM DeviceDescriptor =
-{
-       .Header                 = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device},
-
-       .USBSpecification       = VERSION_BCD(01.10),
-       .Class                  = USB_CSCP_NoDeviceClass,
-       .SubClass               = USB_CSCP_NoDeviceSubclass,
-       .Protocol               = USB_CSCP_NoDeviceProtocol,
-
-       .Endpoint0Size          = FIXED_CONTROL_ENDPOINT_SIZE,
-
-       .VendorID               = 0x03EB,
-       .ProductID              = 0x2063,
-       .ReleaseNumber          = VERSION_BCD(00.01),
-
-       .ManufacturerStrIndex   = 0x01,
-       .ProductStrIndex        = 0x02,
-       .SerialNumStrIndex      = USE_INTERNAL_SERIAL,
-
-       .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
-};
-
-/** Configuration descriptor structure. This descriptor, located in FLASH 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 PROGMEM ConfigurationDescriptor =
-{
-       .Config =
-               {
-                       .Header                 = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration},
-
-                       .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t),
-                       .TotalInterfaces        = 1,
-
-                       .ConfigurationNumber    = 1,
-                       .ConfigurationStrIndex  = NO_DESCRIPTOR,
-
-                       .ConfigAttributes       = USB_CONFIG_ATTR_RESERVED,
-
-                       .MaxPowerConsumption    = USB_CONFIG_POWER_MA(100)
-               },
-
-       .MS_Interface =
-               {
-                       .Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
-
-                       .InterfaceNumber        = 0,
-                       .AlternateSetting       = 0,
-
-                       .TotalEndpoints         = 2,
-
-                       .Class                  = MS_CSCP_MassStorageClass,
-                       .SubClass               = MS_CSCP_SCSITransparentSubclass,
-                       .Protocol               = MS_CSCP_BulkOnlyTransportProtocol,
-
-                       .InterfaceStrIndex      = NO_DESCRIPTOR
-               },
-
-       .MS_DataInEndpoint =
-               {
-                       .Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
-
-                       .EndpointAddress        = MASS_STORAGE_IN_EPADDR,
-                       .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
-                       .EndpointSize           = MASS_STORAGE_IO_EPSIZE,
-                       .PollingIntervalMS      = 0x05
-               },
-
-       .MS_DataOutEndpoint =
-               {
-                       .Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
-
-                       .EndpointAddress        = MASS_STORAGE_OUT_EPADDR,
-                       .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
-                       .EndpointSize           = MASS_STORAGE_IO_EPSIZE,
-                       .PollingIntervalMS      = 0x05
-               }
-};
-
-/** Language descriptor structure. This descriptor, located in FLASH 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 PROGMEM LanguageString =
-{
-       .Header                 = {.Size = USB_STRING_LEN(1), .Type = DTYPE_String},
-
-       .UnicodeString          = {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 PROGMEM ManufacturerString =
-{
-       .Header                 = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String},
-
-       .UnicodeString          = 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 PROGMEM ProductString =
-{
-       .Header                 = {.Size = USB_STRING_LEN(26), .Type = DTYPE_String},
-
-       .UnicodeString          = L"LUFA Standalone Programmer"
-};
-
-/** This function is called by the library when in device mode, and must be overridden (see 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:
-                       switch (DescriptorNumber)
-                       {
-                               case 0x00:
-                                       Address = &LanguageString;
-                                       Size    = pgm_read_byte(&LanguageString.Header.Size);
-                                       break;
-                               case 0x01:
-                                       Address = &ManufacturerString;
-                                       Size    = pgm_read_byte(&ManufacturerString.Header.Size);
-                                       break;
-                               case 0x02:
-                                       Address = &ProductString;
-                                       Size    = pgm_read_byte(&ProductString.Header.Size);
-                                       break;
-                       }
-
-                       break;
-       }
-
-       *DescriptorAddress = Address;
-       return Size;
-}
-
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Descriptors.h b/Projects/Incomplete/StandaloneProgrammer/Descriptors.h
deleted file mode 100644 (file)
index c0e8f46..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 <avr/pgmspace.h>
-
-               #include <LUFA/Drivers/USB/USB.h>
-
-       /* Macros: */
-               /** Endpoint address of the CDC device-to-host notification IN endpoint. */
-               #define CDC_NOTIFICATION_EPADDR        (ENDPOINT_DIR_IN  | 5)
-
-               /** Endpoint address of the CDC device-to-host data IN endpoint. */
-               #define CDC_TX_EPADDR                  (ENDPOINT_DIR_IN  | 1)
-
-               /** Endpoint address of the CDC host-to-device data OUT endpoint. */
-               #define CDC_RX_EPADDR                  (ENDPOINT_DIR_OUT | 2)
-
-               /** Size in bytes of the CDC device-to-host notification IN endpoint. */
-               #define CDC_NOTIFICATION_EPSIZE        8
-
-               /** Size in bytes of the CDC data IN and OUT endpoints. */
-               #define CDC_TXRX_EPSIZE                16
-
-               /** Endpoint address of the Mass Storage device-to-host data IN endpoint. */
-               #define MASS_STORAGE_IN_EPADDR         (ENDPOINT_DIR_IN  | 3)
-
-               /** Endpoint address of the Mass Storage host-to-device data OUT endpoint. */
-               #define MASS_STORAGE_OUT_EPADDR        (ENDPOINT_DIR_OUT | 4)
-
-               /** Size in bytes of the Mass Storage data endpoints. */
-               #define MASS_STORAGE_IO_EPSIZE         64
-
-       /* 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;
-
-                       // Mass Storage Interface
-                       USB_Descriptor_Interface_t               MS_Interface;
-                       USB_Descriptor_Endpoint_t                MS_DataInEndpoint;
-                       USB_Descriptor_Endpoint_t                MS_DataOutEndpoint;
-               } USB_Descriptor_Configuration_t;
-
-       /* 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/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c b/Projects/Incomplete/StandaloneProgrammer/DiskDevice.c
deleted file mode 100644 (file)
index 73bf554..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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.
-*/
-
-#include "DiskDevice.h"
-
-#if defined(USB_CAN_BE_DEVICE)
-/** LUFA Mass Storage Class driver interface configuration and state information. This structure is
- *  passed to all Mass Storage Class driver functions, so that multiple instances of the same class
- *  within a device can be differentiated from one another.
- */
-USB_ClassInfo_MS_Device_t DiskDevice_MS_Interface =
-       {
-               .Config =
-                       {
-                               .InterfaceNumber           = 0,
-                               .DataINEndpoint            =
-                                       {
-                                               .Address           = MASS_STORAGE_IN_EPADDR,
-                                               .Size              = MASS_STORAGE_IO_EPSIZE,
-                                               .Banks             = 1,
-                                       },
-                               .DataOUTEndpoint            =
-                                       {
-                                               .Address           = MASS_STORAGE_OUT_EPADDR,
-                                               .Size              = MASS_STORAGE_IO_EPSIZE,
-                                               .Banks             = 1,
-                                       },
-                               .TotalLUNs                 = 1,
-                       },
-       };
-
-
-void DiskDevice_USBTask(void)
-{
-       MS_Device_USBTask(&DiskDevice_MS_Interface);
-}
-
-/** Event handler for the library USB Connection event. */
-void EVENT_USB_Device_Connect(void)
-{
-       LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
-}
-
-/** Event handler for the library USB Disconnection event. */
-void EVENT_USB_Device_Disconnect(void)
-{
-       LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-}
-
-/** Event handler for the library USB Configuration Changed event. */
-void EVENT_USB_Device_ConfigurationChanged(void)
-{
-       bool ConfigSuccess = true;
-
-       ConfigSuccess &= MS_Device_ConfigureEndpoints(&DiskDevice_MS_Interface);
-
-       LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);
-}
-
-/** Event handler for the library USB Control Request reception event. */
-void EVENT_USB_Device_ControlRequest(void)
-{
-       MS_Device_ProcessControlRequest(&DiskDevice_MS_Interface);
-}
-
-/** Mass Storage class driver callback function the reception of SCSI commands from the host, which must be processed.
- *
- *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface configuration structure being referenced
- */
-bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
-{
-       bool CommandSuccess;
-
-       LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
-       CommandSuccess = SCSI_DecodeSCSICommand(MSInterfaceInfo);
-       LEDs_SetAllLEDs(LEDMASK_USB_READY);
-
-       return CommandSuccess;
-}
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/DiskDevice.h b/Projects/Incomplete/StandaloneProgrammer/DiskDevice.h
deleted file mode 100644 (file)
index 80eafbe..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 DiskDevice.c.
- */
-
-#ifndef _DISK_DEVICE_H_
-#define _DISK_DEVICE_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-
-               #include "Descriptors.h"
-               #include "StandaloneProgrammer.h"
-
-               #include <LUFA/Drivers/USB/USB.h>
-               #include <LUFA/Drivers/Board/LEDs.h>
-
-       /* Function Prototypes: */
-               #if defined(USB_CAN_BE_DEVICE)
-                       void DiskDevice_USBTask(void);
-
-                       void EVENT_USB_Device_Connect(void);
-                       void EVENT_USB_Device_Disconnect(void);
-                       void EVENT_USB_Device_ConfigurationChanged(void);
-                       void EVENT_USB_Device_ControlRequest(void);
-
-                       bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
-               #endif
-
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/DiskHost.c b/Projects/Incomplete/StandaloneProgrammer/DiskHost.c
deleted file mode 100644 (file)
index c93029c..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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.
-*/
-
-#include "DiskHost.h"
-
-#if defined(USB_CAN_BE_HOST)
-/** LUFA Mass Storage Class driver interface configuration and state information. This structure is
- *  passed to all Mass Storage Class driver functions, so that multiple instances of the same class
- *  within a device can be differentiated from one another.
- */
-USB_ClassInfo_MS_Host_t DiskHost_MS_Interface =
-       {
-               .Config =
-                       {
-                               .DataINPipe             =
-                                       {
-                                               .Address        = (PIPE_DIR_IN  | 1),
-                                               .Banks          = 1,
-                                       },
-                               .DataOUTPipe            =
-                                       {
-                                               .Address        = (PIPE_DIR_OUT | 2),
-                                               .Banks          = 1,
-                                       },
-                       },
-       };
-
-
-void DiskHost_USBTask(void)
-{
-       MS_Host_USBTask(&DiskHost_MS_Interface);
-}
-
-void EVENT_USB_Host_DeviceEnumerationComplete(void)
-{
-       LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
-
-       uint16_t ConfigDescriptorSize;
-       uint8_t  ConfigDescriptorData[512];
-
-       if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,
-                                                                                  sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)
-       {
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               return;
-       }
-
-       if (MS_Host_ConfigurePipes(&DiskHost_MS_Interface,
-                                                          ConfigDescriptorSize, ConfigDescriptorData) != MS_ENUMERROR_NoError)
-       {
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               return;
-       }
-
-       if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful)
-       {
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               return;
-       }
-
-       uint8_t MaxLUNIndex;
-       if (MS_Host_GetMaxLUN(&DiskHost_MS_Interface, &MaxLUNIndex))
-       {
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               return;
-       }
-
-       if (MS_Host_ResetMSInterface(&DiskHost_MS_Interface))
-       {
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               return;
-       }
-
-       SCSI_Request_Sense_Response_t SenseData;
-       if (MS_Host_RequestSense(&DiskHost_MS_Interface, 0, &SenseData) != 0)
-       {
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               return;
-       }
-
-       pf_mount(&DiskFATState);
-
-       LEDs_SetAllLEDs(LEDMASK_USB_READY);
-}
-
-void EVENT_USB_Host_DeviceAttached(void)
-{
-       LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
-}
-
-void EVENT_USB_Host_DeviceUnattached(void)
-{
-       LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-}
-
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/DiskHost.h b/Projects/Incomplete/StandaloneProgrammer/DiskHost.h
deleted file mode 100644 (file)
index 1f8ed21..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 DiskHost.c.
- */
-
-#ifndef _DISK_HOST_H_
-#define _DISK_HOST_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-
-               #include "Descriptors.h"
-               #include "StandaloneProgrammer.h"
-
-               #include <LUFA/Drivers/USB/USB.h>
-               #include <LUFA/Drivers/Board/LEDs.h>
-
-       /* External Variables: */
-               #if defined(USB_CAN_BE_HOST)
-               extern USB_ClassInfo_MS_Host_t DiskHost_MS_Interface;
-               #endif
-
-       /* Function Prototypes: */
-               #if defined(USB_CAN_BE_HOST)
-                       void DiskHost_USBTask(void);
-
-                       void EVENT_USB_Host_DeviceAttached(void);
-                       void EVENT_USB_Host_DeviceUnattached(void);
-               #endif
-
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/DataflashManager.c b/Projects/Incomplete/StandaloneProgrammer/Lib/DataflashManager.c
deleted file mode 100644 (file)
index efaf8b0..0000000
+++ /dev/null
@@ -1,536 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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
- *
- *  Functions to manage the physical Dataflash media, including reading and writing of
- *  blocks of data. These functions are called by the SCSI layer when data must be stored
- *  or retrieved to/from the physical storage media. If a different media is used (such
- *  as a SD card or EEPROM), functions similar to these will need to be generated.
- */
-
-#define  INCLUDE_FROM_DATAFLASHMANAGER_C
-#include "DataflashManager.h"
-
-#if defined(USB_CAN_BE_DEVICE)
-/** Writes blocks (OS blocks, not Dataflash pages) to the storage medium, the board Dataflash IC(s), from
- *  the pre-selected data OUT endpoint. This routine reads in OS sized blocks from the endpoint and writes
- *  them to the Dataflash in Dataflash page sized blocks.
- *
- *  \param[in] MSInterfaceInfo  Pointer to a structure containing a Mass Storage Class configuration and state
- *  \param[in] BlockAddress  Data block starting address for the write sequence
- *  \param[in] TotalBlocks   Number of blocks of data to write
- */
-void DataflashManager_WriteBlocks(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo,
-                                  const uint32_t BlockAddress,
-                                  uint16_t TotalBlocks)
-{
-       uint16_t CurrDFPage          = ((BlockAddress * VIRTUAL_MEMORY_BLOCK_SIZE) / DATAFLASH_PAGE_SIZE);
-       uint16_t CurrDFPageByte      = ((BlockAddress * VIRTUAL_MEMORY_BLOCK_SIZE) % DATAFLASH_PAGE_SIZE);
-       uint8_t  CurrDFPageByteDiv16 = (CurrDFPageByte >> 4);
-       bool     UsingSecondBuffer   = false;
-
-       /* Select the correct starting Dataflash IC for the block requested */
-       Dataflash_SelectChipFromPage(CurrDFPage);
-
-#if (DATAFLASH_PAGE_SIZE > VIRTUAL_MEMORY_BLOCK_SIZE)
-       /* Copy selected dataflash's current page contents to the Dataflash buffer */
-       Dataflash_SendByte(DF_CMD_MAINMEMTOBUFF1);
-       Dataflash_SendAddressBytes(CurrDFPage, 0);
-       Dataflash_WaitWhileBusy();
-#endif
-
-       /* Send the Dataflash buffer write command */
-       Dataflash_SendByte(DF_CMD_BUFF1WRITE);
-       Dataflash_SendAddressBytes(0, CurrDFPageByte);
-
-       /* Wait until endpoint is ready before continuing */
-       if (Endpoint_WaitUntilReady())
-         return;
-
-       while (TotalBlocks)
-       {
-               uint8_t BytesInBlockDiv16 = 0;
-
-               /* Write an endpoint packet sized data block to the Dataflash */
-               while (BytesInBlockDiv16 < (VIRTUAL_MEMORY_BLOCK_SIZE >> 4))
-               {
-                       /* Check if the endpoint is currently empty */
-                       if (!(Endpoint_IsReadWriteAllowed()))
-                       {
-                               /* Clear the current endpoint bank */
-                               Endpoint_ClearOUT();
-
-                               /* Wait until the host has sent another packet */
-                               if (Endpoint_WaitUntilReady())
-                                 return;
-                       }
-
-                       /* Check if end of Dataflash page reached */
-                       if (CurrDFPageByteDiv16 == (DATAFLASH_PAGE_SIZE >> 4))
-                       {
-                               /* Write the Dataflash buffer contents back to the Dataflash page */
-                               Dataflash_WaitWhileBusy();
-                               Dataflash_SendByte(UsingSecondBuffer ? DF_CMD_BUFF2TOMAINMEMWITHERASE : DF_CMD_BUFF1TOMAINMEMWITHERASE);
-                               Dataflash_SendAddressBytes(CurrDFPage, 0);
-
-                               /* Reset the Dataflash buffer counter, increment the page counter */
-                               CurrDFPageByteDiv16 = 0;
-                               CurrDFPage++;
-
-                               /* Once all the Dataflash ICs have had their first buffers filled, switch buffers to maintain throughput */
-                               if (Dataflash_GetSelectedChip() == DATAFLASH_CHIP_MASK(DATAFLASH_TOTALCHIPS))
-                                 UsingSecondBuffer = !(UsingSecondBuffer);
-
-                               /* Select the next Dataflash chip based on the new Dataflash page index */
-                               Dataflash_SelectChipFromPage(CurrDFPage);
-
-#if (DATAFLASH_PAGE_SIZE > VIRTUAL_MEMORY_BLOCK_SIZE)
-                               /* If less than one Dataflash page remaining, copy over the existing page to preserve trailing data */
-                               if ((TotalBlocks * (VIRTUAL_MEMORY_BLOCK_SIZE >> 4)) < (DATAFLASH_PAGE_SIZE >> 4))
-                               {
-                                       /* Copy selected dataflash's current page contents to the Dataflash buffer */
-                                       Dataflash_WaitWhileBusy();
-                                       Dataflash_SendByte(UsingSecondBuffer ? DF_CMD_MAINMEMTOBUFF2 : DF_CMD_MAINMEMTOBUFF1);
-                                       Dataflash_SendAddressBytes(CurrDFPage, 0);
-                                       Dataflash_WaitWhileBusy();
-                               }
-#endif
-
-                               /* Send the Dataflash buffer write command */
-                               Dataflash_SendByte(UsingSecondBuffer ? DF_CMD_BUFF2WRITE : DF_CMD_BUFF1WRITE);
-                               Dataflash_SendAddressBytes(0, 0);
-                       }
-
-                       /* Write one 16-byte chunk of data to the Dataflash */
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-                       Dataflash_SendByte(Endpoint_Read_8());
-
-                       /* Increment the Dataflash page 16 byte block counter */
-                       CurrDFPageByteDiv16++;
-
-                       /* Increment the block 16 byte block counter */
-                       BytesInBlockDiv16++;
-
-                       /* Check if the current command is being aborted by the host */
-                       if (MSInterfaceInfo->State.IsMassStoreReset)
-                         return;
-               }
-
-               /* Decrement the blocks remaining counter */
-               TotalBlocks--;
-       }
-
-       /* Write the Dataflash buffer contents back to the Dataflash page */
-       Dataflash_WaitWhileBusy();
-       Dataflash_SendByte(UsingSecondBuffer ? DF_CMD_BUFF2TOMAINMEMWITHERASE : DF_CMD_BUFF1TOMAINMEMWITHERASE);
-       Dataflash_SendAddressBytes(CurrDFPage, 0x00);
-       Dataflash_WaitWhileBusy();
-
-       /* If the endpoint is empty, clear it ready for the next packet from the host */
-       if (!(Endpoint_IsReadWriteAllowed()))
-         Endpoint_ClearOUT();
-
-       /* Deselect all Dataflash chips */
-       Dataflash_DeselectChip();
-}
-
-/** Reads blocks (OS blocks, not Dataflash pages) from the storage medium, the board Dataflash IC(s), into
- *  the pre-selected data IN endpoint. This routine reads in Dataflash page sized blocks from the Dataflash
- *  and writes them in OS sized blocks to the endpoint.
- *
- *  \param[in] MSInterfaceInfo  Pointer to a structure containing a Mass Storage Class configuration and state
- *  \param[in] BlockAddress  Data block starting address for the read sequence
- *  \param[in] TotalBlocks   Number of blocks of data to read
- */
-void DataflashManager_ReadBlocks(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo,
-                                 const uint32_t BlockAddress,
-                                 uint16_t TotalBlocks)
-{
-       uint16_t CurrDFPage          = ((BlockAddress * VIRTUAL_MEMORY_BLOCK_SIZE) / DATAFLASH_PAGE_SIZE);
-       uint16_t CurrDFPageByte      = ((BlockAddress * VIRTUAL_MEMORY_BLOCK_SIZE) % DATAFLASH_PAGE_SIZE);
-       uint8_t  CurrDFPageByteDiv16 = (CurrDFPageByte >> 4);
-
-       /* Select the correct starting Dataflash IC for the block requested */
-       Dataflash_SelectChipFromPage(CurrDFPage);
-
-       /* Send the Dataflash main memory page read command */
-       Dataflash_SendByte(DF_CMD_MAINMEMPAGEREAD);
-       Dataflash_SendAddressBytes(CurrDFPage, CurrDFPageByte);
-       Dataflash_SendByte(0x00);
-       Dataflash_SendByte(0x00);
-       Dataflash_SendByte(0x00);
-       Dataflash_SendByte(0x00);
-
-       /* Wait until endpoint is ready before continuing */
-       if (Endpoint_WaitUntilReady())
-         return;
-
-       while (TotalBlocks)
-       {
-               uint8_t BytesInBlockDiv16 = 0;
-
-               /* Write an endpoint packet sized data block to the Dataflash */
-               while (BytesInBlockDiv16 < (VIRTUAL_MEMORY_BLOCK_SIZE >> 4))
-               {
-                       /* Check if the endpoint is currently full */
-                       if (!(Endpoint_IsReadWriteAllowed()))
-                       {
-                               /* Clear the endpoint bank to send its contents to the host */
-                               Endpoint_ClearIN();
-
-                               /* Wait until the endpoint is ready for more data */
-                               if (Endpoint_WaitUntilReady())
-                                 return;
-                       }
-
-                       /* Check if end of Dataflash page reached */
-                       if (CurrDFPageByteDiv16 == (DATAFLASH_PAGE_SIZE >> 4))
-                       {
-                               /* Reset the Dataflash buffer counter, increment the page counter */
-                               CurrDFPageByteDiv16 = 0;
-                               CurrDFPage++;
-
-                               /* Select the next Dataflash chip based on the new Dataflash page index */
-                               Dataflash_SelectChipFromPage(CurrDFPage);
-
-                               /* Send the Dataflash main memory page read command */
-                               Dataflash_SendByte(DF_CMD_MAINMEMPAGEREAD);
-                               Dataflash_SendAddressBytes(CurrDFPage, 0);
-                               Dataflash_SendByte(0x00);
-                               Dataflash_SendByte(0x00);
-                               Dataflash_SendByte(0x00);
-                               Dataflash_SendByte(0x00);
-                       }
-
-                       /* Read one 16-byte chunk of data from the Dataflash */
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-                       Endpoint_Write_8(Dataflash_ReceiveByte());
-
-                       /* Increment the Dataflash page 16 byte block counter */
-                       CurrDFPageByteDiv16++;
-
-                       /* Increment the block 16 byte block counter */
-                       BytesInBlockDiv16++;
-
-                       /* Check if the current command is being aborted by the host */
-                       if (MSInterfaceInfo->State.IsMassStoreReset)
-                         return;
-               }
-
-               /* Decrement the blocks remaining counter */
-               TotalBlocks--;
-       }
-
-       /* If the endpoint is full, send its contents to the host */
-       if (!(Endpoint_IsReadWriteAllowed()))
-         Endpoint_ClearIN();
-
-       /* Deselect all Dataflash chips */
-       Dataflash_DeselectChip();
-}
-
-/** Writes blocks (OS blocks, not Dataflash pages) to the storage medium, the board Dataflash IC(s), from
- *  the given RAM buffer. This routine reads in OS sized blocks from the buffer and writes them to the
- *  Dataflash in Dataflash page sized blocks. This can be linked to FAT libraries to write files to the
- *  Dataflash.
- *
- *  \param[in] BlockAddress  Data block starting address for the write sequence
- *  \param[in] TotalBlocks   Number of blocks of data to write
- *  \param[in] BufferPtr     Pointer to the data source RAM buffer
- */
-void DataflashManager_WriteBlocks_RAM(const uint32_t BlockAddress,
-                                      uint16_t TotalBlocks,
-                                      const uint8_t* BufferPtr)
-{
-       uint16_t CurrDFPage          = ((BlockAddress * VIRTUAL_MEMORY_BLOCK_SIZE) / DATAFLASH_PAGE_SIZE);
-       uint16_t CurrDFPageByte      = ((BlockAddress * VIRTUAL_MEMORY_BLOCK_SIZE) % DATAFLASH_PAGE_SIZE);
-       uint8_t  CurrDFPageByteDiv16 = (CurrDFPageByte >> 4);
-       bool     UsingSecondBuffer   = false;
-
-       /* Select the correct starting Dataflash IC for the block requested */
-       Dataflash_SelectChipFromPage(CurrDFPage);
-
-#if (DATAFLASH_PAGE_SIZE > VIRTUAL_MEMORY_BLOCK_SIZE)
-       /* Copy selected dataflash's current page contents to the Dataflash buffer */
-       Dataflash_SendByte(DF_CMD_MAINMEMTOBUFF1);
-       Dataflash_SendAddressBytes(CurrDFPage, 0);
-       Dataflash_WaitWhileBusy();
-#endif
-
-       /* Send the Dataflash buffer write command */
-       Dataflash_SendByte(DF_CMD_BUFF1WRITE);
-       Dataflash_SendAddressBytes(0, CurrDFPageByte);
-
-       while (TotalBlocks)
-       {
-               uint8_t BytesInBlockDiv16 = 0;
-
-               /* Write an endpoint packet sized data block to the Dataflash */
-               while (BytesInBlockDiv16 < (VIRTUAL_MEMORY_BLOCK_SIZE >> 4))
-               {
-                       /* Check if end of Dataflash page reached */
-                       if (CurrDFPageByteDiv16 == (DATAFLASH_PAGE_SIZE >> 4))
-                       {
-                               /* Write the Dataflash buffer contents back to the Dataflash page */
-                               Dataflash_WaitWhileBusy();
-                               Dataflash_SendByte(UsingSecondBuffer ? DF_CMD_BUFF2TOMAINMEMWITHERASE : DF_CMD_BUFF1TOMAINMEMWITHERASE);
-                               Dataflash_SendAddressBytes(CurrDFPage, 0);
-
-                               /* Reset the Dataflash buffer counter, increment the page counter */
-                               CurrDFPageByteDiv16 = 0;
-                               CurrDFPage++;
-
-                               /* Once all the Dataflash ICs have had their first buffers filled, switch buffers to maintain throughput */
-                               if (Dataflash_GetSelectedChip() == DATAFLASH_CHIP_MASK(DATAFLASH_TOTALCHIPS))
-                                 UsingSecondBuffer = !(UsingSecondBuffer);
-
-                               /* Select the next Dataflash chip based on the new Dataflash page index */
-                               Dataflash_SelectChipFromPage(CurrDFPage);
-
-#if (DATAFLASH_PAGE_SIZE > VIRTUAL_MEMORY_BLOCK_SIZE)
-                               /* If less than one Dataflash page remaining, copy over the existing page to preserve trailing data */
-                               if ((TotalBlocks * (VIRTUAL_MEMORY_BLOCK_SIZE >> 4)) < (DATAFLASH_PAGE_SIZE >> 4))
-                               {
-                                       /* Copy selected dataflash's current page contents to the Dataflash buffer */
-                                       Dataflash_WaitWhileBusy();
-                                       Dataflash_SendByte(UsingSecondBuffer ? DF_CMD_MAINMEMTOBUFF2 : DF_CMD_MAINMEMTOBUFF1);
-                                       Dataflash_SendAddressBytes(CurrDFPage, 0);
-                                       Dataflash_WaitWhileBusy();
-                               }
-#endif
-
-                               /* Send the Dataflash buffer write command */
-                               Dataflash_ToggleSelectedChipCS();
-                               Dataflash_SendByte(UsingSecondBuffer ? DF_CMD_BUFF2WRITE : DF_CMD_BUFF1WRITE);
-                               Dataflash_SendAddressBytes(0, 0);
-                       }
-
-                       /* Write one 16-byte chunk of data to the Dataflash */
-                       for (uint8_t ByteNum = 0; ByteNum < 16; ByteNum++)
-                         Dataflash_SendByte(*(BufferPtr++));
-
-                       /* Increment the Dataflash page 16 byte block counter */
-                       CurrDFPageByteDiv16++;
-
-                       /* Increment the block 16 byte block counter */
-                       BytesInBlockDiv16++;
-               }
-
-               /* Decrement the blocks remaining counter */
-               TotalBlocks--;
-       }
-
-       /* Write the Dataflash buffer contents back to the Dataflash page */
-       Dataflash_WaitWhileBusy();
-       Dataflash_SendByte(UsingSecondBuffer ? DF_CMD_BUFF2TOMAINMEMWITHERASE : DF_CMD_BUFF1TOMAINMEMWITHERASE);
-       Dataflash_SendAddressBytes(CurrDFPage, 0x00);
-       Dataflash_WaitWhileBusy();
-
-       /* Deselect all Dataflash chips */
-       Dataflash_DeselectChip();
-}
-
-/** Reads blocks (OS blocks, not Dataflash pages) from the storage medium, the board Dataflash IC(s), into
- *  the preallocated RAM buffer. This routine reads in Dataflash page sized blocks from the Dataflash
- *  and writes them in OS sized blocks to the given buffer. This can be linked to FAT libraries to read
- *  the files stored on the Dataflash.
- *
- *  \param[in] BlockAddress  Data block starting address for the read sequence
- *  \param[in] TotalBlocks   Number of blocks of data to read
- *  \param[out] BufferPtr    Pointer to the data destination RAM buffer
- */
-void DataflashManager_ReadBlocks_RAM(const uint32_t BlockAddress,
-                                     uint16_t TotalBlocks,
-                                     uint8_t* BufferPtr)
-{
-       uint16_t CurrDFPage          = ((BlockAddress * VIRTUAL_MEMORY_BLOCK_SIZE) / DATAFLASH_PAGE_SIZE);
-       uint16_t CurrDFPageByte      = ((BlockAddress * VIRTUAL_MEMORY_BLOCK_SIZE) % DATAFLASH_PAGE_SIZE);
-       uint8_t  CurrDFPageByteDiv16 = (CurrDFPageByte >> 4);
-
-       /* Select the correct starting Dataflash IC for the block requested */
-       Dataflash_SelectChipFromPage(CurrDFPage);
-
-       /* Send the Dataflash main memory page read command */
-       Dataflash_SendByte(DF_CMD_MAINMEMPAGEREAD);
-       Dataflash_SendAddressBytes(CurrDFPage, CurrDFPageByte);
-       Dataflash_SendByte(0x00);
-       Dataflash_SendByte(0x00);
-       Dataflash_SendByte(0x00);
-       Dataflash_SendByte(0x00);
-
-       while (TotalBlocks)
-       {
-               uint8_t BytesInBlockDiv16 = 0;
-
-               /* Write an endpoint packet sized data block to the Dataflash */
-               while (BytesInBlockDiv16 < (VIRTUAL_MEMORY_BLOCK_SIZE >> 4))
-               {
-                       /* Check if end of Dataflash page reached */
-                       if (CurrDFPageByteDiv16 == (DATAFLASH_PAGE_SIZE >> 4))
-                       {
-                               /* Reset the Dataflash buffer counter, increment the page counter */
-                               CurrDFPageByteDiv16 = 0;
-                               CurrDFPage++;
-
-                               /* Select the next Dataflash chip based on the new Dataflash page index */
-                               Dataflash_SelectChipFromPage(CurrDFPage);
-
-                               /* Send the Dataflash main memory page read command */
-                               Dataflash_SendByte(DF_CMD_MAINMEMPAGEREAD);
-                               Dataflash_SendAddressBytes(CurrDFPage, 0);
-                               Dataflash_SendByte(0x00);
-                               Dataflash_SendByte(0x00);
-                               Dataflash_SendByte(0x00);
-                               Dataflash_SendByte(0x00);
-                       }
-
-                       /* Read one 16-byte chunk of data from the Dataflash */
-                       for (uint8_t ByteNum = 0; ByteNum < 16; ByteNum++)
-                         *(BufferPtr++) = Dataflash_ReceiveByte();
-
-                       /* Increment the Dataflash page 16 byte block counter */
-                       CurrDFPageByteDiv16++;
-
-                       /* Increment the block 16 byte block counter */
-                       BytesInBlockDiv16++;
-               }
-
-               /* Decrement the blocks remaining counter */
-               TotalBlocks--;
-       }
-
-       /* Deselect all Dataflash chips */
-       Dataflash_DeselectChip();
-}
-
-/** Disables the Dataflash memory write protection bits on the board Dataflash ICs, if enabled. */
-void DataflashManager_ResetDataflashProtections(void)
-{
-       /* Select first Dataflash chip, send the read status register command */
-       Dataflash_SelectChip(DATAFLASH_CHIP1);
-       Dataflash_SendByte(DF_CMD_GETSTATUS);
-
-       /* Check if sector protection is enabled */
-       if (Dataflash_ReceiveByte() & DF_STATUS_SECTORPROTECTION_ON)
-       {
-               Dataflash_ToggleSelectedChipCS();
-
-               /* Send the commands to disable sector protection */
-               Dataflash_SendByte(DF_CMD_SECTORPROTECTIONOFF[0]);
-               Dataflash_SendByte(DF_CMD_SECTORPROTECTIONOFF[1]);
-               Dataflash_SendByte(DF_CMD_SECTORPROTECTIONOFF[2]);
-               Dataflash_SendByte(DF_CMD_SECTORPROTECTIONOFF[3]);
-       }
-
-       /* Select second Dataflash chip (if present on selected board), send read status register command */
-       #if (DATAFLASH_TOTALCHIPS == 2)
-       Dataflash_SelectChip(DATAFLASH_CHIP2);
-       Dataflash_SendByte(DF_CMD_GETSTATUS);
-
-       /* Check if sector protection is enabled */
-       if (Dataflash_ReceiveByte() & DF_STATUS_SECTORPROTECTION_ON)
-       {
-               Dataflash_ToggleSelectedChipCS();
-
-               /* Send the commands to disable sector protection */
-               Dataflash_SendByte(DF_CMD_SECTORPROTECTIONOFF[0]);
-               Dataflash_SendByte(DF_CMD_SECTORPROTECTIONOFF[1]);
-               Dataflash_SendByte(DF_CMD_SECTORPROTECTIONOFF[2]);
-               Dataflash_SendByte(DF_CMD_SECTORPROTECTIONOFF[3]);
-       }
-       #endif
-
-       /* Deselect current Dataflash chip */
-       Dataflash_DeselectChip();
-}
-
-/** Performs a simple test on the attached Dataflash IC(s) to ensure that they are working.
- *
- *  \return Boolean true if all media chips are working, false otherwise
- */
-bool DataflashManager_CheckDataflashOperation(void)
-{
-       uint8_t ReturnByte;
-
-       /* Test first Dataflash IC is present and responding to commands */
-       Dataflash_SelectChip(DATAFLASH_CHIP1);
-       Dataflash_SendByte(DF_CMD_READMANUFACTURERDEVICEINFO);
-       ReturnByte = Dataflash_ReceiveByte();
-       Dataflash_DeselectChip();
-
-       /* If returned data is invalid, fail the command */
-       if (ReturnByte != DF_MANUFACTURER_ATMEL)
-         return false;
-
-       #if (DATAFLASH_TOTALCHIPS == 2)
-       /* Test second Dataflash IC is present and responding to commands */
-       Dataflash_SelectChip(DATAFLASH_CHIP2);
-       Dataflash_SendByte(DF_CMD_READMANUFACTURERDEVICEINFO);
-       ReturnByte = Dataflash_ReceiveByte();
-       Dataflash_DeselectChip();
-
-       /* If returned data is invalid, fail the command */
-       if (ReturnByte != DF_MANUFACTURER_ATMEL)
-         return false;
-       #endif
-
-       return true;
-}
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/DataflashManager.h b/Projects/Incomplete/StandaloneProgrammer/Lib/DataflashManager.h
deleted file mode 100644 (file)
index d353477..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 DataflashManager.c.
- */
-
-#ifndef _DATAFLASH_MANAGER_H_
-#define _DATAFLASH_MANAGER_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-
-               #include "../StandaloneProgrammer.h"
-               #include "../Descriptors.h"
-
-               #include <LUFA/Drivers/USB/USB.h>
-               #include <LUFA/Drivers/Board/Dataflash.h>
-
-       /* Preprocessor Checks: */
-               #if (DATAFLASH_PAGE_SIZE % 16)
-                       #error Dataflash page size must be a multiple of 16 bytes.
-               #endif
-
-       /* Defines: */
-               /** Total number of bytes of the storage medium, comprised of one or more dataflash ICs. */
-               #define VIRTUAL_MEMORY_BYTES        ((uint32_t)DATAFLASH_PAGES * DATAFLASH_PAGE_SIZE * DATAFLASH_TOTALCHIPS)
-
-               /** Block size of the device. This is kept at 512 to remain compatible with the OS despite the underlying
-                *  storage media (Dataflash) using a different native block size. Do not change this value.
-                */
-               #define VIRTUAL_MEMORY_BLOCK_SIZE   512
-
-               /** Total number of blocks of the virtual memory for reporting to the host as the device's total capacity. Do not
-                *  change this value; change VIRTUAL_MEMORY_BYTES instead to alter the media size.
-                */
-               #define VIRTUAL_MEMORY_BLOCKS       (VIRTUAL_MEMORY_BYTES / VIRTUAL_MEMORY_BLOCK_SIZE)
-
-               /** Indicates if the disk is write protected or not. */
-               #define DISK_READ_ONLY              false
-
-       /* Function Prototypes: */
-               #if defined(USB_CAN_BE_DEVICE)
-                       void DataflashManager_WriteBlocks(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo,
-                                                         const uint32_t BlockAddress,
-                                                                                         uint16_t TotalBlocks);
-                       void DataflashManager_ReadBlocks(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo,
-                                                        const uint32_t BlockAddress,
-                                                                                        uint16_t TotalBlocks);
-                       void DataflashManager_WriteBlocks_RAM(const uint32_t BlockAddress,
-                                                             uint16_t TotalBlocks,
-                                                                                                 const uint8_t* BufferPtr) ATTR_NON_NULL_PTR_ARG(3);
-                       void DataflashManager_ReadBlocks_RAM(const uint32_t BlockAddress,
-                                                            uint16_t TotalBlocks,
-                                                                                                uint8_t* BufferPtr) ATTR_NON_NULL_PTR_ARG(3);
-                       void DataflashManager_ResetDataflashProtections(void);
-                       bool DataflashManager_CheckDataflashOperation(void);
-               #endif
-
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/00readme.txt b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/00readme.txt
deleted file mode 100644 (file)
index 2681607..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-Petit FatFs Module Source Files R0.02a                (C)ChaN, 2010
-
-
-FILES
-
-  pff.h      Common include file for Petit FatFs and application module.
-  pff.c      Petit FatFs module.
-  diskio.h   Common include file for Petit FatFs and disk I/O module.
-  diskio.c   Skeleton of low level disk I/O module.
-  integer.h  Alternative type definitions for integer variables.
-
-  Low level disk I/O module is not included in this archive because the Petit
-  FatFs module is only a generic file system layer and not depend on any
-  specific storage device. You have to provide a low level disk I/O module that
-  written to control your storage device.
-
-
-
-AGREEMENTS
-
- Petit FatFs module is an open source software to implement FAT file system to
- small embedded systems. This is a free software and is opened for education,
- research and commercial developments under license policy of following trems.
-
-  Copyright (C) 2010, ChaN, all right reserved.
-
- * The Petit FatFs module is a free software and there is NO WARRANTY.
- * No restriction on use. You can use, modify and redistribute it for
-   personal, non-profit or commercial use UNDER YOUR RESPONSIBILITY.
- * Redistributions of source code must retain the above copyright notice.
-
-
-
-REVISION HISTORY
-
-  Jun 15, 2009  R0.01a  First release (Branched from FatFs R0.07b)
-  Dec 14, 2009  R0.02   Added multiple code page support.
-                        Added write funciton.
-                        Changed stream read mode interface.
-  Dec 07,'2010  R0.02a  Added some configuration options.
-                        Fixed fails to open objects with DBCS character.
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.c
deleted file mode 100644 (file)
index d953875..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*-----------------------------------------------------------------------*/
-/* Low level disk I/O module skeleton for Petit FatFs (C)ChaN, 2009      */
-/*-----------------------------------------------------------------------*/
-
-#include "diskio.h"
-
-#include <string.h>
-#include <LUFA/Drivers/USB/USB.h>
-#include "../DataflashManager.h"
-#include "../../DiskHost.h"
-
-/*-----------------------------------------------------------------------*/
-/* Initialize Disk Drive                                                 */
-/*-----------------------------------------------------------------------*/
-
-DSTATUS disk_initialize (void)
-{
-       return RES_OK;
-}
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Read Partial Sector                                                   */
-/*-----------------------------------------------------------------------*/
-
-DRESULT disk_readp (
-       BYTE* dest,                     /* Pointer to the destination object */
-       DWORD sector,           /* Sector number (LBA) */
-       WORD sofs,                      /* Offset in the sector */
-       WORD count                      /* Byte count (bit15:destination) */
-)
-{
-       DRESULT ErrorCode = RES_OK;
-       uint8_t BlockTemp[512];
-
-       if (USB_CurrentMode == USB_MODE_Host)
-       {
-               #if defined(USB_CAN_BE_HOST)
-               if (USB_HostState != HOST_STATE_Configured)
-                 ErrorCode = RES_NOTRDY;
-               else if (MS_Host_ReadDeviceBlocks(&DiskHost_MS_Interface, 0, sector, 1, 512, BlockTemp))
-                 ErrorCode = RES_ERROR;
-               #endif
-       }
-       else
-       {
-               #if defined(USB_CAN_BE_DEVICE)
-               DataflashManager_ReadBlocks_RAM(sector, 1, BlockTemp);
-               #endif
-       }
-
-       memcpy(dest, &BlockTemp[sofs], count);
-
-       return ErrorCode;
-}
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.h b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/diskio.h
deleted file mode 100644 (file)
index 239d459..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*-----------------------------------------------------------------------
-/  PFF - Low level disk interface module include file    (C)ChaN, 2010
-/-----------------------------------------------------------------------*/
-
-#ifndef _DISKIO
-
-#include "integer.h"
-
-
-/* Status of Disk Functions */
-typedef BYTE   DSTATUS;
-
-
-/* Results of Disk Functions */
-typedef enum {
-       RES_OK = 0,             /* 0: Function succeeded */
-       RES_ERROR,              /* 1: Disk error */
-       RES_NOTRDY,             /* 2: Not ready */
-       RES_PARERR              /* 3: Invalid parameter */
-} DRESULT;
-
-
-/*---------------------------------------*/
-/* Prototypes for disk control functions */
-
-DSTATUS disk_initialize (void);
-DRESULT disk_readp (BYTE*, DWORD, WORD, WORD);
-
-#define STA_NOINIT             0x01    /* Drive not initialized */
-#define STA_NODISK             0x02    /* No medium in the drive */
-
-#define _DISKIO
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/integer.h b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/integer.h
deleted file mode 100644 (file)
index 5408fe6..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*-------------------------------------------*/
-/* Integer type definitions for FatFs module */
-/*-------------------------------------------*/
-
-#ifndef _INTEGER
-#define _INTEGER
-
-#ifdef _WIN32  /* FatFs development platform */
-
-#include <windows.h>
-#include <tchar.h>
-
-#else                  /* Embedded platform */
-
-/* These types must be 16-bit, 32-bit or larger integer */
-typedef int                            INT;
-typedef unsigned int   UINT;
-
-/* These types must be 8-bit integer */
-typedef char                   CHAR;
-typedef unsigned char  UCHAR;
-typedef unsigned char  BYTE;
-
-/* These types must be 16-bit integer */
-typedef short                  SHORT;
-typedef unsigned short USHORT;
-typedef unsigned short WORD;
-typedef unsigned short WCHAR;
-
-/* These types must be 32-bit integer */
-typedef long                   LONG;
-typedef unsigned long  ULONG;
-typedef unsigned long  DWORD;
-
-#endif
-
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.c b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.c
deleted file mode 100644 (file)
index 29e44f6..0000000
+++ /dev/null
@@ -1,1114 +0,0 @@
-/*----------------------------------------------------------------------------/
-/  Petit FatFs - FAT file system module  R0.02a                (C)ChaN, 2010
-/-----------------------------------------------------------------------------/
-/ Petit FatFs module is an open source software to implement FAT file system to
-/ small embedded systems. This is a free software and is opened for education,
-/ research and commercial developments under license policy of following trems.
-/
-/  Copyright (C) 2010, ChaN, all right reserved.
-/
-/ * The Petit FatFs module is a free software and there is NO WARRANTY.
-/ * No restriction on use. You can use, modify and redistribute it for
-/   personal, non-profit or commercial use UNDER YOUR RESPONSIBILITY.
-/ * Redistributions of source code must retain the above copyright notice.
-/
-/-----------------------------------------------------------------------------/
-/ Jun 15,'09  R0.01a  First release. (Branched from FatFs R0.07b.)
-/
-/ Dec 14,'09  R0.02   Added multiple code page support.
-/                     Added write funciton.
-/                     Changed stream read mode interface.
-/ Dec 07,'10  R0.02a  Added some configuration options.
-/                     Fixed fails to open objects with DBCS character.
-/----------------------------------------------------------------------------*/
-
-#include "pff.h"               /* Petit FatFs configurations and declarations */
-#include "diskio.h"            /* Declarations of low level disk I/O functions */
-
-
-
-/*--------------------------------------------------------------------------
-
-   Module Private Definitions
-
----------------------------------------------------------------------------*/
-
-
-#if _FS_FAT32
-#define LD_CLUST(dir)  (((DWORD)LD_WORD(dir+DIR_FstClusHI)<<16) | LD_WORD(dir+DIR_FstClusLO))
-#else
-#define LD_CLUST(dir)  LD_WORD(dir+DIR_FstClusLO)
-#endif
-
-
-/*--------------------------------------------------------*/
-/* DBCS code ranges and SBCS extend char conversion table */
-
-#if _CODE_PAGE == 932  /* Japanese Shift-JIS */
-#define _DF1S  0x81    /* DBC 1st byte range 1 start */
-#define _DF1E  0x9F    /* DBC 1st byte range 1 end */
-#define _DF2S  0xE0    /* DBC 1st byte range 2 start */
-#define _DF2E  0xFC    /* DBC 1st byte range 2 end */
-#define _DS1S  0x40    /* DBC 2nd byte range 1 start */
-#define _DS1E  0x7E    /* DBC 2nd byte range 1 end */
-#define _DS2S  0x80    /* DBC 2nd byte range 2 start */
-#define _DS2E  0xFC    /* DBC 2nd byte range 2 end */
-
-#elif _CODE_PAGE == 936        /* Simplified Chinese GBK */
-#define _DF1S  0x81
-#define _DF1E  0xFE
-#define _DS1S  0x40
-#define _DS1E  0x7E
-#define _DS2S  0x80
-#define _DS2E  0xFE
-
-#elif _CODE_PAGE == 949        /* Korean */
-#define _DF1S  0x81
-#define _DF1E  0xFE
-#define _DS1S  0x41
-#define _DS1E  0x5A
-#define _DS2S  0x61
-#define _DS2E  0x7A
-#define _DS3S  0x81
-#define _DS3E  0xFE
-
-#elif _CODE_PAGE == 950        /* Traditional Chinese Big5 */
-#define _DF1S  0x81
-#define _DF1E  0xFE
-#define _DS1S  0x40
-#define _DS1E  0x7E
-#define _DS2S  0xA1
-#define _DS2E  0xFE
-
-#elif _CODE_PAGE == 437        /* U.S. (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F,0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
-                               0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 720        /* Arabic (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x45,0x41,0x84,0x41,0x86,0x43,0x45,0x45,0x45,0x49,0x49,0x8D,0x8E,0x8F,0x90,0x92,0x92,0x93,0x94,0x95,0x49,0x49,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
-                               0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 737        /* Greek (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x92,0x92,0x93,0x94,0x95,0x96,0x97,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, \
-                               0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0xAA,0x92,0x93,0x94,0x95,0x96,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0x97,0xEA,0xEB,0xEC,0xE4,0xED,0xEE,0xE7,0xE8,0xF1,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 775        /* Baltic (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x9A,0x91,0xA0,0x8E,0x95,0x8F,0x80,0xAD,0xED,0x8A,0x8A,0xA1,0x8D,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0x95,0x96,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \
-                               0xA0,0xA1,0xE0,0xA3,0xA3,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xA5,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE3,0xE8,0xE8,0xEA,0xEA,0xEE,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 850        /* Multilingual Latin 1 (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0xDE,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x59,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \
-                               0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE7,0xE9,0xEA,0xEB,0xED,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 852        /* Latin 2 (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F,0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0x9F, \
-                               0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xB8,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBD,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF}
-
-#elif _CODE_PAGE == 855        /* Cyrillic (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x81,0x81,0x83,0x83,0x85,0x85,0x87,0x87,0x89,0x89,0x8B,0x8B,0x8D,0x8D,0x8F,0x8F,0x91,0x91,0x93,0x93,0x95,0x95,0x97,0x97,0x99,0x99,0x9B,0x9B,0x9D,0x9D,0x9F,0x9F, \
-                               0xA1,0xA1,0xA3,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAB,0xAB,0xAD,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB6,0xB6,0xB8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xDD,0xD9,0xDA,0xDB,0xDC,0xDD,0xE0,0xDF, \
-                               0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,0xEF,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 857        /* Turkish (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0x98,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x98,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9E, \
-                               0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA6,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xDE,0x59,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 858        /* Multilingual Latin 1 + Euro (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0xDE,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x59,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \
-                               0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD1,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE7,0xE9,0xEA,0xEB,0xED,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 862        /* Hebrew (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
-                               0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 866        /* Russian (OEM) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
-                               0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0x90,0x91,0x92,0x93,0x9d,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 874        /* Thai (OEM, Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
-                               0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 1250 /* Central Europe (Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, \
-                               0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF}
-
-#elif _CODE_PAGE == 1251 /* Cyrillic (Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x82,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, \
-                               0xA0,0xA2,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF}
-
-#elif _CODE_PAGE == 1252 /* Latin 1 (Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xAd,0x9B,0x8C,0x9D,0xAE,0x9F, \
-                               0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0x9F}
-
-#elif _CODE_PAGE == 1253 /* Greek (Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
-                               0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xA2,0xB8,0xB9,0xBA, \
-                               0xE0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xF2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xFB,0xBC,0xFD,0xBF,0xFF}
-
-#elif _CODE_PAGE == 1254 /* Turkish (Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x9E,0x9F, \
-                               0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0x9F}
-
-#elif _CODE_PAGE == 1255 /* Hebrew (Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
-                               0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 1256 /* Arabic (Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x8C,0x9D,0x9E,0x9F, \
-                               0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0x41,0xE1,0x41,0xE3,0xE4,0xE5,0xE6,0x43,0x45,0x45,0x45,0x45,0xEC,0xED,0x49,0x49,0xF0,0xF1,0xF2,0xF3,0x4F,0xF5,0xF6,0xF7,0xF8,0x55,0xFA,0x55,0x55,0xFD,0xFE,0xFF}
-
-#elif _CODE_PAGE == 1257 /* Baltic (Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \
-                               0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF}
-
-#elif _CODE_PAGE == 1258 /* Vietnam (OEM, Windows) */
-#define _DF1S  0
-#define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0xAC,0x9D,0x9E,0x9F, \
-                               0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \
-                               0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xEC,0xCD,0xCE,0xCF,0xD0,0xD1,0xF2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xFE,0x9F}
-
-#elif _CODE_PAGE == 1  /* ASCII (for only non-LFN cfg) */
-#define _DF1S  0
-
-#else
-#error Unknown code page
-
-#endif
-
-
-
-/* Character code support macros */
-
-#define IsUpper(c)     (((c)>='A')&&((c)<='Z'))
-#define IsLower(c)     (((c)>='a')&&((c)<='z'))
-
-#if _DF1S              /* DBCS configuration */
-
-#ifdef _DF2S   /* Two 1st byte areas */
-#define IsDBCS1(c)     (((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E) || ((BYTE)(c) >= _DF2S && (BYTE)(c) <= _DF2E))
-#else                  /* One 1st byte area */
-#define IsDBCS1(c)     ((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E)
-#endif
-
-#ifdef _DS3S   /* Three 2nd byte areas */
-#define IsDBCS2(c)     (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c) <= _DS2E) || ((BYTE)(c) >= _DS3S && (BYTE)(c) <= _DS3E))
-#else                  /* Two 2nd byte areas */
-#define IsDBCS2(c)     (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c) <= _DS2E))
-#endif
-
-#else                  /* SBCS configuration */
-
-#define IsDBCS1(c)     0
-#define IsDBCS2(c)     0
-
-#endif /* _DF1S */
-
-
-/* FatFs refers the members in the FAT structures with byte offset instead
-/ of structure member because there are incompatibility of the packing option
-/ between various compilers. */
-
-#define BS_jmpBoot                     0
-#define BS_OEMName                     3
-#define BPB_BytsPerSec         11
-#define BPB_SecPerClus         13
-#define BPB_RsvdSecCnt         14
-#define BPB_NumFATs                    16
-#define BPB_RootEntCnt         17
-#define BPB_TotSec16           19
-#define BPB_Media                      21
-#define BPB_FATSz16                    22
-#define BPB_SecPerTrk          24
-#define BPB_NumHeads           26
-#define BPB_HiddSec                    28
-#define BPB_TotSec32           32
-#define BS_55AA                                510
-
-#define BS_DrvNum                      36
-#define BS_BootSig                     38
-#define BS_VolID                       39
-#define BS_VolLab                      43
-#define BS_FilSysType          54
-
-#define BPB_FATSz32                    36
-#define BPB_ExtFlags           40
-#define BPB_FSVer                      42
-#define BPB_RootClus           44
-#define BPB_FSInfo                     48
-#define BPB_BkBootSec          50
-#define BS_DrvNum32                    64
-#define BS_BootSig32           66
-#define BS_VolID32                     67
-#define BS_VolLab32                    71
-#define BS_FilSysType32                82
-
-#define MBR_Table                      446
-
-#define        DIR_Name                        0
-#define        DIR_Attr                        11
-#define        DIR_NTres                       12
-#define        DIR_CrtTime                     14
-#define        DIR_CrtDate                     16
-#define        DIR_FstClusHI           20
-#define        DIR_WrtTime                     22
-#define        DIR_WrtDate                     24
-#define        DIR_FstClusLO           26
-#define        DIR_FileSize            28
-
-
-
-/*--------------------------------------------------------------------------
-
-   Private Functions
-
----------------------------------------------------------------------------*/
-
-
-static
-FATFS *FatFs;  /* Pointer to the file system object (logical drive) */
-
-
-/* Fill memory */
-static
-void mem_set (void* dst, int val, int cnt) {
-       char *d = (char*)dst;
-       while (cnt--) *d++ = (char)val;
-}
-
-/* Compare memory to memory */
-static
-int mem_cmp (const void* dst, const void* src, int cnt) {
-       const char *d = (const char *)dst, *s = (const char *)src;
-       int r = 0;
-       while (cnt-- && (r = *d++ - *s++) == 0) ;
-       return r;
-}
-
-
-
-/*-----------------------------------------------------------------------*/
-/* FAT access - Read value of a FAT entry                                */
-/*-----------------------------------------------------------------------*/
-
-static
-CLUST get_fat (        /* 1:IO error, Else:Cluster status */
-       CLUST clst      /* Cluster# to get the link information */
-)
-{
-       WORD wc, bc, ofs;
-       BYTE buf[4];
-       FATFS *fs = FatFs;
-
-
-       if (clst < 2 || clst >= fs->n_fatent)   /* Range check */
-               return 1;
-
-       switch (fs->fs_type) {
-#if _FS_FAT12
-       case FS_FAT12 :
-               bc = (WORD)clst; bc += bc / 2;
-               ofs = bc % 512; bc /= 512;
-               if (ofs != 511) {
-                       if (disk_readp(buf, fs->fatbase + bc, ofs, 2)) break;
-               } else {
-                       if (disk_readp(buf, fs->fatbase + bc, 511, 1)) break;
-                       if (disk_readp(buf+1, fs->fatbase + bc + 1, 0, 1)) break;
-               }
-               wc = LD_WORD(buf);
-               return (clst & 1) ? (wc >> 4) : (wc & 0xFFF);
-#endif
-       case FS_FAT16 :
-               if (disk_readp(buf, fs->fatbase + clst / 256, (WORD)(((WORD)clst % 256) * 2), 2)) break;
-               return LD_WORD(buf);
-#if _FS_FAT32
-       case FS_FAT32 :
-               if (disk_readp(buf, fs->fatbase + clst / 128, (WORD)(((WORD)clst % 128) * 4), 4)) break;
-               return LD_DWORD(buf) & 0x0FFFFFFF;
-#endif
-       }
-
-       return 1;       /* An error occured at the disk I/O layer */
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Get sector# from cluster#                                             */
-/*-----------------------------------------------------------------------*/
-
-static
-DWORD clust2sect (     /* !=0: Sector number, 0: Failed - invalid cluster# */
-       CLUST clst              /* Cluster# to be converted */
-)
-{
-       FATFS *fs = FatFs;
-
-
-       clst -= 2;
-       if (clst >= (fs->n_fatent - 2)) return 0;               /* Invalid cluster# */
-       return (DWORD)clst * fs->csize + fs->database;
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Directory handling - Rewind directory index                           */
-/*-----------------------------------------------------------------------*/
-
-static
-FRESULT dir_rewind (
-       DIR *dj                 /* Pointer to directory object */
-)
-{
-       CLUST clst;
-       FATFS *fs = FatFs;
-
-
-       dj->index = 0;
-       clst = dj->sclust;
-       if (clst == 1 || clst >= fs->n_fatent)  /* Check start cluster range */
-               return FR_DISK_ERR;
-       if (_FS_FAT32 && !clst && fs->fs_type == FS_FAT32)      /* Replace cluster# 0 with root cluster# if in FAT32 */
-               clst = (CLUST)fs->dirbase;
-       dj->clust = clst;                                               /* Current cluster */
-       dj->sect = clst ? clust2sect(clst) : fs->dirbase;       /* Current sector */
-
-       return FR_OK;   /* Seek succeeded */
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Directory handling - Move directory index next                        */
-/*-----------------------------------------------------------------------*/
-
-static
-FRESULT dir_next (     /* FR_OK:Succeeded, FR_NO_FILE:End of table */
-       DIR *dj                 /* Pointer to directory object */
-)
-{
-       CLUST clst;
-       WORD i;
-       FATFS *fs = FatFs;
-
-
-       i = dj->index + 1;
-       if (!i || !dj->sect)    /* Report EOT when index has reached 65535 */
-               return FR_NO_FILE;
-
-       if (!(i % 16)) {                /* Sector changed? */
-               dj->sect++;                     /* Next sector */
-
-               if (dj->clust == 0) {   /* Static table */
-                       if (i >= fs->n_rootdir) /* Report EOT when end of table */
-                               return FR_NO_FILE;
-               }
-               else {                                  /* Dynamic table */
-                       if (((i / 16) & (fs->csize-1)) == 0) {  /* Cluster changed? */
-                               clst = get_fat(dj->clust);              /* Get next cluster */
-                               if (clst <= 1) return FR_DISK_ERR;
-                               if (clst >= fs->n_fatent)               /* When it reached end of dynamic table */
-                                       return FR_NO_FILE;                      /* Report EOT */
-                               dj->clust = clst;                               /* Initialize data for new cluster */
-                               dj->sect = clust2sect(clst);
-                       }
-               }
-       }
-
-       dj->index = i;
-
-       return FR_OK;
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Directory handling - Find an object in the directory                  */
-/*-----------------------------------------------------------------------*/
-
-static
-FRESULT dir_find (
-       DIR *dj,                /* Pointer to the directory object linked to the file name */
-       BYTE *dir               /* 32-byte working buffer */
-)
-{
-       FRESULT res;
-       BYTE c;
-
-
-       res = dir_rewind(dj);                   /* Rewind directory object */
-       if (res != FR_OK) return res;
-
-       do {
-               res = disk_readp(dir, dj->sect, (WORD)((dj->index % 16) * 32), 32)      /* Read an entry */
-                       ? FR_DISK_ERR : FR_OK;
-               if (res != FR_OK) break;
-               c = dir[DIR_Name];      /* First character */
-               if (c == 0) { res = FR_NO_FILE; break; }        /* Reached to end of table */
-               if (!(dir[DIR_Attr] & AM_VOL) && !mem_cmp(dir, dj->fn, 11)) /* Is it a valid entry? */
-                       break;
-               res = dir_next(dj);                                     /* Next entry */
-       } while (res == FR_OK);
-
-       return res;
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Read an object from the directory                                     */
-/*-----------------------------------------------------------------------*/
-#if _USE_DIR
-static
-FRESULT dir_read (
-       DIR *dj,                /* Pointer to the directory object to store read object name */
-       BYTE *dir               /* 32-byte working buffer */
-)
-{
-       FRESULT res;
-       BYTE a, c;
-
-
-       res = FR_NO_FILE;
-       while (dj->sect) {
-               res = disk_readp(dir, dj->sect, (WORD)((dj->index % 16) * 32), 32)      /* Read an entry */
-                       ? FR_DISK_ERR : FR_OK;
-               if (res != FR_OK) break;
-               c = dir[DIR_Name];
-               if (c == 0) { res = FR_NO_FILE; break; }        /* Reached to end of table */
-               a = dir[DIR_Attr] & AM_MASK;
-               if (c != 0xE5 && c != '.' && !(a & AM_VOL))     /* Is it a valid entry? */
-                       break;
-               res = dir_next(dj);                     /* Next entry */
-               if (res != FR_OK) break;
-       }
-
-       if (res != FR_OK) dj->sect = 0;
-
-       return res;
-}
-#endif
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Pick a segment and create the object name in directory form           */
-/*-----------------------------------------------------------------------*/
-
-#ifdef _EXCVT
-       static const BYTE cvt[] = _EXCVT;
-#endif
-
-static
-FRESULT create_name (
-       DIR *dj,                        /* Pointer to the directory object */
-       const char **path       /* Pointer to pointer to the segment in the path string */
-)
-{
-       BYTE c, d, ni, si, i, *sfn;
-       const char *p;
-
-       /* Create file name in directory form */
-       sfn = dj->fn;
-       mem_set(sfn, ' ', 11);
-       si = i = 0; ni = 8;
-       p = *path;
-       for (;;) {
-               c = p[si++];
-               if (c <= ' ' || c == '/') break;        /* Break on end of segment */
-               if (c == '.' || i >= ni) {
-                       if (ni != 8 || c != '.') break;
-                       i = 8; ni = 11;
-                       continue;
-               }
-#ifdef _EXCVT
-               if (c >= 0x80)                                  /* To upper extended char (SBCS) */
-                       c = cvt[c - 0x80];
-#endif
-               if (IsDBCS1(c) && i < ni - 1) { /* DBC 1st byte? */
-                       d = p[si++];                            /* Get 2nd byte */
-                       sfn[i++] = c;
-                       sfn[i++] = d;
-               } else {                                                /* Single byte code */
-                       if (IsLower(c)) c -= 0x20;      /* toupper */
-                       sfn[i++] = c;
-               }
-       }
-       *path = &p[si];                                         /* Rerurn pointer to the next segment */
-
-       sfn[11] = (c <= ' ') ? 1 : 0;           /* Set last segment flag if end of path */
-
-       return FR_OK;
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Get file information from directory entry                             */
-/*-----------------------------------------------------------------------*/
-#if _USE_DIR
-static
-void get_fileinfo (            /* No return code */
-       DIR *dj,                        /* Pointer to the directory object */
-       BYTE *dir,                      /* 32-byte working buffer */
-       FILINFO *fno            /* Pointer to store the file information */
-)
-{
-       BYTE i, c;
-       char *p;
-
-
-       p = fno->fname;
-       if (dj->sect) {
-               for (i = 0; i < 8; i++) {       /* Copy file name body */
-                       c = dir[i];
-                       if (c == ' ') break;
-                       if (c == 0x05) c = 0xE5;
-                       *p++ = c;
-               }
-               if (dir[8] != ' ') {            /* Copy file name extension */
-                       *p++ = '.';
-                       for (i = 8; i < 11; i++) {
-                               c = dir[i];
-                               if (c == ' ') break;
-                               *p++ = c;
-                       }
-               }
-               fno->fattrib = dir[DIR_Attr];                           /* Attribute */
-               fno->fsize = LD_DWORD(dir+DIR_FileSize);        /* Size */
-               fno->fdate = LD_WORD(dir+DIR_WrtDate);          /* Date */
-               fno->ftime = LD_WORD(dir+DIR_WrtTime);          /* Time */
-       }
-       *p = 0;
-}
-#endif /* _USE_DIR */
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Follow a file path                                                    */
-/*-----------------------------------------------------------------------*/
-
-static
-FRESULT follow_path (  /* FR_OK(0): successful, !=0: error code */
-       DIR *dj,                        /* Directory object to return last directory and found object */
-       BYTE *dir,                      /* 32-byte working buffer */
-       const char *path        /* Full-path string to find a file or directory */
-)
-{
-       FRESULT res;
-
-
-       while (*path == ' ') path++;            /* Skip leading spaces */
-       if (*path == '/') path++;                       /* Strip heading separator */
-       dj->sclust = 0;                                         /* Set start directory (always root dir) */
-
-       if ((BYTE)*path <= ' ') {                       /* Null path means the root directory */
-               res = dir_rewind(dj);
-               dir[0] = 0;
-
-       } else {                                                        /* Follow path */
-               for (;;) {
-                       res = create_name(dj, &path);   /* Get a segment */
-                       if (res != FR_OK) break;
-                       res = dir_find(dj, dir);                /* Find it */
-                       if (res != FR_OK) {                             /* Could not find the object */
-                               if (res == FR_NO_FILE && !*(dj->fn+11))
-                                       res = FR_NO_PATH;
-                               break;
-                       }
-                       if (*(dj->fn+11)) break;                /* Last segment match. Function completed. */
-                       if (!(dir[DIR_Attr] & AM_DIR)) { /* Cannot follow because it is a file */
-                               res = FR_NO_PATH; break;
-                       }
-                       dj->sclust = LD_CLUST(dir);
-               }
-       }
-
-       return res;
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Check a sector if it is an FAT boot record                            */
-/*-----------------------------------------------------------------------*/
-
-static
-BYTE check_fs (        /* 0:The FAT boot record, 1:Valid boot record but not an FAT, 2:Not a boot record, 3:Error */
-       BYTE *buf,      /* Working buffer */
-       DWORD sect      /* Sector# (lba) to check if it is an FAT boot record or not */
-)
-{
-       if (disk_readp(buf, sect, 510, 2))              /* Read the boot sector */
-               return 3;
-       if (LD_WORD(buf) != 0xAA55)                             /* Check record signature */
-               return 2;
-
-       if (!disk_readp(buf, sect, BS_FilSysType, 2) && LD_WORD(buf) == 0x4146) /* Check FAT12/16 */
-               return 0;
-       if (_FS_FAT32 && !disk_readp(buf, sect, BS_FilSysType32, 2) && LD_WORD(buf) == 0x4146)  /* Check FAT32 */
-               return 0;
-       return 1;
-}
-
-
-
-
-/*--------------------------------------------------------------------------
-
-   Public Functions
-
---------------------------------------------------------------------------*/
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Mount/Unmount a Locical Drive                                         */
-/*-----------------------------------------------------------------------*/
-
-FRESULT pf_mount (
-       FATFS *fs               /* Pointer to new file system object (NULL: Unmount) */
-)
-{
-       BYTE fmt, buf[36];
-       DWORD bsect, fsize, tsect, mclst;
-
-
-       FatFs = 0;
-       if (!fs) return FR_OK;                          /* Unregister fs object */
-
-       if (disk_initialize() & STA_NOINIT)     /* Check if the drive is ready or not */
-               return FR_NOT_READY;
-
-       /* Search FAT partition on the drive */
-       bsect = 0;
-       fmt = check_fs(buf, bsect);                     /* Check sector 0 as an SFD format */
-       if (fmt == 1) {                                         /* Not an FAT boot record, it may be FDISK format */
-               /* Check a partition listed in top of the partition table */
-               if (disk_readp(buf, bsect, MBR_Table, 16)) {    /* 1st partition entry */
-                       fmt = 3;
-               } else {
-                       if (buf[4]) {                                   /* Is the partition existing? */
-                               bsect = LD_DWORD(&buf[8]);      /* Partition offset in LBA */
-                               fmt = check_fs(buf, bsect);     /* Check the partition */
-                       }
-               }
-       }
-       if (fmt == 3) return FR_DISK_ERR;
-       if (fmt) return FR_NO_FILESYSTEM;       /* No valid FAT patition is found */
-
-       /* Initialize the file system object */
-       if (disk_readp(buf, bsect, 13, sizeof(buf))) return FR_DISK_ERR;
-
-       fsize = LD_WORD(buf+BPB_FATSz16-13);                            /* Number of sectors per FAT */
-       if (!fsize) fsize = LD_DWORD(buf+BPB_FATSz32-13);
-
-       fsize *= buf[BPB_NumFATs-13];                                           /* Number of sectors in FAT area */
-       fs->fatbase = bsect + LD_WORD(buf+BPB_RsvdSecCnt-13); /* FAT start sector (lba) */
-       fs->csize = buf[BPB_SecPerClus-13];                                     /* Number of sectors per cluster */
-       fs->n_rootdir = LD_WORD(buf+BPB_RootEntCnt-13);         /* Nmuber of root directory entries */
-       tsect = LD_WORD(buf+BPB_TotSec16-13);                           /* Number of sectors on the file system */
-       if (!tsect) tsect = LD_DWORD(buf+BPB_TotSec32-13);
-       mclst = (tsect                                          /* Last cluster# + 1 */
-               - LD_WORD(buf+BPB_RsvdSecCnt-13) - fsize - fs->n_rootdir / 16
-               ) / fs->csize + 2;
-       fs->n_fatent = (CLUST)mclst;
-
-       fmt = FS_FAT16;                                                 /* Determine the FAT sub type */
-       if (mclst < 0xFF7)                                              /* Number of clusters < 0xFF5 */
-#if _FS_FAT12
-               fmt = FS_FAT12;
-#else
-               return FR_NO_FILESYSTEM;
-#endif
-       if (mclst >= 0xFFF7)                                    /* Number of clusters >= 0xFFF5 */
-#if _FS_FAT32
-               fmt = FS_FAT32;
-#else
-               return FR_NO_FILESYSTEM;
-#endif
-
-       fs->fs_type = fmt;              /* FAT sub-type */
-       if (_FS_FAT32 && fmt == FS_FAT32)
-               fs->dirbase = LD_DWORD(buf+(BPB_RootClus-13));  /* Root directory start cluster */
-       else
-               fs->dirbase = fs->fatbase + fsize;                              /* Root directory start sector (lba) */
-       fs->database = fs->fatbase + fsize + fs->n_rootdir / 16;        /* Data start sector (lba) */
-
-       fs->flag = 0;
-       FatFs = fs;
-
-       return FR_OK;
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Open or Create a File                                                 */
-/*-----------------------------------------------------------------------*/
-
-FRESULT pf_open (
-       const char *path        /* Pointer to the file name */
-)
-{
-       FRESULT res;
-       DIR dj;
-       BYTE sp[12], dir[32];
-       FATFS *fs = FatFs;
-
-
-       if (!fs)                                                /* Check file system */
-               return FR_NOT_ENABLED;
-
-       fs->flag = 0;
-       dj.fn = sp;
-       res = follow_path(&dj, dir, path);      /* Follow the file path */
-       if (res != FR_OK) return res;           /* Follow failed */
-       if (!dir[0] || (dir[DIR_Attr] & AM_DIR))        /* It is a directory */
-               return FR_NO_FILE;
-
-       fs->org_clust = LD_CLUST(dir);                  /* File start cluster */
-       fs->fsize = LD_DWORD(dir+DIR_FileSize); /* File size */
-       fs->fptr = 0;                                           /* File pointer */
-       fs->flag = FA_OPENED;
-
-       return FR_OK;
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Read File                                                             */
-/*-----------------------------------------------------------------------*/
-#if _USE_READ
-
-FRESULT pf_read (
-       void* buff,             /* Pointer to the read buffer (NULL:Forward data to the stream)*/
-       WORD btr,               /* Number of bytes to read */
-       WORD* br                /* Pointer to number of bytes read */
-)
-{
-       DRESULT dr;
-       CLUST clst;
-       DWORD sect, remain;
-       WORD rcnt;
-       BYTE cs, *rbuff = buff;
-       FATFS *fs = FatFs;
-
-
-       *br = 0;
-       if (!fs) return FR_NOT_ENABLED;         /* Check file system */
-       if (!(fs->flag & FA_OPENED))            /* Check if opened */
-               return FR_NOT_OPENED;
-
-       remain = fs->fsize - fs->fptr;
-       if (btr > remain) btr = (WORD)remain;                   /* Truncate btr by remaining bytes */
-
-       while (btr)     {                                                                       /* Repeat until all data transferred */
-               if ((fs->fptr % 512) == 0) {                            /* On the sector boundary? */
-                       cs = (BYTE)(fs->fptr / 512 & (fs->csize - 1));  /* Sector offset in the cluster */
-                       if (!cs) {                                                              /* On the cluster boundary? */
-                               clst = (fs->fptr == 0) ?                        /* On the top of the file? */
-                                       fs->org_clust : get_fat(fs->curr_clust);
-                               if (clst <= 1) goto fr_abort;
-                               fs->curr_clust = clst;                          /* Update current cluster */
-                       }
-                       sect = clust2sect(fs->curr_clust);              /* Get current sector */
-                       if (!sect) goto fr_abort;
-                       fs->dsect = sect + cs;
-               }
-               rcnt = (WORD)(512 - (fs->fptr % 512));          /* Get partial sector data from sector buffer */
-               if (rcnt > btr) rcnt = btr;
-               dr = disk_readp(!buff ? 0 : rbuff, fs->dsect, (WORD)(fs->fptr % 512), rcnt);
-               if (dr) goto fr_abort;
-               fs->fptr += rcnt; rbuff += rcnt;                        /* Update pointers and counters */
-               btr -= rcnt; *br += rcnt;
-       }
-
-       return FR_OK;
-
-fr_abort:
-       fs->flag = 0;
-       return FR_DISK_ERR;
-}
-#endif
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Write File                                                            */
-/*-----------------------------------------------------------------------*/
-#if _USE_WRITE
-
-FRESULT pf_write (
-       const void* buff,       /* Pointer to the data to be written */
-       WORD btw,                       /* Number of bytes to write (0:Finalize the current write operation) */
-       WORD* bw                        /* Pointer to number of bytes written */
-)
-{
-       CLUST clst;
-       DWORD sect, remain;
-       const BYTE *p = buff;
-       BYTE cs;
-       WORD wcnt;
-       FATFS *fs = FatFs;
-
-
-       *bw = 0;
-       if (!fs) return FR_NOT_ENABLED;         /* Check file system */
-       if (!(fs->flag & FA_OPENED))            /* Check if opened */
-               return FR_NOT_OPENED;
-
-       if (!btw) {             /* Finalize request */
-               if ((fs->flag & FA__WIP) && disk_writep(0, 0)) goto fw_abort;
-               fs->flag &= ~FA__WIP;
-               return FR_OK;
-       } else {                /* Write data request */
-               if (!(fs->flag & FA__WIP))              /* Round-down fptr to the sector boundary */
-                       fs->fptr &= 0xFFFFFE00;
-       }
-       remain = fs->fsize - fs->fptr;
-       if (btw > remain) btw = (WORD)remain;                   /* Truncate btw by remaining bytes */
-
-       while (btw)     {                                                                       /* Repeat until all data transferred */
-               if (((WORD)fs->fptr % 512) == 0) {                      /* On the sector boundary? */
-                       cs = (BYTE)(fs->fptr / 512 & (fs->csize - 1));  /* Sector offset in the cluster */
-                       if (!cs) {                                                              /* On the cluster boundary? */
-                               clst = (fs->fptr == 0) ?                        /* On the top of the file? */
-                                       fs->org_clust : get_fat(fs->curr_clust);
-                               if (clst <= 1) goto fw_abort;
-                               fs->curr_clust = clst;                          /* Update current cluster */
-                       }
-                       sect = clust2sect(fs->curr_clust);              /* Get current sector */
-                       if (!sect) goto fw_abort;
-                       fs->dsect = sect + cs;
-                       if (disk_writep(0, fs->dsect)) goto fw_abort;   /* Initiate a sector write operation */
-                       fs->flag |= FA__WIP;
-               }
-               wcnt = 512 - ((WORD)fs->fptr % 512);            /* Number of bytes to write to the sector */
-               if (wcnt > btw) wcnt = btw;
-               if (disk_writep(p, wcnt)) goto fw_abort;        /* Send data to the sector */
-               fs->fptr += wcnt; p += wcnt;                            /* Update pointers and counters */
-               btw -= wcnt; *bw += wcnt;
-               if (((WORD)fs->fptr % 512) == 0) {
-                       if (disk_writep(0, 0)) goto fw_abort;   /* Finalize the currtent secter write operation */
-                       fs->flag &= ~FA__WIP;
-               }
-       }
-
-       return FR_OK;
-
-fw_abort:
-       fs->flag = 0;
-       return FR_DISK_ERR;
-}
-#endif
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Seek File R/W Pointer                                                 */
-/*-----------------------------------------------------------------------*/
-#if _USE_LSEEK
-
-FRESULT pf_lseek (
-       DWORD ofs               /* File pointer from top of file */
-)
-{
-       CLUST clst;
-       DWORD bcs, sect, ifptr;
-       FATFS *fs = FatFs;
-
-
-       if (!fs) return FR_NOT_ENABLED;         /* Check file system */
-       if (!(fs->flag & FA_OPENED))            /* Check if opened */
-                       return FR_NOT_OPENED;
-
-       if (ofs > fs->fsize) ofs = fs->fsize;   /* Clip offset with the file size */
-       ifptr = fs->fptr;
-       fs->fptr = 0;
-       if (ofs > 0) {
-               bcs = (DWORD)fs->csize * 512;   /* Cluster size (byte) */
-               if (ifptr > 0 &&
-                       (ofs - 1) / bcs >= (ifptr - 1) / bcs) { /* When seek to same or following cluster, */
-                       fs->fptr = (ifptr - 1) & ~(bcs - 1);    /* start from the current cluster */
-                       ofs -= fs->fptr;
-                       clst = fs->curr_clust;
-               } else {                                                        /* When seek to back cluster, */
-                       clst = fs->org_clust;                   /* start from the first cluster */
-                       fs->curr_clust = clst;
-               }
-               while (ofs > bcs) {                             /* Cluster following loop */
-                       clst = get_fat(clst);           /* Follow cluster chain */
-                       if (clst <= 1 || clst >= fs->n_fatent) goto fe_abort;
-                       fs->curr_clust = clst;
-                       fs->fptr += bcs;
-                       ofs -= bcs;
-               }
-               fs->fptr += ofs;
-               sect = clust2sect(clst);                /* Current sector */
-               if (!sect) goto fe_abort;
-               fs->dsect = sect + (fs->fptr / 512 & (fs->csize - 1));
-       }
-
-       return FR_OK;
-
-fe_abort:
-       fs->flag = 0;
-       return FR_DISK_ERR;
-}
-#endif
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Create a Directroy Object                                             */
-/*-----------------------------------------------------------------------*/
-#if _USE_DIR
-
-FRESULT pf_opendir (
-       DIR *dj,                        /* Pointer to directory object to create */
-       const char *path        /* Pointer to the directory path */
-)
-{
-       FRESULT res;
-       BYTE sp[12], dir[32];
-       FATFS *fs = FatFs;
-
-
-       if (!fs) {                              /* Check file system */
-               res = FR_NOT_ENABLED;
-       } else {
-               dj->fn = sp;
-               res = follow_path(dj, dir, path);               /* Follow the path to the directory */
-               if (res == FR_OK) {                                             /* Follow completed */
-                       if (dir[0]) {                                           /* It is not the root dir */
-                               if (dir[DIR_Attr] & AM_DIR)             /* The object is a directory */
-                                       dj->sclust = LD_CLUST(dir);
-                               else                                                    /* The object is not a directory */
-                                       res = FR_NO_PATH;
-                       }
-                       if (res == FR_OK)
-                               res = dir_rewind(dj);                   /* Rewind dir */
-               }
-               if (res == FR_NO_FILE) res = FR_NO_PATH;
-       }
-
-       return res;
-}
-
-
-
-
-/*-----------------------------------------------------------------------*/
-/* Read Directory Entry in Sequense                                      */
-/*-----------------------------------------------------------------------*/
-
-FRESULT pf_readdir (
-       DIR *dj,                        /* Pointer to the open directory object */
-       FILINFO *fno            /* Pointer to file information to return */
-)
-{
-       FRESULT res;
-       BYTE sp[12], dir[32];
-       FATFS *fs = FatFs;
-
-
-       if (!fs) {                              /* Check file system */
-               res = FR_NOT_ENABLED;
-       } else {
-               dj->fn = sp;
-               if (!fno) {
-                       res = dir_rewind(dj);
-               } else {
-                       res = dir_read(dj, dir);
-                       if (res == FR_NO_FILE) {
-                               dj->sect = 0;
-                               res = FR_OK;
-                       }
-                       if (res == FR_OK) {                             /* A valid entry is found */
-                               get_fileinfo(dj, dir, fno);     /* Get the object information */
-                               res = dir_next(dj);                     /* Increment index for next */
-                               if (res == FR_NO_FILE) {
-                                       dj->sect = 0;
-                                       res = FR_OK;
-                               }
-                       }
-               }
-       }
-
-       return res;
-}
-
-#endif /* _USE_DIR */
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.h b/Projects/Incomplete/StandaloneProgrammer/Lib/PetiteFATFs/pff.h
deleted file mode 100644 (file)
index 82f8832..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/*---------------------------------------------------------------------------/
-/  Petit FatFs - FAT file system module include file  R0.02a   (C)ChaN, 2010
-/----------------------------------------------------------------------------/
-/ Petit FatFs module is an open source software to implement FAT file system to
-/ small embedded systems. This is a free software and is opened for education,
-/ research and commercial developments under license policy of following trems.
-/
-/  Copyright (C) 2010, ChaN, all right reserved.
-/
-/ * The Petit FatFs module is a free software and there is NO WARRANTY.
-/ * No restriction on use. You can use, modify and redistribute it for
-/   personal, non-profit or commercial use UNDER YOUR RESPONSIBILITY.
-/ * Redistributions of source code must retain the above copyright notice.
-/
-/----------------------------------------------------------------------------*/
-
-#include "integer.h"
-
-/*---------------------------------------------------------------------------/
-/ Petit FatFs Configuration Options
-/
-/ CAUTION! Do not forget to make clean the project after any changes to
-/ the configuration options.
-/
-/----------------------------------------------------------------------------*/
-#ifndef _FATFS
-#define _FATFS
-
-#define        _USE_READ       1       /* 1:Enable pf_read() */
-
-#define        _USE_DIR        0       /* 1:Enable pf_opendir() and pf_readdir() */
-
-#define        _USE_LSEEK      0       /* 1:Enable pf_lseek() */
-
-#define        _USE_WRITE      0       /* 1:Enable pf_write() */
-
-#define _FS_FAT12      1       /* 1:Enable FAT12 support */
-#define _FS_FAT32      0       /* 1:Enable FAT32 support */
-
-
-#define        _CODE_PAGE      1
-/* Defines which code page is used for path name. Supported code pages are:
-/  932, 936, 949, 950, 437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866,
-/  874, 1250, 1251, 1252, 1253, 1254, 1255, 1257, 1258 and 1 (ASCII only).
-/  SBCS code pages except for 1 requiers a case conversion table. This
-/  might occupy 128 bytes on the RAM on some platforms, e.g. avr-gcc. */
-
-
-#define _WORD_ACCESS   0
-/* The _WORD_ACCESS option defines which access method is used to the word
-/  data in the FAT structure.
-/
-/   0: Byte-by-byte access. Always compatible with all platforms.
-/   1: Word access. Do not choose this unless following condition is met.
-/
-/  When the byte order on the memory is big-endian or address miss-aligned
-/  word access results incorrect behavior, the _WORD_ACCESS must be set to 0.
-/  If it is not the case, the value can also be set to 1 to improve the
-/  performance and code efficiency. */
-
-
-/* End of configuration options. Do not change followings without care.     */
-/*--------------------------------------------------------------------------*/
-
-
-
-#if _FS_FAT32
-#define        CLUST   DWORD
-#else
-#define        CLUST   WORD
-#endif
-
-
-/* File system object structure */
-
-typedef struct {
-       BYTE    fs_type;        /* FAT sub type */
-       BYTE    flag;           /* File status flags */
-       BYTE    csize;          /* Number of sectors per cluster */
-       BYTE    pad1;
-       WORD    n_rootdir;      /* Number of root directory entries (0 on FAT32) */
-       CLUST   n_fatent;       /* Number of FAT entries (= number of clusters + 2) */
-       DWORD   fatbase;        /* FAT start sector */
-       DWORD   dirbase;        /* Root directory start sector (Cluster# on FAT32) */
-       DWORD   database;       /* Data start sector */
-       DWORD   fptr;           /* File R/W pointer */
-       DWORD   fsize;          /* File size */
-       CLUST   org_clust;      /* File start cluster */
-       CLUST   curr_clust;     /* File current cluster */
-       DWORD   dsect;          /* File current data sector */
-} FATFS;
-
-
-
-/* Directory object structure */
-
-typedef struct {
-       WORD    index;          /* Current read/write index number */
-       BYTE*   fn;                     /* Pointer to the SFN (in/out) {file[8],ext[3],status[1]} */
-       CLUST   sclust;         /* Table start cluster (0:Static table) */
-       CLUST   clust;          /* Current cluster */
-       DWORD   sect;           /* Current sector */
-} DIR;
-
-
-
-/* File status structure */
-
-typedef struct {
-       DWORD   fsize;          /* File size */
-       WORD    fdate;          /* Last modified date */
-       WORD    ftime;          /* Last modified time */
-       BYTE    fattrib;        /* Attribute */
-       char    fname[13];      /* File name */
-} FILINFO;
-
-
-
-/* File function return code (FRESULT) */
-
-typedef enum {
-       FR_OK = 0,                      /* 0 */
-       FR_DISK_ERR,            /* 1 */
-       FR_NOT_READY,           /* 2 */
-       FR_NO_FILE,                     /* 3 */
-       FR_NO_PATH,                     /* 4 */
-       FR_NOT_OPENED,          /* 5 */
-       FR_NOT_ENABLED,         /* 6 */
-       FR_NO_FILESYSTEM        /* 7 */
-} FRESULT;
-
-
-
-/*--------------------------------------------------------------*/
-/* Petit FatFs module application interface                     */
-
-FRESULT pf_mount (FATFS*);                                             /* Mount/Unmount a logical drive */
-FRESULT pf_open (const char*);                                 /* Open a file */
-FRESULT pf_read (void*, WORD, WORD*);                  /* Read data from the open file */
-FRESULT pf_write (const void*, WORD, WORD*);   /* Write data to the open file */
-FRESULT pf_lseek (DWORD);                                              /* Move file pointer of the open file */
-FRESULT pf_opendir (DIR*, const char*);                        /* Open a directory */
-FRESULT pf_readdir (DIR*, FILINFO*);                   /* Read a directory item from the open directory */
-
-
-
-/*--------------------------------------------------------------*/
-/* Flags and offset address                                     */
-
-/* File status flag (FATFS.flag) */
-
-#define        FA_OPENED       0x01
-#define        FA_WPRT         0x02
-#define        FA__WIP         0x40
-
-
-/* FAT sub type (FATFS.fs_type) */
-
-#define FS_FAT12       1
-#define FS_FAT16       2
-#define FS_FAT32       3
-
-
-/* File attribute bits for directory entry */
-
-#define        AM_RDO  0x01    /* Read only */
-#define        AM_HID  0x02    /* Hidden */
-#define        AM_SYS  0x04    /* System */
-#define        AM_VOL  0x08    /* Volume label */
-#define AM_LFN 0x0F    /* LFN entry */
-#define AM_DIR 0x10    /* Directory */
-#define AM_ARC 0x20    /* Archive */
-#define AM_MASK        0x3F    /* Mask of defined bits */
-
-
-/*--------------------------------*/
-/* Multi-byte word access macros  */
-
-#if _WORD_ACCESS == 1  /* Enable word access to the FAT structure */
-#define        LD_WORD(ptr)            (WORD)(*(WORD*)(BYTE*)(ptr))
-#define        LD_DWORD(ptr)           (DWORD)(*(DWORD*)(BYTE*)(ptr))
-#define        ST_WORD(ptr,val)        *(WORD*)(BYTE*)(ptr)=(WORD)(val)
-#define        ST_DWORD(ptr,val)       *(DWORD*)(BYTE*)(ptr)=(DWORD)(val)
-#else                                  /* Use byte-by-byte access to the FAT structure */
-#define        LD_WORD(ptr)            (WORD)(((WORD)*((BYTE*)(ptr)+1)<<8)|(WORD)*(BYTE*)(ptr))
-#define        LD_DWORD(ptr)           (DWORD)(((DWORD)*((BYTE*)(ptr)+3)<<24)|((DWORD)*((BYTE*)(ptr)+2)<<16)|((WORD)*((BYTE*)(ptr)+1)<<8)|*(BYTE*)(ptr))
-#define        ST_WORD(ptr,val)        *(BYTE*)(ptr)=(BYTE)(val); *((BYTE*)(ptr)+1)=(BYTE)((WORD)(val)>>8)
-#define        ST_DWORD(ptr,val)       *(BYTE*)(ptr)=(BYTE)(val); *((BYTE*)(ptr)+1)=(BYTE)((WORD)(val)>>8); *((BYTE*)(ptr)+2)=(BYTE)((DWORD)(val)>>16); *((BYTE*)(ptr)+3)=(BYTE)((DWORD)(val)>>24)
-#endif
-
-
-#endif /* _FATFS */
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/ProgrammerConfig.c b/Projects/Incomplete/StandaloneProgrammer/Lib/ProgrammerConfig.c
deleted file mode 100644 (file)
index 9175236..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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.
-*/
-
-#include "ProgrammerConfig.h"
-
-struct
-{
-       uint16_t SigBytes[4];
-       bool EnforceSigBytes;
-
-       uint32_t ProgrammingSpeed;
-} ProgrammerConfig;
-
-bool ProgrammerConfig_ProcessConfiguration(void)
-{
-       memset(&ProgrammerConfig, 0x00, sizeof(ProgrammerConfig));
-
-       if (!(pf_open("CONF.txt") == FR_OK))
-       {
-               puts(" >> ERROR: CONF.txt File Not Found.\r\n");
-               return false;
-       }
-
-       char  LineBuff[100];
-       char* CurrentLine;
-
-       do
-       {
-               CurrentLine = fgets(LineBuff, sizeof(LineBuff), &DiskStream);
-
-               if (CurrentLine)
-               {
-                       sscanf(CurrentLine, "SIGNATURE = %02x %02x %02x %02x", &ProgrammerConfig.SigBytes[0],
-                                                                              &ProgrammerConfig.SigBytes[1],
-                                                                              &ProgrammerConfig.SigBytes[2],
-                                                                              &ProgrammerConfig.SigBytes[3]);
-                                                                                                                                  
-                       sscanf(CurrentLine, "SPEED = %08lu", &ProgrammerConfig.ProgrammingSpeed);
-               }
-       } while (CurrentLine);
-
-       printf(" >> *** Configuration: ***\r\n");
-       printf(" >> Device Signature: 0x%02x 0x%02x 0x%02x 0x%02x\r\n", ProgrammerConfig.SigBytes[0],
-                                                                               ProgrammerConfig.SigBytes[1],
-                                                                               ProgrammerConfig.SigBytes[2],
-                                                                               ProgrammerConfig.SigBytes[3]);
-       printf(" >> Programming Speed: %lu Hz\r\n", ProgrammerConfig.ProgrammingSpeed);
-
-       return true;
-}
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/ProgrammerConfig.h b/Projects/Incomplete/StandaloneProgrammer/Lib/ProgrammerConfig.h
deleted file mode 100644 (file)
index dbfd0d8..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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.
-*/
-
-#ifndef _PROGRAMMER_CONFIG_H_
-#define _PROGRAMMER_CONFIG_H_
-
-       /* Includes: */
-               #include <stdio.h>
-               #include <string.h>
-               #include <stdbool.h>
-
-               #include "../StandaloneProgrammer.h"
-
-       /* Function Prototypes: */
-               bool ProgrammerConfig_ProcessConfiguration(void);
-
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.c b/Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.c
deleted file mode 100644 (file)
index 2d000b8..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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
- *
- *  SCSI command processing routines, for SCSI commands issued by the host. Mass Storage
- *  devices use a thin "Bulk-Only Transport" protocol for issuing commands and status information,
- *  which wrap around standard SCSI device commands for controlling the actual storage medium.
- */
-
-#define  INCLUDE_FROM_SCSI_C
-#include "SCSI.h"
-
-#if defined(USB_CAN_BE_DEVICE)
-/** Structure to hold the SCSI response data to a SCSI INQUIRY command. This gives information about the device's
- *  features and capabilities.
- */
-static const SCSI_Inquiry_Response_t InquiryData =
-       {
-               .DeviceType          = DEVICE_TYPE_BLOCK,
-               .PeripheralQualifier = 0,
-
-               .Removable           = true,
-
-               .Version             = 0,
-
-               .ResponseDataFormat  = 2,
-               .NormACA             = false,
-               .TrmTsk              = false,
-               .AERC                = false,
-
-               .AdditionalLength    = 0x1F,
-
-               .SoftReset           = false,
-               .CmdQue              = false,
-               .Linked              = false,
-               .Sync                = false,
-               .WideBus16Bit        = false,
-               .WideBus32Bit        = false,
-               .RelAddr             = false,
-
-               .VendorID            = "LUFA",
-               .ProductID           = "Dataflash Disk",
-               .RevisionID          = {'0','.','0','0'},
-       };
-
-/** Structure to hold the sense data for the last issued SCSI command, which is returned to the host after a SCSI REQUEST SENSE
- *  command is issued. This gives information on exactly why the last command failed to complete.
- */
-static SCSI_Request_Sense_Response_t SenseData =
-       {
-               .ResponseCode        = 0x70,
-               .AdditionalLength    = 0x0A,
-       };
-
-
-/** Main routine to process the SCSI command located in the Command Block Wrapper read from the host. This dispatches
- *  to the appropriate SCSI command handling routine if the issued command is supported by the device, else it returns
- *  a command failure due to a ILLEGAL REQUEST.
- *
- *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface structure that the command is associated with
- *
- *  \return Boolean true if the command completed successfully, false otherwise
- */
-bool SCSI_DecodeSCSICommand(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
-{
-       bool CommandSuccess = false;
-
-       /* Run the appropriate SCSI command hander function based on the passed command */
-       switch (MSInterfaceInfo->State.CommandBlock.SCSICommandData[0])
-       {
-               case SCSI_CMD_INQUIRY:
-                       CommandSuccess = SCSI_Command_Inquiry(MSInterfaceInfo);
-                       break;
-               case SCSI_CMD_REQUEST_SENSE:
-                       CommandSuccess = SCSI_Command_Request_Sense(MSInterfaceInfo);
-                       break;
-               case SCSI_CMD_READ_CAPACITY_10:
-                       CommandSuccess = SCSI_Command_Read_Capacity_10(MSInterfaceInfo);
-                       break;
-               case SCSI_CMD_SEND_DIAGNOSTIC:
-                       CommandSuccess = SCSI_Command_Send_Diagnostic(MSInterfaceInfo);
-                       break;
-               case SCSI_CMD_WRITE_10:
-                       CommandSuccess = SCSI_Command_ReadWrite_10(MSInterfaceInfo, DATA_WRITE);
-                       break;
-               case SCSI_CMD_READ_10:
-                       CommandSuccess = SCSI_Command_ReadWrite_10(MSInterfaceInfo, DATA_READ);
-                       break;
-               case SCSI_CMD_MODE_SENSE_6:
-                       CommandSuccess = SCSI_Command_ModeSense_6(MSInterfaceInfo);
-                       break;
-               case SCSI_CMD_TEST_UNIT_READY:
-               case SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL:
-               case SCSI_CMD_VERIFY_10:
-                       /* These commands should just succeed, no handling required */
-                       CommandSuccess = true;
-                       MSInterfaceInfo->State.CommandBlock.DataTransferLength = 0;
-                       break;
-               default:
-                       /* Update the SENSE key to reflect the invalid command */
-                       SCSI_SET_SENSE(SCSI_SENSE_KEY_ILLEGAL_REQUEST,
-                                  SCSI_ASENSE_INVALID_COMMAND,
-                                  SCSI_ASENSEQ_NO_QUALIFIER);
-                       break;
-       }
-
-       /* Check if command was successfully processed */
-       if (CommandSuccess)
-       {
-               SCSI_SET_SENSE(SCSI_SENSE_KEY_GOOD,
-                              SCSI_ASENSE_NO_ADDITIONAL_INFORMATION,
-                              SCSI_ASENSEQ_NO_QUALIFIER);
-
-               return true;
-       }
-
-       return false;
-}
-
-/** Command processing for an issued SCSI INQUIRY command. This command returns information about the device's features
- *  and capabilities to the host.
- *
- *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface structure that the command is associated with
- *
- *  \return Boolean true if the command completed successfully, false otherwise.
- */
-static bool SCSI_Command_Inquiry(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
-{
-       uint16_t AllocationLength  = SwapEndian_16(*(uint16_t*)&MSInterfaceInfo->State.CommandBlock.SCSICommandData[3]);
-       uint16_t BytesTransferred  = MIN(AllocationLength, sizeof(InquiryData));
-
-       /* Only the standard INQUIRY data is supported, check if any optional INQUIRY bits set */
-       if ((MSInterfaceInfo->State.CommandBlock.SCSICommandData[1] & ((1 << 0) | (1 << 1))) ||
-            MSInterfaceInfo->State.CommandBlock.SCSICommandData[2])
-       {
-               /* Optional but unsupported bits set - update the SENSE key and fail the request */
-               SCSI_SET_SENSE(SCSI_SENSE_KEY_ILLEGAL_REQUEST,
-                              SCSI_ASENSE_INVALID_FIELD_IN_CDB,
-                              SCSI_ASENSEQ_NO_QUALIFIER);
-
-               return false;
-       }
-
-       Endpoint_Write_Stream_LE(&InquiryData, BytesTransferred, NULL);
-
-       /* Pad out remaining bytes with 0x00 */
-       Endpoint_Null_Stream((AllocationLength - BytesTransferred), NULL);
-
-       /* Finalize the stream transfer to send the last packet */
-       Endpoint_ClearIN();
-
-       /* Succeed the command and update the bytes transferred counter */
-       MSInterfaceInfo->State.CommandBlock.DataTransferLength -= BytesTransferred;
-
-       return true;
-}
-
-/** Command processing for an issued SCSI REQUEST SENSE command. This command returns information about the last issued command,
- *  including the error code and additional error information so that the host can determine why a command failed to complete.
- *
- *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface structure that the command is associated with
- *
- *  \return Boolean true if the command completed successfully, false otherwise.
- */
-static bool SCSI_Command_Request_Sense(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
-{
-       uint8_t  AllocationLength = MSInterfaceInfo->State.CommandBlock.SCSICommandData[4];
-       uint8_t  BytesTransferred = MIN(AllocationLength, sizeof(SenseData));
-
-       Endpoint_Write_Stream_LE(&SenseData, BytesTransferred, NULL);
-       Endpoint_Null_Stream((AllocationLength - BytesTransferred), NULL);
-       Endpoint_ClearIN();
-
-       /* Succeed the command and update the bytes transferred counter */
-       MSInterfaceInfo->State.CommandBlock.DataTransferLength -= BytesTransferred;
-
-       return true;
-}
-
-/** Command processing for an issued SCSI READ CAPACITY (10) command. This command returns information about the device's capacity
- *  on the selected Logical Unit (drive), as a number of OS-sized blocks.
- *
- *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface structure that the command is associated with
- *
- *  \return Boolean true if the command completed successfully, false otherwise.
- */
-static bool SCSI_Command_Read_Capacity_10(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
-{
-       uint32_t LastBlockAddressInLUN = (VIRTUAL_MEMORY_BLOCKS - 1);
-       uint32_t MediaBlockSize        = VIRTUAL_MEMORY_BLOCK_SIZE;
-
-       Endpoint_Write_Stream_BE(&LastBlockAddressInLUN, sizeof(LastBlockAddressInLUN), NULL);
-       Endpoint_Write_Stream_BE(&MediaBlockSize, sizeof(MediaBlockSize), NULL);
-       Endpoint_ClearIN();
-
-       /* Succeed the command and update the bytes transferred counter */
-       MSInterfaceInfo->State.CommandBlock.DataTransferLength -= 8;
-
-       return true;
-}
-
-/** Command processing for an issued SCSI SEND DIAGNOSTIC command. This command performs a quick check of the Dataflash ICs on the
- *  board, and indicates if they are present and functioning correctly. Only the Self-Test portion of the diagnostic command is
- *  supported.
- *
- *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface structure that the command is associated with
- *
- *  \return Boolean true if the command completed successfully, false otherwise.
- */
-static bool SCSI_Command_Send_Diagnostic(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
-{
-       /* Check to see if the SELF TEST bit is not set */
-       if (!(MSInterfaceInfo->State.CommandBlock.SCSICommandData[1] & (1 << 2)))
-       {
-               /* Only self-test supported - update SENSE key and fail the command */
-               SCSI_SET_SENSE(SCSI_SENSE_KEY_ILLEGAL_REQUEST,
-                              SCSI_ASENSE_INVALID_FIELD_IN_CDB,
-                              SCSI_ASENSEQ_NO_QUALIFIER);
-
-               return false;
-       }
-
-       /* Check to see if all attached Dataflash ICs are functional */
-       if (!(DataflashManager_CheckDataflashOperation()))
-       {
-               /* Update SENSE key with a hardware error condition and return command fail */
-               SCSI_SET_SENSE(SCSI_SENSE_KEY_HARDWARE_ERROR,
-                              SCSI_ASENSE_NO_ADDITIONAL_INFORMATION,
-                              SCSI_ASENSEQ_NO_QUALIFIER);
-
-               return false;
-       }
-
-       /* Succeed the command and update the bytes transferred counter */
-       MSInterfaceInfo->State.CommandBlock.DataTransferLength = 0;
-
-       return true;
-}
-
-/** Command processing for an issued SCSI READ (10) or WRITE (10) command. This command reads in the block start address
- *  and total number of blocks to process, then calls the appropriate low-level Dataflash routine to handle the actual
- *  reading and writing of the data.
- *
- *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface structure that the command is associated with
- *  \param[in] IsDataRead  Indicates if the command is a READ (10) command or WRITE (10) command (DATA_READ or DATA_WRITE)
- *
- *  \return Boolean true if the command completed successfully, false otherwise.
- */
-static bool SCSI_Command_ReadWrite_10(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo,
-                                      const bool IsDataRead)
-{
-       uint32_t BlockAddress;
-       uint16_t TotalBlocks;
-
-       /* Check if the disk is write protected or not */
-       if ((IsDataRead == DATA_WRITE) && DISK_READ_ONLY)
-       {
-               /* Block address is invalid, update SENSE key and return command fail */
-               SCSI_SET_SENSE(SCSI_SENSE_KEY_DATA_PROTECT,
-                              SCSI_ASENSE_WRITE_PROTECTED,
-                              SCSI_ASENSEQ_NO_QUALIFIER);
-
-               return false;
-       }
-
-       /* Load in the 32-bit block address (SCSI uses big-endian, so have to reverse the byte order) */
-       BlockAddress = SwapEndian_32(*(uint32_t*)&MSInterfaceInfo->State.CommandBlock.SCSICommandData[2]);
-
-       /* Load in the 16-bit total blocks (SCSI uses big-endian, so have to reverse the byte order) */
-       TotalBlocks  = SwapEndian_16(*(uint16_t*)&MSInterfaceInfo->State.CommandBlock.SCSICommandData[7]);
-
-       /* Check if the block address is outside the maximum allowable value for the LUN */
-       if (BlockAddress >= VIRTUAL_MEMORY_BLOCKS)
-       {
-               /* Block address is invalid, update SENSE key and return command fail */
-               SCSI_SET_SENSE(SCSI_SENSE_KEY_ILLEGAL_REQUEST,
-                              SCSI_ASENSE_LOGICAL_BLOCK_ADDRESS_OUT_OF_RANGE,
-                              SCSI_ASENSEQ_NO_QUALIFIER);
-
-               return false;
-       }
-
-       /* Determine if the packet is a READ (10) or WRITE (10) command, call appropriate function */
-       if (IsDataRead == DATA_READ)
-         DataflashManager_ReadBlocks(MSInterfaceInfo, BlockAddress, TotalBlocks);
-       else
-         DataflashManager_WriteBlocks(MSInterfaceInfo, BlockAddress, TotalBlocks);
-
-       /* Update the bytes transferred counter and succeed the command */
-       MSInterfaceInfo->State.CommandBlock.DataTransferLength -= ((uint32_t)TotalBlocks * VIRTUAL_MEMORY_BLOCK_SIZE);
-
-       return true;
-}
-
-/** Command processing for an issued SCSI MODE SENSE (6) command. This command returns various informational pages about
- *  the SCSI device, as well as the device's Write Protect status.
- *
- *  \param[in] MSInterfaceInfo  Pointer to the Mass Storage class interface structure that the command is associated with
- *
- *  \return Boolean true if the command completed successfully, false otherwise.
- */
-static bool SCSI_Command_ModeSense_6(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
-{
-       /* Send an empty header response with the Write Protect flag status */
-       Endpoint_Write_8(0x00);
-       Endpoint_Write_8(0x00);
-       Endpoint_Write_8(DISK_READ_ONLY ? 0x80 : 0x00);
-       Endpoint_Write_8(0x00);
-       Endpoint_ClearIN();
-
-       /* Update the bytes transferred counter and succeed the command */
-       MSInterfaceInfo->State.CommandBlock.DataTransferLength -= 4;
-
-       return true;
-}
-#endif
diff --git a/Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.h b/Projects/Incomplete/StandaloneProgrammer/Lib/SCSI.h
deleted file mode 100644 (file)
index a0940a7..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 SCSI.c.
- */
-
-#ifndef _SCSI_H_
-#define _SCSI_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-               #include <avr/pgmspace.h>
-
-               #include <LUFA/Drivers/USB/USB.h>
-
-               #include "../StandaloneProgrammer.h"
-               #include "../Descriptors.h"
-               #include "DataflashManager.h"
-
-       /* Macros: */
-               /** Macro to set the current SCSI sense data to the given key, additional sense code and additional sense qualifier. This
-                *  is for convenience, as it allows for all three sense values (returned upon request to the host to give information about
-                *  the last command failure) in a quick and easy manner.
-                *
-                *  \param[in] Key    New SCSI sense key to set the sense code to
-                *  \param[in] Acode  New SCSI additional sense key to set the additional sense code to
-                *  \param[in] Aqual  New SCSI additional sense key qualifier to set the additional sense qualifier code to
-                */
-               #define SCSI_SET_SENSE(Key, Acode, Aqual)  MACROS{ SenseData.SenseKey                 = (Key);   \
-                                                                  SenseData.AdditionalSenseCode      = (Acode); \
-                                                                  SenseData.AdditionalSenseQualifier = (Aqual); }MACROE
-
-               /** Macro for the \ref SCSI_Command_ReadWrite_10() function, to indicate that data is to be read from the storage medium. */
-               #define DATA_READ           true
-
-               /** Macro for the \ref SCSI_Command_ReadWrite_10() function, to indicate that data is to be written to the storage medium. */
-               #define DATA_WRITE          false
-
-               /** Value for the DeviceType entry in the SCSI_Inquiry_Response_t enum, indicating a Block Media device. */
-               #define DEVICE_TYPE_BLOCK   0x00
-
-               /** Value for the DeviceType entry in the SCSI_Inquiry_Response_t enum, indicating a CD-ROM device. */
-               #define DEVICE_TYPE_CDROM   0x05
-
-       /* Function Prototypes: */
-               #if defined(USB_CAN_BE_DEVICE)
-                       bool SCSI_DecodeSCSICommand(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
-
-                       #if defined(INCLUDE_FROM_SCSI_C)
-                               static bool SCSI_Command_Inquiry(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
-                               static bool SCSI_Command_Request_Sense(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
-                               static bool SCSI_Command_Read_Capacity_10(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
-                               static bool SCSI_Command_Send_Diagnostic(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
-                               static bool SCSI_Command_ReadWrite_10(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo,
-                                                                                                         const bool IsDataRead);
-                               static bool SCSI_Command_ModeSense_6(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
-                       #endif
-               #endif
-
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/Standalone Programmer.inf b/Projects/Incomplete/StandaloneProgrammer/Standalone Programmer.inf
deleted file mode 100644 (file)
index 8472fef..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-;************************************************************
-; Windows USB CDC ACM Setup File
-; Copyright (c) 2000 Microsoft Corporation
-
-
-[Version]
-Signature="$Windows NT$"
-Class=Ports
-ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
-Provider=%MFGNAME%
-LayoutFile=layout.inf
-CatalogFile=%MFGFILENAME%.cat
-DriverVer=11/15/2007,5.1.2600.0
-
-[Manufacturer]
-%MFGNAME%=DeviceList, NTamd64
-
-[DestinationDirs]
-DefaultDestDir=12
-
-
-;------------------------------------------------------------------------------
-;  Windows 2000/XP/Vista-32bit Sections
-;------------------------------------------------------------------------------
-
-[DriverInstall.nt]
-include=mdmcpq.inf
-CopyFiles=DriverCopyFiles.nt
-AddReg=DriverInstall.nt.AddReg
-
-[DriverCopyFiles.nt]
-usbser.sys,,,0x20
-
-[DriverInstall.nt.AddReg]
-HKR,,DevLoader,,*ntkern
-HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
-
-[DriverInstall.nt.Services]
-AddService=usbser, 0x00000002, DriverService.nt
-
-[DriverService.nt]
-DisplayName=%SERVICE%
-ServiceType=1
-StartType=3
-ErrorControl=1
-ServiceBinary=%12%\%DRIVERFILENAME%.sys
-
-;------------------------------------------------------------------------------
-;  Vista-64bit Sections
-;------------------------------------------------------------------------------
-
-[DriverInstall.NTamd64]
-include=mdmcpq.inf
-CopyFiles=DriverCopyFiles.NTamd64
-AddReg=DriverInstall.NTamd64.AddReg
-
-[DriverCopyFiles.NTamd64]
-%DRIVERFILENAME%.sys,,,0x20
-
-[DriverInstall.NTamd64.AddReg]
-HKR,,DevLoader,,*ntkern
-HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
-
-[DriverInstall.NTamd64.Services]
-AddService=usbser, 0x00000002, DriverService.NTamd64
-
-[DriverService.NTamd64]
-DisplayName=%SERVICE%
-ServiceType=1
-StartType=3
-ErrorControl=1
-ServiceBinary=%12%\%DRIVERFILENAME%.sys
-
-
-;------------------------------------------------------------------------------
-;  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.
-;------------------------------------------------------------------------------
-[SourceDisksFiles]
-[SourceDisksNames]
-[DeviceList]
-%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2063&MI_00
-
-[DeviceList.NTamd64]
-%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2063&MI_00
-
-
-;------------------------------------------------------------------------------
-;  String Definitions
-;------------------------------------------------------------------------------
-;Modify these strings to customize your device
-;------------------------------------------------------------------------------
-[Strings]
-MFGFILENAME="CDC_vista"
-DRIVERFILENAME ="usbser"
-MFGNAME="CCS, Inc."
-INSTDISK="LUFA Benito Programmer Driver Installer"
-DESCRIPTION="Communications Port"
-SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file
diff --git a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.c
deleted file mode 100644 (file)
index 86318e9..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 Standalone Programmer project. This file contains the main tasks of
- *  the project and is responsible for the initial application hardware configuration.
- */
-
-#define  INCLUDE_FROM_STANDALONEPROG_C
-#include "StandaloneProgrammer.h"
-
-/** Standard file stream for the currently open file on the disk. */
-FILE DiskStream = FDEV_SETUP_STREAM(NULL, Disk_getchar, _FDEV_SETUP_READ);
-
-/** Petite FAT Fs structure to hold the internal state of the FAT driver for the Dataflash contents. */
-FATFS DiskFATState;
-
-/** Stream character fetching routine for the FAT driver so that characters from the currently open file can be
- *  read in sequence when applied to a stdio stream.
- */
-static int Disk_getchar(FILE* Stream)
-{
-       char ReadByte;
-       WORD ByteWasRead;
-
-       if (pf_read(&ReadByte, 1, &ByteWasRead) != FR_OK)
-         return _FDEV_ERR;
-
-       return (ByteWasRead ? ReadByte : _FDEV_EOF);
-}
-
-#if defined(USB_CAN_BE_BOTH)
-/** Event to handle mode changes in the library, to clear the FAT library's drive state structure when transitioning
- *  between modes. This ensures that the library always works with current disk data.
- */
-void EVENT_USB_UIDChange(void)
-{
-       pf_mount(&DiskFATState);
-}
-#endif
-
-/** Task to determine if the user is wishes to start the programming sequence, and if so executes the
- *  required functions to program the attached target (if any) with the files loaded to the Dataflash.
- */
-void Programmer_Task(void)
-{
-       static bool HasAttempted = false;
-
-       if (Buttons_GetStatus() & BUTTONS_BUTTON1)
-       {
-               if (!(HasAttempted))
-                       HasAttempted = true;
-               else
-                       return;
-
-               puts("==== PROGRAMMING CYCLE STARTED ====\r\n");
-
-               #if defined(USB_CAN_BE_BOTH)
-               printf("Using %s Drive...\r\n", (USB_CurrentMode == USB_MODE_Host) ? "External" : "Internal");
-               #endif
-
-               puts("Reading Configuration File...\r\n");
-               if (!(ProgrammerConfig_ProcessConfiguration()))
-                 goto EndOfProgCycle;
-
-               EndOfProgCycle:
-               puts("==== PROGRAMMING CYCLE FINISHED ====\r\n");
-       }
-       else
-       {
-               HasAttempted = false;
-       }
-}
-
-/** Main program entry point. This routine contains the overall program flow, including initial
- *  setup of all components and the main program loop.
- */
-int main(void)
-{
-       SetupHardware();
-
-       LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-       sei();
-
-       for (;;)
-       {
-               Programmer_Task();
-
-               #if defined(USB_CAN_BE_HOST)
-               if (USB_CurrentMode == USB_MODE_Host)
-                 DiskHost_USBTask();
-               #endif
-               
-               #if defined(USB_CAN_BE_DEVICE)
-               if (USB_CurrentMode == USB_MODE_Device)
-                 DiskDevice_USBTask();
-               #endif
-
-               USB_USBTask();
-       }
-}
-
-/** Configures the board hardware and chip peripherals for the demo's functionality. */
-void SetupHardware(void)
-{
-       /* Disable watchdog if enabled by bootloader/fuses */
-       MCUSR &= ~(1 << WDRF);
-       wdt_disable();
-
-       /* Disable clock division */
-       clock_prescale_set(clock_div_1);
-
-       /* Hardware Initialization */
-       #if defined(USB_CAN_BE_BOTH)
-       USB_Init(USB_MODE_UID);
-       #else
-       USB_Init();
-       #endif
-
-       LEDs_Init();
-       SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_SCK_LEAD_FALLING | SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
-       Dataflash_Init();
-       Buttons_Init();
-       Serial_Init(9600, true);
-
-       /* Create a stdio stream for the serial port for stdin and stdout */
-       Serial_CreateStream(NULL);
-
-       #if defined(USB_CAN_BE_DEVICE)
-       /* Check if the Dataflash is working, abort if not */
-       if (!(DataflashManager_CheckDataflashOperation()))
-       {
-               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-               for(;;);
-       }
-
-       /* Clear Dataflash sector protections, if enabled */
-       DataflashManager_ResetDataflashProtections();
-       #endif
-}
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h b/Projects/Incomplete/StandaloneProgrammer/StandaloneProgrammer.h
deleted file mode 100644 (file)
index 65edc49..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2012.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2012  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 disclaim 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 StandaloneProgrammer.c.
- */
-
-#ifndef _STANDALONE_PROG_H_
-#define _STANDALONE_PROG_H_
-
-       /* Includes: */
-               #include <avr/io.h>
-               #include <avr/wdt.h>
-               #include <avr/power.h>
-               #include <avr/interrupt.h>
-               #include <stdio.h>
-
-               #include "DiskDevice.h"
-               #include "DiskHost.h"
-
-               #include "Lib/SCSI.h"
-               #include "Lib/DataflashManager.h"
-               #include "Lib/ProgrammerConfig.h"
-               #include "Lib/PetiteFATFs/pff.h"
-
-               #include <LUFA/Version.h>
-               #include <LUFA/Drivers/Board/Buttons.h>
-               #include <LUFA/Drivers/Peripheral/Serial.h>
-
-       /* Macros: */
-               /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
-               #define LEDMASK_USB_NOTREADY      LEDS_LED1
-
-               /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
-               #define LEDMASK_USB_ENUMERATING  (LEDS_LED2 | LEDS_LED3)
-
-               /** LED mask for the library LED driver, to indicate that the USB interface is ready. */
-               #define LEDMASK_USB_READY        (LEDS_LED2 | LEDS_LED4)
-
-               /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
-               #define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)
-
-               /** LED mask for the library LED driver, to indicate that the USB interface is busy. */
-               #define LEDMASK_USB_BUSY          LEDS_LED2
-
-       /* External Variables: */
-               extern FILE  DiskStream;
-               extern FATFS DiskFATState;
-
-       /* Function Prototypes: */
-               #if defined(INCLUDE_FROM_STANDALONEPROG_C)
-                       static int Disk_getchar(FILE* Stream);
-               #endif
-
-               void EVENT_USB_UIDChange(void);
-
-               void SetupHardware(void);
-               void Programmer_Task(void);
-
-#endif
-
diff --git a/Projects/Incomplete/StandaloneProgrammer/makefile b/Projects/Incomplete/StandaloneProgrammer/makefile
deleted file mode 100644 (file)
index bc96281..0000000
+++ /dev/null
@@ -1,738 +0,0 @@
-# Hey Emacs, this is a -*- makefile -*-
-#----------------------------------------------------------------------------
-# WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al.
-#  >> Modified for use with the LUFA project. <<
-#
-# Released to the Public Domain
-#
-# Additional material for this makefile was written by:
-# Peter Fleury
-# Tim Henigan
-# Colin O'Flynn
-# Reiner Patommel
-# Markus Pfaff
-# Sander Pool
-# Frederik Rouleau
-# Carlos Lamas
-# Dean Camera
-# Opendous Inc.
-# Denver Gingerich
-#
-#----------------------------------------------------------------------------
-# On command line:
-#
-# make all = Make software.
-#
-# make clean = Clean out built project files.
-#
-# make coff = Convert ELF to AVR COFF.
-#
-# make extcoff = Convert ELF to AVR Extended COFF.
-#
-# make program = Download the hex file to the device, using avrdude.
-#                Please customize the avrdude settings below first!
-#
-# make dfu = Download the hex file to the device, using dfu-programmer (must
-#            have dfu-programmer installed).
-#
-# make flip = Download the hex file to the device, using Atmel FLIP (must
-#             have Atmel FLIP installed).
-#
-# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
-#               (must have dfu-programmer installed).
-#
-# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
-#                (must have Atmel FLIP installed).
-#
-# make doxygen = Generate DoxyGen documentation for the project (must have
-#                DoxyGen installed)
-#
-# make debug = Start either simulavr or avarice as specified for debugging,
-#              with avr-gdb or avr-insight as the front end for debugging.
-#
-# make filename.s = Just compile filename.c into the assembler code only.
-#
-# make filename.i = Create a preprocessed source file for use in submitting
-#                   bug reports to the GCC project.
-#
-# To rebuild project do "make clean" then "make all".
-#----------------------------------------------------------------------------
-
-
-# MCU name
-MCU = at90usb1287
-
-
-# Target architecture (see library "Board Types" documentation).
-ARCH = AVR8
-
-
-# Target board (see library "Board Types" documentation, NONE for projects not requiring
-# LUFA board drivers). If USER is selected, put custom board drivers in a directory called
-# "Board" inside the application directory.
-BOARD = USBKEY
-
-
-# Processor frequency.
-#     This will define a symbol, F_CPU, in all source code files equal to the
-#     processor frequency in Hz. You can then use this symbol in your source code to
-#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
-#     automatically to create a 32-bit value in your source code.
-#
-#     This will be an integer division of F_USB below, as it is sourced by
-#     F_USB after it has run through any CPU prescalers. Note that this value
-#     does not *change* the processor frequency - it should merely be updated to
-#     reflect the processor speed set externally so that the code can use accurate
-#     software delays.
-F_CPU = 8000000
-
-
-# Input clock frequency.
-#     This will define a symbol, F_USB, in all source code files equal to the
-#     input clock frequency (before any prescaling is performed) in Hz. This value may
-#     differ from F_CPU if prescaling is used on the latter, and is required as the
-#     raw input clock is fed directly to the PLL sections of the AVR for high speed
-#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
-#     at the end, this will be done automatically to create a 32-bit value in your
-#     source code.
-#
-#     If no clock division is performed on the input clock inside the AVR (via the
-#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB = $(F_CPU)
-
-
-# Output format. (can be srec, ihex, binary)
-FORMAT = ihex
-
-
-# Target file name (without extension).
-TARGET = StandaloneProgrammer
-
-
-# Object files directory
-#     To put object files in current directory, use a dot (.), do NOT make
-#     this an empty or blank macro!
-OBJDIR = .
-
-
-# Path to the LUFA library
-LUFA_PATH = ../../..
-
-
-# LUFA library compile-time options and predefined tokens
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D HOST_STATE_AS_GPIOR=1
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
-
-
-# Create the LUFA source path variables by including the LUFA root makefile
-include $(LUFA_PATH)/LUFA/makefile
-
-
-# List C source files here. (C dependencies are automatically generated.)
-SRC = $(TARGET).c                                                 \
-         Descriptors.c                                               \
-         DiskHost.c                                                  \
-         DiskDevice.c                                                \
-         Lib/SCSI.c                                                  \
-         Lib/DataflashManager.c                                      \
-         Lib/ProgrammerConfig.c                                      \
-         Lib/PetiteFATFs/diskio.c                                    \
-         Lib/PetiteFATFs/pff.c                                       \
-         $(LUFA_SRC_USB)                                             \
-         $(LUFA_SRC_USBCLASS)                                        \
-         $(LUFA_SRC_SERIAL)
-
-
-# List C++ source files here. (C dependencies are automatically generated.)
-CPPSRC =
-
-
-# List Assembler source files here.
-#     Make them always end in a capital .S.  Files ending in a lowercase .s
-#     will not be considered source files but generated files (assembler
-#     output from the compiler), and will be deleted upon "make clean"!
-#     Even though the DOS/Win* filesystem matches both .s and .S the same,
-#     it will preserve the spelling of the filenames, and gcc itself does
-#     care about how the name is spelled on its command-line.
-ASRC =
-
-
-# Optimization level, can be [0, 1, 2, 3, s].
-#     0 = turn off optimization. s = optimize for size.
-#     (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
-OPT = s
-
-
-# Debugging format.
-#     Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
-#     AVR Studio 4.10 requires dwarf-2.
-#     AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
-DEBUG = dwarf-2
-
-
-# List any extra directories to look for include files here.
-#     Each directory must be seperated by a space.
-#     Use forward slashes for directory separators.
-#     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
-
-
-# Compiler flag to set the C Standard level.
-#     c89   = "ANSI" C
-#     gnu89 = c89 plus GCC extensions
-#     c99   = ISO C99 standard (not yet fully implemented)
-#     gnu99 = c99 plus GCC extensions
-CSTANDARD = -std=c99
-
-
-# Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL
-CDEFS += -DF_USB=$(F_USB)UL
-CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
-CDEFS += $(LUFA_OPTS)
-
-
-# Place -D or -U options here for ASM sources
-ADEFS  = -DF_CPU=$(F_CPU)
-ADEFS += -DF_USB=$(F_USB)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
-ADEFS += $(LUFA_OPTS)
-
-# Place -D or -U options here for C++ sources
-CPPDEFS  = -DF_CPU=$(F_CPU)UL
-CPPDEFS += -DF_USB=$(F_USB)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
-CPPDEFS += $(LUFA_OPTS)
-#CPPDEFS += -D__STDC_LIMIT_MACROS
-#CPPDEFS += -D__STDC_CONSTANT_MACROS
-
-
-
-#---------------- Compiler Options C ----------------
-#  -g*:          generate debugging information
-#  -O*:          optimization level
-#  -f...:        tuning, see GCC manual and avr-libc documentation
-#  -Wall...:     warning level
-#  -Wa,...:      tell GCC to pass this to the assembler.
-#    -adhlns...: create assembler listing
-CFLAGS = -g$(DEBUG)
-CFLAGS += $(CDEFS)
-CFLAGS += -O$(OPT)
-CFLAGS += -funsigned-char
-CFLAGS += -funsigned-bitfields
-CFLAGS += -ffunction-sections
-CFLAGS += -fno-inline-small-functions
-CFLAGS += -fpack-struct
-CFLAGS += -fshort-enums
-CFLAGS += -fno-strict-aliasing
-CFLAGS += -Wall
-CFLAGS += -Wstrict-prototypes
-#CFLAGS += -mshort-calls
-#CFLAGS += -fno-unit-at-a-time
-#CFLAGS += -Wundef
-#CFLAGS += -Wunreachable-code
-#CFLAGS += -Wsign-compare
-CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)
-CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
-CFLAGS += $(CSTANDARD)
-
-
-#---------------- Compiler Options C++ ----------------
-#  -g*:          generate debugging information
-#  -O*:          optimization level
-#  -f...:        tuning, see GCC manual and avr-libc documentation
-#  -Wall...:     warning level
-#  -Wa,...:      tell GCC to pass this to the assembler.
-#    -adhlns...: create assembler listing
-CPPFLAGS = -g$(DEBUG)
-CPPFLAGS += $(CPPDEFS)
-CPPFLAGS += -O$(OPT)
-CPPFLAGS += -funsigned-char
-CPPFLAGS += -funsigned-bitfields
-CPPFLAGS += -fpack-struct
-CPPFLAGS += -fshort-enums
-CPPFLAGS += -fno-exceptions
-CPPFLAGS += -Wall
-CPPFLAGS += -Wundef
-#CPPFLAGS += -mshort-calls
-#CPPFLAGS += -fno-unit-at-a-time
-#CPPFLAGS += -Wstrict-prototypes
-#CPPFLAGS += -Wunreachable-code
-#CPPFLAGS += -Wsign-compare
-CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst)
-CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
-#CPPFLAGS += $(CSTANDARD)
-
-
-#---------------- Assembler Options ----------------
-#  -Wa,...:   tell GCC to pass this to the assembler.
-#  -adhlns:   create listing
-#  -gstabs:   have the assembler create line number information; note that
-#             for use in COFF files, additional information about filenames
-#             and function names needs to be present in the assembler source
-#             files -- see avr-libc docs [FIXME: not yet described there]
-#  -listing-cont-lines: Sets the maximum number of continuation lines of hex
-#       dump that will be displayed for a given single line of source input.
-ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100
-
-
-#---------------- Library Options ----------------
-# Minimalistic printf version
-PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
-
-# Floating point printf version (requires MATH_LIB = -lm below)
-PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
-
-# If this is left blank, then it will use the Standard printf version.
-PRINTF_LIB =
-#PRINTF_LIB = $(PRINTF_LIB_MIN)
-#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
-
-
-# Minimalistic scanf version
-SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
-
-# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
-SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
-
-# If this is left blank, then it will use the Standard scanf version.
-SCANF_LIB =
-#SCANF_LIB = $(SCANF_LIB_MIN)
-#SCANF_LIB = $(SCANF_LIB_FLOAT)
-
-
-MATH_LIB = -lm
-
-
-# List any extra directories to look for libraries here.
-#     Each directory must be seperated by a space.
-#     Use forward slashes for directory separators.
-#     For a directory that has spaces, enclose it in quotes.
-EXTRALIBDIRS =
-
-
-
-#---------------- External Memory Options ----------------
-
-# 64 KB of external RAM, starting after internal RAM (ATmega128!),
-# used for variables (.data/.bss) and heap (malloc()).
-#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
-
-# 64 KB of external RAM, starting after internal RAM (ATmega128!),
-# only used for heap (malloc()).
-#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff
-
-EXTMEMOPTS =
-
-
-
-#---------------- Linker Options ----------------
-#  -Wl,...:     tell GCC to pass this to linker.
-#    -Map:      create map file
-#    --cref:    add cross reference to  map file
-LDFLAGS  = -Wl,-Map=$(TARGET).map,--cref
-LDFLAGS += -Wl,--relax
-LDFLAGS += -Wl,--gc-sections
-LDFLAGS += $(EXTMEMOPTS)
-LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
-LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
-#LDFLAGS += -T linker_script.x
-
-
-
-#---------------- Programming Options (avrdude) ----------------
-
-# Programming hardware
-# Type: avrdude -c ?
-# to get a full listing.
-#
-AVRDUDE_PROGRAMMER = jtagmkII
-
-# com1 = serial port. Use lpt1 to connect to parallel port.
-AVRDUDE_PORT = usb
-
-AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
-#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
-
-
-# Uncomment the following if you want avrdude's erase cycle counter.
-# Note that this counter needs to be initialized first using -Yn,
-# see avrdude manual.
-#AVRDUDE_ERASE_COUNTER = -y
-
-# Uncomment the following if you do /not/ wish a verification to be
-# performed after programming the device.
-#AVRDUDE_NO_VERIFY = -V
-
-# Increase verbosity level.  Please use this when submitting bug
-# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
-# to submit bug reports.
-#AVRDUDE_VERBOSE = -v -v
-
-AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
-AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
-AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
-AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
-
-
-
-#---------------- Debugging Options ----------------
-
-# For simulavr only - target MCU frequency.
-DEBUG_MFREQ = $(F_CPU)
-
-# Set the DEBUG_UI to either gdb or insight.
-# DEBUG_UI = gdb
-DEBUG_UI = insight
-
-# Set the debugging back-end to either avarice, simulavr.
-DEBUG_BACKEND = avarice
-#DEBUG_BACKEND = simulavr
-
-# GDB Init Filename.
-GDBINIT_FILE = __avr_gdbinit
-
-# When using avarice settings for the JTAG
-JTAG_DEV = /dev/com1
-
-# Debugging port used to communicate between GDB / avarice / simulavr.
-DEBUG_PORT = 4242
-
-# Debugging host used to communicate between GDB / avarice / simulavr, normally
-#     just set to localhost unless doing some sort of crazy debugging when
-#     avarice is running on a different computer.
-DEBUG_HOST = localhost
-
-
-
-#============================================================================
-
-
-# Define programs and commands.
-SHELL = sh
-CC = avr-gcc
-OBJCOPY = avr-objcopy
-OBJDUMP = avr-objdump
-SIZE = avr-size
-AR = avr-ar rcs
-NM = avr-nm
-AVRDUDE = avrdude
-REMOVE = rm -f
-REMOVEDIR = rm -rf
-COPY = cp
-WINSHELL = cmd
-
-
-# Define Messages
-# English
-MSG_ERRORS_NONE = Errors: none
-MSG_BEGIN = -------- begin --------
-MSG_END = --------  end  --------
-MSG_SIZE_BEFORE = Size before:
-MSG_SIZE_AFTER = Size after:
-MSG_COFF = Converting to AVR COFF:
-MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
-MSG_FLASH = Creating load file for Flash:
-MSG_EEPROM = Creating load file for EEPROM:
-MSG_EXTENDED_LISTING = Creating Extended Listing:
-MSG_SYMBOL_TABLE = Creating Symbol Table:
-MSG_LINKING = Linking:
-MSG_COMPILING = Compiling C:
-MSG_COMPILING_CPP = Compiling C++:
-MSG_ASSEMBLING = Assembling:
-MSG_CLEANING = Cleaning project:
-MSG_CREATING_LIBRARY = Creating library:
-
-
-
-
-# Define all object files.
-OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o)
-
-# Define all listing files.
-LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst)
-
-
-# Compiler flags to generate dependency files.
-GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d
-
-
-# Combine all necessary flags and optional flags.
-# Add target processor to flags.
-ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
-ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS)
-ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
-
-
-
-
-
-# Default target.
-all: begin gccversion sizebefore build sizeafter end
-
-# Change the build target to build a HEX file or a library.
-build: elf hex eep lss sym
-#build: lib
-
-
-elf: $(TARGET).elf
-hex: $(TARGET).hex
-eep: $(TARGET).eep
-lss: $(TARGET).lss
-sym: $(TARGET).sym
-LIBNAME=lib$(TARGET).a
-lib: $(LIBNAME)
-
-
-
-# Eye candy.
-# AVR Studio 3.x does not check make's exit code but relies on
-# the following magic strings to be generated by the compile job.
-begin:
-       @echo
-       @echo $(MSG_BEGIN)
-
-end:
-       @echo $(MSG_END)
-       @echo
-
-
-# Display size of file.
-HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
-ELFSIZE = $(SIZE) $(MCU_FLAG) $(FORMAT_FLAG) $(TARGET).elf
-MCU_FLAG = $(shell $(SIZE) --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) )
-FORMAT_FLAG = $(shell $(SIZE) --help | grep -- --format=.*avr > /dev/null && echo --format=avr )
-
-
-sizebefore:
-       @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
-       2>/dev/null; echo; fi
-
-sizeafter:
-       @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
-       2>/dev/null; echo; fi
-
-
-
-# Display compiler version information.
-gccversion :
-       @$(CC) --version
-
-
-# Program the device.
-program: $(TARGET).hex $(TARGET).eep
-       $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
-
-flip: $(TARGET).hex
-       batchisp -hardware usb -device $(MCU) -operation erase f
-       batchisp -hardware usb -device $(MCU) -operation loadbuffer $(TARGET).hex program
-       batchisp -hardware usb -device $(MCU) -operation start reset 0
-
-dfu: $(TARGET).hex
-       dfu-programmer $(MCU) erase
-       dfu-programmer $(MCU) flash $(TARGET).hex
-       dfu-programmer $(MCU) reset
-
-flip-ee: $(TARGET).hex $(TARGET).eep
-       $(COPY) $(TARGET).eep $(TARGET)eep.hex
-       batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase
-       batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(TARGET)eep.hex program
-       batchisp -hardware usb -device $(MCU) -operation start reset 0
-       $(REMOVE) $(TARGET)eep.hex
-
-dfu-ee: $(TARGET).hex $(TARGET).eep
-       dfu-programmer $(MCU) eeprom-flash $(TARGET).eep
-       dfu-programmer $(MCU) reset
-
-
-# Generate avr-gdb config/init file which does the following:
-#     define the reset signal, load the target file, connect to target, and set
-#     a breakpoint at main().
-gdb-config:
-       @$(REMOVE) $(GDBINIT_FILE)
-       @echo define reset >> $(GDBINIT_FILE)
-       @echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
-       @echo end >> $(GDBINIT_FILE)
-       @echo file $(TARGET).elf >> $(GDBINIT_FILE)
-       @echo target remote $(DEBUG_HOST):$(DEBUG_PORT)  >> $(GDBINIT_FILE)
-ifeq ($(DEBUG_BACKEND),simulavr)
-       @echo load  >> $(GDBINIT_FILE)
-endif
-       @echo break main >> $(GDBINIT_FILE)
-
-debug: gdb-config $(TARGET).elf
-ifeq ($(DEBUG_BACKEND), avarice)
-       @echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
-       @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
-       $(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
-       @$(WINSHELL) /c pause
-
-else
-       @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
-       $(DEBUG_MFREQ) --port $(DEBUG_PORT)
-endif
-       @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
-
-
-
-
-# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
-COFFCONVERT = $(OBJCOPY) --debugging
-COFFCONVERT += --change-section-address .data-0x800000
-COFFCONVERT += --change-section-address .bss-0x800000
-COFFCONVERT += --change-section-address .noinit-0x800000
-COFFCONVERT += --change-section-address .eeprom-0x810000
-
-
-
-coff: $(TARGET).elf
-       @echo
-       @echo $(MSG_COFF) $(TARGET).cof
-       $(COFFCONVERT) -O coff-avr $< $(TARGET).cof
-
-
-extcoff: $(TARGET).elf
-       @echo
-       @echo $(MSG_EXTENDED_COFF) $(TARGET).cof
-       $(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
-
-
-
-# Create final output files (.hex, .eep) from ELF output file.
-%.hex: %.elf
-       @echo
-       @echo $(MSG_FLASH) $@
-       $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock $< $@
-
-%.eep: %.elf
-       @echo
-       @echo $(MSG_EEPROM) $@
-       -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
-       --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0
-
-# Create extended listing file from ELF output file.
-%.lss: %.elf
-       @echo
-       @echo $(MSG_EXTENDED_LISTING) $@
-       $(OBJDUMP) -h -S -z $< > $@
-
-# Create a symbol table from ELF output file.
-%.sym: %.elf
-       @echo
-       @echo $(MSG_SYMBOL_TABLE) $@
-       $(NM) -n $< > $@
-
-
-
-# Create library from object files.
-.SECONDARY : $(TARGET).a
-.PRECIOUS : $(OBJ)
-%.a: $(OBJ)
-       @echo
-       @echo $(MSG_CREATING_LIBRARY) $@
-       $(AR) $@ $(OBJ)
-
-
-# Link: create ELF output file from object files.
-.SECONDARY : $(TARGET).elf
-.PRECIOUS : $(OBJ)
-%.elf: $(OBJ)
-       @echo
-       @echo $(MSG_LINKING) $@
-       $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
-
-
-# Compile: create object files from C source files.
-$(OBJDIR)/%.o : %.c
-       @echo
-       @echo $(MSG_COMPILING) $<
-       $(CC) -c $(ALL_CFLAGS) $< -o $@
-
-
-# Compile: create object files from C++ source files.
-$(OBJDIR)/%.o : %.cpp
-       @echo
-       @echo $(MSG_COMPILING_CPP) $<
-       $(CC) -c $(ALL_CPPFLAGS) $< -o $@
-
-
-# Compile: create assembler files from C source files.
-%.s : %.c
-       $(CC) -S $(ALL_CFLAGS) $< -o $@
-
-
-# Compile: create assembler files from C++ source files.
-%.s : %.cpp
-       $(CC) -S $(ALL_CPPFLAGS) $< -o $@
-
-
-# Assemble: create object files from assembler source files.
-$(OBJDIR)/%.o : %.S
-       @echo
-       @echo $(MSG_ASSEMBLING) $<
-       $(CC) -c $(ALL_ASFLAGS) $< -o $@
-
-
-# Create preprocessed source for use in sending a bug report.
-%.i : %.c
-       $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
-
-
-# Target: clean project.
-clean: begin clean_list end
-
-clean_list :
-       @echo
-       @echo $(MSG_CLEANING)
-       $(REMOVE) $(TARGET).hex
-       $(REMOVE) $(TARGET).eep
-       $(REMOVE) $(TARGET).cof
-       $(REMOVE) $(TARGET).elf
-       $(REMOVE) $(TARGET).map
-       $(REMOVE) $(TARGET).sym
-       $(REMOVE) $(TARGET).lss
-       $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o)
-       $(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst)
-       $(REMOVE) $(SRC:.c=.s)
-       $(REMOVE) $(SRC:.c=.d)
-       $(REMOVE) $(SRC:.c=.i)
-       $(REMOVEDIR) .dep
-
-doxygen:
-       @echo Generating Project Documentation \($(TARGET)\)...
-       @if ( ( cat Doxygen.conf ; echo "HTML_STYLESHEET=$(LUFA_PATH)/LUFA/DoxygenPages/Style/Style.css" ) | doxygen - 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then \
-         exit 1; \
-       fi;
-       @echo Documentation Generation Complete.
-
-clean_doxygen:
-       rm -rf Documentation
-
-checksource:
-       @for f in $(SRC) $(CPPSRC) $(ASRC); do \
-               if [ -f $$f ]; then \
-                       echo "Found Source File: $$f" ; \
-               else \
-                       echo "Source File Not Found: $$f" ; \
-               fi; done 
-
-
-# Create object files directory
-$(shell mkdir $(OBJDIR) 2>/dev/null)
-
-
-# Include the dependency files.
--include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
-
-
-# Listing of phony targets.
-.PHONY : all begin finish end sizebefore sizeafter gccversion \
-build elf hex eep lss sym coff extcoff doxygen clean          \
-clean_list clean_doxygen program dfu flip flip-ee dfu-ee      \
-debug gdb-config checksource
diff --git a/Projects/LEDNotifier/Config/LUFAConfig.h b/Projects/LEDNotifier/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..3e9c9b2
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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
index d5bc6fa..feff812 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index 8e72491..8b77541 100644 (file)
@@ -46,7 +46,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/USB/USB.h>
 
index 1c3e54f..21529f6 100644 (file)
@@ -120,13 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -171,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/MIDIToneGenerator/Config/AppConfig.h b/Projects/MIDIToneGenerator/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..381efe0
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 MAX_SIMULTANEOUS_NOTES     3
+
+#endif
\ No newline at end of file
diff --git a/Projects/MIDIToneGenerator/Config/LUFAConfig.h b/Projects/MIDIToneGenerator/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..3e9c9b2
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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
index 8384444..549eeb5 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <avr/pgmspace.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Endpoint address of the MIDI streaming data IN endpoint, for device-to-host data transfers. */
                #define MIDI_STREAM_IN_EPADDR       (ENDPOINT_DIR_IN  | 2)
index 540c59a..9ebd828 100644 (file)
@@ -45,8 +45,8 @@
                #include <stdbool.h>
 
                #include "Descriptors.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Peripheral/ADC.h>
                #include <LUFA/Drivers/USB/USB.h>
@@ -76,9 +76,6 @@
                /** Lowest valid MIDI pitch index */
                #define BASE_PITCH_INDEX           21
 
-               /** Maximum number of MIDI notes that can be played simultaneously */
-               #define MAX_SIMULTANEOUS_NOTES     3
-
                /** Number of samples in the virtual sample table (can be expanded to lower maximum frequency, but allow for
                 *  more simultaneous notes due to the reduced amount of processing time needed when the samples are spaced out)
                 */
index 8b31004..82510db 100644 (file)
@@ -64,7 +64,7 @@
  *   </tr>
  *   <tr>
  *    <td>MAX_SIMULTANEOUS_NOTES</td>
- *    <td>MIDIToneGenerator.h</td>
+ *    <td>AppConfig.h</td>
  *    <td>Sets the maximum number of MIDI notes that can be generated simultaneously. More notes require more processing time,
  *        and thus a value that is too high will cause audiable sound distortion due to insufficient CPU time.</td>
  *   </tr>
index fa160f7..d3b7757 100644 (file)
@@ -120,13 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -171,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/Magstripe/Config/AppConfig.h b/Projects/Magstripe/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..e54151e
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 MAG_T1_CLOCK         (1 << 0)
+       #define MAG_T1_DATA          (1 << 1)
+       #define MAG_T2_CLOCK         (1 << 2)
+       #define MAG_T2_DATA          (1 << 3)
+       #define MAG_T3_CLOCK         (1 << 4)
+       #define MAG_T3_DATA          (1 << 5)
+       #define MAG_CARDPRESENT      (1 << 6)
+
+       #define MAG_PORT             PORTC
+       #define MAG_PIN              PINC
+       #define MAG_DDR              DDRC
+
+#endif
\ No newline at end of file
diff --git a/Projects/Magstripe/Config/LUFAConfig.h b/Projects/Magstripe/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..095bac9
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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
index f90816a..a03fa54 100644 (file)
@@ -42,6 +42,8 @@
 
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+
        /* 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
index ef5e908..177e26b 100644 (file)
@@ -65,6 +65,7 @@
                #include <avr/io.h>
 
                #include <LUFA/Common/Common.h>
+               #include "Config/AppConfig.h"
 
        /* Private Interface - For use in library only: */
                /* Macros: */
index 6e73dcb..2e2f63a 100644 (file)
@@ -46,8 +46,8 @@
                #include "Descriptors.h"
                #include "Lib/MagstripeHW.h"
                #include "Lib/CircularBitBuffer.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
 
        /* Macros: */
index 48fc059..9c39cbf 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>MAG_T1_CLOCK</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Mask for the magnetic card reader's CLOCK line for the reader's track 1 output.</td>
  *   </tr>
  *   <tr>
  *    <td>MAG_T1_DATA</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Mask for the magnetic card reader's DATA line for the reader's track 1 output.</td>
  *   </tr>
  *   <tr>
  *    <td>MAG_T2_CLOCK</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Mask for the magnetic card reader's CLOCK line for the reader's track 2 output.</td>
  *   </tr>
  *   <tr>
  *    <td>MAG_T2_DATA</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Mask for the magnetic card reader's DATA line for the reader's track 2 output.</td>
  *   </tr>
  *   <tr>
  *    <td>MAG_T3_CLOCK</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Mask for the magnetic card reader's CLOCK line for the reader's track 3 output.</td>
  *   </tr>
  *   <tr>
  *    <td>MAG_T3_DATA</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Mask for the magnetic card reader's DATA line for the reader's track 3 output.</td>
  *   </tr>
  *   <tr>
  *    <td>MAG_CARDPRESENT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Mask for the magnetic card reader's card detection output.</td>
  *   </tr>
  *   <tr>
  *    <td>MAG_PIN</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>PIN register that the magnetic card reader device is attached to.</td>
  *   </tr>
  *   <tr>
  *    <td>MAG_PORT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>PORT register that the magnetic card reader device is attached to.</td>
  *   </tr>
  *   <tr>
  *    <td>MAG_DDR</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>DDR register that the magnetic card reader device is attached to.</td>
  *   </tr>
  *  </table>
index 4eb0f6b..a237911 100644 (file)
@@ -120,24 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-
-LUFA_OPTS += -D MAG_T1_CLOCK="(1 << 0)"
-LUFA_OPTS += -D MAG_T1_DATA="(1 << 1)"
-LUFA_OPTS += -D MAG_T2_CLOCK="(1 << 2)"
-LUFA_OPTS += -D MAG_T2_DATA="(1 << 3)"
-LUFA_OPTS += -D MAG_T3_CLOCK="(1 << 4)"
-LUFA_OPTS += -D MAG_T3_DATA="(1 << 5)"
-LUFA_OPTS += -D MAG_CARDPRESENT="(1 << 6)"
-LUFA_OPTS += -D MAG_PIN=PINB
-LUFA_OPTS += -D MAG_DDR=DDRB
-LUFA_OPTS += -D MAG_PORT=PORTB
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -183,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/MediaController/Config/LUFAConfig.h b/Projects/MediaController/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..3e9c9b2
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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
index aeb91e7..fcfa780 100644 (file)
@@ -46,7 +46,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/Joystick.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Buttons.h>
index f38a6eb..a8862fa 100644 (file)
@@ -120,11 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -169,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/MissileLauncher/Config/LUFAConfig.h b/Projects/MissileLauncher/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..f96994e
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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_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      {Insert Value Here}
+//             #define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
+//             #define FIXED_NUM_CONFIGURATIONS         {Insert Value Here}
+//             #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              0
+//             #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
index 49036d3..c333f0f 100644 (file)
@@ -45,7 +45,6 @@
                #include <string.h>
                #include <stdio.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/USB/USB.h>
                #include <LUFA/Drivers/Board/Buttons.h>
                #include <LUFA/Drivers/Board/Joystick.h>
index e499535..dff825f 100644 (file)
@@ -120,10 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_HOST_ONLY
-LUFA_OPTS += -D HOST_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -167,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/RelayBoard/Config/LUFAConfig.h b/Projects/RelayBoard/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..c238cc6
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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              0
+//             #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
index 709c009..40f5706 100644 (file)
@@ -45,7 +45,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/USB/USB.h>
 
index 76bf755..949daf0 100644 (file)
@@ -120,14 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D CONTROL_ONLY_DEVICE
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -171,7 +164,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/SerialToLCD/Config/LUFAConfig.h b/Projects/SerialToLCD/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..4637da5
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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              0
+//             #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
index ea8ce8c..f9a1c7a 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index 52efe44..cd89305 100644 (file)
@@ -46,7 +46,6 @@
         #include "Descriptors.h"
                #include "Lib/HD44780.h"
 
-        #include <LUFA/Version.h>
         #include <LUFA/Drivers/Misc/RingBuffer.h>
         #include <LUFA/Drivers/USB/USB.h>
                
index 337f249..ba7b5aa 100644 (file)
@@ -120,14 +120,7 @@ LUFA_PATH = ../..
 \r
 \r
 # LUFA library compile-time options and predefined tokens\r
-LUFA_OPTS  = -D USB_DEVICE_ONLY\r
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0\r
-LUFA_OPTS += -D ORDERED_EP_CONFIG\r
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8\r
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1\r
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS\r
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"\r
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT\r
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER\r
 \r
 \r
 # Create the LUFA source path variables by including the LUFA root makefile\r
@@ -173,7 +166,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.\r
 #     Use forward slashes for directory separators.\r
 #     For a directory that has spaces, enclose it in quotes.\r
-EXTRAINCDIRS = $(LUFA_PATH)/\r
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/\r
 \r
 \r
 # Compiler flag to set the C Standard level.\r
diff --git a/Projects/TempDataLogger/Config/AppConfig.h b/Projects/TempDataLogger/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..86f148f
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 DUMMY_RTC
+
+#endif
\ No newline at end of file
diff --git a/Projects/TempDataLogger/Config/LUFAConfig.h b/Projects/TempDataLogger/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..4637da5
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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              0
+//             #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
index ffd312d..551c66a 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** HID class report descriptor. This is a special descriptor constructed with values from the
  *  USBIF HID class specification to describe the reports and capabilities of the HID device. This
index 5f98143..d48978c 100644 (file)
@@ -15,6 +15,7 @@
                #include <LUFA/Drivers/USB/USB.h>
 
                #include "TempDataLogger.h"
+               #include "Config/AppConfig.h"
 
        /* Macros: */
                /** Endpoint address of the Mass Storage device-to-host data IN endpoint. */
index 0736d8e..0ad0a4d 100644 (file)
@@ -12,6 +12,8 @@
                #include <avr/io.h>
 
                #include <LUFA/Drivers/Peripheral/TWI.h>
+               
+               #include "Config/AppConfig.h"
 
        /* Type Defines: */
                typedef struct
                } DS1307_DateTimeRegs_t;
 
        /* Macros: */
+               /** TWI address of the DS1307 device on the bus. */
                #define DS1307_ADDRESS       0xD0
 
        /* Function Prototypes: */
index 0841959..cf21235 100644 (file)
@@ -49,8 +49,8 @@
                #include "Lib/DataflashManager.h"
                #include "Lib/FATFs/ff.h"
                #include "Lib/DS1307.h"
-
-               #include <LUFA/Version.h>
+               #include "Config/AppConfig.h"
+               
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Temperature.h>
                #include <LUFA/Drivers/Peripheral/ADC.h>
index 1e528f4..39eb23d 100644 (file)
@@ -77,7 +77,7 @@
  *   </tr>
  *   <tr>
  *    <td>DUMMY_RTC</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When a DS1307 RTC chip is not fitted, this token can be defined to make the demo assume a 1/1/1 01:01:01 date/time
  *        stamp at all times, effectively transforming the project into a basic data logger with no specified sample times.</td>
  *   </tr>
index e58f270..67ce019 100644 (file)
@@ -120,15 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
-
-#LUFA_OPTS += -D DUMMY_RTC
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -180,7 +172,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/USBtoSerial/Config/LUFAConfig.h b/Projects/USBtoSerial/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..4637da5
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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              0
+//             #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
index b7aa48c..2b4bb4c 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index d094863..ee2bd2f 100644 (file)
@@ -44,7 +44,6 @@
 
                #include "Descriptors.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Peripheral/Serial.h>
                #include <LUFA/Drivers/Misc/RingBuffer.h>
index 93cb3d1..e4073c1 100644 (file)
@@ -120,14 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -172,7 +165,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/Webserver/Config/AppConfig.h b/Projects/Webserver/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..0f26a7a
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 ENABLE_DHCP_CLIENT
+       #define ENABLE_DHCP_SERVER
+       #define ENABLE_TELNET_SERVER
+       #define MAX_URI_LENGTH                50
+
+       #define DEVICE_IP_ADDRESS             (uint8_t[]){ 10,   0,   0,   2}
+       #define DEVICE_NETMASK                (uint8_t[]){255, 255, 255,   0}
+       #define DEVICE_GATEWAY                (uint8_t[]){ 10,   0,   0,   1}
+       #define SERVER_MAC_ADDRESS            (uint8_t[]){  1,   0,   1,   0,   1,   0}
+       
+       #define UIP_CONF_UDP                  (defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER))
+       #define UIP_CONF_BROADCAST            1
+       #define UIP_CONF_TCP                  1
+       #define UIP_CONF_UDP_CONNS            1
+       #define UIP_CONF_MAX_CONNECTIONS      3
+       #define UIP_CONF_MAX_LISTENPORTS      5
+       #define UIP_CONF_BUFFER_SIZE          1514
+       #define UIP_CONF_LL_802154            0
+       #define UIP_CONF_LL_80211             0
+       #define UIP_CONF_ROUTER               0
+       #define UIP_CONF_ICMP6                0
+       #define UIP_CONF_ICMP_DEST_UNREACH    1
+       #define UIP_URGDATA                   0
+       #define UIP_ARCH_CHKSUM               0
+       #define UIP_ARCH_ADD32                0
+       #define UIP_NEIGHBOR_CONF_ADDRTYPE    0
+
+#endif
\ No newline at end of file
diff --git a/Projects/Webserver/Config/LUFAConfig.h b/Projects/Webserver/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..b794426
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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              0
+//             #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
index 57519c8..a82ccc0 100644 (file)
 
 #include "Descriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index 591947c..969f47b 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                /** Endpoint address of the Mass Storage device-to-host data IN endpoint. */
                #define MASS_STORAGE_IN_EPADDR         (ENDPOINT_DIR_IN  | 3)
index 1a564ca..91c0f1f 100644 (file)
@@ -28,8 +28,6 @@
   this software.
 */
 
-#if defined(ENABLE_DHCP_CLIENT) || defined(__DOXYGEN__)
-
 /** \file
  *
  *  DHCP Client Application. When connected to the uIP stack, this will retrieve IP configuration settings from the
@@ -39,6 +37,8 @@
 #define  INCLUDE_FROM_DHCPCLIENTAPP_C
 #include "DHCPClientApp.h"
 
+#if defined(ENABLE_DHCP_CLIENT) || defined(__DOXYGEN__)
+
 /** Initialization function for the DHCP client. */
 void DHCPClientApp_Init(void)
 {
index 21c5e43..b5ce11c 100644 (file)
@@ -41,6 +41,7 @@
 
                #include <uip.h>
 
+               #include "Config/AppConfig.h"
                #include "../Webserver.h"
                #include "DHCPCommon.h"
 
index f2b9997..b0fe37d 100644 (file)
@@ -28,8 +28,6 @@
   this software.
 */
 
-#if defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
-
 /** \file
  *
  *  Common DHCP routines to manage DHCP packet data.
@@ -37,6 +35,8 @@
 
 #include "DHCPCommon.h"
 
+#if defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
+
 /** Sets the given DHCP option in the DHCP packet's option list. This automatically moves the
  *  end of options terminator past the new option in the options list.
  *
index 797aa57..dc8dcdf 100644 (file)
@@ -41,6 +41,8 @@
                #include <stdbool.h>
                #include <string.h>
 
+               #include "Config/AppConfig.h"
+               
                #include <uip.h>
 
        /* Macros: */
index e2b72af..05ae4e9 100644 (file)
@@ -28,8 +28,6 @@
   this software.
 */
 
-#if defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
-
 /** \file
  *
  *  DHCP Server Application. When connected to the uIP stack, this will send IP configuration settings to a
@@ -39,6 +37,8 @@
 #define  INCLUDE_FROM_DHCPSERVERAPP_C
 #include "DHCPServerApp.h"
 
+#if defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
+
 struct uip_conn* BroadcastConnection;
 
 uint8_t LeasedIPs[255 / 8];
index 151319b..d41df37 100644 (file)
@@ -41,6 +41,7 @@
 
                #include <uip.h>
 
+               #include "Config/AppConfig.h"
                #include "../Webserver.h"
                #include "DHCPCommon.h"
 
index 526e758..e3678e8 100644 (file)
@@ -41,6 +41,8 @@
                #include <string.h>
 
                #include <LUFA/Version.h>
+               
+               #include "Config/AppConfig.h"
 
                #include <uip.h>
                #include <ff.h>
index 3fffae1..ff829b9 100644 (file)
@@ -28,8 +28,6 @@
   this software.
 */
 
-#if defined(ENABLE_TELNET_SERVER) || defined(__DOXYGEN__)
-
 /** \file
  *
  *  TELNET Webserver Application. When connected to the uIP stack,
@@ -39,6 +37,8 @@
 #define  INCLUDE_FROM_TELNETSERVERAPP_C
 #include "TELNETServerApp.h"
 
+#if defined(ENABLE_TELNET_SERVER) || defined(__DOXYGEN__)
+
 /** Welcome message to send to a TELNET client when a connection is first made. */
 const char PROGMEM WelcomeHeader[] = "********************************************\r\n"
                                      "*       LUFA uIP Webserver (TELNET)        *\r\n"
index 5f3e864..df580f5 100644 (file)
@@ -43,6 +43,8 @@
 
                #include <uip.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** TCP listen port for incoming TELNET traffic. */
                #define TELNET_SERVER_PORT  23
index 390d3c4..3e4e6a7 100644 (file)
                #include <uip_arp.h>
                #include <uip-split.h>
                #include <timer.h>
+               
+               #include "Config/AppConfig.h"
 
                #include "DHCPClientApp.h"
                #include "DHCPServerApp.h"
                #include "HTTPServerApp.h"
                #include "TELNETServerApp.h"
 
-       /* Macros: */
-               /** IP address that the webserver should use once connected to a RNDIS device (when DHCP is disabled). */
-               #define DEVICE_IP_ADDRESS         (uint8_t[]){10, 0, 0, 2}
-
-               /** Netmask that the webserver should once connected to a RNDIS device (when DHCP is disabled). */
-               #define DEVICE_NETMASK            (uint8_t[]){255, 255, 255, 0}
-
-               /** IP address of the default gateway the webserver should use when routing outside the local subnet
-                *  (when DHCP is disabled).
-                */
-               #define DEVICE_GATEWAY            (uint8_t[]){10, 0, 0, 1}
-
-               /** Ethernet MAC address of the virtual webserver. When in device RNDIS mode, the virtual webserver requires
-                *  a unique MAC address that it can use when sending packets to the RNDIS adapter, which contains a seperate
-                *  MAC address as set in the RNDIS class driver configuration structure.
-                */
-               #define SERVER_MAC_ADDRESS        (uint8_t[]){1, 0, 1, 0, 1, 0}
-
        /* External Variables: */
                extern struct uip_eth_addr MACAddress;
 
index 17f7033..520c03f 100644 (file)
@@ -62,6 +62,8 @@
 #ifndef __UIPOPT_H__
 #define __UIPOPT_H__
 
+#include "Config/AppConfig.h"
+
 #ifndef UIP_LITTLE_ENDIAN
 #define UIP_LITTLE_ENDIAN  3412
 #endif /* UIP_LITTLE_ENDIAN */
index 617c262..86b3e91 100644 (file)
                #include <LUFA/Drivers/USB/USB.h>
 
                #include "Webserver.h"
-               #include "Lib/uIPManagement.h"
                #include "Descriptors.h"
+               #include "Lib/uIPManagement.h"
                #include "Lib/SCSI.h"
-
+               #include "Config/AppConfig.h"
+               
        /* External Variables: */
                extern USB_ClassInfo_RNDIS_Device_t Ethernet_RNDIS_Interface_Device;
 
index c918658..d084e09 100644 (file)
@@ -41,6 +41,7 @@
 
                #include "Webserver.h"
                #include "Lib/uIPManagement.h"
+               #include "Config/AppConfig.h"
 
        /* External Variables: */
                extern USB_ClassInfo_RNDIS_Host_t Ethernet_RNDIS_Interface_Host;
index 199bc8e..8c47711 100644 (file)
@@ -43,7 +43,6 @@
                #include <avr/power.h>
                #include <avr/interrupt.h>
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Board/Dataflash.h>
                #include <LUFA/Drivers/Peripheral/SPI.h>
@@ -51,6 +50,7 @@
 
                #include "USBDeviceMode.h"
                #include "USBHostMode.h"
+               #include "Config/AppConfig.h"
 
        /* Macros: */
                /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
index 56e9d25..2ec8369 100644 (file)
  *   </tr>
  *   <tr>
  *    <td>ENABLE_TELNET_SERVER</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this enables the TELNET server in addition to the HTTP webserver, which listens for incoming connections
  *        and processes user commands.</td>
  *   </tr>
  *   <tr>
  *    <td>ENABLE_DHCP_CLIENT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this enables the DHCP client for dynamic IP allocation of the network settings from a DHCP server.</td>
  *   </tr>
  *   <tr>
  *    <td>ENABLE_DHCP_SERVER</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>When defined, this enables the DHCP server for dynamic IP allocation of the network settings to a DHCP client.</td>
  *   </tr>
  *   <tr>
  *    <td>DEVICE_IP_ADDRESS</td>
- *    <td>Lib/uIPManagement.h</td>
+ *    <td>AppConfig.h</td>
  *    <td>IP address that the webserver should use when connected to a RNDIS device (when ENABLE_DHCP_CLIENT is not defined).</td>
  *   </tr>
  *   <tr>
  *    <td>DEVICE_NETMASK</td>
- *    <td>Lib/uIPManagement.h</td>
+ *    <td>AppConfig.h</td>
  *    <td>Netmask that the webserver should use when connected to a RNDIS device (when ENABLE_DHCP_CLIENT is not defined).</td>
  *   </tr>
  *   <tr>
  *    <td>DEVICE_GATEWAY</td>
- *    <td>Lib/uIPManagement.h</td>
+ *    <td>AppConfig.h</td>
  *    <td>Default routing gateway that the webserver should use when connected to a RNDIS device (when ENABLE_DHCP_CLIENT
  *        is not defined).</td>
  *   </tr>
  *   <tr>
  *    <td>MAX_URI_LENGTH</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Maximum length of a URI for the Webserver. This is the maximum file path, including subdirectories and separators.</td>
  *   </tr>
+ *   <tr>
+ *    <td>SERVER_MAC_ADDRESS</td>
+ *    <td>AppConfig.h</td>
+ *    <td>MAC address of the server used when sending Ethernet packets onto the bus.</td>
+ *   </tr>
  *  </table>
  */
 
index 9e49059..ea45786 100644 (file)
@@ -120,34 +120,7 @@ LUFA_PATH = ../..
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
-
-LUFA_OPTS += -D ENABLE_DHCP_CLIENT
-LUFA_OPTS += -D ENABLE_DHCP_SERVER
-LUFA_OPTS += -D ENABLE_TELNET_SERVER
-LUFA_OPTS += -D MAX_URI_LENGTH=50
-
-LUFA_OPTS += -D UIP_CONF_UDP="defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER)"
-LUFA_OPTS += -D UIP_CONF_BROADCAST=1
-LUFA_OPTS += -D UIP_CONF_TCP=1
-LUFA_OPTS += -D UIP_CONF_UDP_CONNS=1
-LUFA_OPTS += -D UIP_CONF_MAX_CONNECTIONS=3
-LUFA_OPTS += -D UIP_CONF_MAX_LISTENPORTS=5
-LUFA_OPTS += -D UIP_CONF_BUFFER_SIZE=1514
-LUFA_OPTS += -D UIP_CONF_LL_802154=0
-LUFA_OPTS += -D UIP_CONF_LL_80211=0
-LUFA_OPTS += -D UIP_CONF_ROUTER=0
-LUFA_OPTS += -D UIP_CONF_ICMP6=0
-LUFA_OPTS += -D UIP_CONF_ICMP_DEST_UNREACH=1
-LUFA_OPTS += -D UIP_URGDATA=0
-LUFA_OPTS += -D UIP_ARCH_CHKSUM=0
-LUFA_OPTS += -D UIP_ARCH_ADD32=0
-LUFA_OPTS += -D UIP_NEIGHBOR_CONF_ADDRTYPE=0
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
 
 
 # Create the LUFA source path variables by including the LUFA root makefile
@@ -209,7 +182,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/ Lib/uip/ Lib/uip/conf/ Lib/FATFs/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/ Lib/uip/ Lib/uip/conf/ Lib/FATFs/
 
 
 # Compiler flag to set the C Standard level.
diff --git a/Projects/XPLAINBridge/Config/AppConfig.h b/Projects/XPLAINBridge/Config/AppConfig.h
new file mode 100644 (file)
index 0000000..260880c
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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 some of
+ *  the application's compile time options, as an alternative to
+ *  specifying the compile time constants supplied through a 
+ *  makefile or build system.
+ *
+ *  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 AUX_LINE_PORT              PORTB
+       #define AUX_LINE_PIN               PINB
+       #define AUX_LINE_DDR               DDRB
+       #define AUX_LINE_MASK              (1 << 4)
+
+//     #define ENABLE_ISP_PROTOCOL
+       #define ENABLE_XPROG_PROTOCOL
+
+       #define VTARGET_ADC_CHANNEL        2
+       #define VTARGET_REF_VOLTS          3.3
+       #define VTARGET_SCALE_FACTOR       2
+//     #define VTARGET_USE_INTERNAL_REF
+//     #define NO_VTARGET_DETECT
+//     #define XCK_RESCUE_CLOCK_ENABLE
+//     #define INVERTED_ISP_MISO
+
+//     #define LIBUSB_DRIVER_COMPAT
+//     #define RESET_TOGGLES_LIBUSB_COMPAT
+//     #define FIRMWARE_VERSION_MINOR     0x11
+
+#endif
\ No newline at end of file
diff --git a/Projects/XPLAINBridge/Config/LUFAConfig.h b/Projects/XPLAINBridge/Config/LUFAConfig.h
new file mode 100644 (file)
index 0000000..5c16ffb
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  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 disclaim 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      16
+               #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
index c30ad65..e2492ce 100644 (file)
@@ -44,7 +44,8 @@
                #include <stdbool.h>
 
                #include "../XPLAINBridge.h"
-
+               #include "Config/AppConfig.h"
+               
        /* Macros: */
                #define SRX        PD0
                #define SRXPIN     PIND
index 491b875..2a96c14 100644 (file)
 
 #include "USARTDescriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
index 84082ed..94476ec 100644 (file)
@@ -41,6 +41,8 @@
 
                #include <LUFA/Drivers/USB/USB.h>
 
+               #include "Config/AppConfig.h"
+
        /* Macros: */
                /** Endpoint address of the CDC device-to-host notification IN endpoint. */
                #define CDC_NOTIFICATION_EPADDR        (ENDPOINT_DIR_IN  | 2)
index abf2511..80e822a 100644 (file)
@@ -48,8 +48,8 @@
                #include "AVRISPDescriptors.h"          
                #include "Lib/V2Protocol.h"
                #include "Lib/SoftUART.h"
+               #include "Config/AppConfig.h"
 
-               #include <LUFA/Version.h>
                #include <LUFA/Drivers/Board/LEDs.h>
                #include <LUFA/Drivers/Misc/RingBuffer.h>
                #include <LUFA/Drivers/USB/USB.h>
index b19ab4a..bc0ca37 100644 (file)
@@ -80,7 +80,7 @@
  *   </tr>
  *   <tr>
  *    <td>LIBUSB_DRIVER_COMPAT</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
  *        the code compatible with software such as avrdude (all platforms) that use the libUSB driver.
  *
  *   </tr>
  *   <tr>
  *    <td>FIRMWARE_VERSION_MINOR</td>
- *    <td>Makefile LUFA_OPTS</td>
+ *    <td>AppConfig.h</td>
  *    <td>Define to set the minor firmware revision nunber reported to the host on request. By default this will use a firmware version compatible
  *        with the latest Atmel IDE version, however if desired the reported minor value can be adjusted here.</td>
  *   </tr>
index 32690d5..5c962b5 100644 (file)
@@ -124,25 +124,8 @@ AVRISP_PATH = ../AVRISP-MKII
 
 
 # LUFA library compile-time options and predefined tokens
-LUFA_OPTS  = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=16
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
-LUFA_OPTS += -D NO_DEVICE_SELF_POWER
-
-LUFA_OPTS += -D AUX_LINE_PORT=PORTB
-LUFA_OPTS += -D AUX_LINE_PIN=PINB
-LUFA_OPTS += -D AUX_LINE_DDR=DDRB
-LUFA_OPTS += -D AUX_LINE_MASK="(1 << 4)"
-LUFA_OPTS += -D VTARGET_ADC_CHANNEL=2
-LUFA_OPTS += -D VTARGET_REF_VOLTS=3.3
-LUFA_OPTS += -D VTARGET_SCALE_FACTOR=2
-#LUFA_OPTS += -D RESET_TOGGLES_LIBUSB_COMPAT
-#LUFA_OPTS += -D LIBUSB_DRIVER_COMPAT
-#LUFA_OPTS += -D FIRMWARE_VERSION_MINOR=0x11
+LUFA_OPTS  = -D USE_LUFA_CONFIG_HEADER
+
 
 # Create the LUFA source path variables by including the LUFA root makefile
 include $(LUFA_PATH)/LUFA/makefile
@@ -196,7 +179,7 @@ DEBUG = dwarf-2
 #     Each directory must be seperated by a space.
 #     Use forward slashes for directory separators.
 #     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/ $(AVRISP_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ $(AVRISP_PATH)/ Config/
 
 
 # Compiler flag to set the C Standard level.