* \section Sec_ChangeLogXXXXXX Version XXXXXX\r
*\r
* <b>New:</b>\r
+ * - Added TPI programming support for 6-pin ATTINY to the AVRISP programmer project\r
+ * - Added command timeout counter to the AVRISP project so that the device no longer freezes when incorrectly connected\r
+ * to a target\r
+ * - Added new TemperatureDataLogger application, a USB data logger which writes to the device's dataflash and appears to\r
+ * the host as a standard Mass Storage device when inserted\r
+ * - Added MIDI event packing support to the MIDI Device and Host mode Class drivers, allowing for multiple MIDI events to\r
+ * sent or received in packed form in a single USB packet\r
+ * - Added new MIDI send buffer flush routines to the MIDI Device and Host mode Class drivers, to flush packed events\r
+ * - Added master mode hardware TWI driver\r
+ * - Added ADC MUX masks for the standard ADC input channels on all AVR models with an ADC, altered demos to use these masks\r
+ * as on some models, the channel number is not identical to its single-ended ADC MUX mask\r
+ *\r
+ * <b>Changed:</b>\r
+ * - Slowed down software USART carried PDI programming in the AVRISP project to prevent transmission errors\r
+ * - Renamed the AVRISP project folder to AVRISP-MKII to reduce confusion\r
+ * - Renamed the RESET_LINE_* makefile tokens in the AVRISP MKII Project to AUX_LINE_*, as they are not always used for target\r
+ * reset\r
+ * - Changed over the MassStorageKeyboard Class driver device demo to use Start of Frame events rather than a timer to keep track\r
+ * of elapsed milliseconds\r
+ * - Inlined currently unused (but standardized) maintenance functions in the Device and Host Class drivers to save space\r
+ * - The XPLAINBridge project now selects between a USB to Serial bridge and a PDI programmer on startup, reading the JTAG port's\r
+ * TDI pin to determine which mode to use\r
+ *\r
+ * <b>Fixed:</b>\r
+ * - Fixed AVRISP project not able to enter programming mode when ISP protocol is used\r
+ * - Fixed AVRISP PDI race condition where the guard time between direction changes could be interpreted as a start bit\r
+ * - Fixed ADC_IsReadingComplete() returning an inverted result\r
+ * - Fixed blocking CDC streams not aborting when the host is disconnected\r
+ * - Fixed XPLAIN board Dataflash driver broken due to incorrect preprocessor commands\r
+ * - Fixed inverted XPLAIN LED driver output (LED turned on when it was supposed to be turned off, and vice-versa)\r
+ * - Fixed Class Driver struct interface numbers in the KeyboardMouse and VirtualSerialMouse demos (thanks to Renaud Cerrato)\r
+ * - Fixed invalid USB controller PLL prescaler values for the ATMEGAxxU2 controllers\r
+ * - Fixed lack of support for the ATMEGA32U2 in the DFU and CDC class bootloaders\r
+ * - Fixed Benito project not resetting the target AVR automatically when programming has completed\r
+ * - Fixed DFU bootloader programming not discarding the correct number of filler bytes from the host when non-aligned programming\r
+ * ranges are specified (thanks to Thomas Bleeker)\r
+ *\r
+ * \section Sec_ChangeLog091223 Version 091223\r
+ *\r
+ * <b>New:</b>\r
+ * - Added activity LED indicators to the AVRISP project to indicate when the device is busy processing a command\r
+ * - The USB target family and allowable USB mode tokens are now public and documented (USB_CAN_BE_*, USB_SERIES_*_AVR)\r
+ * - Added new XPLAIN USB to Serial Bridge project (thanks to John Steggall for initial proof-of-concept, David Prentice\r
+ * and Peter Danneger for revised software USART code)\r
+ * - Added new RNDIS Ethernet Host LowLevel demo\r
+ * - Added new RNDIS Ethernet Host Class Driver\r
+ * - Added new RNDIS Ethernet Host ClassDriver demo\r
+ * - Added CDC_Host_Flush() function to the CDC Host Class driver to flush sent data to the attached device\r
+ * - Added PDI programming support for XMEGA devices to the AVRISP programmer project (thanks to Justin Mattair)\r
+ * - Added support for the XPLAIN board Dataflash, with new XPLAIN_REV1 board target for the different dataflash used\r
+ * on the first revision boards compared to the one mounted on later revisions\r
+ * - Added new HID_ALIGN_DATA() macro to return the pre-retrieved value of a HID report item, left-aligned to a given datatype\r
+ * - Added new PreviousValue to the HID Report Parser report item structure, for easy monitoring of previous report item values\r
+ * - Added new EVK527 board target\r
+ * - Added new USB_Host_GetDeviceStringDescriptor() convenience function\r
+ * - Added new LEDNotification project to the library, to give a visual LED notification on new events from the host\r
+ * - Added new NO_DEVICE_REMOTE_WAKEUP and NO_DEVICE_SELF_POWER compile time options\r
+ *\r
+ * <b>Changed:</b>\r
+ * - Removed code in the Keyboard demos to send zeroed reports between two reports with differing numbers of keycodes\r
+ * as this relied on non-standard OS driver behaviour to repeat key groups\r
+ * - The SCSI_Request_Sense_Response_t and SCSI_Inquiry_Response_t type defines are now part of the Mass Storage Class\r
+ * driver common defines, rather than being defined in the Host mode Class driver section only\r
+ * - The USB_MODE_HOST token is now defined even when host mode is not available\r
+ * - The CALLBACK_HID_Device_CreateHIDReport() HID Device Class driver callback now has a new ReportType parameter to\r
+ * indicate the report type to generate\r
+ * - All Class Drivers now return false or the "DeviceDisconnected" error code of their respective error enums when a function\r
+ * is called when no host/device is connected where possible\r
+ * - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to HOST_SENDCONTROL_DeviceDisconnected to be in line\r
+ * with the rest of the library errorcodes\r
+ * - Make MIDI device demos also turn off the on board LEDs if MIDI Note On messages are sent with a velocity of zero,\r
+ * which some devices use instead of Note Off messages (thanks to Robin Green)\r
+ * - The CDC demos are now named "VirtualSerial" instead to indicate the demos' function rather than its implemented USB class,\r
+ * to reduce confusion and to be in line with the rest of the LUFA demos\r
+ * - The SImage_Host_SendBlockHeader() and SImage_Host_ReceiveBlockHeader() Still Image Host Class driver functions are now public\r
+ *\r
+ * <b>Fixed:</b>\r
+ * - Added missing CDC_Host_CreateBlockingStream() function code to the CDC Host Class driver\r
+ * - Fixed incorrect values for REPORT_ITEM_TYPE_* enum values causing corrupt data in the HID Host Parser\r
+ * - Fixed misnamed SI_Host_USBTask() and SI_Host_ConfigurePipes() functions\r
+ * - Fixed broken USB_GetNextDescriptor() function causing the descriptor to jump ahead double the expected amount\r
+ * - Fixed Pipe_IsEndpointBound() not masking the given Endpoint Address against PIPE_EPNUM_MASK\r
+ * - Fixed host state machine not enabling Auto VBUS mode when HOST_DEVICE_SETTLE_DELAY_MS is set to zero\r
+ * - Fixed misnamed Pipe_SetPipeToken() macro for setting a pipe's direction\r
+ * - Fixed CDCHost failing on devices with bidirectional endpoints\r
+ * - Fixed USB driver failing to define the PLL prescaler mask for the ATMEGA8U2 and ATMEGA16U2\r
+ * - Fixed HID Parser not distributing the Usage Min and Usage Max values across an array of report items\r
+ * - Fixed Mass Storage Host Class driver and Low Level demo not clearing the error condition if an attached device returns a\r
+ * STALL to a GET MAX LUN request (thanks to Martin Luxen)\r
+ * - Fixed TeensyHID bootloader not properly shutting down the USB interface to trigger a disconnection on the host before resetting\r
+ * - Fixed MassStorageHost Class driver demo not having USB_STREAM_TIMEOUT_MS compile time option set properly to prevent slow \r
+ * devices from timing out the data pipes\r
+ * - Fixed the definition of the Endpoint_BytesInEndpoint() macro for the U4 series AVR parts\r
+ * - Fixed MIDI host Class driver MIDI_Host_SendEventPacket() routine not properly checking for Pipe ready before writing\r
+ * - Fixed use of deprecated struct initializers, removed library unused parameter warnings when compiled with -Wextra enabled\r
+ * - Fixed Still Image Host Class driver truncating the PIMA response code (thanks to Daniel Seibert)\r
+ * - Fixed USB_CurrentMode not being reset to USB_MODE_NONE when the USB interface is shut down and both Host and Device modes can be\r
+ * used (thanks to Daniel Levy)\r
+ * - Fixed TeensyHID bootloader not enumerating to the host correctly\r
+ * - Fixed AVRISP project timeouts not checking for the correct timeout period (thanks to Carl Ott)\r
+ *\r
+ * \section Sec_ChangeLog091122 Version 091122\r
+ *\r
+ * <b>New:</b>\r
+ * - Added new Dual Role Keyboard/Mouse demo\r
+ * - Added new HID_HOST_BOOT_PROTOCOL_ONLY compile time token to reduce the size of the HID Host Class driver when\r
+ * Report protocol is not needed\r
+ * - Added new MIDI LowLevel and ClassDriver Host demo, add new MIDI Host Class driver\r
+ * - Added new CDC/Mouse ClassDriver device demo\r
+ * - Added new Joystick Host ClassDriver and LowLevel demos\r
+ * - Added new Printer Host mode Class driver\r
+ * - Added new Printer Host mode ClassDriver demo\r
+ * - Added optional support for double banked endpoints and pipes in the Device and Host mode Class drivers\r
+ * - Added new stream creation function to the CDC Class drivers, to easily make standard I/O streams from CDC Class driver instances\r
+ *\r
+ * <b>Changed:</b>\r
+ * - Removed mostly useless "TestApp" demo, as it was mainly useful only for checking for sytax errors in the library\r
+ * - MIDI device demos now receive MIDI events from the host and display note ON messages via the board LEDs\r
+ * - Cleanups to the Device mode Mass Storage demo application SCSI routines\r
+ * - Changed Audio Class driver sample read/write functions to be inline, to reduce the number of cycles needed to transfer\r
+ * samples to and from the device (allowing more time for sample processing and output)\r
+ * - Audio class Device mode demos now work at both 16MHz and 8MHz, rather than just at 8MHz\r
+ * - The previous USBtoSerial demo has been moved into the projects directory, as it was just a modified CDC demo\r
+ * - The Endpoint/Pipe functions now use the const qualifier on the input buffer\r
+ * - Changed the CALLBACK_HIDParser_FilterHIDReportItem() callback to pass a HID_ReportItem_t rather than just the current\r
+ * item's attributes, to expose more information on the item (including it's type, collection path, etc.)\r
+ * - Changed MouseHostWithParser demos to check that the report items have a Mouse usage collection as a parent at some point,\r
+ * to prevent Joysticks from enumerating with the demo\r
+ * - Corrected the name of the misnamed USB_GetDeviceConfigDescriptor() function to USB_Host_GetDeviceConfigDescriptor().\r
+ * - Keyboard LowLevel/ClassDriver demos now support multiple simultaneous keypresses (up to 6) per report\r
+ *\r
+ * <b>Fixed:</b>\r
+ * - Fixed PrinterHost demo returning invalid Device ID data when the attached device does not have a\r
+ * device ID (thanks to Andrei Krainev)\r
+ * - Changed LUFA_VERSION_INTEGER define to use BCD values, to make comparisons eaiser\r
+ * - Fixed issue in the HID Host class driver's HID_Host_SendReportByID() routine using the incorrect mode (control/pipe)\r
+ * to send report to the attached device\r
+ * - Fixed ClassDriver AudioOutput device demo not selecting an audio output mode\r
+ * - Fixed incorrect SampleFrequencyType value in the AudioInput and AudioOutput ClassDriver demos' descriptors\r
+ * - Fixed incorrect event name rule in demo/project/bootloader makefiles\r
+ * - Fixed HID device class driver not reselecting the correct endpoint once the user callback routines have been called\r
+ * - Corrected HID descriptor in the Joystick Device demos - buttons should be placed outside the pointer collection\r
+ * - Fixed HID report parser collection paths invalid due to misplaced semicolon in the free path item search loop\r
+ * - Fixed HID host Class driver report send/receive report broken when issued through the control pipe\r
+ * - Fixed HOST_STATE_AS_GPIOR compile time option being ignored when in host mode (thanks to David Lyons)\r
+ * - Fixed LowLevel Keyboard demo not saving the issues report only after it has been sent to the host\r
+ * - Fixed Endpoint_Write_Control_Stream_* functions not sending a terminating IN when given data Length is zero\r
+ *\r
+ * \section Sec_ChangeLog090924 Version 090924\r
+ *\r
+ * <b>New:</b>\r
* - Added new host mode class drivers and matching demos to the library for rapid application development\r
* - Added flag to the HID report parser to indicate if a device has multiple reports\r
* - Added new EVENT_USB_Device_StartOfFrame() event, controlled by the new USB_Device_EnableSOFEvents() and\r
* - Added extra masks to the SPI driver, changed SPI_Init() so that the clock polarity and sample modes can be set\r
* - Added new callback to the HID report parser, so that the user application can filter only the items it is interested\r
* in to be stored into the HIDReportInfo structure to save RAM\r
+ * - Added support for the officially recommended external peripheral layout for the BUMBLEB board (thanks to Dave Fletcher)\r
+ * - Added new Pipe_IsFrozen() macro to determine if the currently selected pipe is frozen\r
+ * - Added new USB_GetHIDReportSize() function to the HID report parser to retrieve the size of a given report by its ID\r
+ * - Added new combined Mass Storage and Keyboard demo (thanks to Matthias Hullin)\r
* \r
* <b>Changed:</b>\r
* - SetIdle requests to the HID device driver with a 0 idle period (send changes only) now only affect the requested\r
* - Add in new invalid event hook check targets to project makefiles to produce compilation errors when invalid event names\r
* are used in a project\r
* - The HID Report Parser now gives information on the total length of each report within a HID interface\r
+ * - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_* and\r
+ * USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so both may be used\r
*\r
* <b>Fixed:</b>\r
* - Fixed possible lockup in the CDC device class driver, when the host sends data that is a multiple of the\r
* - Re-add in missing flip, flip-ee, dfu and dfu-ee targets to project makefiles (thanks to Opendous Inc.)\r
* - Fix allowable F_CPU values comment in project makefiles to more accurately reflect the allowable values on the USB AVRs\r
* - Fixed DFU and CDC class bootloaders on the series 2 USB AVRs, corrected invalid signatures, added support for the new\r
- * ATMEGAxxx2 series 2 variant AVRs to the DFU bootloader\r
+ * ATMEGAxx2 series 2 variant AVRs to the DFU bootloader\r
+ * - Fixed Low Level USBtoSerial demo not storing received characters (thanks to Michael Cooper)\r
+ * - Fixed MIDI Device Class driver not sending/receiving MIDI packets of the correct size (thanks to Thomas Bleeker)\r
*\r
*\r
* \section Sec_ChangeLog090810 Version 090810\r