From dd995683ea1f233b79724d524a9a3dbcdc171d30 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sun, 24 Jan 2010 11:13:23 +0000
Subject: [PATCH] Enhance TemperatureDatalogger project -- add RTC capabilities
 so that data is logged along with the current time and date. Make logging
 interval configurable, set by a C# PC host application.

---
 LUFA.pnproj                                   |   2 +-
 LUFA/ManPages/FutureChanges.txt               |   3 +
 LUFA/ManPages/VIDAndPIDValues.txt             |   2 +-
 Projects/AVRISP-MKII/makefile                 |   1 +
 Projects/TemperatureDataLogger/Descriptors.c  |  87 ++++++++-
 Projects/TemperatureDataLogger/Descriptors.h  |  48 ++---
 Projects/TemperatureDataLogger/Lib/DS1307.c   | 129 +++++++++++++
 Projects/TemperatureDataLogger/Lib/DS1307.h   | 111 +++++++++++
 .../TemperatureDataLogger/Lib/FATFs/diskio.c  |  14 +-
 .../TemperatureDataLogger/Lib/FATFs/ffconf.h  |   2 +-
 .../TemperatureDataLogger/TempDataLogger.c    | 165 +++++++++++++---
 .../TemperatureDataLogger/TempDataLogger.h    |  25 ++-
 .../TempLoggerHostApp/TempLoggerHostApp.sln   |  20 ++
 .../TempLoggerHostApp/TempLoggerHostApp.suo   | Bin 0 -> 17408 bytes
 .../DataLoggerSettings.Designer.cs            | 181 ++++++++++++++++++
 .../TempLoggerHostApp/DataLoggerSettings.cs   | 172 +++++++++++++++++
 .../TempLoggerHostApp/DataLoggerSettings.resx | 120 ++++++++++++
 .../TempLoggerHostApp/Hid.Linux.dll           | Bin 0 -> 9216 bytes
 .../TempLoggerHostApp/Hid.Net.dll             | Bin 0 -> 24576 bytes
 .../TempLoggerHostApp/Hid.Win32.dll           | Bin 0 -> 94208 bytes
 .../TempLoggerHostApp/Program.cs              |  21 ++
 .../TempLoggerHostApp.csproj                  |  95 +++++++++
 .../TemperatureDataLogger.txt                 |  29 ++-
 Projects/TemperatureDataLogger/makefile       |   3 +
 24 files changed, 1147 insertions(+), 83 deletions(-)
 create mode 100644 Projects/TemperatureDataLogger/Lib/DS1307.c
 create mode 100644 Projects/TemperatureDataLogger/Lib/DS1307.h
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp.sln
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp.suo
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.Designer.cs
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.cs
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.resx
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Hid.Linux.dll
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Hid.Net.dll
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Hid.Win32.dll
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Program.cs
 create mode 100644 Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/TempLoggerHostApp.csproj

