forked from mfulz_github/qmk_firmware
Rename new Audio class driver functions, callbacks and events to ensure that they contain the USB mode (Device or Host) in the function names.
This commit is contained in:
parent
57eedebd19
commit
d8fe01f19a
|
@ -188,12 +188,12 @@ void EVENT_USB_Device_ControlRequest(void)
|
|||
*
|
||||
* \return Boolean true if the property get/set was successful, false otherwise
|
||||
*/
|
||||
bool CALLBACK_Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointAddress,
|
||||
const uint8_t EndpointControl,
|
||||
uint16_t* const DataLength,
|
||||
uint8_t* Data)
|
||||
bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointAddress,
|
||||
const uint8_t EndpointControl,
|
||||
uint16_t* const DataLength,
|
||||
uint8_t* Data)
|
||||
{
|
||||
/* Check the requested endpoint to see if a supported endpoint is being manipulated */
|
||||
if (EndpointAddress == (ENDPOINT_DESCRIPTOR_DIR_IN | Microphone_Audio_Interface.Config.DataINEndpointNumber))
|
||||
|
|
|
@ -225,12 +225,12 @@ void EVENT_USB_Device_ControlRequest(void)
|
|||
*
|
||||
* \return Boolean true if the property get/set was successful, false otherwise
|
||||
*/
|
||||
bool CALLBACK_Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointAddress,
|
||||
const uint8_t EndpointControl,
|
||||
uint16_t* const DataLength,
|
||||
uint8_t* Data)
|
||||
bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointAddress,
|
||||
const uint8_t EndpointControl,
|
||||
uint16_t* const DataLength,
|
||||
uint8_t* Data)
|
||||
{
|
||||
/* Check the requested endpoint to see if a supported endpoint is being manipulated */
|
||||
if (EndpointAddress == (ENDPOINT_DESCRIPTOR_DIR_OUT | Speaker_Audio_Interface.Config.DataOUTEndpointNumber))
|
||||
|
|
|
@ -106,9 +106,9 @@ int main(void)
|
|||
}
|
||||
|
||||
USB_Audio_SampleFreq_t SampleRate = AUDIO_SAMPLE_FREQ(48000);
|
||||
if (Audio_GetSetEndpointProperty(&Microphone_Audio_Interface, Microphone_Audio_Interface.Config.DataINPipeNumber,
|
||||
AUDIO_REQ_SetCurrent, AUDIO_EPCONTROL_SamplingFreq,
|
||||
sizeof(SampleRate), &SampleRate) != HOST_SENDCONTROL_Successful)
|
||||
if (Audio_Host_GetSetEndpointProperty(&Microphone_Audio_Interface, Microphone_Audio_Interface.Config.DataINPipeNumber,
|
||||
AUDIO_REQ_SetCurrent, AUDIO_EPCONTROL_SamplingFreq,
|
||||
sizeof(SampleRate), &SampleRate) != HOST_SENDCONTROL_Successful)
|
||||
{
|
||||
puts_P(PSTR("Error Setting Audio Sampling Frequency.\r\n"));
|
||||
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
|
||||
|
|
|
@ -106,9 +106,9 @@ int main(void)
|
|||
}
|
||||
|
||||
USB_Audio_SampleFreq_t SampleRate = AUDIO_SAMPLE_FREQ(48000);
|
||||
if (Audio_GetSetEndpointProperty(&Speaker_Audio_Interface, Speaker_Audio_Interface.Config.DataOUTPipeNumber,
|
||||
AUDIO_REQ_SetCurrent, AUDIO_EPCONTROL_SamplingFreq,
|
||||
sizeof(SampleRate), &SampleRate) != HOST_SENDCONTROL_Successful)
|
||||
if (Audio_Host_GetSetEndpointProperty(&Speaker_Audio_Interface, Speaker_Audio_Interface.Config.DataOUTPipeNumber,
|
||||
AUDIO_REQ_SetCurrent, AUDIO_EPCONTROL_SamplingFreq,
|
||||
sizeof(SampleRate), &SampleRate) != HOST_SENDCONTROL_Successful)
|
||||
{
|
||||
puts_P(PSTR("Error Setting Audio Sampling Frequency.\r\n"));
|
||||
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -70,7 +70,7 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
|
|||
Endpoint_ClearStatusStage();
|
||||
|
||||
AudioInterfaceInfo->State.InterfaceEnabled = ((USB_ControlRequest.wValue & 0xFF) != 0);
|
||||
EVENT_Audio_StreamStartStopChange(AudioInterfaceInfo);
|
||||
EVENT_Audio_Device_StreamStartStop(AudioInterfaceInfo);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -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 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;
|
||||
uint8_t Value[ValueLength];
|
||||
|
@ -102,7 +103,8 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
|
|||
Endpoint_Read_Control_Stream_LE(Value, ValueLength);
|
||||
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
|
|||
uint16_t ValueLength = USB_ControlRequest.wLength;
|
||||
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_Write_Control_Stream_LE(Value, ValueLength);
|
||||
|
|
|
@ -149,12 +149,12 @@
|
|||
*
|
||||
* \return Boolean true if the property get/set was successful, false otherwise
|
||||
*/
|
||||
bool CALLBACK_Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointAddress,
|
||||
const uint8_t EndpointControl,
|
||||
uint16_t* const DataLength,
|
||||
uint8_t* Data);
|
||||
bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointAddress,
|
||||
const uint8_t EndpointControl,
|
||||
uint16_t* const DataLength,
|
||||
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
|
||||
* 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 @@
|
|||
*
|
||||
* \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: */
|
||||
/** General management task for a given Audio class interface, required for the correct operation of the interface. This should
|
||||
|
@ -358,8 +358,8 @@
|
|||
#if defined(__INCLUDE_FROM_AUDIO_DEVICE_C)
|
||||
void Audio_Device_Event_Stub(void) ATTR_CONST;
|
||||
|
||||
void EVENT_Audio_StreamStartStopChange(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
|
||||
ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(Audio_Device_Event_Stub);
|
||||
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);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -208,12 +208,12 @@ uint8_t Audio_Host_StartStopStreaming(USB_ClassInfo_Audio_Host_t* const AudioInt
|
|||
EnableStreaming ? AudioInterfaceInfo->State.EnabledStreamingAltIndex : 0);
|
||||
}
|
||||
|
||||
uint8_t Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,
|
||||
const uint8_t DataPipeIndex,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointControl,
|
||||
const uint16_t DataLength,
|
||||
void* const Data)
|
||||
uint8_t Audio_Host_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,
|
||||
const uint8_t DataPipeIndex,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointControl,
|
||||
const uint16_t DataLength,
|
||||
void* const Data)
|
||||
{
|
||||
if (!(AudioInterfaceInfo->State.IsActive))
|
||||
return HOST_SENDCONTROL_DeviceDisconnected;
|
||||
|
|
|
@ -161,12 +161,12 @@
|
|||
*
|
||||
* \return A value from the \ref USB_Host_SendControlErrorCodes_t enum.
|
||||
*/
|
||||
uint8_t Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,
|
||||
const uint8_t DataPipeIndex,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointControl,
|
||||
const uint16_t DataLength,
|
||||
void* const Data);
|
||||
uint8_t Audio_Host_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInterfaceInfo,
|
||||
const uint8_t DataPipeIndex,
|
||||
const uint8_t EndpointProperty,
|
||||
const uint8_t EndpointControl,
|
||||
const uint16_t DataLength,
|
||||
void* const Data);
|
||||
|
||||
/* Inline Functions: */
|
||||
/** General management task for a given Audio host class interface, required for the correct operation of
|
||||
|
|
|
@ -13,9 +13,9 @@
|
|||
* 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 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
|
||||
* - 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 new Host mode Audio Class driver
|
||||
* - Library Applications:
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
* -# 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
|
||||
* -# 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
|
||||
* -# Add detailed overviews of how each demo works
|
||||
* -# Add board overviews
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
* - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
|
||||
* - CD Driver Emulator Dongle for ISO Files: http://cdemu.blogspot.com/
|
||||
* - 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/
|
||||
* - 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/
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
* \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_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,
|
||||
* this function may be hard-coded to always return false for previous behaviour to be retained.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue