arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
Communication
USB
USBAudioHostTinyUSB.h
Go to the documentation of this file.
1
#pragma once
2
#include "
AudioTools/Communication/USB/USBAudioHostBackendTinyUSB.h
"
3
#include "
AudioTools/Communication/USB/USBAudioHostBase.h
"
4
#include "
AudioTools/Concurrency/LockFree/RingBufferSPSC.h
"
5
6
namespace
audio_tools
{
7
30
class
USBAudioHostTinyUSB
:
public
USBAudioHostBase
{
31
public
:
32
USBAudioHostTinyUSB
() =
default
;
33
USBAudioHostTinyUSB
(
USBAudioConfig
cfg) :
USBAudioHostBase
(cfg) {}
35
USBAudioHostTinyUSB
(Adafruit_USBH_Host& host) :
backend_impl_
(host) {}
36
39
void
setHost
(Adafruit_USBH_Host& host) {
backend_impl_
.
setHost
(host); }
40
41
BaseBuffer<uint8_t>
&
bufferTx
()
override
{
return
buffer_tx_
; }
42
43
BaseBuffer<uint8_t>
&
bufferRx
()
override
{
return
buffer_rx_
; }
44
47
void
serviceUSB
()
override
{
48
if
(!
usb_task_active_
)
processUSB
();
49
}
50
51
protected
:
52
USBAudioHostBackendTinyUSB
backend_impl_
;
53
RingBufferSPSC<uint8_t>
buffer_tx_
;
54
RingBufferSPSC<uint8_t>
buffer_rx_
;
55
56
USBAudioHostBackend
&
backend
()
override
{
return
backend_impl_
; }
57
58
void
resizeBuffers
()
override
{
59
size_t
size = (size_t)
audioPacketSize
() *
config_
.
fifo_packets
;
60
if
(
isEpOutEnabled
())
buffer_tx_
.
resize
(size);
61
if
(
isEpInEnabled
())
buffer_rx_
.
resize
(size);
62
}
63
};
64
65
}
// namespace audio_tools
RingBufferSPSC.h
USBAudioHostBackendTinyUSB.h
USBAudioHostBase.h
audio_tools::BaseBuffer
Shared functionality of all buffers.
Definition
Buffers.h:23
audio_tools::RingBufferSPSC
Lock-free Single-Producer Single-Consumer ring buffer.
Definition
RingBufferSPSC.h:52
audio_tools::RingBufferSPSC::resize
bool resize(size_t capacity) override
Resizes the buffer if supported: returns false if not supported.
Definition
RingBufferSPSC.h:144
audio_tools::USBAudioHostBackend
Abstract seam for every raw USB host stack call the UAC host class logic (USBAudioHostBase) needs....
Definition
USBAudioHostBackend.h:73
audio_tools::USBAudioHostBackendTinyUSB
USBAudioHostBackend for the TinyUSB host stack provided by the Adafruit TinyUSB Library (RP2040/RP235...
Definition
USBAudioHostBackendTinyUSB.h:51
audio_tools::USBAudioHostBackendTinyUSB::setHost
void setHost(Adafruit_USBH_Host &host)
Defines the Adafruit_USBH_Host (call before begin())
Definition
USBAudioHostBackendTinyUSB.h:60
audio_tools::USBAudioHostBase
USB Audio Class (UAC1 and UAC2) host: reads PCM audio from an attached USB microphone and/or writes P...
Definition
USBAudioHostBase.h:48
audio_tools::USBAudioHostBase::processUSB
void processUSB()
Definition
USBAudioHostBase.h:389
audio_tools::USBAudioHostBase::audioPacketSize
uint16_t audioPacketSize() const
Definition
USBAudioHostBase.h:226
audio_tools::USBAudioHostTinyUSB
USB Audio host for the Adafruit TinyUSB host stack: reads audio from an attached USB microphone and/o...
Definition
USBAudioHostTinyUSB.h:30
audio_tools::USBAudioHostTinyUSB::buffer_tx_
RingBufferSPSC< uint8_t > buffer_tx_
Definition
USBAudioHostTinyUSB.h:53
audio_tools::USBAudioHostTinyUSB::bufferTx
BaseBuffer< uint8_t > & bufferTx() override
Returns the TX audio buffer. Must be overridden by subclasses.
Definition
USBAudioHostTinyUSB.h:41
audio_tools::USBAudioHostTinyUSB::serviceUSB
void serviceUSB() override
Process pending USB events. Skipped when a dedicated FreeRTOS task already runs the USB stack (tuh_ta...
Definition
USBAudioHostTinyUSB.h:47
audio_tools::USBAudioHostTinyUSB::backend
USBAudioHostBackend & backend() override
Returns the backend used for all USB host stack calls.
Definition
USBAudioHostTinyUSB.h:56
audio_tools::USBAudioHostTinyUSB::buffer_rx_
RingBufferSPSC< uint8_t > buffer_rx_
Definition
USBAudioHostTinyUSB.h:54
audio_tools::USBAudioHostTinyUSB::USBAudioHostTinyUSB
USBAudioHostTinyUSB(USBAudioConfig cfg)
Definition
USBAudioHostTinyUSB.h:33
audio_tools::USBAudioHostTinyUSB::resizeBuffers
void resizeBuffers() override
Resize the platform audio buffers.
Definition
USBAudioHostTinyUSB.h:58
audio_tools::USBAudioHostTinyUSB::backend_impl_
USBAudioHostBackendTinyUSB backend_impl_
Definition
USBAudioHostTinyUSB.h:52
audio_tools::USBAudioHostTinyUSB::USBAudioHostTinyUSB
USBAudioHostTinyUSB(Adafruit_USBH_Host &host)
Use the Adafruit_USBH_Host which was set up by the sketch.
Definition
USBAudioHostTinyUSB.h:35
audio_tools::USBAudioHostTinyUSB::USBAudioHostTinyUSB
USBAudioHostTinyUSB()=default
audio_tools::USBAudioHostTinyUSB::bufferRx
BaseBuffer< uint8_t > & bufferRx() override
Returns the RX audio buffer. Must be overridden by subclasses.
Definition
USBAudioHostTinyUSB.h:43
audio_tools::USBAudioHostTinyUSB::setHost
void setHost(Adafruit_USBH_Host &host)
Definition
USBAudioHostTinyUSB.h:39
audio_tools::USBAudioStreamBase::isEpInEnabled
bool isEpInEnabled() const
Returns true if the IN endpoint is enabled.
Definition
USBAudioStreamBase.h:42
audio_tools::USBAudioStreamBase::config_
USBAudioConfig config_
Definition
USBAudioStreamBase.h:235
audio_tools::USBAudioStreamBase::usb_task_active_
bool usb_task_active_
Definition
USBAudioStreamBase.h:223
audio_tools::USBAudioStreamBase::isEpOutEnabled
bool isEpOutEnabled() const
Returns true if the OUT endpoint is enabled.
Definition
USBAudioStreamBase.h:45
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
LMSEchoCancellationStream.h:6
audio_tools::USBAudioConfig
Configuration for USB Audio (inherits sample_rate / channels / bits_per_sample from AudioInfo).
Definition
USBAudioConfig.h:117
audio_tools::USBAudioConfig::fifo_packets
uint8_t fifo_packets
Definition
USBAudioConfig.h:148
Generated by
1.9.8