diff --git a/LUFA.pnproj b/LUFA.pnproj
index 54dce2e1e..f50eba3a4 100644
--- a/LUFA.pnproj
+++ b/LUFA.pnproj
@@ -1 +1 @@
-<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="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><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI_Codes.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="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><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI_Codes.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\RNDISConstants.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><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><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="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="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="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="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><File path="Demos\Host\LowLevel\MassStorageHost\Lib\SCSI_Codes.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><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISConstants.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\PIMACodes.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.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></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></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="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><Folder name="Template"><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\StreamCallbacks.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.h"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Host\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Host\HIDReportData.h"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.c"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.c"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Common\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDISConstants.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File></Folder><Folder name="Board"><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><Folder name="BUMBLEB"><File path="LUFA\Drivers\Board\BUMBLEB\Buttons.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\Joystick.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\LEDs.h"></File></Folder><Folder name="XPLAIN"><File path="LUFA\Drivers\Board\XPLAIN\LEDs.h"></File><File path="LUFA\Drivers\Board\XPLAIN\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\XPLAIN\Dataflash.h"></File></Folder><Folder name="EVK527"><File path="LUFA\Drivers\Board\EVK527\Buttons.h"></File><File path="LUFA\Drivers\Board\EVK527\LEDs.h"></File><File path="LUFA\Drivers\Board\EVK527\Joystick.h"></File><File path="LUFA\Drivers\Board\EVK527\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\EVK527\Dataflash.h"></File></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="AVRU4U6U7"><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\ADC.h"></File><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\TWI.c"></File><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\TWI.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\Serial.c"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File><File path="LUFA\Drivers\Peripheral\TWI.h"></File></Folder></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\Licence.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File><File path="LUFA\ManPages\AlternativeStacks.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File></Folder><Folder name="Bootloaders"><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></Folder><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></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><Folder name="Incomplete"><Folder name="MIDI"><Folder name="JavaHost"><File path="Bootloaders\Incomplete\MIDI\JavaHost\BIN2BOOT.java"></File><File path="Bootloaders\Incomplete\MIDI\JavaHost\MIDIMessageReceiver.java"></File></Folder><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.c"></File><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.h"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.c"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.h"></File><File path="Bootloaders\Incomplete\MIDI\Doxygen.conf"></File><File path="Bootloaders\Incomplete\MIDI\makefile"></File><File path="Bootloaders\Incomplete\MIDI\MIDI.c"></File></Folder></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\AVRISP.c"></File><File path="Projects\AVRISP-MKII\AVRISP.h"></File><File path="Projects\AVRISP-MKII\AVRISP.txt"></File><File path="Projects\AVRISP-MKII\Descriptors.c"></File><File path="Projects\AVRISP-MKII\Descriptors.h"></File><File path="Projects\AVRISP-MKII\Doxygen.conf"></File><File path="Projects\AVRISP-MKII\makefile"></File></Folder><Folder name="Benito"><Folder name="Board"><File path="Projects\Benito\Board\LEDs.h"></File></Folder><Folder name="Lib"><File path="Projects\Benito\Lib\RingBuff.c"></File><File path="Projects\Benito\Lib\RingBuff.h"></File></Folder><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="LEDNotifier"><Folder name="Board"><File path="Projects\LEDNotifier\Board\LEDs.h"></File></Folder><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="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="TemperatureDataLogger"><Folder name="Lib"><Folder name="FATFs"><File path="Projects\TemperatureDataLogger\Lib\FATFs\diskio.c"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\diskio.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ff.c"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ff.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ffconf.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\integer.h"></File></Folder><File path="Projects\TemperatureDataLogger\Lib\DataflashManager.c"></File><File path="Projects\TemperatureDataLogger\Lib\DataflashManager.h"></File><File path="Projects\TemperatureDataLogger\Lib\SCSI.c"></File><File path="Projects\TemperatureDataLogger\Lib\SCSI.h"></File></Folder><File path="Projects\TemperatureDataLogger\Descriptors.c"></File><File path="Projects\TemperatureDataLogger\Descriptors.h"></File><File path="Projects\TemperatureDataLogger\makefile"></File><File path="Projects\TemperatureDataLogger\TempDataLogger.c"></File><File path="Projects\TemperatureDataLogger\TempDataLogger.h"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Projects\USBtoSerial\Lib\RingBuff.c"></File><File path="Projects\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Projects\USBtoSerial\Descriptors.c"></File><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></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\RingBuff.c"></File><File path="Projects\XPLAINBridge\Lib\RingBuff.h"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.c"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File></Folder><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File><File path="Projects\XPLAINBridge\USARTDescriptors.c"></File><File path="Projects\XPLAINBridge\USARTDescriptors.h"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.c"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.h"></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 name="Webserver"><Folder name="Lib"><Folder name="uip"><Folder name="conf"><File path="Projects\Incomplete\Webserver\Lib\uip\conf\apps-conf.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\conf\clock-arch.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\conf\clock-arch.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\conf\global-conf.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\conf\uip-conf.h"></File></Folder><File path="Projects\Incomplete\Webserver\Lib\uip\clock.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\lc.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\lc-addrlabels.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\lc-switch.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\psock.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\psock.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\pt.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\timer.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\timer.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip_arch.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip_arp.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip_arp.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-fw.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-fw.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uiplib.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uiplib.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-neighbor.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-neighbor.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uipopt.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-split.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-split.h"></File></Folder><File path="Projects\Incomplete\Webserver\Lib\WebserverApp.c"></File><File path="Projects\Incomplete\Webserver\Lib\WebserverApp.h"></File></Folder><File path="Projects\Incomplete\Webserver\makefile"></File><File path="Projects\Incomplete\Webserver\Webserver.c"></File><File path="Projects\Incomplete\Webserver\Webserver.h"></File></Folder></Folder><File path="Projects\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project>
\ No newline at end of file
+<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="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><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI_Codes.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="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><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI_Codes.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\RNDISConstants.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><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><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="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="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="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="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><File path="Demos\Host\LowLevel\MassStorageHost\Lib\SCSI_Codes.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><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISConstants.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\PIMACodes.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.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></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></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="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><Folder name="Template"><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\StreamCallbacks.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.h"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Host\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Host\HIDReportData.h"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.c"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.c"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Common\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDISConstants.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File></Folder><Folder name="Board"><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><Folder name="BUMBLEB"><File path="LUFA\Drivers\Board\BUMBLEB\Buttons.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\Joystick.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\LEDs.h"></File></Folder><Folder name="XPLAIN"><File path="LUFA\Drivers\Board\XPLAIN\LEDs.h"></File><File path="LUFA\Drivers\Board\XPLAIN\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\XPLAIN\Dataflash.h"></File></Folder><Folder name="EVK527"><File path="LUFA\Drivers\Board\EVK527\Buttons.h"></File><File path="LUFA\Drivers\Board\EVK527\LEDs.h"></File><File path="LUFA\Drivers\Board\EVK527\Joystick.h"></File><File path="LUFA\Drivers\Board\EVK527\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\EVK527\Dataflash.h"></File></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="AVRU4U6U7"><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\ADC.h"></File><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\TWI.c"></File><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\TWI.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\Serial.c"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File><File path="LUFA\Drivers\Peripheral\TWI.h"></File></Folder></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\Licence.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File><File path="LUFA\ManPages\AlternativeStacks.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File></Folder><Folder name="Bootloaders"><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></Folder><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></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><Folder name="Incomplete"><Folder name="MIDI"><Folder name="JavaHost"><File path="Bootloaders\Incomplete\MIDI\JavaHost\BIN2BOOT.java"></File><File path="Bootloaders\Incomplete\MIDI\JavaHost\MIDIMessageReceiver.java"></File></Folder><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.c"></File><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.h"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.c"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.h"></File><File path="Bootloaders\Incomplete\MIDI\Doxygen.conf"></File><File path="Bootloaders\Incomplete\MIDI\makefile"></File><File path="Bootloaders\Incomplete\MIDI\MIDI.c"></File></Folder></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\AVRISP.c"></File><File path="Projects\AVRISP-MKII\AVRISP.h"></File><File path="Projects\AVRISP-MKII\AVRISP.txt"></File><File path="Projects\AVRISP-MKII\Descriptors.c"></File><File path="Projects\AVRISP-MKII\Descriptors.h"></File><File path="Projects\AVRISP-MKII\Doxygen.conf"></File><File path="Projects\AVRISP-MKII\makefile"></File></Folder><Folder name="Benito"><Folder name="Board"><File path="Projects\Benito\Board\LEDs.h"></File></Folder><Folder name="Lib"><File path="Projects\Benito\Lib\RingBuff.c"></File><File path="Projects\Benito\Lib\RingBuff.h"></File></Folder><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="LEDNotifier"><Folder name="Board"><File path="Projects\LEDNotifier\Board\LEDs.h"></File></Folder><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="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="TemperatureDataLogger"><Folder name="Lib"><Folder name="FATFs"><File path="Projects\TemperatureDataLogger\Lib\FATFs\diskio.c"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\diskio.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ff.c"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ff.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ffconf.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\integer.h"></File></Folder><File path="Projects\TemperatureDataLogger\Lib\DataflashManager.c"></File><File path="Projects\TemperatureDataLogger\Lib\DataflashManager.h"></File><File path="Projects\TemperatureDataLogger\Lib\SCSI.c"></File><File path="Projects\TemperatureDataLogger\Lib\SCSI.h"></File><File path="Projects\TemperatureDataLogger\Lib\DS1307.c"></File><File path="Projects\TemperatureDataLogger\Lib\DS1307.h"></File></Folder><File path="Projects\TemperatureDataLogger\Descriptors.c"></File><File path="Projects\TemperatureDataLogger\Descriptors.h"></File><File path="Projects\TemperatureDataLogger\makefile"></File><File path="Projects\TemperatureDataLogger\TempDataLogger.c"></File><File path="Projects\TemperatureDataLogger\TempDataLogger.h"></File><File path="Projects\TemperatureDataLogger\TemperatureDataLogger.txt"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Projects\USBtoSerial\Lib\RingBuff.c"></File><File path="Projects\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Projects\USBtoSerial\Descriptors.c"></File><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></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\RingBuff.c"></File><File path="Projects\XPLAINBridge\Lib\RingBuff.h"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.c"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File></Folder><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File><File path="Projects\XPLAINBridge\USARTDescriptors.c"></File><File path="Projects\XPLAINBridge\USARTDescriptors.h"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.c"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.h"></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 name="Webserver"><Folder name="Lib"><Folder name="uip"><Folder name="conf"><File path="Projects\Incomplete\Webserver\Lib\uip\conf\apps-conf.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\conf\clock-arch.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\conf\clock-arch.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\conf\global-conf.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\conf\uip-conf.h"></File></Folder><File path="Projects\Incomplete\Webserver\Lib\uip\clock.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\lc.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\lc-addrlabels.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\lc-switch.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\psock.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\psock.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\pt.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\timer.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\timer.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip_arch.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip_arp.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip_arp.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-fw.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-fw.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uiplib.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uiplib.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-neighbor.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-neighbor.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uipopt.h"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-split.c"></File><File path="Projects\Incomplete\Webserver\Lib\uip\uip-split.h"></File></Folder><File path="Projects\Incomplete\Webserver\Lib\WebserverApp.c"></File><File path="Projects\Incomplete\Webserver\Lib\WebserverApp.h"></File></Folder><File path="Projects\Incomplete\Webserver\makefile"></File><File path="Projects\Incomplete\Webserver\Webserver.c"></File><File path="Projects\Incomplete\Webserver\Webserver.h"></File></Folder></Folder><File path="Projects\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project>
\ No newline at end of file
diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt
index 38cbf0ccf..9006040d3 100644
--- a/LUFA/ManPages/FutureChanges.txt
+++ b/LUFA/ManPages/FutureChanges.txt
@@ -17,6 +17,8 @@
   *      -# Add ability to get number of bytes not written with pipe/endpoint write routines after an error
   *      -# Add standardized descriptor names to class driver structures
   *      -# Correct mishandling of error cases in Mass Storage demos
+  *      -# FIX BROKEN RNDIS HOST CLASS DRIVER (BLOCKING)
+  *      -# TEST AND CORRECT TPI PROGRAMMING SUPPORT IN THE AVRISP-MKII PROJECT (BLOCKING)
   *  - Documentation/Support
   *      -# Remake AVRStudio project files
   *      -# Add detailed overviews of how each demo works
@@ -32,6 +34,7 @@
   *      -# Finish MIDI class Bootloader
   *      -# Finish SideShow demo
   *      -# Finish StandaloneProgrammer project
+  *      -# Finish Webserver project
   *  - Ports
   *      -# AVR32 UC3B series microcontrollers
   *      -# Atmel ARM7 series microcontrollers
diff --git a/LUFA/ManPages/VIDAndPIDValues.txt b/LUFA/ManPages/VIDAndPIDValues.txt
index 1a101a893..339fd47b2 100644
--- a/LUFA/ManPages/VIDAndPIDValues.txt
+++ b/LUFA/ManPages/VIDAndPIDValues.txt
@@ -265,7 +265,7 @@
  *     0x2063
  *    </td>
  *    <td>
- *     <i>Currently Unallocated</i>
+ *     Mass Storage/HID Interface Datalogger Project
  *    </td>
  *   </tr>
  *
diff --git a/Projects/AVRISP-MKII/makefile b/Projects/AVRISP-MKII/makefile
index 58d2a46d0..5c0fe0f64 100644
--- a/Projects/AVRISP-MKII/makefile
+++ b/Projects/AVRISP-MKII/makefile
@@ -197,6 +197,7 @@ CDEFS += -DAUX_LINE_MASK="(1 << 4)"
 CDEFS += -DVTARGET_ADC_CHANNEL=2
 CDEFS += -DENABLE_ISP_PROTOCOL
 CDEFS += -DENABLE_XPROG_PROTOCOL
