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 = .Config =
{ {
.ControlInterfaceNumber = 0,
.StreamingInterfaceNumber = 1, .StreamingInterfaceNumber = 1,
.DataINEndpointNumber = AUDIO_STREAM_EPNUM, .DataINEndpointNumber = AUDIO_STREAM_EPNUM,

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

@ -17,6 +17,7 @@
* <b>Changed:</b> * <b>Changed:</b>
* - Core: * - 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 * - 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: * - 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 * - 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. * areas relevant to making older projects compatible with the API changes of each new release.
* *
* \section Sec_MigrationXXXXXX Migrating from 120219 to XXXXXX * \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> * <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 * - 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. * 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.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; return;
} }
else if ((USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT) == REQREC_ENDPOINT) else if ((USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT) == REQREC_ENDPOINT)

@ -79,6 +79,9 @@
{ {
struct 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 uint8_t StreamingInterfaceNumber; /**< Index of the Audio Streaming interface within the device this
* structure controls. * structure controls.
*/ */

@ -6,7 +6,7 @@
# www.lufa-lib.org # 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 = ../ LUFA_ROOT = ../

Loading…
Cancel
Save