arduino-audio-tools
All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
AnalogConfigStd.h
1#pragma once
2#include "AudioToolsConfig.h"
3#include "AudioTools/CoreAudio/AudioTypes.h"
4
5#ifndef PIN_ANALOG_START
6# define PIN_ANALOG_START -1
7#endif
8
9#ifndef ANALOG_BUFFERS
10# define ANALOG_BUFFERS 10
11#endif
12
13#ifndef ANALOG_MAX_OUT_CHANNELS
14# define ANALOG_MAX_OUT_CHANNELS 10
15#endif
16
17#include "AudioTools/CoreAudio/AudioTypes.h"
18
19
20namespace audio_tools {
21
22class AnalogAudioArduino;
23
31class AnalogConfigStd : public AudioInfo {
32 friend class AnalogAudioArduino;
33 public:
34 int buffer_count = ANALOG_BUFFERS;
35 int buffer_size = ANALOG_BUFFER_SIZE;
36 RxTxMode rx_tx_mode = RX_MODE;
37 bool is_blocking_write = true;
38 bool is_auto_center_read = true;
39 int max_sample_rate = ANALOG_MAX_SAMPLE_RATE;
40 int start_pin = PIN_ANALOG_START;
41
42 AnalogConfigStd() = default;
43 AnalogConfigStd(RxTxMode rxtxMode) : AudioInfo() {
44 rx_tx_mode = rxtxMode;
45 }
46
48 template <typename T, int N>
49 void setPins(T (&a)[N]) {
50 pins_data.clear();
51 pins_data.resize(N);
52 for (int i = 0; i < N; ++i) {
53 pins_data[i] = a[i]; // reset all elements
54 }
55 }
56
57 // /// Defines the pins and the corresponding number of channels (=number of
58 // /// pins)
59 // void setPins(Pins &pins) {
60 // pins_data.clear();
61 // for (int i = 0; i < pins.size(); i++) {
62 // pins_data.push_back(pins[i]);
63 // }
64 // }
65
68 if (pins_data.size() == 0 && start_pin >= 0) {
69 pins_data.resize(channels);
70 for (int j = 0; j < channels; j++) {
71 pins_data[j] = start_pin + j;
72 }
73 }
74 return pins_data;
75 }
76
77 protected:
78 Pins pins_data{0};
79
80};
81
82#ifndef ANALOG_CONFIG
83#define ANALOG_CONFIG
84using AnalogConfig = AnalogConfigStd;
85#endif
86
87} // ns
88#//endif
Analog Data IO using a timer and the Arduino analogRead() method and writing using analogWrite();.
Definition AnalogAudioArduino.h:21
Generic ADC and DAC configuration.
Definition AnalogConfigStd.h:31
Pins & pins()
Determines the pins (for all channels)
Definition AnalogConfigStd.h:67
void setPins(T(&a)[N])
support assignament of int array
Definition AnalogConfigStd.h:49
RxTxMode
The Microcontroller is the Audio Source (TX_MODE) or Audio Sink (RX_MODE). RXTX_MODE is Source and Si...
Definition AudioTypes.h:28
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10
Basic Audio information which drives e.g. I2S.
Definition AudioTypes.h:53
uint16_t channels
Number of channels: 2=stereo, 1=mono.
Definition AudioTypes.h:57
AudioInfo()=default
Default constructor.