* - Added new GCC_FORCE_POINTER_ACCESS() macro to correct GCC's mishandling of struct pointer accesses
* - Added basic driver example use code to the library documentation
* - Added new Endpoint_Null_Stream() and Pipe_Null_stream() functions
+ * - Added new ADC_GET_CHANNEL_MASK() convenience macro
+ * - Added new HID report item macros (with HID_RI_ prefix) to allow for easy creation and editing of HID report descriptors
+ * - Added new HID_DESCRIPTOR_MOUSE, HID_DESCRIPTOR_KEYBOARD, HID_DESCRIPTOR_JOYSTICK and HID_DESCRIPTOR_VENDOR macros
+ * for easy automatic creation of basic USB HID device reports
+ * - Added new MAX() and MIN() convenience macros
* - Library Applications:
* - Added ability to write protect Mass Storage disk write operations from the host OS
+ * - Added new KeyboardMouseMultiReport Device ClassDriver demo
*
* <b>Changed:</b>
* - Core:
* where the number of bytes in the transfer that have been completed can be stored (or NULL if entire transaction
* should be performed in one chunk)
* - The NO_STREAM_CALLBACKS compile time option has now been removed due to the new partial stream transfer feature
+ * - Changed over all project and demo HID report descriptors to use the new HID report item macros
+ * - Moved the HIDParser.c source file to the LUFA/Drivers/USB/Class/Common/ directory from the LUFA/Drivers/USB/Class/Host/
+ * - Added support to the HID parser for extended USAGE items that contain the usage page as well as the usage index
* - Library Applications:
* - Changed the XPLAINBridge software UART to use the regular timer CTC mode instead of the alternative CTC mode
* via the Input Capture register, to reduce user confusion
* - Combined page and word ISP programming mode code in the AVRISP-MKII clone project to reduce compiled size and
* increase maintainability of the code
* - Changed over library projects to use the new general ring buffer library driver module
+ * - Added new high level TWI packet read/write commands, altered behaviour of the TWI_StartTransmission() function
+ * - Changed TempDataLogger project's DS1307 driver to simplify the function interface and prevent a possible race condition
+ * - Changed AVRISP-MKII project to use the Watchdog interrupt for command timeouts, to reduce CPU usage and free timer 0
+ * for other uses
*
* <b>Fixed:</b>
* - Core:
* - Fixed broken USBFOO board drivers due to missing BOARD_USBFOO define
* - Fixed HID host class driver incorrectly binding to HID devices that do not have an OUT endpoint
* - Fixed incorrect definition of the HID_KEYBOARD_SC_D constant in the HID class driver (thanks to Opendous Inc.)
+ * - Fixed incorrect definition of the HID_KEYBOARD_SC_RIGHT_ARROW constant in the HID class driver (thanks to Joby Taffey)
* - Fixed incorrect endpoint initialisation order in the several device demos (thanks to Rick Drolet)
* - Fixed inverted Minimum board LEDs
* - Fixed incorrect byte ordering in the Audio_Device_WriteSample24 function (thanks to WZab)
+ * - Fixed several functions in the Host mode Still Image Class driver returning an error code from the incorrect
+ * error code enum (thanks to Daniel Seibert)
+ * - Fixed ReportID not being removed from the feature/out report data array in the HID class driver when Report IDs are used
* - Library Applications:
* - Fixed Benito project discarding incoming data from the USB virtual serial port when the USART is busy
* - Fixed broken DFU bootloader, added XPLAIN support for bootloader start when XCK jumpered to ground
* - Renamed ENDPOINT_DOUBLEBANK_SUPPORTED() to ENDPOINT_BANKS_SUPPORTED() and changed it to return the maximum number of supported banks for
* the given endpoint
* - Better algorithm to extract and convert the internal device serial number into a string descriptor (if present)
- * - All USB class drivers are now automatically included when LUFA/Drivers/USB.h is included, and no longer need to be seperately included
+ * - All USB class drivers are now automatically included when LUFA/Drivers/USB.h is included, and no longer need to be separately included
* - The MIDI class drivers now automatically flushes the MIDI interface when the MIDI class driver's USBTask() function is called
* - Renamed the EVENT_USB_Device_UnhandledControlRequest() event to EVENT_USB_Device_ControlRequest() as it is now fired before the library
* request handlers, not afterwards
* - Added compile time error to the AVRISP-MKII project when built for the U4 chips, as the default VTARGET detection ADC channel
* does not exist on these chips (thanks to Marco)
* - Changed all Device mode LowLevel demos and Device Class drivers so that the control request is acknowledged and any data
- * transferred as quickly as possible without any processing inbetween sections, so that long callbacks or event handlers will
+ * transferred as quickly as possible without any processing in between sections, so that long callbacks or event handlers will
* not break communications with the host by exceeding the maximum control request stage timeout period
* - Changed over all demos, drivers and internal functions to use the current frame number over the Start of Frame flag where possible
* to free up the Start of Frame flag for interrupt use in the user application
* - All LowLevel demos changed to use the constants and types defined in the USB class drivers
* - Changed AudioInput and AudioOutput demos to reload the next sample via an interrupt rather than polling the sample timer
* - Rescue clock of the AVRISP-MKII moved to the AVR's OCR1A pin, so that the clock can be generated at all times
- * - Changed ClassDriver MIDI demos to process all incomming events in a loop until the bank becomes empty rather than one at a time
- * - Changed LowLevel MIDI demos to only clear the incomming event bank once it has become empty to support packed event packets
+ * - Changed ClassDriver MIDI demos to process all incoming events in a loop until the bank becomes empty rather than one at a time
+ * - Changed LowLevel MIDI demos to only clear the incoming event bank once it has become empty to support packed event packets
*
* <b>Fixed:</b>
* - Core:
* of device configurations can be defined statically
* - Removed VBUS events, as they are already exposed to the user application via the regular device connection and disconnection events
* - Renamed and altered existing events to properly separate out Host and Device mode events
- * - All demos switched over from GNU99 standards mode to C99 standards mode, to reduce the dependancies on GCC-only language extensions
+ * - All demos switched over from GNU99 standards mode to C99 standards mode, to reduce the dependencies on GCC-only language extensions
*
* <b>Fixed:</b>
* - Changed bootloaders to use FLASHEND rather than the existence of RAMPZ to determine if far FLASH pointers are needed to fix