Add CDC Host class driver EVENT_CDC_Host_ControLineStateChanged() event.
[pub/lufa.git] / LUFA / ManPages / ChangeLog.txt
index cbe4c59..a6ed06c 100644 (file)
@@ -9,50 +9,84 @@
   *  \section Sec_ChangeLogXXXXXX Version XXXXXX\r
   *\r
   *  <b>New:</b>\r
-  *  - Added new class drivers and matching demos to the library for rapid application development\r
+  *  - Added new host class drivers and matching demos to the library for rapid application development\r
+  *  \r
+  *  <b>Changed:</b>\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
+  *    endpoint's bank\r
+  *  - Fixed swapped paremeters in the HID state memory copy call while processing a HID PUSH item in the HID report parser\r
+  *  - Fixed memory corruption HID report parser when too many COLLECTION or PUSH items were processed\r
+  *\r
+  *\r
+  *  \section Sec_ChangeLog090810 Version 090810\r
+  *\r
+  *  <b>New:</b>\r
+  *  - Added new device class drivers and matching demos to the library for rapid application development\r
+  *  - Added new PrinterHost demo (thanks to John Andrews)\r
+  *  - Added USB Missle Launcher project, submitted by Dave Fletcher\r
+  *  - Added new Benito Arduino Programmer project\r
   *  - Added incomplete device and host mode demos for later enhancement\r
+  *  - Updated MassStorage device block write routines to use ping-pong Dataflash buffering to increase throughput by around 30%\r
   *  - Error status LEDs shown when device endpoint configuration fails to complete in all demos and projects\r
   *  - Added new USB_Host_SetDeviceConfiguration() convenience function for easy configuration selection of devices while in USB\r
   *    host mode\r
   *  - Added new USB_Host_ClearPipeStall() convenience function to clear a stall condition on an attached device's endpoint\r
   *  - Added new USB_Host_GetDeviceDescriptor() convenience function to retrieve the attached device's Device descriptor\r
-  *  - Added USB Missle Launcher project, submitted by Dave Fletcher\r
+  *  - Added new Endpoint_ClearStatusStage() convenience function to assist with the status stages of control transfers\r
   *  - Added new USE_INTERNAL_SERIAL define for using the unique serial numbers in some AVR models as the USB device's serial number,\r
   *    added NO_INTERNAL_SERIAL compile time option to turn off new serial number reading code\r
   *  - Added new DATAFLASH_CHIP_MASK() macro to the Dataflash driver, which returns the Dataflash select mask for the given chip index\r
-  *  - Updated MassStorage device block write routines to use ping-pong Dataflash buffering to increase throughput by around 30%\r
   *  - Added new HOST_STATE_WaitForDeviceRemoval host state machine state for non-blocking disabling of device communications until the\r
   *    device has been removed (for use when an error occurs or communications with the device have completed)\r
   *  - Added new FAST_STREAM_TRANSFERS compile time option for faster stream transfers via multiple bytes copied per stream loop\r
-  *  - Added stdio stream demo code to the low-level CDC demo, to show how to create standard streams out of the virtual serial ports\r
+  *  - Added stdio stream demo code to the CDC device demos, to show how to create standard streams out of the virtual serial ports\r
   *  - Added new EEPROM and FLASH buffer versions of the Endpoint and Pipe stream functions\r
-  *  - Added new USE_FLASH_DESCRIPTORS and TOTAL_NUM_CONFIGURATIONS compile time options\r
+  *  - Added new USE_FLASH_DESCRIPTORS and FIXED_NUM_CONFIGURATIONS compile time options\r
   *  - Added support for the new ATMEGA32U2, ATMEGA16U2 and ATMEGA8U2 AVR models\r
+  *  - Added new USB_DeviceState variable to keep track of the current Device mode USB state\r
+  *  - Added new LEDs_ToggleLEDs() function to the LEDs driver\r
+  *  - Added new Pipe_BoundEndpointNumber() and Pipe_IsEndpointBound() functions\r
+  *  - Added new DEVICE_STATE_AS_GPIOR and HOST_STATE_AS_GPIOR compile time options\r
+  *  - Added 404 Not Found errors to the webserver in the RNDIS demos to indicate invalid URLs\r
   *  \r
   *  <b>Changed:</b>\r
   *  - Deprecated psuedo-scheduler and removed dynamic memory allocator from the library (first no longer needed and second unused)\r
+  *  - The device-mode CALLBACK_USB_GetDescriptor() function now has an extra parameter so that the memory space in which the requested\r
+  *    descriptor is located can be specified. This means that descriptors can now be located in multiple memory spaces within a device.\r
+  *  - Removed vague USB_IsConnected global - test USB_DeviceState or USB_HostState explicitly to gain previous functionality\r
+  *  - Removed USB_IsSuspended global - test USB_DeviceState against DEVICE_STATE_Suspended instead\r
+  *  - Extended USB_GetDeviceConfigDescriptor() routine to require the configuration number within the device to fetch\r
+  *  - Dataflash_WaitWhileBusy() now always ensures that the dataflash is ready for the next command immediately after returning,\r
+  *    no need to call Dataflash_ToggleSelectedChipCS() afterwards\r
   *  - Low level API MIDI device demo no longer blocks if a note change event is sent while the endpoint is not ready\r
-  *  - Internal per-device preprocessing conditions changed to per-device series rather than per controller group for finer-grain\r
-  *    internal control\r
   *  - Pipe_GetErrorFlags() now returns additional error flags for overflow and underflow errors\r
