* to the next version released. It does not indicate all new additions to the library in each version change, only\r
* areas relevant to making older projects compatible with the API changes of each new release.\r
*\r
- * \section Sec_MigrationXXXXXX Migrating from 090401 to XXXXXX\r
+ * \section Sec_Migration090605 Migrating from 090510 to 090605\r
+ *\r
+ *\r
+ * \section Sec_Migration090605 Migrating from 090510 to 090605\r
+ *\r
+ * <b>Device Mode</b>\r
+ * - Support for non-control data endpoint interrupts has been dropped due to many issues in the implementation. All existing\r
+ * projects using interrupts on non-control endpoints should switch to polling. For control interrupts, the library can\r
+ * manage the control endpoint via interrupts automatically by compiling with the INTERRUPT_CONTROL_ENDPOINT token defined.\r
+ * - The DESCRIPTOR_ADDRESS() macro has been removed. User applications should use normal casts to obtain a descriptor's memory\r
+ * address.\r
+ * - The library events system has been rewritten, so that all macros have been removed to allow for clearer user code. See\r
+ * \ref Group_Events for new API details.\r
+ * - The STREAM_CALLBACK() macro has been removed. User applications should replace all instances of the macro with regular\r
+ * function signatures of a function accepting no arguments and returning a uint8_t value.\r
+ * - The Event_DeviceError() event no longer exists, as its sole caller (unlinked USB_GetDescriptor() function) now produces a\r
+ * compilation error rather than a runtime error. The StdDescriptors.c file no longer exists as a result, and should be removed\r
+ * from project makefiles.\r
+ * - The USB_GetDescriptor() function has been renamed to CALLBACK_USB_GetDescriptor() to be in line with the new CALLBACK_ function\r
+ * prefixes for functions which *must* be implemented in the user application.\r
+ *\r
+ * <b>Host Mode</b>\r
+ * - Support for non-control data pipe interrupts has been dropped due to many issues in the implementation. All existing\r
+ * projects using interrupts on non-control pipes should switch to polling.\r
+ * - The library events system has been rewritten, so that all macros have been removed to allow for clearer user code. See\r
+ * \ref Group_Events for new API details.\r
+ * - The STREAM_CALLBACK() macro has been removed. User applications should replace all instances of the macro with regular\r
+ * function signatures of a function accepting no arguments and returning a uint8_t value.\r
+ * - The DESCRIPTOR_COMPARATOR() macro has been removed. User applications should replace all instances of the macro with\r
+ * regular function signatures of a function accepting a void pointer to the descriptor to test, and returning a uint8_t value.\r
+ *\r
+ *\r
+ * \section Sec_Migration090510 Migrating from 090401 to 090510\r
*\r
* <b>All</b>\r
* - The ButtLoadTag.h header has been removed, as it was never used for its intended purpose. Projects should either remove all\r
* BUTTLOADTAG elements, or download and extract ButtLoadTag.h header from the ButtLoad project.\r
* - The Drivers/AT90USBXXX directory has been renamed to Drivers/Peripheral.\r
* - The Serial_Stream driver has been renamed to SerialStream to remain consistent with the rest of the library naming scheme.\r
+ * - The HWB driver has changed to the Buttons driver. See the board Buttons driver documentation for the new API.\r
+ *\r
+ * <b>Dual Role Mode</b>\r
+ * - The USB_PowerOnFail even has been renamed to USB_InitFailure.\r
+ * - The functions in OTG.h have been renamed to remain more consistent with the library API. See the functions in OTG.h for more\r
+ * details.\r
*\r
* <b>Library Demos</b>\r
* - Most demos, bootloaders and applications have had significant changes from previous versions. Applications built off of any\r
* - The Endpoint_ClearSetupReceived() macro has been renamed to Endpoint_ClearSETUP().\r
* - All endpoint read/write/discard aliases which did not have an explicitly endianness specifier (such as Endpoint_Read_Word()) have\r
* been removed for clarity. Existing projects should use the "_LE" suffix on such calls to use the explicit Little Endian versions.\r
+ * - The USB_UnhandledControlPacket event no longer has any parameters. User code should no longer attempt to read in the remainder of\r
+ * the Control Request header as all Control Request header data is now preloaded by the library and made available in the\r
+ * USB_ControlRequest structure.\r
+ * - The FEATURELESS_CONTROL_ONLY_DEVICE token has been renamed to CONTROL_ONLY_DEVICE.\r
+ * - The STATIC_ENDPOINT_CONFIGURATION is no longer applicable as the library will apply this optimization when appropriate automatically.\r
+ * - The values of the Endpoint_Stream_RW_ErrorCodes_t and Endpoint_ControlStream_RW_ErrorCodes_t enums have had the "ERROR_" portion\r
+ * of their names removed.\r
*\r
* <b>Host Mode</b>\r
* - The USB_Host_SendControlRequest() function no longer automatically selects the Control pipe (pipe 0) to allow it to be used on\r
* and SetReportItemInfo() has been renamed to USB_GetHIDReportItemInfo().\r
* - The values of the DSearch_Return_ErrorCodes_t and DSearch_Comp_Return_ErrorCodes_t enums have had their respective "Descriptor_Search"\r
* and "Descriptor_Search_Comp" prefixes changed to all caps.\r
+ * - The USB_HostRequest global has been renamed to USB_ControlRequest, and is used in Device mode also. The USB_Host_Request_Header_t\r
+ * structure type has been renamed to USB_Request_Header_t.\r
+ * - The values of the Pipe_Stream_RW_ErrorCodes_t enum have had the "ERROR_" portion of their names removed.\r
+ *\r
*\r
* \section Sec_Migration090401 Migrating from 090209 to 090401\r
*\r