2#include "AudioToolsConfig.h"
5#include "AudioTools/CoreAudio/AudioPWM/PWMDriverESP32.h"
6#include "AudioTools/CoreAudio/AudioPWM/PWMDriverMBED.h"
7#include "AudioTools/CoreAudio/AudioPWM/PWMDriverRP2040.h"
8#include "AudioTools/CoreAudio/AudioPWM/PWMDriverRenesas.h"
9#include "AudioTools/CoreAudio/AudioPWM/PWMDriverSTM32.h"
11#include "AudioTools/CoreAudio/AudioPWM/PWMDriverAVR.h"
29 : p_driver(&ext_driver) {}
32 if (p_driver && p_driver->isTimerStarted()) {
38 if (mode!=TX_MODE) LOGE(
"mode not supported: using TX_MODE");
39 return p_driver->defaultConfig();
42 PWMConfig config() {
return audio_config; }
47 AudioOutput::cfg = info;
69 this->audio_config = config;
76 return p_driver->begin(audio_config);
79 virtual void end()
override {
if (p_driver) p_driver->end(); }
81 int availableForWrite()
override {
return p_driver ? p_driver->availableForWrite() : 0; }
83 size_t write(
const uint8_t *data,
size_t len)
override {
84 return p_driver ? p_driver->write(data, len) : 0; }
86 uint32_t underflowsPerSecond() {
return p_driver ? p_driver->underflowsPerSecond() : 0; }
87 uint32_t framesPerSecond() {
return p_driver ? p_driver->framesPerSecond() : 0; }
89 DriverPWMBase *driver() {
return p_driver; }
90 void setBuffer(BaseBuffer<uint8_t> *buffer) {
if (p_driver) p_driver->
setBuffer(buffer); }
93 PWMConfig audio_config;
94 PWMDriver default_driver;
95 DriverPWMBase *p_driver = &default_driver;
RxTxMode
The Microcontroller is the Audio Source (TX_MODE) or Audio Sink (RX_MODE). RXTX_MODE is Source and Si...
Definition AudioTypes.h:28