arduino-audio-tools
Loading...
Searching...
No Matches
AnalogAudioStream.h
Go to the documentation of this file.
1#pragma once
2#include "AudioToolsConfig.h"
3
4// Support AnalogAudioStream
5#if defined(USE_ANALOG)
6# include "AnalogDriverBase.h"
7# include "AnalogDriverESP32.h"
8# include "AnalogDriverESP32V1.h"
9# include "AnalogDriverMBED.h"
10# include "AnalogDriverZephyr.h"
11# include "AnalogDriverArduino.h"
12
13namespace audio_tools {
14
24 public:
29
32 end();
33 }
34
37 TRACED();
38 AnalogConfig config(mode);
39 return config;
40 }
41
56
58 bool begin() override {
59 return begin(adc_config);
60 }
61
63 bool begin(AnalogConfig cfg) {
64 TRACEI();
65 return p_driver->begin(cfg);
66 }
67
69 void end() override {
70 TRACEI();
71 p_driver->end();
72 }
73
75 return adc_config;
76 }
77
79 size_t write(const uint8_t *data, size_t len) override {
80 TRACED();
81 return p_driver->write(data, len);
82 }
83
84 size_t readBytes(uint8_t *data, size_t len) override {
85 return p_driver->readBytes(data, len);
86 }
87
88 int available() override {
89 return p_driver->available();
90 }
91
92 int availableForWrite() override {
94 }
95
98 return p_driver;
99 }
100
101protected:
105};
106
107}
108
109#endif
110
111// Support AnalogAudioArduino
112#if defined(USE_TIMER) && defined(ARDUINO)
113# include "AnalogAudioArduino.h"
114#endif
#define TRACEI()
Definition AudioLoggerIDF.h:32
#define TRACED()
Definition AudioLoggerIDF.h:31
ESP32: A very fast ADC and DAC using the ESP32 I2S interface. For all other architectures we support ...
Definition AnalogAudioStream.h:23
AnalogConfig adc_config
Definition AnalogAudioStream.h:104
size_t readBytes(uint8_t *data, size_t len) override
Definition AnalogAudioStream.h:84
bool begin(AnalogConfig cfg)
starts the DAC
Definition AnalogAudioStream.h:63
void end() override
stops the I2S and unistalls the analog
Definition AnalogAudioStream.h:69
AnalogDriver analog_driver
Definition AnalogAudioStream.h:102
int available() override
Definition AnalogAudioStream.h:88
AnalogConfig & config()
Definition AnalogAudioStream.h:74
AnalogAudioStream(AnalogDriverBase &driver)
Constructor with alternative driver.
Definition AnalogAudioStream.h:28
size_t write(const uint8_t *data, size_t len) override
ESP32 only: writes the data to the I2S interface.
Definition AnalogAudioStream.h:79
int availableForWrite() override
Definition AnalogAudioStream.h:92
virtual void setAudioInfo(AudioInfo info)
updates the sample rate dynamically
Definition AnalogAudioStream.h:43
AnalogAudioStream()=default
Default constructor.
AnalogDriverBase * p_driver
Definition AnalogAudioStream.h:103
AnalogDriverBase * driver()
Provides access to the driver.
Definition AnalogAudioStream.h:97
virtual ~AnalogAudioStream()
Destructor.
Definition AnalogAudioStream.h:31
AnalogConfig defaultConfig(RxTxMode mode=TX_MODE)
Provides the default configuration.
Definition AnalogAudioStream.h:36
bool begin() override
Reopen with last config.
Definition AnalogAudioStream.h:58
ESP32 specific configuration for i2s input via adc. The default input pin is GPIO34....
Definition AnalogConfigESP32.h:22
void logInfo()
Definition AnalogConfigESP32.h:62
Please use the AnalogAudioStream: Reading Analog Data using a timer and the Arduino analogRead() meth...
Definition AnalogDriverArduino.h:23
Definition AnalogDriverBase.h:9
virtual size_t write(const uint8_t *src, size_t size_bytes)
Definition AnalogDriverBase.h:13
virtual bool begin(AnalogConfig cfg)=0
virtual int availableForWrite()
Definition AnalogDriverBase.h:16
virtual size_t readBytes(uint8_t *dest, size_t size_bytes)=0
Base class for all Audio Streams. It support the boolean operator to test if the object is ready with...
Definition BaseStream.h:120
AudioInfo info
Definition BaseStream.h:171
RxTxMode
The Microcontroller is the Audio Source (TX_MODE) or Audio Sink (RX_MODE). RXTX_MODE is Source and Si...
Definition AudioTypes.h:26
@ TX_MODE
Definition AudioTypes.h:26
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition AudioTypes.h:508
Basic Audio information which drives e.g. I2S.
Definition AudioTypes.h:51
sample_rate_t sample_rate
Sample Rate: e.g 44100.
Definition AudioTypes.h:53
uint16_t channels
Number of channels: 2=stereo, 1=mono.
Definition AudioTypes.h:55
uint8_t bits_per_sample
Number of bits per sample (int16_t = 16 bits)
Definition AudioTypes.h:57