+#CDEFS += -DXPROG_VIA_HARDWARE_USART
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Projects/TemperatureDataLogger/Descriptors.c b/Projects/TemperatureDataLogger/Descriptors.c
index 40ce620a6..e4f5666e5 100644
--- a/Projects/TemperatureDataLogger/Descriptors.c
+++ b/Projects/TemperatureDataLogger/Descriptors.c
@@ -49,6 +49,32 @@
 	#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
+ *  descriptor is parsed by the host and its contents used to determine what data (and in what encoding)
+ *  the device will send, and what it may be sent back from the host. Refer to the HID specification for
+ *  more details on HID report descriptors.
+ */
+USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] =
+{
+	0x06, 0x9c, 0xff,     /* Usage Page (Vendor Defined)                     */
+	0x09, 0x01,           /* Usage (Vendor Defined)                          */
+	0xa1, 0x01,           /* Collection (Vendor Defined)                     */
+	0x09, 0x02,           /*   Usage (Vendor Defined)                        */
+	0x75, 0x08,           /*   Report Size (8)                               */
+	0x95, GENERIC_REPORT_SIZE, /*   Report Count (GENERIC_REPORT_SIZE)       */
+	0x15, 0x80,           /*   Logical Minimum (-128)                        */
+	0x25, 0x7F,           /*   Logical Maximum (127)                         */
+	0x81, 0x02,           /*   Input (Data, Variable, Absolute)              */
+	0x09, 0x03,           /*   Usage (Vendor Defined)                        */
+	0x75, 0x08,           /*   Report Size (8)                               */
+	0x95, GENERIC_REPORT_SIZE, /*   Report Count (GENERIC_REPORT_SIZE)       */
+	0x15, 0x00,           /*   Logical Minimum (0)                           */
+	0x25, 0xff,           /*   Logical Maximum (255)                         */
+	0x91, 0x02,           /*   Output (Data, Variable, Absolute)             */
+	0xc0                  /* End Collection                                  */
+};
+
 /** 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
@@ -66,7 +92,7 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.Endpoint0Size          = FIXED_CONTROL_ENDPOINT_SIZE,
 		
 	.VendorID               = 0x03EB,
-	.ProductID              = 0x2045,
+	.ProductID              = 0x2063,
 	.ReleaseNumber          = 0x0000,
 		
 	.ManufacturerStrIndex   = 0x01,
@@ -88,7 +114,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.Header                 = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration},
 
 			.TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t),
-			.TotalInterfaces        = 1,
+			.TotalInterfaces        = 2,
 				
 			.ConfigurationNumber    = 1,
 			.ConfigurationStrIndex  = NO_DESCRIPTOR,
@@ -98,7 +124,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.MaxPowerConsumption    = USB_CONFIG_POWER_MA(100)
 		},
 		
-	.Interface = 
+	.MSInterface = 
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 
@@ -114,7 +140,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.InterfaceStrIndex      = NO_DESCRIPTOR
 		},
 
-	.DataInEndpoint = 
+	.MSDataInEndpoint = 
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
@@ -124,7 +150,7 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.PollingIntervalMS      = 0x00
 		},
 
-	.DataOutEndpoint = 
+	.MSDataOutEndpoint = 
 		{
 			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
@@ -132,7 +158,44 @@ USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
 			.Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
 			.EndpointSize           = MASS_STORAGE_IO_EPSIZE,
 			.PollingIntervalMS      = 0x00
-		}
+		},
+		
+	.HIDInterface = 
+		{
+			.Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
+
+			.InterfaceNumber        = 1,
+			.AlternateSetting       = 0,
+			
+			.TotalEndpoints         = 1,
+				
+			.Class                  = 0x03,
+			.SubClass               = 0x00,
+			.Protocol               = HID_NON_BOOT_PROTOCOL,
+				
+			.InterfaceStrIndex      = NO_DESCRIPTOR
+		},
+
+	.HIDInfo = 
+		{
+			.Header                 = {.Size = sizeof(USB_HID_Descriptor_t), .Type = DTYPE_HID},
+									 
+			.HIDSpec                = VERSION_BCD(01.11),
+			.CountryCode            = 0x00,
+			.TotalReportDescriptors = 1,
+			.HIDReportType          = DTYPE_Report,
+			.HIDReportLength        = sizeof(GenericReport)
+		},
+
+	.HIDDataInEndpoint = 
+		{
+			.Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
+										 
+			.EndpointAddress        = (ENDPOINT_DESCRIPTOR_DIR_IN | GENERIC_IN_EPNUM),
+			.Attributes             = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
+			.EndpointSize           = GENERIC_EPSIZE,
+			.PollingIntervalMS      = 0x0A
+		},		
 };
 
 /** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests
@@ -163,9 +226,9 @@ USB_Descriptor_String_t PROGMEM ManufacturerString =
  */
 USB_Descriptor_String_t PROGMEM ProductString =
 {
-	.Header                 = {.Size = USB_STRING_LEN(22), .Type = DTYPE_String},
+	.Header                 = {.Size = USB_STRING_LEN(10), .Type = DTYPE_String},
 		
-	.UnicodeString          = L"LUFA Mass Storage Demo"
+	.UnicodeString          = L"Datalogger"
 };
 
 /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
@@ -209,6 +272,14 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex,
 					break;
 			}
 			
+			break;
+		case DTYPE_HID: 
+			Address = (void*)&ConfigurationDescriptor.HIDInfo;
+			Size    = sizeof(USB_HID_Descriptor_t);
+			break;
+		case DTYPE_Report: 
+			Address = (void*)&GenericReport;
+			Size    = sizeof(GenericReport);
 			break;
 	}
 	
diff --git a/Projects/TemperatureDataLogger/Descriptors.h b/Projects/TemperatureDataLogger/Descriptors.h
index dcaaddaf7..a0f03c38d 100644
--- a/Projects/TemperatureDataLogger/Descriptors.h
+++ b/Projects/TemperatureDataLogger/Descriptors.h
@@ -5,33 +5,6 @@
   dean [at] fourwalledcubicle [dot] com
       www.fourwalledcubicle.com
 */
-
-/*
-  Copyright 2010  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_
@@ -41,6 +14,9 @@
 
 		#include <LUFA/Drivers/USB/USB.h>
 		#include <LUFA/Drivers/USB/Class/MassStorage.h>
+		#include <LUFA/Drivers/USB/Class/HID.h>
+		
+		#include "TempDataLogger.h"
 
 	/* Macros: */
 		/** Endpoint number of the Mass Storage device-to-host data IN endpoint. */
@@ -51,6 +27,15 @@
 
 		/** Size in bytes of the Mass Storage data endpoints. */
 		#define MASS_STORAGE_IO_EPSIZE         64
+
+		/** Endpoint number of the Generic HID reporting IN endpoint. */
+		#define GENERIC_IN_EPNUM               1
+
+		/** Size in bytes of the Generic HID reporting endpoint. */
+		#define GENERIC_EPSIZE                 16
+		
+		/** Size in bytes of the Generic HID reports (including report ID byte). */
+		#define GENERIC_REPORT_SIZE            sizeof(Device_Report_t)
 		
 	/* Type Defines: */		
 		/** Type define for the device configuration descriptor structure. This must be defined in the
@@ -60,9 +45,12 @@
 		typedef struct
 		{
 			USB_Descriptor_Configuration_Header_t Config;
-			USB_Descriptor_Interface_t            Interface;
-			USB_Descriptor_Endpoint_t             DataInEndpoint;
-			USB_Descriptor_Endpoint_t             DataOutEndpoint;
+			USB_Descriptor_Interface_t            MSInterface;
+			USB_Descriptor_Endpoint_t             MSDataInEndpoint;
+			USB_Descriptor_Endpoint_t             MSDataOutEndpoint;
+			USB_Descriptor_Interface_t            HIDInterface;
+			USB_HID_Descriptor_t                  HIDInfo;
+			USB_Descriptor_Endpoint_t             HIDDataInEndpoint;
 		} USB_Descriptor_Configuration_t;
 		
 	/* Function Prototypes: */
