diff --git a/Demos/Device/ClassDriver/AudioInput/AudioInput.c b/Demos/Device/ClassDriver/AudioInput/AudioInput.c index 063977f1a6..dc9655e69e 100644 --- a/Demos/Device/ClassDriver/AudioInput/AudioInput.c +++ b/Demos/Device/ClassDriver/AudioInput/AudioInput.c @@ -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)) diff --git a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c index bdb09324e2..e0c5734341 100644 --- a/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c +++ b/Demos/Device/ClassDriver/AudioOutput/AudioOutput.c @@ -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)) diff --git a/Demos/Host/ClassDriver/AudioInputHost/AudioInputHost.c b/Demos/Host/ClassDriver/AudioInputHost/AudioInputHost.c index 35a4ef90ae..fbf510224a 100644 --- a/Demos/Host/ClassDriver/AudioInputHost/AudioInputHost.c +++ b/Demos/Host/ClassDriver/AudioInputHost/AudioInputHost.c @@ -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); diff --git a/Demos/Host/ClassDriver/AudioOutputHost/AudioOutputHost.c b/Demos/Host/ClassDriver/AudioOutputHost/AudioOutputHost.c index 78da1f17ad..0262f597fa 100644 --- a/Demos/Host/ClassDriver/AudioOutputHost/AudioOutputHost.c +++ b/Demos/Host/ClassDriver/AudioOutputHost/AudioOutputHost.c @@ -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); diff --git a/LUFA.pnproj b/LUFA.pnproj index bf65a706a5..8ec52a07e1 100644 --- a/LUFA.pnproj +++ b/LUFA.pnproj @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/LUFA/Drivers/USB/Class/Device/Audio.c b/LUFA/Drivers/USB/Class/Device/Audio.c index 60c091e7fb..59792124ac 100644 --- a/LUFA/Drivers/USB/Class/Device/Audio.c +++ b/LUFA/Drivers/USB/Class/Device/Audio.c @@ -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); diff --git a/LUFA/Drivers/USB/Class/Device/Audio.h b/LUFA/Drivers/USB/Class/Device/Audio.h index 486df72d13..60880c29ec 100644 --- a/LUFA/Drivers/USB/Class/Device/Audio.h +++ b/LUFA/Drivers/USB/Class/Device/Audio.h @@ -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 diff --git a/LUFA/Drivers/USB/Class/Host/Audio.c b/LUFA/Drivers/USB/Class/Host/Audio.c index 1d590e8414..088872de45 100644 --- a/LUFA/Drivers/USB/Class/Host/Audio.c +++ b/LUFA/Drivers/USB/Class/Host/Audio.c @@ -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; diff --git a/LUFA/Drivers/USB/Class/Host/Audio.h b/LUFA/Drivers/USB/Class/Host/Audio.h index 81dcedbcd4..c4a832bf15 100644 --- a/LUFA/Drivers/USB/Class/Host/Audio.h +++ b/LUFA/Drivers/USB/Class/Host/Audio.h @@ -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 diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 1e236a44a4..2770fd2066 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -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: diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt index b2cbf0b335..47a4ce63c5 100644 --- a/LUFA/ManPages/FutureChanges.txt +++ b/LUFA/ManPages/FutureChanges.txt @@ -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 diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt index 23ad126a6b..0792d7b89f 100644 --- a/LUFA/ManPages/LUFAPoweredProjects.txt +++ b/LUFA/ManPages/LUFAPoweredProjects.txt @@ -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/ diff --git a/LUFA/ManPages/MigrationInformation.txt b/LUFA/ManPages/MigrationInformation.txt index c4517982cf..390dd88469 100644 --- a/LUFA/ManPages/MigrationInformation.txt +++ b/LUFA/ManPages/MigrationInformation.txt @@ -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. *