forked from mfulz_github/qmk_firmware
The Audio_Device_IsSampleReceived() and Audio_Device_IsReadyForNextSample() functions are now inline, to reduce overhead.
This commit is contained in:
parent
9e34144c9b
commit
9cad677ebb
|
@ -197,7 +197,7 @@ int main(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
puts_P(PSTR("\r\nContents of first block:"));
|
puts_P(PSTR("\r\nContents of first block:\r\n"));
|
||||||
|
|
||||||
for (uint16_t Chunk = 0; Chunk < (DiskCapacity.BlockSize >> 4); Chunk++)
|
for (uint16_t Chunk = 0; Chunk < (DiskCapacity.BlockSize >> 4); Chunk++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,6 +28,10 @@
|
||||||
this software.
|
this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO: Add local to remote device connections
|
||||||
|
*/
|
||||||
|
|
||||||
#define INCLUDE_FROM_BLUETOOTHHCICOMMANDS_C
|
#define INCLUDE_FROM_BLUETOOTHHCICOMMANDS_C
|
||||||
#include "BluetoothHCICommands.h"
|
#include "BluetoothHCICommands.h"
|
||||||
|
|
||||||
|
|
|
@ -86,22 +86,4 @@ bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfac
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
|
|
||||||
{
|
|
||||||
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(AudioInterfaceInfo->State.InterfaceEnabled))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataOUTEndpointNumber);
|
|
||||||
return Endpoint_IsOUTReceived();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
|
|
||||||
{
|
|
||||||
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(AudioInterfaceInfo->State.InterfaceEnabled))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataINEndpointNumber);
|
|
||||||
return Endpoint_IsINReady();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -129,6 +129,18 @@
|
||||||
*/
|
*/
|
||||||
void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||||
|
|
||||||
|
/* Inline Functions: */
|
||||||
|
/** General management task for a given Audio class interface, required for the correct operation of the interface. This should
|
||||||
|
* be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().
|
||||||
|
*
|
||||||
|
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
||||||
|
*/
|
||||||
|
static inline void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
|
||||||
|
static inline void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
|
||||||
|
{
|
||||||
|
(void)AudioInterfaceInfo;
|
||||||
|
}
|
||||||
|
|
||||||
/** Determines if the given audio interface is ready for a sample to be read from it, and selects the streaming
|
/** Determines if the given audio interface is ready for a sample to be read from it, and selects the streaming
|
||||||
* OUT endpoint ready for reading.
|
* OUT endpoint ready for reading.
|
||||||
*
|
*
|
||||||
|
@ -139,7 +151,14 @@
|
||||||
*
|
*
|
||||||
* \return Boolean true if the given Audio interface has a sample to be read, false otherwise
|
* \return Boolean true if the given Audio interface has a sample to be read, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
|
static inline bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
|
||||||
|
{
|
||||||
|
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(AudioInterfaceInfo->State.InterfaceEnabled))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataOUTEndpointNumber);
|
||||||
|
return Endpoint_IsOUTReceived();
|
||||||
|
}
|
||||||
|
|
||||||
/** Determines if the given audio interface is ready to accept the next sample to be written to it, and selects
|
/** Determines if the given audio interface is ready to accept the next sample to be written to it, and selects
|
||||||
* the streaming IN endpoint ready for writing.
|
* the streaming IN endpoint ready for writing.
|
||||||
|
@ -151,18 +170,13 @@
|
||||||
*
|
*
|
||||||
* \return Boolean true if the given Audio interface is ready to accept the next sample, false otherwise
|
* \return Boolean true if the given Audio interface is ready to accept the next sample, false otherwise
|
||||||
*/
|
*/
|
||||||
bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
|
static inline bool Audio_Device_IsReadyForNextSample(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
|
|
||||||
* be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().
|
|
||||||
*
|
|
||||||
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
|
||||||
*/
|
|
||||||
static inline void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
|
|
||||||
static inline void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
|
|
||||||
{
|
{
|
||||||
(void)AudioInterfaceInfo;
|
if ((USB_DeviceState != DEVICE_STATE_Configured) || !(AudioInterfaceInfo->State.InterfaceEnabled))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataINEndpointNumber);
|
||||||
|
return Endpoint_IsINReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Reads the next 8-bit audio sample from the current audio interface.
|
/** Reads the next 8-bit audio sample from the current audio interface.
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
* - Removed two-step endpoint/pipe bank clear and switch sequence for smaller, faster endpoint/pipe code
|
* - Removed two-step endpoint/pipe bank clear and switch sequence for smaller, faster endpoint/pipe code
|
||||||
* - The USB_Init() function no longer calls sei() - the user is now responsible for enabling interrupts when they are ready
|
* - The USB_Init() function no longer calls sei() - the user is now responsible for enabling interrupts when they are ready
|
||||||
* for them to be enabled (thanks to Andrei Krainev)
|
* for them to be enabled (thanks to Andrei Krainev)
|
||||||
|
* - The Audio_Device_IsSampleReceived() and Audio_Device_IsReadyForNextSample() functions are now inline, to reduce overhead
|
||||||
*
|
*
|
||||||
* <b>Fixed:</b>
|
* <b>Fixed:</b>
|
||||||
* - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin
|
* - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin
|
||||||
|
|
Loading…
Reference in New Issue