diff --git a/Projects/TemperatureDataLogger/Lib/DS1307.c b/Projects/TemperatureDataLogger/Lib/DS1307.c
new file mode 100644
index 000000000..37817e97f
--- /dev/null
+++ b/Projects/TemperatureDataLogger/Lib/DS1307.c
@@ -0,0 +1,129 @@
+/*
+     Copyright (C) Dean Camera, 2010.
+              
+  dean [at] fourwalledcubicle [dot] com
+      www.fourwalledcubicle.com
+*/
+
+#include "DS1307.h"
+
+void DS1307_Init(void)
+{
+	// Nothing to initialize
+}
+
+void DS1307_SetDate(uint8_t Day, uint8_t Month, uint8_t Year)
+{
+#if defined(DUMMY_RTC)
+	return;
+#endif
+
+	DS1307_DateRegs_t CurrentRTCDate;		
+	CurrentRTCDate.Byte1.TenDay   = (Day / 10);
+	CurrentRTCDate.Byte1.Day      = (Day % 10);
+	CurrentRTCDate.Byte2.TenMonth = (Month / 10);
+	CurrentRTCDate.Byte2.Month    = (Month % 10);
+	CurrentRTCDate.Byte3.TenYear  = (Year / 10);
+	CurrentRTCDate.Byte3.Year     = (Year % 10);
+
+	if (TWI_StartTransmission(DS1307_ADDRESS_WRITE))
+	{
+		TWI_SendByte(DS1307_DATEREG_START);
+		TWI_SendByte(CurrentRTCDate.Byte1.IntVal);
+		TWI_SendByte(CurrentRTCDate.Byte2.IntVal);
+		TWI_SendByte(CurrentRTCDate.Byte3.IntVal);
+		
+		TWI_StopTransmission();
+	}
+}
+
+void DS1307_SetTime(uint8_t Hour, uint8_t Minute, uint8_t Second)
+{
+#if defined(DUMMY_RTC)
+	return;
+#endif
+
+	DS1307_TimeRegs_t CurrentRTCTime;
+	CurrentRTCTime.Byte1.TenSec  = (Second / 10);
+	CurrentRTCTime.Byte1.Sec     = (Second % 10);
+	CurrentRTCTime.Byte1.CH      = false;
+	CurrentRTCTime.Byte2.TenMin  = (Minute / 10);
+	CurrentRTCTime.Byte2.Min     = (Minute % 10);
+	CurrentRTCTime.Byte3.TenHour = (Hour / 10);
+	CurrentRTCTime.Byte3.Hour    = (Hour % 10);
+	CurrentRTCTime.Byte3.TwelveHourMode = false;
+	
+	if (TWI_StartTransmission(DS1307_ADDRESS_WRITE))
+	{
+		TWI_SendByte(DS1307_TIMEREG_START);
+		TWI_SendByte(CurrentRTCTime.Byte1.IntVal);
+		TWI_SendByte(CurrentRTCTime.Byte2.IntVal);
+		TWI_SendByte(CurrentRTCTime.Byte3.IntVal);
+		
+		TWI_StopTransmission();
+	}
+}
+		
+void DS1307_GetDate(uint8_t* Day, uint8_t* Month, uint8_t* Year)
+{
+#if defined(DUMMY_RTC)
+	*Day   = 1;
+	*Month = 1;
+	*Year  = 1;
+	return;
+#endif
+
+	if (TWI_StartTransmission(DS1307_ADDRESS_WRITE))
+	{
+		TWI_SendByte(DS1307_DATEREG_START);
+		
+		TWI_StopTransmission();
+	}
+
+	DS1307_DateRegs_t CurrentRTCDate;
+
+	if (TWI_StartTransmission(DS1307_ADDRESS_READ))
+	{
+		TWI_ReceiveByte(&CurrentRTCDate.Byte1.IntVal, false);
+		TWI_ReceiveByte(&CurrentRTCDate.Byte2.IntVal, false);
+		TWI_ReceiveByte(&CurrentRTCDate.Byte3.IntVal, true);
+		
+		TWI_StopTransmission();
+	}
+
+	*Day    = (CurrentRTCDate.Byte1.TenDay   * 10) + CurrentRTCDate.Byte1.Day;
+	*Month  = (CurrentRTCDate.Byte2.TenMonth * 10) + CurrentRTCDate.Byte2.Month;
+	*Year   = (CurrentRTCDate.Byte3.TenYear  * 10) + CurrentRTCDate.Byte3.Year;
+}
+
+void DS1307_GetTime(uint8_t* Hour, uint8_t* Minute, uint8_t* Second)
+{
+#if defined(DUMMY_RTC)
+	*Hour   = 1;
+	*Minute = 1;
+	*Second = 1;
+	return;
+#endif
+
+	if (TWI_StartTransmission(DS1307_ADDRESS_WRITE))
+	{
+		TWI_SendByte(DS1307_TIMEREG_START);
+		
+		TWI_StopTransmission();
+	}
+	
+	DS1307_TimeRegs_t CurrentRTCTime;
+
+	if (TWI_StartTransmission(DS1307_ADDRESS_READ))
+	{
+		TWI_ReceiveByte(&CurrentRTCTime.Byte1.IntVal, false);
+		TWI_ReceiveByte(&CurrentRTCTime.Byte2.IntVal, false);
+		TWI_ReceiveByte(&CurrentRTCTime.Byte3.IntVal, true);
+		
+		TWI_StopTransmission();
+	}
+
+	*Second  = (CurrentRTCTime.Byte1.TenSec  * 10) + CurrentRTCTime.Byte1.Sec;
+	*Minute  = (CurrentRTCTime.Byte2.TenMin  * 10) + CurrentRTCTime.Byte2.Min;
+	*Hour    = (CurrentRTCTime.Byte3.TenHour * 10) + CurrentRTCTime.Byte3.Hour;
+}
diff --git a/Projects/TemperatureDataLogger/Lib/DS1307.h b/Projects/TemperatureDataLogger/Lib/DS1307.h
new file mode 100644
index 000000000..491836079
--- /dev/null
+++ b/Projects/TemperatureDataLogger/Lib/DS1307.h
@@ -0,0 +1,111 @@
+/*
+     Copyright (C) Dean Camera, 2010.
+              
+  dean [at] fourwalledcubicle [dot] com
+      www.fourwalledcubicle.com
+*/
+
+#ifndef _DS1307_H_
+#define _DS1307_H_
+
+	/* Includes: */
+		#include <avr/io.h>
+
+		#include <LUFA/Drivers/Peripheral/TWI.h>
+
+	/* Type Defines: */
+		typedef struct
+		{
+			union
+			{
+				struct
+				{
+					unsigned int Sec            : 4;
+					unsigned int TenSec         : 3;
+					unsigned int CH             : 1;
+				};
+				
+				uint8_t IntVal;
+			} Byte1;
+			
+			union
+			{
+				struct
+				{
+					unsigned int Min            : 4;
+					unsigned int TenMin         : 3;
+					unsigned int _RESERVED      : 1;
+				};
+				
+				uint8_t IntVal;
+			} Byte2;
+			
+			union
+			{
+				struct
+				{
+					unsigned int Hour            : 4;
+					unsigned int TenHour         : 2;
+					unsigned int TwelveHourMode  : 1;
+					unsigned int _RESERVED       : 1;
+				};
+				
+				uint8_t IntVal;
+			} Byte3;
+		} DS1307_TimeRegs_t;
+
+		typedef struct
+		{
+			union
+			{
+				struct
+				{
+					unsigned int Day             : 4;
+					unsigned int TenDay          : 2;
+					unsigned int _RESERVED       : 2;
+				};
+			
+				uint8_t IntVal;
+			} Byte1;
+
+			union
+			{
+				struct
+				{
+					unsigned int Month           : 4;
+					unsigned int TenMonth        : 1;
+					unsigned int _RESERVED       : 3;
+				};
+				
+				uint8_t IntVal;
+			} Byte2;
+			
+			union
+			{
+				struct
+				{
+					unsigned int Year            : 4;
+					unsigned int TenYear         : 4;
+				};
+				
+				uint8_t IntVal;
+			} Byte3;
+		} DS1307_DateRegs_t;
+
+	/* Macros: */
+		#define DS1307_TIMEREG_START  0x00
+		#define DS1307_DATEREG_START  0x04
+	
+		#define DS1307_ADDRESS_READ   0b11010001
+		#define DS1307_ADDRESS_WRITE  0b11010000
+
+	/* Function Prototypes: */
+		void DS1307_Init(void);
+		
+		void DS1307_SetDate(uint8_t Day, uint8_t Month, uint8_t Year);
+		void DS1307_SetTime(uint8_t Hour, uint8_t Minute, uint8_t Second);
+		
+		void DS1307_GetDate(uint8_t* Day, uint8_t* Month, uint8_t* Year);
+		void DS1307_GetTime(uint8_t* Hour, uint8_t* Minute, uint8_t* Second);
+
+#endif
diff --git a/Projects/TemperatureDataLogger/Lib/FATFs/diskio.c b/Projects/TemperatureDataLogger/Lib/FATFs/diskio.c
index e6be68734..0c0083bac 100644
--- a/Projects/TemperatureDataLogger/Lib/FATFs/diskio.c
+++ b/Projects/TemperatureDataLogger/Lib/FATFs/diskio.c
@@ -83,5 +83,17 @@ DRESULT disk_ioctl (
 
 DWORD get_fattime (void)
 {
-	return (1UL << 25) | (1UL << 21) | (1UL << 16) | (1UL << 11) | (1UL << 5) | (1UL << 0);
+	uint8_t Day,  Month,  Year;
+	uint8_t Hour, Minute, Second;
+
+	DS1307_GetDate(&Day,  &Month,  &Year);
+	DS1307_GetTime(&Hour, &Minute, &Second);
+
+
+	return ((DWORD)(20 + Year) << 25) |
+	             ((DWORD)Month << 21) |
+	               ((DWORD)Day << 16) |
+	              ((DWORD)Hour << 11) |
+	             ((DWORD)Minute << 5) |
+	      (((DWORD)Second >> 1) << 0);
 }
diff --git a/Projects/TemperatureDataLogger/Lib/FATFs/ffconf.h b/Projects/TemperatureDataLogger/Lib/FATFs/ffconf.h
index 18510157d..9b414e979 100644
--- a/Projects/TemperatureDataLogger/Lib/FATFs/ffconf.h
+++ b/Projects/TemperatureDataLogger/Lib/FATFs/ffconf.h
@@ -36,7 +36,7 @@
 /   3: f_lseek is removed in addition to level 2. */
 
 
-#define	_USE_STRFUNC	1	/* 0, 1 or 2 */
+#define	_USE_STRFUNC	0	/* 0, 1 or 2 */
 /* To enable string functions, set _USE_STRFUNC to 1 or 2. */
 
 
diff --git a/Projects/TemperatureDataLogger/TempDataLogger.c b/Projects/TemperatureDataLogger/TempDataLogger.c
index b181ec2f8..538a6a5e8 100644
--- a/Projects/TemperatureDataLogger/TempDataLogger.c
+++ b/Projects/TemperatureDataLogger/TempDataLogger.c
@@ -58,52 +58,93 @@ USB_ClassInfo_MS_Device_t Disk_MS_Interface =
 			},
 	};
 
