Commit 77adb2ba authored by Dean Camera's avatar Dean Camera
Browse files

Audio Device Class driver changed to also require the index of the Audio...

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.
parent c0f763db
......@@ -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 = ../
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment