X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/43c473530552acabcf5bb1db29555bfb5ea70b79..a36012fc4b057dc1fe96f75a005cd8ba017a6a71:/LUFA/ManPages/MigrationInformation.txt diff --git a/LUFA/ManPages/MigrationInformation.txt b/LUFA/ManPages/MigrationInformation.txt index 25669400f..d5f680eef 100644 --- a/LUFA/ManPages/MigrationInformation.txt +++ b/LUFA/ManPages/MigrationInformation.txt @@ -10,7 +10,31 @@ * to the next version released. It does not indicate all new additions to the library in each version change, only * areas relevant to making older projects compatible with the API changes of each new release. * - * \section Sec_MigrationXXXXXX Migrating from 101122 to XXXXXX + * \section Sec_MigrationXXXXXX Migrating from 110528 to XXXXXX + * Device Mode + * - The definition of the Audio class \ref USB_Audio_Descriptor_Format_t has been altered, to remove the fixed singular + * audio sample rate in the descriptor definition, and to rename the \c SampleFrequencyType to the more appropriate + * \c TotalDiscreteSampleRates. Existing applications will need to add an array of \ref USB_Audio_SampleFreq_t elements + * immediately following any \ref USB_Audio_Descriptor_Format_t descriptors, and insert the appropriate sampling rates + * supported by the device, as well as rename the descriptor elements to match the updated element names. + * - The device mode Audio class driver now requires a new user application callback, \ref CALLBACK_Audio_Device_GetSetEndpointProperty(). + * Existing applications must implement this new callback, however if multiple sample rates or pitch control is not used, + * this function may be hard-coded to always return false for previous behaviour to be retained. + * - The \c USB_ConfigurationNumber, \c USB_RemoteWakeupEnabled and \c USB_CurrentlySelfPowered globals have been renamed to + * \ref USB_Device_ConfigurationNumber, \ref USB_Device_RemoteWakeupEnabled and \ref USB_Device_CurrentlySelfPowered to clearly indicate + * the USB mode they relate to. Existing applications using these variables should rename all references to the previous names. + * + * Host Mode + * - The USB_Host_SetDeviceConfiguration() function now automatically sets the USB Host state machine to the \ref HOST_STATE_Configured + * state if a non-zero configuration is set sucessfully, or the \ref HOST_STATE_Addressed if a zero-index configuration is specified. Existing + * applications should no longer manually alter the \ref USB_HostState global, and should instead call this function to configure and + * unconfigure an attached device. + * - The \c HOST_STATE_WaitForDeviceRemoval and \c HOST_STATE_Suspended host state machine states have been removed; these are replaced by + * unconfiguring the attached device via a call to \ref USB_Host_SetDeviceConfiguration() and a test of \ref USB_Host_IsBusSuspended() instead. + * - It is highly recommended that the EVENT_USB_Host_DeviceEnumerationComplete() event callback now be used for initial device configuration, + * rather than a switch on the USB host state machine state for readability. + * + * \section Sec_Migration110528 Migrating from 101122 to 110528 * Non-USB Library Components * - The TWI driver \ref TWI_StartTransmission() function return type has now changed, so that the function returns an * error code from the \ref TWI_ErrorCodes_t enum instead of a boolean success flag. Existing code must now check @@ -22,12 +46,18 @@ * with a \c NULL parameter. * - The \ref Serial_ReceiveByte() function has changed, and now returns a signed 16-bit integer, with -1 indicating no data was * received. + * - The TWI driver \ref TWI_Init() function now expects additional prescaler and bitlength parameters. See the function + * documentation for more details. + * - The name postfix on all driver modules to turn off and disable that module has been changed from *_ShutDown() to *_Disable(). + * Rename all references to these functions to use the new function names. * * USB Core * - By default, unordered Endpoint and Pipe configuration is now allowed once again, via the previous workaround of - * reconfiguring all Endpoints/Pipes in order each time a new Endpoint/Pipe is created. To minimise the compiled program + * reconfiguring all Endpoints/Pipes in order each time a new Endpoint/Pipe is created. To minimize the compiled program * size, the new \c ORDERED_EP_CONFIG compile time option may be defined in the project makefile to restrict the ordering * in exchange for a smaller compiled binary size. + * - The previous F_CLOCK symbol, required in the project makefile, has been renamed to F_USB. This is due to the previous name + * being far too generic for use in future architecture ports, where multiple clock domains are used. * * Device Mode * - The Endpoint stream functions now all require a \c BytesProcessed parameter instead of the previous callback parameter. @@ -37,6 +67,17 @@ * error code to allow the user application to determine when to send the next chunk of data. * - The \ref CDC_Device_SendString() function now expects a null terminated string instead of an explicit length. Existing code * should use the new \ref CDC_Device_SendData() function, or remove the length parameter from the function call. + * - The Endpoint_ResetFIFO() function has been renamed to \ref Endpoint_ResetEndpoint(), to make the API function names more + * consistent. Existing applications using the old function name should simply replace it with a call to the new function name. + * - The Endpoint_*_Byte() functions have been renamed Endpoint_*_8() to ensure they are correct across all architectures. Existing + * code using these functions should replace the previous function names with the new function names. + * - The Endpoint_*_Word() functions have been renamed Endpoint_*_16() to ensure they are correct across all architectures. Existing + * code using these functions should replace the previous function names with the new function names. + * - The Endpoint_*_DWord() functions have been renamed Endpoint_*_32() to ensure they are correct across all architectures. Existing + * code using these functions should replace the previous function names with the new function names. + * - The Device mode RNDIS class driver no longer stores the incoming and outgoing packets in the class driver instance; the user is + * now expected to manually define a storage location for the packet data. Packets must now be sent and received manually via a call + * to \ref RNDIS_Device_ReadPacket() and/or \ref RNDIS_Device_SendPacket(). * * Host Mode * - The Pipe stream functions now all require a \c BytesProcessed parameter instead of the previous callback parameter. @@ -47,6 +88,14 @@ * - The \ref PRNT_Host_SendString() and \ref CDC_Host_SendString() functions now expect a null terminated string instead of an explicit * length. Existing code should use the new \ref PRNT_Host_SendData() and \ref CDC_Host_SendData() functions, or remove the * length parameter from the function call. + * - The Pipe_ClearErrorFlags() function has been removed, as the pipe error flags are now automatically cleared when the + * \ref Pipe_ClearError() function is called. + * - The Pipe_*_Byte() functions have been renamed Pipe_*_8() to ensure they are correct across all architectures. Existing code using + * these functions should replace the previous function names with the new function names. + * - The Pipe_*_Word() functions have been renamed Pipe_*_16() to ensure they are correct across all architectures. Existing code using + * these functions should replace the previous function names with the new function names. + * - The Pipe_*_DWord() functions have been renamed Pipe_*_32() to ensure they are correct across all architectures. Existing code using + * these functions should replace the previous function names with the new function names. * * \section Sec_Migration101122 Migrating from 100807 to 101122 * USB Core @@ -118,7 +167,7 @@ * * Host Mode * - The \ref CDC_Host_ReceiveByte() function has changed, and now returns a signed 16-bit integer, with -1 indicating no data was - * received. This allows for more efficient coding, as a call to \ref CDC_Device_BytesReceived() is no longer needed if the exact + * received. This allows for more efficient coding, as a call to \ref CDC_Host_BytesReceived() is no longer needed if the exact * number of queued bytes received is not needed. * - The \ref CDC_Host_USBTask() now calls \ref CDC_Host_Flush() automatically, flushing any queued data to the attached device. Manual * flushing of the interface is no longer needed if the flushes should be in sync with calls to \ref CDC_Host_USBTask(). @@ -199,7 +248,7 @@ * \section Sec_Migration090924 Migrating from 090810 to 090924 * * Non-USB Library Components - * - The \c ADC_Off() function has been renamed to \ref ADC_ShutDown() to be consistent with the rest of the library. + * - The \c ADC_Off() function has been renamed to \c ADC_ShutDown() to be consistent with the rest of the library. * - The \ref SPI_Init() routine's parameters have changed, so that the clock polarity and data sampling modes can be set. See * the \ref SPI_Init() function documentation for more details * - The \ref Dataflash_Init() routine no longer initializes the SPI bus - the SPI bus should be initialized manually via a @@ -303,7 +352,7 @@ * - The HWB driver has changed to the \c Buttons driver. See the board Buttons driver documentation for the new API. * * Dual Role Mode - * - The \c USB_PowerOnFail even has been renamed to \c USB_InitFailure. + * - The \c USB_PowerOnFail event has been renamed to \c USB_InitFailure. * - The functions in \c OTG.h have been renamed to remain more consistent with the library API. See the functions in \c OTG.h for more * details. * @@ -344,7 +393,7 @@ * - All pipe read/write/discard aliases which did not have an explicitly endianness specifier (such as \c Pipe_Read_Word()) have * been removed for clarity. Existing projects should use the \c _LE suffix on such calls to use the explicit Little Endian versions. * - The \c Host_IsResetBusDone() macro has been renamed to \c Host_IsBusResetComplete(). - * - The \c Pipe_Ignore_Word() and \c Pipe_Ignore_DWord() functions have been renamed to \ref Pipe_Discard_Word() and \ref Pipe_Discard_DWord() + * - The \c Pipe_Ignore_Word() and \c Pipe_Ignore_DWord() functions have been renamed to \c Pipe_Discard_Word() and \c Pipe_Discard_DWord() * to remain consistent with the rest of the pipe API. * - It is no longer needed to manually include the headers from \c LUFA/Drivers/USB/Class, as they are now included along with the rest * of the USB headers when \c LUFA/Drivers/USB/USB.h is included. @@ -360,7 +409,7 @@ * \section Sec_Migration090401 Migrating from 090209 to 090401 * * All - * - LUFA projects must now give the raw input clock frequency (before any prescaling) as a compile time constant \c F_CLOCK, + * - LUFA projects must now give the raw input clock frequency (before any prescaling) as a compile time constant \c F_USB, * defined in the project makefile and passed to the compiler via the -D switch. * - The makefile EEPROM programming targets for FLIP and dfu-programmer no longer program in the FLASH data in addition to the * EEPROM data into the device. If both are to be programmed, both the EEPROM and FLASH programming targets must be called.