+/** Buffer to hold the previously generated HID report, for comparison purposes inside the HID class driver. */
+uint8_t PrevHIDReportBuffer[GENERIC_REPORT_SIZE];
+
+/** LUFA HID Class driver interface configuration and state information. This structure is
+ *  passed to all HID Class driver functions, so that multiple instances of the same class
+ *  within a device can be differentiated from one another.
+ */
+USB_ClassInfo_HID_Device_t Generic_HID_Interface =
+	{
+		.Config =
+			{
+				.InterfaceNumber              = 1,
+
+				.ReportINEndpointNumber       = GENERIC_IN_EPNUM,
+				.ReportINEndpointSize         = GENERIC_EPSIZE,
+				.ReportINEndpointDoubleBank   = false,
+				
+				.PrevReportINBuffer           = PrevHIDReportBuffer,
+				.PrevReportINBufferSize       = sizeof(PrevHIDReportBuffer),
+			},
+	};
+
+/** Non-volatile Logging Interval value in EEPROM, stored as a number of 500ms ticks */
+uint8_t EEMEM LoggingInterval500MS_EEPROM;
+
+/** SRAM Logging Interval value fetched from EEPROM, stored as a number of 500ms ticks */
+uint8_t LoggingInterval500MS_SRAM;
+
+/** Total number of 500ms logging ticks elapsed since the last log value was recorded */
+uint16_t CurrentLoggingTicks;
+
 /** FAT Fs structure to hold the internal state of the FAT driver for the dataflash contents. */
 FATFS DiskFATState;
 
 /** FAT Fs structure to hold a FAT file handle for the log data write destination. */
 FIL TempLogFile;
 
-/** Counter to count the number of 10 millisecond ticks that has elapsed since the last sample */
-uint16_t CurrentLogTick;
-
 
 ISR(TIMER1_COMPA_vect, ISR_BLOCK)
 {
-	if (CurrentLogTick++ != LOG_INTERVAL_10MS)
-	  return;
-	  
 	uint8_t LEDMask = LEDs_GetLEDs();
 
+	/* Check to see if the logging interval has expired */
+	if (CurrentLoggingTicks++ < LoggingInterval500MS_SRAM)
+	  return;
+	    
 	LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
 
-	CurrentLogTick = 0;
-
+	/* Reset log tick counter to prepare for next logging interval */
+	CurrentLoggingTicks = 0;
+	
 	if (USB_DeviceState == DEVICE_STATE_Unattached)
 	{
-		f_printf(&TempLogFile, "%d Degrees\r\n", Temperature_GetTemperature());
+		uint8_t Day,  Month,  Year;
+		uint8_t Hour, Minute, Second;
+
+		DS1307_GetDate(&Day,  &Month,  &Year);
+		DS1307_GetTime(&Hour, &Minute, &Second);
+
+		char     LineBuffer[100];
+		uint16_t BytesWritten;
+
+		BytesWritten = sprintf(LineBuffer, "%02d/%02d/20%04d, %02d:%02d:%02d, %d Degrees\r\n",
+							   Day, Month, Year, Hour, Minute, Second, Temperature_GetTemperature());
+
+		f_write(&TempLogFile, LineBuffer, BytesWritten, &BytesWritten);
 		f_sync(&TempLogFile);
 	}
 	
 	LEDs_SetAllLEDs(LEDMask);
 }
 
-
 /** 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();
+	/* Fetch logging interval from EEPROM */
+	LoggingInterval500MS_SRAM = eeprom_read_byte(&LoggingInterval500MS_EEPROM);
 
 	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
 
+	SetupHardware();
+
 	/* Mount and open the log file on the dataflash FAT partition */
-	f_mount(0, &DiskFATState);
-	f_open(&TempLogFile, LOG_FILENAME, FA_OPEN_ALWAYS | FA_WRITE);
-	f_lseek(&TempLogFile, TempLogFile.fsize);
-	f_printf(&TempLogFile, "===========================\r\n");
-	
+	OpenLogFile();
+
 	/* Discard the first sample from the temperature sensor, as it is generally incorrect */
 	uint8_t Dummy = Temperature_GetTemperature();
 	(void)Dummy;
@@ -111,10 +152,33 @@ int main(void)
 	for (;;)
 	{
 		MS_Device_USBTask(&Disk_MS_Interface);
+		HID_Device_USBTask(&Generic_HID_Interface);
 		USB_USBTask();
 	}
 }
 
+void OpenLogFile(void)
+{
+	char LogFileName[12];
+
+	/* Get the current date for the filename as "DDMMYY.csv" */
+	uint8_t Day, Month, Year;
+	DS1307_GetDate(&Day, &Month, &Year);
+	sprintf(LogFileName, "%02d%02d%02d.csv", Day, Month, Year);
+
+	/* Mount the storage device, open the file */
+	f_mount(0, &DiskFATState);
+	f_open(&TempLogFile, LogFileName, FA_OPEN_ALWAYS | FA_WRITE);
+	f_lseek(&TempLogFile, TempLogFile.fsize);
+}
+
+void CloseLogFile(void)
+{
+	/* Sync any data waiting to be written, unmount the storage device */
+	f_sync(&TempLogFile);
+	f_close(&TempLogFile);
+}
+
 /** Configures the board hardware and chip peripherals for the demo's functionality. */
 void SetupHardware(void)
 {
@@ -133,9 +197,9 @@ void SetupHardware(void)
 	Dataflash_Init();
 	USB_Init();
 	
-	/* 10ms interval timer configuration */
-	OCR1A   = (((F_CPU / 1024) / 100) - 1);
-	TCCR1B  = (1 << WGM12) | (1 << CS12) | (1 << CS10);   // CTC mode, Fcpu/1024 speed
+	/* 500ms logging interval timer configuration */
+	OCR1A   = ((F_CPU / 1024) / 2);
+	TCCR1B  = (1 << WGM12) | (1 << CS12) | (1 << CS10);
 	TIMSK1  = (1 << OCIE1A);
 
 	/* Clear Dataflash sector protections, if enabled */
@@ -148,7 +212,7 @@ void EVENT_USB_Device_Connect(void)
 	LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
 
 	/* Close the log file so that the host has exclusive filesystem access */
-	f_close(&TempLogFile);
+	CloseLogFile();
 }
 
 /** Event handler for the library USB Disconnection event. */
