Make Bluetooth signalling handler routines use the generic Bluetooth_SendPacket(...
[pub/lufa.git] / LUFA / ManPages / MigrationInformation.txt
index ecd4e9e..8467e00 100644 (file)
  *  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 090605 to XXXXXX\r
+ * \section Sec_MigrationXXXXXX Migrating from 100219 to XXXXXX\r
+ *\r
+ *  <b>Non-USB Library Components</b>\r
+ *    - The \ref TWI_StartTransmission() function now takes in a timeout period, expressed in milliseconds, within which the addressed\r
+ *      device must respond or the function will abort.\r
+ *\r
+ * \section Sec_Migration100219 Migrating from 091223 to 100219\r
+ *\r
+ *  <b>Non-USB Library Components</b>\r
+ *    - Due to some ADC channels not being identical to their ADC MUX selection masks for single-ended conversions on some AVR models,\r
+ *      the ADC driver now has explicit masks for each of the standard ADC channels (see \ref Group_ADC). These masks should be used \r
+ *      when calling the ADC functions to ensure proper operation across all AVR models. Note that the \ref ADC_SetupChannel() function \r
+ *      is an exception, and should always be called with a channel number rather than a channel mask.\r
+ *\r
+ *  <b>Host Mode</b>\r
+ *    - The MIDI Host Class driver send and receive routines now operate on packed events, where multiple MIDI events may be\r
+ *      packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send\r
+ *      pipe bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually\r
+ *      flush the queued event(s) to the device by calling \ref MIDI_Host_Flush().\r
+ *    - The Pipe_IsEndpointBound() function now takes the endpoint's direction into account, by checking if the MSB of the endpoint's address\r
+ *      is set to denote IN endpoints. If the previous functionality where the direction is to be discounted is required, mask the endpoint\r
+ *      address against the \ref PIPE_EPNUM_MASK token before calling Pipe_IsEndpointBound().\r
+ *\r
+ *  <b>Device Mode</b>\r
+ *    - The MIDI Device Class driver send and receive routines now operate on packed events, where multiple MIDI events may be\r
+ *      packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send\r
+ *      endpoint bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually\r
+ *      flush the queued event(s) to the host by calling \ref MIDI_Device_Flush().\r
+ *\r
+ * \section Sec_Migration091223 Migrating from 091122 to 091223\r
+ *\r
+ *  <b>Host Mode</b>\r
+ *    - The Still Image Host Class driver SI_Host_USBTask() and SI_Host_ConfigurePipes() functions were misnamed, and are\r
+ *      now named \ref SImage_Host_USBTask() and \ref SImage_Host_ConfigurePipes() respectively.\r
+ *    - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to \ref HOST_SENDCONTROL_DeviceDisconnected to be in\r
+ *      line with the rest of the library error codes.\r
+ *    - The HID Parser item usages no longer contain seperate minimum and maximum values, as this was a violation of the HID\r
+ *      specification. Instead, the values are distributed evenly across each item as its usage value, to ensure that all items\r
+ *      can be distinguished from oneanother.\r
+ *\r
+ *  <b>Device Mode</b>\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. Existing applications may simply add and ignore this additional parameter.\r
+ *\r
+ * \section Sec_Migration091122 Migrating from 090924 to 091122\r
+ *  \r
+ *  <b>Host Mode</b>\r
+ *    - The HID_PARSE_UsageStackOverflow HID parser error constant is now named \ref HID_PARSE_UsageListOverflow\r
+ *    - The \ref CALLBACK_HIDParser_FilterHIDReportItem() HID Parser callback now passes a complete HID_ReportItem_t to the\r
+ *      user application, instead of just its attributes.\r
+ *    - The USB_GetDeviceConfigDescriptor() function was incorrectly named and is now called \ref USB_Host_GetDeviceConfigDescriptor().\r
+ *\r
+ * \section Sec_Migration090924 Migrating from 090810 to 090924\r
+ *\r
+ *  <b>Non-USB Library Components</b>\r
+ *    - The ADC_Off() function has been renamed to \ref ADC_ShutDown() to be consistent with the rest of the library.\r
+ *    - The \ref SPI_Init() routine's parameters have changed, so that the clock polarity and data sampling modes can be set. See\r
+ *      the \ref SPI_Init() function documentation for more details\r
+ *    - The \ref Dataflash_Init() routine no longer initializes the SPI bus - the SPI bus should be initialized manually via a\r
+ *      call to SPI_Init() before using the Dataflash driver\r
+ *\r
+ *  <b>Host Mode</b>\r
+ *    - The USB_GetDeviceConfigDescriptor() function's parameters and behaviour has changed; the user is required to\r
+ *      preallocate the largest allowable buffer, and pass the size of the buffer to the function. This allows for a single\r
+ *      call to the function to retrieve, size check and validate the Configuration Descriptor rather than having the user\r
+ *      application perform these intermediatary steps.\r
+ *    - The HID report parser now requires a mandatory callback in the user code, to filter only the items the application\r
+ *      is interested in into the processed HID report item structure to save RAM. See \ref CALLBACK_HIDParser_FilterHIDReportItem().\r
+ *    - The HID report parser now always parses FEATURE and always ignores constant-data items - the HID_ENABLE_FEATURE_PROCESSING\r
+ *      and HID_INCLUDE_CONSTANT_DATA_ITEMS compile time tokens now have no effect.\r
+ *    - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*\r
+ *      and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in\r
+ *      the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.\r
+ *\r
+ *  <b>Device Mode</b>\r
+ *    - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*\r
+ *      and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in\r
+ *      the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.\r
+ *\r
+ * \section Sec_Migration090810 Migrating from 090605 to 090810\r
  *\r
  *  <b>All</b>\r
- *    - The "Simple Scheduler" has been deprecated, as it was little more than an abtracted loop and caused much confusion. User\r
- *      applications using the scheduler should switch to regular loops instead. The scheduler code will be removed in a future\r
+ *    - The "Simple Scheduler" has been <i>deprecated</i>, as it was little more than an abtracted loop and caused much confusion.\r
+ *      User applications using the scheduler should switch to regular loops instead. The scheduler code will be removed in a future\r
  *      release.\r
  *    - The "Dynamic Memory Block Allocator" has been removed, as it was unused in (and unrelated to) the LUFA library and never\r
  *      used in user applications. The library is available from the author's website for those wishing to still use it in their\r
  *      applications.\r
  *\r
+ *  <b>Non-USB Library Components</b>\r
+ *    - The ATTR_NOINLINE function attribute macro has been renamed to ATTR_NO_INLINE to be in line with the rest of the function attribute\r
+ *      macro names.\r
+ *\r
+ *  <b>Library Demos</b>\r
+ *    - Most demos now have a corresponding Class Driver implementation, which uses the new internal library class drivers for the standard\r
+ *      USB classes. This allows for more rapid device and host development, and so should be used in preference to the low level APIs where\r
+ *      possible so that fixes to the class drivers propagate to all applications which use them automatically with each new LUFA release.\r
+ *\r
+ *  <b>Host Mode</b>\r
+ *    - The HIDParser.c module has moved from LUFA/Drivers/USB/Class/ to LUFA/Drivers/USB/Class/Host/.\r
+ *    - The USB_GetDeviceConfigDescriptor() function now requires the desired configuration index within the device as its first\r
+ *      parameter, to add support for multi-configuration devices. Existing code should use a configuration index of 1 to indicate the\r
+ *      first configuration descriptor within the device.\r
+ *    - The non-standard "Ready" host state has been removed. Existing \ref HOST_STATE_Configured code should be moved to the end of\r
+ *      the existing \ref HOST_STATE_Addressed state, and the existing HOST_STATE_Ready state code should be moved to the \ref HOST_STATE_Configured\r
+ *      state.\r
+ *    - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_HostState explicitly to ensure the host is\r
+ *      in the desired state instead.\r
+ *    - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode\r
+ *      events. See the \ref Group_Events page for details on the new event names and firing conditions.\r
+ *\r
+ *  <b>Device Mode</b>\r
+ *    - The \ref CALLBACK_USB_GetDescriptor() function now takes an extra parameter to specify the descriptor's memory space so that\r
+ *      descriptors in mixed memory spaces can be used. The previous functionality can be returned by defining the USE_FLASH_DESCRIPTORS\r
+ *      token in the project makefile to fix all descriptors into FLASH space and remove the extra function parameter.\r
+ *    - The USB_IsSuspended global has been removed - test \ref USB_DeviceState against \ref DEVICE_STATE_Suspended instead.\r
+ *    - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_DeviceState explicitly to ensure the device\r
+ *      is in the desired state instead.\r
+ *    - The VBUS events have been removed, as they are already exposed to the user via the USB_Connect and USB_Disconnect events.\r
+ *    - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode\r
+ *      events. See the \ref Group_Events page for details on the new event names and firing conditions. *\r
+ *\r
  * \section Sec_Migration090605 Migrating from 090510 to 090605\r
  *\r
  *  <b>Device Mode</b>\r
  *      as it is neither a full nor a standards compliant implementation.\r
  *\r
  *  <b>Non-USB Library Components</b>\r
- *    - The Serial_IsCharRecieved() macro has been changed to the correct spelling of Serial_IsCharReceived() in Serial.h.\r
+ *    - The Serial_IsCharReceived() macro has been changed to the correct spelling of Serial_IsCharReceived() in Serial.h.\r
  *\r
  *  <b>Device Mode</b>\r
  *    - The MANUAL_PLL_CONTROL compile time token has been removed, and replaced with a USB_OPT_MANUAL_PLL mask\r