Audio Device Class driver changed to also require the index of the Audio Control interface within the device, for SET/GET/CUR/MIN/MAX/RES property adjustments.

pull/1469/head
Dean Camera 13 years ago
parent c0f763db04
commit 77adb2ba52

@ -44,6 +44,7 @@ USB_ClassInfo_Audio_Device_t Microphone_Audio_Interface =
{
.Config =
{
.ControlInterfaceNumber = 0,
.StreamingInterfaceNumber = 1,
.DataINEndpointNumber = AUDIO_STREAM_EPNUM,

@ -44,6 +44,7 @@ USB_ClassInfo_Audio_Device_t Speaker_Audio_Interface =
{
.Config =
{
.ControlInterfaceNumber = 0,
.StreamingInterfaceNumber = 1,
.DataOUTEndpointNumber = AUDIO_STREAM_EPNUM,

@ -17,6 +17,7 @@
* <b>Changed:</b>
* - Core:
* - Android Accessory Host property strings changed from a struct of pointer to an array to prevent unaligned access on greater than 8-bit architectures
* - Audio Device Class driver changed to also require the index of the Audio Control interface within the device, for SET/GET/CUR/MIN/MAX/RES property adjustments
* - Library Applications:
* - Raised the guard bits in the AVRISP-MKII clone project when in PDI and TPI to 32, to prevent communication errors on low quality connections to a target
*

@ -11,6 +11,10 @@
* areas relevant to making older projects compatible with the API changes of each new release.
*
* \section Sec_MigrationXXXXXX Migrating from 120219 to XXXXXX
* <b>Device Mode</b>
* - The device mode Audio Class driver now requires an additional configuration parameter, the Audio Control interface index. Existing applications should
* be adjusted to specify the additional configuration parameter.
*
* <b>Host Mode</b>
* - The Android Accessory Host class driver property strings are now a array of \c char* rather than a struct of named pointers. Existing applications
* should use C99 Designated Initializers with the property string indexes located in \ref AOA_Strings_t instead.

@ -44,7 +44,11 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
if ((USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT) == REQREC_INTERFACE)
{
if ((USB_ControlRequest.wIndex & 0xFF) != AudioInterfaceInfo->Config.StreamingInterfaceNumber)
uint8_t InterfaceIndex = (USB_ControlRequest.wIndex & 0xFF);
if ((InterfaceIndex != AudioInterfaceInfo->Config.ControlInterfaceNumber) &&
(InterfaceIndex != AudioInterfaceInfo->Config.StreamingInterfaceNumber))
return;
}
else if ((USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT) == REQREC_ENDPOINT)

@ -79,6 +79,9 @@
{
struct
{
uint8_t ControlInterfaceNumber; /**< Index of the Audio Control interface within the device this
* structure controls.
*/
uint8_t StreamingInterfaceNumber; /**< Index of the Audio Streaming interface within the device this
* structure controls.
*/

@ -6,7 +6,7 @@
# www.lufa-lib.org
#
# Maintenance scripts not required by general LUFA users, used for development.
# Maintenance scripts not required by general LUFA users, used for project development purposes.
LUFA_ROOT = ../

Loading…
Cancel
Save