@@ -156,11 +220,8 @@ void EVENT_USB_Device_Disconnect(void)
 {
 	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
 	
-	/* When disconnected from the host, re-open log file so we can resume logging */
-	f_mount(0, &DiskFATState);
-	f_open(&TempLogFile, LOG_FILENAME, FA_OPEN_ALWAYS | FA_WRITE);
-	f_lseek(&TempLogFile, TempLogFile.fsize);
-	f_printf(&TempLogFile, "===========================\r\n");
+	/* Mount and open the log file on the dataflash FAT partition */
+	OpenLogFile();
 }
 
 /** Event handler for the library USB Configuration Changed event. */
@@ -170,12 +231,16 @@ void EVENT_USB_Device_ConfigurationChanged(void)
 
 	if (!(MS_Device_ConfigureEndpoints(&Disk_MS_Interface)))
 	  LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+	  
+	if (!(HID_Device_ConfigureEndpoints(&Generic_HID_Interface)))
+	  LEDs_SetAllLEDs(LEDMASK_USB_ERROR);	
 }
 
 /** Event handler for the library USB Unhandled Control Request event. */
 void EVENT_USB_Device_UnhandledControlRequest(void)
 {
 	MS_Device_ProcessControlRequest(&Disk_MS_Interface);
+	HID_Device_ProcessControlRequest(&Generic_HID_Interface);
 }
 
 /** Mass Storage class driver callback function the reception of SCSI commands from the host, which must be processed.
@@ -192,3 +257,53 @@ bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* MSInterfa
 	
 	return CommandSuccess;
 }
+
+/** HID class driver callback function for the creation of HID reports to the host.
+ *
+ *  \param[in] HIDInterfaceInfo  Pointer to the HID class interface configuration structure being referenced
+ *  \param[in,out] ReportID  Report ID requested by the host if non-zero, otherwise callback should set to the generated report ID
+ *  \param[in] ReportType  Type of the report to create, either REPORT_ITEM_TYPE_In or REPORT_ITEM_TYPE_Feature
+ *  \param[out] ReportData  Pointer to a buffer where the created report should be stored
+ *  \param[out] ReportSize  Number of bytes written in the report (or zero if no report is to be sent
+ *
+ *  \return Boolean true to force the sending of the report, false to let the library determine if it needs to be sent
+ */
+bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, uint8_t* const ReportID,
+                                         const uint8_t ReportType, void* ReportData, uint16_t* ReportSize)
+{
+	Device_Report_t* ReportParams = (Device_Report_t*)ReportData;
+
+	DS1307_GetDate(&ReportParams->Day,  &ReportParams->Month,  &ReportParams->Year);
+	DS1307_GetTime(&ReportParams->Hour, &ReportParams->Minute, &ReportParams->Second);
+	
+	ReportParams->LogInterval500MS = LoggingInterval500MS_SRAM;
+
+	*ReportSize = sizeof(Device_Report_t);
+	return true;
+}
+
+/** HID class driver callback function for the processing of HID reports from the host.
+ *
+ *  \param[in] HIDInterfaceInfo  Pointer to the HID class interface configuration structure being referenced
+ *  \param[in] ReportID  Report ID of the received report from the host
+ *  \param[in] ReportData  Pointer to a buffer where the created report has been stored
+ *  \param[in] ReportSize  Size in bytes of the received HID report
+ */
+void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, const uint8_t ReportID,
+                                          const void* ReportData, const uint16_t ReportSize)
+{
+	Device_Report_t* ReportParams = (Device_Report_t*)ReportData;
+	
+	GPIOR0 = ReportParams->Day;
+	GPIOR1 = ReportParams->Month;
+	GPIOR2 = ReportParams->Year;
+	
+	DS1307_SetDate(ReportParams->Day,  ReportParams->Month,  ReportParams->Year);
+	DS1307_SetTime(ReportParams->Hour, ReportParams->Minute, ReportParams->Second);
+	
+	if (LoggingInterval500MS_SRAM != ReportParams->LogInterval500MS)
+	{
+		LoggingInterval500MS_SRAM = ReportParams->LogInterval500MS;
+		eeprom_write_byte(&LoggingInterval500MS_EEPROM, LoggingInterval500MS_SRAM);
+	}
+}
diff --git a/Projects/TemperatureDataLogger/TempDataLogger.h b/Projects/TemperatureDataLogger/TempDataLogger.h
index b9d1b9114..ee10a0971 100644
--- a/Projects/TemperatureDataLogger/TempDataLogger.h
+++ b/Projects/TemperatureDataLogger/TempDataLogger.h
@@ -40,12 +40,14 @@
 		#include <avr/io.h>
 		#include <avr/wdt.h>
 		#include <avr/power.h>
-
+		#include <stdio.h>
+		
 		#include "Descriptors.h"
 
 		#include "Lib/SCSI.h"
 		#include "Lib/DataflashManager.h"
 		#include "Lib/FATFs/ff.h"
+		#include "Lib/DS1307.h"
 
 		#include <LUFA/Version.h>
 		#include <LUFA/Drivers/Board/LEDs.h>
@@ -53,6 +55,7 @@
 		#include <LUFA/Drivers/Peripheral/ADC.h>
 		#include <LUFA/Drivers/USB/USB.h>
 		#include <LUFA/Drivers/USB/Class/MassStorage.h>
+		#include <LUFA/Drivers/USB/Class/HID.h>
 
 	/* Macros: */
 		/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
@@ -76,8 +79,24 @@
 		/** Data log interval between samples, in tens of milliseconds */
 		#define LOG_INTERVAL_10MS        1000
 		
+	/* Type Defines: */
+		typedef struct
+		{
+			uint8_t Day;
+			uint8_t Month;
+			uint8_t Year;
+
+			uint8_t Hour;
+			uint8_t Minute;
+			uint8_t Second;
+			
+			uint8_t LogInterval500MS;
+		} Device_Report_t;
+
 	/* Function Prototypes: */
 		void SetupHardware(void);
+		void OpenLogFile(void);
+		void CloseLogFile(void);
 
 		void EVENT_USB_Device_Connect(void);
 		void EVENT_USB_Device_Disconnect(void);
@@ -85,5 +104,9 @@
 		void EVENT_USB_Device_UnhandledControlRequest(void);
 
 		bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* MSInterfaceInfo);
+		bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, uint8_t* const ReportID,
+                                                 const uint8_t ReportType, void* ReportData, uint16_t* ReportSize);
+		void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, const uint8_t ReportID, 
+		                                          const void* ReportData, const uint16_t ReportSize);
 
 #endif
diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp.sln b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp.sln
new file mode 100644
index 000000000..f3fbdb2cf
--- /dev/null
+++ b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TempLoggerHostApp", "TempLoggerHostApp\TempLoggerHostApp.csproj", "{A2D66069-8CF9-4104-828C-49A73D7DB5D1}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A2D66069-8CF9-4104-828C-49A73D7DB5D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A2D66069-8CF9-4104-828C-49A73D7DB5D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A2D66069-8CF9-4104-828C-49A73D7DB5D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A2D66069-8CF9-4104-828C-49A73D7DB5D1}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp.suo b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp.suo
new file mode 100644
index 0000000000000000000000000000000000000000..647c7e68a7d5f2071f9ec436be891da64d469e33
GIT binary patch
literal 17408
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
E05OX^VgLXD

literal 0
HcmV?d00001

diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.Designer.cs b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.Designer.cs
new file mode 100644
index 000000000..c6b106f98
--- /dev/null
+++ b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.Designer.cs
@@ -0,0 +1,181 @@
+namespace Project1HostApp
+{
+    partial class frmDataloggerSettings
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.btnSetValues = new System.Windows.Forms.Button();
+            this.dtpTime = new System.Windows.Forms.DateTimePicker();
+            this.lblTime = new System.Windows.Forms.Label();
+            this.lblLoggingInterval = new System.Windows.Forms.Label();
+            this.nudLogInterval = new System.Windows.Forms.NumericUpDown();
+            this.lblSeconds = new System.Windows.Forms.Label();
+            this.btnGetValues = new System.Windows.Forms.Button();
+            this.lblDate = new System.Windows.Forms.Label();
+            this.dtpDate = new System.Windows.Forms.DateTimePicker();
+            ((System.ComponentModel.ISupportInitialize)(this.nudLogInterval)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // btnSetValues
+            // 
+            this.btnSetValues.Location = new System.Drawing.Point(168, 136);
+            this.btnSetValues.Name = "btnSetValues";
+            this.btnSetValues.Size = new System.Drawing.Size(90, 35);
+            this.btnSetValues.TabIndex = 0;
+            this.btnSetValues.Text = "Set Values";
+            this.btnSetValues.UseVisualStyleBackColor = true;
+            this.btnSetValues.Click += new System.EventHandler(this.btnSetValues_Click);
+            // 
+            // dtpTime
+            // 
+            this.dtpTime.CustomFormat = "";
+            this.dtpTime.Format = System.Windows.Forms.DateTimePickerFormat.Time;
+            this.dtpTime.Location = new System.Drawing.Point(148, 61);
+            this.dtpTime.Name = "dtpTime";
+            this.dtpTime.ShowUpDown = true;
+            this.dtpTime.Size = new System.Drawing.Size(110, 20);
+            this.dtpTime.TabIndex = 1;
+            // 
+            // lblTime
+            // 
+            this.lblTime.AutoSize = true;
+            this.lblTime.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.lblTime.Location = new System.Drawing.Point(51, 67);
+            this.lblTime.Name = "lblTime";
+            this.lblTime.Size = new System.Drawing.Size(82, 13);
+            this.lblTime.TabIndex = 2;
+            this.lblTime.Text = "Device Time:";
+            // 
+            // lblLoggingInterval
+            // 
+            this.lblLoggingInterval.AutoSize = true;
+            this.lblLoggingInterval.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.lblLoggingInterval.Location = new System.Drawing.Point(30, 101);
+            this.lblLoggingInterval.Name = "lblLoggingInterval";
+            this.lblLoggingInterval.Size = new System.Drawing.Size(103, 13);
+            this.lblLoggingInterval.TabIndex = 3;
+            this.lblLoggingInterval.Text = "Logging Interval:";
+            // 
+            // nudLogInterval
+            // 
+            this.nudLogInterval.Location = new System.Drawing.Point(148, 94);
+            this.nudLogInterval.Maximum = new decimal(new int[] {
+            60,
+            0,
+            0,
+            0});
+            this.nudLogInterval.Minimum = new decimal(new int[] {
+            1,
+            0,
+            0,
+            0});
+            this.nudLogInterval.Name = "nudLogInterval";
+            this.nudLogInterval.Size = new System.Drawing.Size(51, 20);
+            this.nudLogInterval.TabIndex = 5;
+            this.nudLogInterval.Value = new decimal(new int[] {
+            5,
+            0,
+            0,
+            0});
+            // 
+            // lblSeconds
+            // 
+            this.lblSeconds.AutoSize = true;
+            this.lblSeconds.Location = new System.Drawing.Point(209, 101);
+            this.lblSeconds.Name = "lblSeconds";
+            this.lblSeconds.Size = new System.Drawing.Size(49, 13);
+            this.lblSeconds.TabIndex = 6;
+            this.lblSeconds.Text = "Seconds";
+            // 
+            // btnGetValues
+            // 
+            this.btnGetValues.Location = new System.Drawing.Point(30, 136);
+            this.btnGetValues.Name = "btnGetValues";
+            this.btnGetValues.Size = new System.Drawing.Size(90, 35);
+            this.btnGetValues.TabIndex = 7;
+            this.btnGetValues.Text = "Get Values";
+            this.btnGetValues.UseVisualStyleBackColor = true;
+            this.btnGetValues.Click += new System.EventHandler(this.btnGetValues_Click);
+            // 
+            // lblDate
+            // 
+            this.lblDate.AutoSize = true;
+            this.lblDate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.lblDate.Location = new System.Drawing.Point(51, 33);
+            this.lblDate.Name = "lblDate";
+            this.lblDate.Size = new System.Drawing.Size(82, 13);
+            this.lblDate.TabIndex = 8;
+            this.lblDate.Text = "Device Date:";
+            // 
+            // dtpDate
+            // 
+            this.dtpDate.CustomFormat = "dd/MM/yyyy";
+            this.dtpDate.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
+            this.dtpDate.Location = new System.Drawing.Point(148, 27);
+            this.dtpDate.Name = "dtpDate";
+            this.dtpDate.Size = new System.Drawing.Size(110, 20);
+            this.dtpDate.TabIndex = 9;
+            // 
+            // frmDataloggerSettings
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(300, 197);
+            this.Controls.Add(this.dtpDate);
+            this.Controls.Add(this.lblDate);
+            this.Controls.Add(this.btnGetValues);
+            this.Controls.Add(this.lblSeconds);
+            this.Controls.Add(this.nudLogInterval);
+            this.Controls.Add(this.lblLoggingInterval);
+            this.Controls.Add(this.lblTime);
+            this.Controls.Add(this.dtpTime);
+            this.Controls.Add(this.btnSetValues);
+            this.MaximizeBox = false;
+            this.MinimizeBox = false;
+            this.Name = "frmDataloggerSettings";
+            this.Text = "DataLogger";
+            this.Load += new System.EventHandler(this.frmDataloggerSettings_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.nudLogInterval)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btnSetValues;
+        private System.Windows.Forms.DateTimePicker dtpTime;
+        private System.Windows.Forms.Label lblTime;
+        private System.Windows.Forms.Label lblLoggingInterval;
+        private System.Windows.Forms.NumericUpDown nudLogInterval;
+        private System.Windows.Forms.Label lblSeconds;
+        private System.Windows.Forms.Button btnGetValues;
+        private System.Windows.Forms.Label lblDate;
+        private System.Windows.Forms.DateTimePicker dtpDate;
+    }
+}
+
diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.cs b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.cs
new file mode 100644
index 000000000..370dfbd69
--- /dev/null
+++ b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.cs
@@ -0,0 +1,172 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using Hid;
+
+namespace Project1HostApp
+{
+    public partial class frmDataloggerSettings : Form
+    {
+        private const int DEVICE_VID = 0x03EB;
+        private const int DEVICE_PID = 0xFAFA;
+
+        private struct Device_Report_t
+        {
+            public Byte Day;
+            public Byte Month;
+            public Byte Year;
+
+            public Byte Hour;
+            public Byte Minute;
+            public Byte Second;
+
+            public Byte LogInterval500MS;
+
+            public Byte[] ToReport()
+            {
+                Byte[] Report = new Byte[7];
+
+                Report[0] = this.Day;
+                Report[1] = this.Month;
+                Report[2] = this.Year;
+                Report[3] = this.Hour;
+                Report[4] = this.Minute;
+                Report[5] = this.Second;
+                Report[6] = this.LogInterval500MS;
+
+                return Report;
+            }
+
+            public void FromReport(Byte[] Report)
+            {
+                this.Day = Report[0];
+                this.Month = Report[1];
+                this.Year = Report[2];
+                this.Hour = Report[3];
+                this.Minute = Report[4];
+                this.Second = Report[5];
+                this.LogInterval500MS = Report[6];
+            }
+        };
+
+        private IDevice GetDeviceConnection()
+        {
+            IDevice[] ConnectedDevices = DeviceFactory.Enumerate(DEVICE_VID, DEVICE_PID);
+            IDevice ConnectionHandle = null;
+
+            if (ConnectedDevices.Count() > 0)
+                ConnectionHandle = ConnectedDevices[0];
+            else
+                return null;
+
+            // Fix report handle under Windows
+            if (ConnectionHandle is Hid.Win32.Win32DeviceSet)
+            {
+                ((Hid.Win32.Win32DeviceSet)ConnectionHandle).AddDevice(0x00,
+                    ((Hid.Win32.Win32DeviceSet)ConnectionHandle).UnallocatedDevices[0]);
+            }
+
+            return ConnectionHandle;
+        }
+
+        public frmDataloggerSettings()
+        {
+            InitializeComponent();
+        }
+
+        private void btnSetValues_Click(object sender, EventArgs e)
+        {
+            IDevice ConnectionHandle = GetDeviceConnection();
+
+            if (ConnectionHandle == null)
+            {
+                MessageBox.Show("Error: Cannot connect to DataLogger device.");
+                return;
+            }
+
+            Device_Report_t DeviceReport = new Device_Report_t();
+            DeviceReport.Day = (byte)dtpDate.Value.Day;
+            DeviceReport.Month = (byte)dtpDate.Value.Month;
+            DeviceReport.Year = (byte)((dtpDate.Value.Year < 2000) ? 0 : (dtpDate.Value.Year - 2000));
+            DeviceReport.Hour = (byte)dtpTime.Value.Hour;
+            DeviceReport.Minute = (byte)dtpTime.Value.Minute;
+            DeviceReport.Second = (byte)dtpTime.Value.Second;
+            DeviceReport.LogInterval500MS = (byte)(nudLogInterval.Value * 2);
+
+            try
+            {
+                ConnectionHandle.Write(0x00, DeviceReport.ToReport());
+                MessageBox.Show("Device parameters updated sucessfully.");
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show("Error: " + ex.Message);
+            }
+        }
+
+        private void btnGetValues_Click(object sender, EventArgs e)
+        {
+            IDevice ConnectionHandle = GetDeviceConnection();
+
+            if (ConnectionHandle == null)
+            {
+                MessageBox.Show("Error: Cannot connect to DataLogger device.");
+                return;
+            }
+
+            Device_Report_t DeviceReport = new Device_Report_t();
+
+            try
+            {
+                Byte[] Report = new Byte[7];
+
+                ConnectionHandle.Read(0x00, Report);
+                DeviceReport.FromReport(Report);
+
+                try
+                {
+                    dtpDate.Value = new DateTime(
+                        (2000 + DeviceReport.Year),
+                        DeviceReport.Month,
+                        DeviceReport.Day); 
+                    
+                    dtpTime.Value = new DateTime(
+                        DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,
+                        DeviceReport.Hour,
+                        DeviceReport.Minute,
+                        DeviceReport.Second);
+                }
+                catch (Exception ex)
+                {
+                    dtpDate.Value = DateTime.Now;
+                    dtpTime.Value = DateTime.Now;
+                }
+
+                try
+                {
+                    nudLogInterval.Value = (DeviceReport.LogInterval500MS / 2);
+                }
+                catch (Exception ex)
+                {
+                    nudLogInterval.Value = nudLogInterval.Minimum;
+                }
+
+                MessageBox.Show("Device parameters retrieved sucessfully.");
+            }
+            catch (Exception ex)
+            {
+                MessageBox.Show("Error: " + ex.Message);
+            }
+        }
+
+        private void frmDataloggerSettings_Load(object sender, EventArgs e)
+        {
+
+        }
+    }
+}
diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.resx b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.resx
new file mode 100644
index 000000000..ff31a6db5
--- /dev/null
+++ b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/DataLoggerSettings.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Hid.Linux.dll b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Hid.Linux.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4c19edd212c44e0c785bcd621e3d290e79159d83
GIT binary patch
literal 9216
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
Z0J#<t4`542BB20TGr(jp5<NfaX8?DaK9~Ri