-  *  - Extended USB_GetDeviceConfigDescriptor() routine to require the configuration number within the device to fetch\r
   *  - Pipe stream functions now automatically set the correct pipe token, so that bidirectional pipes can be used\r
   *  - Pipe_ConfigurePipe() now automatically defaults IN pipes to accepting infinite IN requests, this can still be changed by calling\r
   *    the existing Pipe_SetFiniteINRequests() function\r
-  *  - Dataflash_WaitWhileBusy() now always ensures that the dataflash is ready for the next command immediately after returning,\r
-  *    no need to call Dataflash_ToggleSelectedChipCS() afterwards\r
   *  - Changed F_CLOCK entries in project makefiles to alias to F_CPU by default, as this is the most common case\r
-  *  - The device-mode CALLBACK_USB_GetDescriptor() function now has an extra parameter so that the memory space in which the requested\r
-  *    descriptor is located can be specified. This means that descriptors can now be located in multiple memory spaces within a device.\r
+  *  - Host mode demos now use sane terminal escape codes, so that text is always readable and events/program output is visually distinguished\r
+  *    from oneanother using foreground colours\r
+  *  - Internal per-device preprocessing conditions changed to per-device series rather than per-controller group for finer-grain\r
+  *    internal control\r
+  *  - Interrupts are no longer disabled during the processing of Control Requests on the default endpoint while in device mode\r
+  *  - AudioOutput demos now always output to board LEDs, regardless of output mode (removed AUDIO_OUT_LEDS project option)\r
+  *  - Removed SINGLE_DEVICE_CONFIGURATION compile time option in favour of the new FIXED_NUM_CONFIGURATIONS option so that the exact number\r
+  *    of device configurations can be defined statically\r
+  *  - Removed VBUS events, as they are already exposed to the user application via the regular device connection and disconnection events\r
+  *  - Renamed and altered existing events to properly seperate out Host and Device mode events\r
   *\r
   *  <b>Fixed:</b>\r
   *  - Changed bootloaders to use FLASHEND rather than the existence of RAMPZ to determine if far FLASH pointers are needed to fix\r
   *    bootloaders on some of the USB AVR devices where avr-libc erronously defines RAMPZ\r
   *  - Fixes to MassStorageHost for better device compatibility (increase command timeout, change MassStore_WaitForDataReceived()\r
-  *    to only unfreeze and check one data pipe at a time) to prevent incorrect enumerations and freezes\r
+  *    to only unfreeze and check one data pipe at a time) to prevent incorrect device enumerations and freezes while trasferring data\r
   *  - Make Pipe_ConfigurePipe() mask the given endpoint number against PIPE_EPNUM_MASK to ensure the endpoint IN direction bit is\r
   *    cleared to prevent endpoint type corruption\r
-  *  - Fix documentation mentioning Pipe_GetCurrentToken() function when real name is Pipe_GetPipeToken()\r
+  *  - Fixed issue opening CDC-ACM ports on hosts when the CDC device tries to send data before the host has set the line encoding\r
+  *  - Fixed USB_OPT_MANUAL_PLL option being ignored during device disconnects on some models (thanks to Brian Dickman)\r
+  *  - Fixed documentation mentioning Pipe_GetCurrentToken() function when correct function name is Pipe_GetPipeToken()\r
   *  - Fixed ADC driver for the ATMEGA32U4 and ATMEGA16U4 (thanks to Opendous Inc.)\r
   *  - Fixed CDCHost demo unfreezing the pipes at the point of configuration, rather than use\r
   *  - Fixed MassStorage demo not clearing the reset flag when a Mass Storage Reset is issued while not processing a command\r
   *  - Fixed USB Pad regulator not being disabled on some AVR models when the USB_OPT_REG_DISABLED option is used\r
   *  - Fixed Host mode to Device mode UID change not causing a USB Disconnect event when a device was connected\r
   *  - Fixed Mouse/Keyboard demos not performing the correct arithmetic on the Idle period at the right times (thanks to Brian Dickman)\r
+  *  - Fixed GenericHID failing HID class tests due to incorrect Logical Minimum and Logical Maximum values (thanks to Søren Greiner)\r
+  *  - Fixed incorrect PIPE_EPNUM_MASK mask causing pipe failures on devices with endpoint addresses of 8 and above (thanks to John Andrews)\r
+  *  - Fixed report data alignment issues in the MouseHostWithParser demo when X and Y movement data size is not a multiple of 8 bits\r
+  *  - Fixed HID Report Descriptor Parser not correctly resetting internal states when a REPORT ID element is encountered\r
+  *  - Fixed incorrect BUTTONS_BUTTON1 for the STK526 target\r
+  *  - Fixed RNDIS demos freezing when more than one connection was attempted simultaneously, causing memory corruption\r
+  *  - Fixed USBtoSerial demo receiving noise from the USART due to pullup not being enabled\r
   *\r
   *\r
   *  \section Sec_ChangeLog090605 Version 090605\r
   *    LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preperation for the new USB class APIs\r
   *  - Moved out each demos' functionality library files (e.g. Ring Buffer library) to /Lib directories for a better directory structure\r
   *  - Removed Tx interrupt from the USBtoSerial demo; now sends characters via polling to ensure more time for the Rx interrupt\r
+  *  - Fixed possible enumeration errors from spinloops which may fail to exit if the USB connection is severed before the exit condition\r
+  *    becomes true\r
   *\r
   *\r
   *  \section Sec_ChangeLog090510 Version 090510\r