Commit d8fe01f1 authored by Dean Camera's avatar Dean Camera
Browse files

Rename new Audio class driver functions, callbacks and events to ensure that...

Rename new Audio class driver functions, callbacks and events to ensure that they contain the USB mode (Device or Host) in the function names.
parent 57eedebd
...@@ -188,12 +188,12 @@ void EVENT_USB_Device_ControlRequest(void) ...@@ -188,12 +188,12 @@ void EVENT_USB_Device_ControlRequest(void)
* *
* \return Boolean true if the property get/set was successful, false otherwise * \return Boolean true if the property get/set was successful, false otherwise
*/ */
bool CALLBACK_Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo, bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
const uint8_t EndpointProperty, const uint8_t EndpointProperty,
const uint8_t EndpointAddress, const uint8_t EndpointAddress,
const uint8_t EndpointControl, const uint8_t EndpointControl,
uint16_t* const DataLength, uint16_t* const DataLength,
uint8_t* Data) uint8_t* Data)
{ {
/* Check the requested endpoint to see if a supported endpoint is being manipulated */ /* Check the requested endpoint to see if a supported endpoint is being manipulated */
if (EndpointAddress == (ENDPOINT_DESCRIPTOR_DIR_IN | Microphone_Audio_Interface.Config.DataINEndpointNumber)) if (EndpointAddress == (ENDPOINT_DESCRIPTOR_DIR_IN | Microphone_Audio_Interface.Config.DataINEndpointNumber))
......
...@@ -225,12 +225,12 @@ void EVENT_USB_Device_ControlRequest(void) ...@@ -225,12 +225,12 @@ void EVENT_USB_Device_ControlRequest(void)
* *
* \return Boolean true if the property get/set was successful, false otherwise * \return Boolean true if the property get/set was successful, false otherwise
*/ */
bool CALLBACK_Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo, bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
const uint8_t EndpointProperty, const uint8_t EndpointProperty,
const uint8_t EndpointAddress, const uint8_t EndpointAddress,
const uint8_t EndpointControl, const uint8_t EndpointControl,
uint16_t* const DataLength, uint16_t* const DataLength,
uint8_t* Data) uint8_t* Data)
{ {
/* Check the requested endpoint to see if a supported endpoint is being manipulated */ /* Check the requested endpoint to see if a supported endpoint is being manipulated */
if (EndpointAddress == (ENDPOINT_DESCRIPTOR_DIR_OUT | Speaker_Audio_Interface.Config.DataOUTEndpointNumber)) if (EndpointAddress == (ENDPOINT_DESCRIPTOR_DIR_OUT | Speaker_Audio_Interface.Config.DataOUTEndpointNumber))
......
...@@ -106,9 +106,9 @@ int main(void) ...@@ -106,9 +106,9 @@ int main(void)
} }
USB_Audio_SampleFreq_t SampleRate = AUDIO_SAMPLE_FREQ(48000); USB_Audio_SampleFreq_t SampleRate = AUDIO_SAMPLE_FREQ(48000);
if (Audio_GetSetEndpointProperty(&Microphone_Audio_Interface, Microphone_Audio_Interface.Config.DataINPipeNumber, if (Audio_Host_GetSetEndpointProperty(&Microphone_Audio_Interface, Microphone_Audio_Interface.Config.DataINPipeNumber,
AUDIO_REQ_SetCurrent, AUDIO_EPCONTROL_SamplingFreq, AUDIO_REQ_SetCurrent, AUDIO_EPCONTROL_SamplingFreq,
sizeof(SampleRate), &SampleRate) != HOST_SENDCONTROL_Successful) sizeof(SampleRate), &SampleRate) != HOST_SENDCONTROL_Successful)
{ {
puts_P(PSTR("Error Setting Audio Sampling Frequency.\r\n")); puts_P(PSTR("Error Setting Audio Sampling Frequency.\r\n"));
LEDs_SetAllLEDs(LEDMASK_USB_ERROR); LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
......
...@@ -106,9 +106,9 @@ int main(void) ...@@ -106,9 +106,9 @@ int main(void)
} }
USB_Audio_SampleFreq_t SampleRate = AUDIO_SAMPLE_FREQ(48000); USB_Audio_SampleFreq_t SampleRate = AUDIO_SAMPLE_FREQ(48000);
if (Audio_GetSetEndpointProperty(&Speaker_Audio_Interface, Speaker_Audio_Interface.Config.DataOUTPipeNumber, if (Audio_Host_GetSetEndpointProperty(&Speaker_Audio_Interface, Speaker_Audio_Interface.Config.DataOUTPipeNumber,
AUDIO_REQ_SetCurrent, AUDIO_EPCONTROL_SamplingFreq, AUDIO_REQ_SetCurrent, AUDIO_EPCONTROL_SamplingFreq,
sizeof(SampleRate), &SampleRate) != HOST_SENDCONTROL_Successful) sizeof(SampleRate), &SampleRate) != HOST_SENDCONTROL_Successful)
{ {
puts_P(PSTR("Error Setting Audio Sampling Frequency.\r\n")); puts_P(PSTR("Error Setting Audio Sampling Frequency.\r\n"));
LEDs_SetAllLEDs(LEDMASK_USB_ERROR); LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
......
This diff is collapsed.
...@@ -70,7 +70,7 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi ...@@ -70,7 +70,7 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
Endpoint_ClearStatusStage(); Endpoint_ClearStatusStage();
AudioInterfaceInfo->State.InterfaceEnabled = ((USB_ControlRequest.wValue & 0xFF) != 0); AudioInterfaceInfo->State.InterfaceEnabled = ((USB_ControlRequest.wValue & 0xFF) != 0);
EVENT_Audio_StreamStartStopChange(AudioInterfaceInfo); EVENT_Audio_Device_StreamStartStop(AudioInterfaceInfo);
} }
break; break;
...@@ -93,7 +93,8 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi ...@@ -93,7 +93,8 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
uint8_t EndpointAddress = (uint8_t)USB_ControlRequest.wIndex; uint8_t EndpointAddress = (uint8_t)USB_ControlRequest.wIndex;
uint8_t EndpointControl = (USB_ControlRequest.wValue >> 8); uint8_t EndpointControl = (USB_ControlRequest.wValue >> 8);
if (CALLBACK_Audio_GetSetEndpointProperty(AudioInterfaceInfo, EndpointProperty, EndpointAddress, EndpointControl, NULL, NULL)) if (CALLBACK_Audio_Device_GetSetEndpointProperty(AudioInterfaceInfo, EndpointProperty, EndpointAddress,
EndpointControl, NULL, NULL))
{ {
uint16_t ValueLength = USB_ControlRequest.wLength; uint16_t ValueLength = USB_ControlRequest.wLength;
uint8_t Value[ValueLength]; uint8_t Value[ValueLength];
...@@ -102,7 +103,8 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi ...@@ -102,7 +103,8 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
Endpoint_Read_Control_Stream_LE(Value, ValueLength); Endpoint_Read_Control_Stream_LE(Value, ValueLength);
Endpoint_ClearIN(); Endpoint_ClearIN();
CALLBACK_Audio_GetSetEndpointProperty(AudioInterfaceInfo, EndpointProperty, EndpointAddress, EndpointControl, &ValueLength, Value); CALLBACK_Audio_Device_GetSetEndpointProperty(AudioInterfaceInfo, EndpointProperty, EndpointAddress,
EndpointControl, &ValueLength, Value);
} }
} }
...@@ -119,7 +121,8 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi ...@@ -119,7 +121,8 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
uint16_t ValueLength = USB_ControlRequest.wLength; uint16_t ValueLength = USB_ControlRequest.wLength;
uint8_t Value[ValueLength]; uint8_t Value[ValueLength];
if (CALLBACK_Audio_GetSetEndpointProperty(AudioInterfaceInfo, EndpointProperty, EndpointAddress, EndpointControl, &ValueLength, Value)) if (CALLBACK_Audio_Device_GetSetEndpointProperty(AudioInterfaceInfo, EndpointProperty, EndpointAddress,
EndpointControl, &ValueLength, Value))
{ {
Endpoint_ClearSETUP(); Endpoint_ClearSETUP();
Endpoint_Write_Control_Stream_LE(Value, ValueLength); Endpoint_Write_Control_Stream_LE(Value, ValueLength);
......
...@@ -149,12 +149,12 @@ ...@@ -149,12 +149,12 @@
* *
* \return Boolean true if the property get/set was successful, false otherwise * \return Boolean true if the property get/set was successful, false otherwise
*/ */
bool CALLBACK_Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo, bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
const uint8_t EndpointProperty, const uint8_t EndpointProperty,
const uint8_t EndpointAddress, const uint8_t EndpointAddress,
const uint8_t EndpointControl, const uint8_t EndpointControl,
uint16_t* const DataLength, uint16_t* const DataLength,
uint8_t* Data); uint8_t* Data);
/** Audio class driver event for an Audio Stream start/stop change. This event fires each time the device receives a stream enable or /** Audio class driver event for an Audio Stream start/stop change. This event fires each time the device receives a stream enable or
* disable control request from the host, to start and stop the audio stream. The current state of the stream can be determined by the * disable control request from the host, to start and stop the audio stream. The current state of the stream can be determined by the
...@@ -162,7 +162,7 @@ ...@@ -162,7 +162,7 @@
* *
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state. * \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
*/ */
void EVENT_Audio_StreamStartStopChange(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo); void EVENT_Audio_Device_StreamStartStop(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
/* Inline Functions: */ /* Inline Functions: */
/** General management task for a given Audio class interface, required for the correct operation of the interface. This should /** General management task for a given Audio class interface, required for the correct operation of the interface. This should
...@@ -358,8 +358,8 @@ ...@@ -358,8 +358,8 @@
#if defined(__INCLUDE_FROM_AUDIO_DEVICE_C) #if defined(__INCLUDE_FROM_AUDIO_DEVICE_C)
void Audio_Device_Event_Stub(void) ATTR_CONST; void Audio_Device_Event_Stub(void) ATTR_CONST;
void EVENT_Audio_StreamStartStopChange(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) void EVENT_Audio_Device_StreamStartStop(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(Audio_Device_Event_Stub); ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(Audio_Device_Event_Stub);
#endif #endif
#endif #endif
......
...@@ -208,12 +208,12 @@ uint8_t Audio_Host_StartStopStreaming(USB_ClassInfo_Audio_Host_t* const AudioInt ...@@ -208,12 +208,12 @@ uint8_t Audio_Host_StartStopStreaming(USB_ClassInfo_Audio_Host_t* const AudioInt
EnableStreaming ? AudioInterfaceInfo->State.EnabledStreamingAltIndex : 0); EnableStreaming ? AudioInterfaceInfo->State.EnabledStreamingAltIndex : 0);
} }
uint8_t Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo, uint8_t Audio_Host_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,
const uint8_t DataPipeIndex, const uint8_t DataPipeIndex,
const uint8_t EndpointProperty, const uint8_t EndpointProperty,
const uint8_t EndpointControl, const uint8_t EndpointControl,
const uint16_t DataLength, const uint16_t DataLength,
void* const Data) void* const Data)
{ {
if (!(AudioInterfaceInfo->State.IsActive)) if (!(AudioInterfaceInfo->State.IsActive))
return HOST_SENDCONTROL_DeviceDisconnected; return HOST_SENDCONTROL_DeviceDisconnected;
......
...@@ -161,12 +161,12 @@ ...@@ -161,12 +161,12 @@
* *
* \return A value from the \ref USB_Host_SendControlErrorCodes_t enum. * \return A value from the \ref USB_Host_SendControlErrorCodes_t enum.
*/ */
uint8_t Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo, uint8_t Audio_Host_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,
const uint8_t DataPipeIndex, const uint8_t DataPipeIndex,
const uint8_t EndpointProperty, const uint8_t EndpointProperty,
const uint8_t EndpointControl, const uint8_t EndpointControl,
const uint16_t DataLength, const uint16_t DataLength,
void* const Data); void* const Data);
/* Inline Functions: */ /* Inline Functions: */
/** General management task for a given Audio host class interface, required for the correct operation of /** General management task for a given Audio host class interface, required for the correct operation of
......
...@@ -13,9 +13,9 @@ ...@@ -13,9 +13,9 @@
* tokens as an alternative to tokens defined in the project makefile * tokens as an alternative to tokens defined in the project makefile
* - Added new USB_Host_SetInterfaceAltSetting() convenience function for the selection of an interface's alternative setting * - Added new USB_Host_SetInterfaceAltSetting() convenience function for the selection of an interface's alternative setting
* - Added Audio class control request definitions * - Added Audio class control request definitions
* - Added new CALLBACK_Audio_GetSetEndpointProperty() callback to the Audio Device Class driver to allow for endpoint control manipulations * - Added new CALLBACK_Audio_Device_GetSetEndpointProperty() callback to the Audio Device Class driver to allow for endpoint control manipulations
* such as data sample rates * such as data sample rates
* - Added new EVENT_Audio_StreamStartStopChange() event to the Audio Device Class driver to detect stream start/stop events * - Added new EVENT_Audio_Device_StreamStartStop() event to the Audio Device Class driver to detect stream start/stop events
* - Added board driver support for the Busware TUL board * - Added board driver support for the Busware TUL board
* - Added new Host mode Audio Class driver * - Added new Host mode Audio Class driver
* - Library Applications: * - Library Applications:
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
* -# Add a LUFA_YIELD macro for integration into a third-party RTOS * -# Add a LUFA_YIELD macro for integration into a third-party RTOS
* -# Abstract out Mass Storage byte send/receive to prevent low level API use in projects * -# Abstract out Mass Storage byte send/receive to prevent low level API use in projects
* -# Consider switch from endpoint numbers to full endpoint addresses to ease future architecture expansion * -# Consider switch from endpoint numbers to full endpoint addresses to ease future architecture expansion
* -# Add architecture sanity guards to arch-specific files so that entire tree can be built from an IDE
* - Documentation/Support * - Documentation/Support
* -# Add detailed overviews of how each demo works * -# Add detailed overviews of how each demo works
* -# Add board overviews * -# Add board overviews
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
* - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig * - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
* - CD Driver Emulator Dongle for ISO Files: http://cdemu.blogspot.com/ * - CD Driver Emulator Dongle for ISO Files: http://cdemu.blogspot.com/
* - ClockTamer, a configurable clock generator: http://code.google.com/p/clock-tamer/ * - ClockTamer, a configurable clock generator: http://code.google.com/p/clock-tamer/
* - CULFW, a 868MHz RF packet encoder/decoder: http://www.koeniglich.de/culfw/culfw.html
* - DIY PS3 controller emulator: https://code.google.com/p/diyps3controller/ * - DIY PS3 controller emulator: https://code.google.com/p/diyps3controller/
* - EMuSer, a USB-RS422 adapter for E-Mu samplers: http://www.emxp.net/EMuSer.htm * - EMuSer, a USB-RS422 adapter for E-Mu samplers: http://www.emxp.net/EMuSer.htm
* - Estick JTAG, an ARM JTAG debugger: http://code.google.com/p/estick-jtag/ * - Estick JTAG, an ARM JTAG debugger: http://code.google.com/p/estick-jtag/
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
* \c TotalDiscreteSampleRates. Existing applications will need to add an array of \ref USB_Audio_SampleFreq_t elements * \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 * 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. * 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_GetSetEndpointProperty(). * - 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, * 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. * this function may be hard-coded to always return false for previous behaviour to be retained.
* *
......
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