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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user