literal 0
HcmV?d00001

diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Hid.Net.dll b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Hid.Net.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2a7112fc090f3a60ad10d974f4771077612ca61e
GIT binary patch
literal 24576
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
PMnhmU1V%%EU<d#JYQJz#

literal 0
HcmV?d00001

diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Hid.Win32.dll b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Hid.Win32.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3693c6ca04e053021ad62856d2b60034e8085d86
GIT binary patch
literal 94208
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

literal 0
HcmV?d00001

diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Program.cs b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Program.cs
new file mode 100644
index 000000000..dc818c822
--- /dev/null
+++ b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/Program.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace Project1HostApp
+{
+    static class Program
+    {
+        /// <summary>
+        /// The main entry point for the application.
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new frmDataloggerSettings());
+        }
+    }
+}
diff --git a/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/TempLoggerHostApp.csproj b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/TempLoggerHostApp.csproj
new file mode 100644
index 000000000..e3b08928f
--- /dev/null
+++ b/Projects/TemperatureDataLogger/TempLoggerHostApp/TempLoggerHostApp/TempLoggerHostApp.csproj
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.21022</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{A2D66069-8CF9-4104-828C-49A73D7DB5D1}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>TemperatureLoggerHostApp</RootNamespace>
+    <AssemblyName>TemperatureLoggerHostApp</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Hid.Net, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>.\Hid.Net.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Xml.Linq">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DataLoggerSettings.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="DataLoggerSettings.Designer.cs">
+      <DependentUpon>DataLoggerSettings.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="DataLoggerSettings.resx">
+      <DependentUpon>DataLoggerSettings.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+      <DesignTime>True</DesignTime>
+    </Compile>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/Projects/TemperatureDataLogger/TemperatureDataLogger.txt b/Projects/TemperatureDataLogger/TemperatureDataLogger.txt
index d31e24f36..3e13fd385 100644
--- a/Projects/TemperatureDataLogger/TemperatureDataLogger.txt
+++ b/Projects/TemperatureDataLogger/TemperatureDataLogger.txt
@@ -24,12 +24,14 @@
  *    <td>Device</td>
  *   </tr>
  *   <tr>
- *    <td><b>USB Class:</b></td>
+ *    <td><b>USB Classes:</b></td>
  *    <td>Mass Storage Device</td>
+ *    <td>Human Interface Device</td>
  *   </tr>
  *   <tr> 
- *    <td><b>USB Subclass:</b></td>
+ *    <td><b>USB Subclasses:</b></td>
  *    <td>Bulk-Only Transport</td>
+ *    <td>Keyboard Subclass</td>
  *   </tr>
  *   <tr>
  *    <td><b>Relevant Standards:</b></td>
@@ -37,6 +39,7 @@
  *    <td>USB Bulk-Only Transport Standard</td>
  *    <td>SCSI Primary Commands Specification</td>
  *    <td>SCSI Block Commands Specification</td>
+ *    <td>USBIF HID Specification, USBIF HID Usage Tables</td>
  *   </tr>
  *   <tr>
  *    <td><b>Usable Speeds:</b></td>
@@ -49,10 +52,12 @@
  *  Temperature Data Logger project. This project is a very basic USB data logger for the current temperature as reported by
  *  the board's temperature sensor, writing the temperature to a file stored on the board's Dataflash in a FAT filesystem
  *  each time a specified interval elapses. When inserted into a PC, the datalogger will appear as a standard USB Mass Storage
- *  device with a single text file, which contains the logged data.
+ *  device with a single text file, which contains the logged data. Files are named according to the current date when the
+ *  logging commences.
  *
- *  Currently there is no timestamp associated with the logged data; this project can be extended by the addition of a Real
- *  Time Clock chip to retain the current time/date which could be stored along with each sample.
+ *  A DS1307 or compatible RTC IC is designed to be attached to the AVR's TWI bus, for the management of timestamps on the
+ *  sampled data. This project will not function correctly if the RTC chip is omitted unless the DUMMY_RTC compile time token
+ *  is specified - see \ref SSec_Options.
  *
  *  Due to the host's need for exclusive access to the filesystem, the device will not log samples while connected to a host.
  *  For the logger to store data, the Dataflash must first be formatted by the host so that it contains a valid FAT filesystem.
@@ -68,16 +73,10 @@
  *    <td><b>Description:</b></td>
  *   </tr>
  *   <tr>
- *    <td>LOG_FILENAME</td>
- *    <td>TempDataLogger.h</td>
- *    <td>Filename of the log file to write to on the device's FAT filesystem.</td>
- *   </tr>
- *   <tr>
- *    <td>LOG_INTERVAL_10MS</td>
- *    <td>TempDataLogger.h</td>
- *    <td>Time between each data sample, in tens of milliseconds. Each time this period elapses, a
- *        temperature sample is taken and the result stored to the Dataflash's FAT filesystem.
- *    </td>
+ *    <td>DUMMY_RTC</td>
+ *    <td>Makefile CDEFS</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>
  *  </table>
  */
diff --git a/Projects/TemperatureDataLogger/makefile b/Projects/TemperatureDataLogger/makefile
index 1e495526c..ab29bb1be 100644
--- a/Projects/TemperatureDataLogger/makefile
+++ b/Projects/TemperatureDataLogger/makefile
@@ -130,6 +130,7 @@ SRC = $(TARGET).c                                                 \
 	  Lib/SCSI.c                                                  \
 	  Lib/FATFs/diskio.c                                          \
 	  Lib/FATFs/ff.c                                              \
+	  Lib/DS1307.c                                                \
 	  $(LUFA_PATH)/LUFA/Drivers/Board/Temperature.c               \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/DevChapter9.c        \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/LowLevel/Endpoint.c           \
@@ -143,6 +144,8 @@ SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c  \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/Device/MassStorage.c    \
 	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/Host/MassStorage.c      \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/Device/HID.c            \
+	  $(LUFA_PATH)/LUFA/Drivers/USB/Class/Host/HID.c              \
 
 
 # List C++ source files here. (C dependencies are automatically generated.)
-- 
GitLab