arduino-audio-tools
All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
I2SSAMD.h
1#pragma once
2
3#if defined(ARDUINO_ARCH_SAMD)
4#include <I2S.h>
5#include "AudioTools/CoreAudio/AudioI2S/I2SConfig.h"
6
7#define IS_I2S_IMPLEMENTED
8
9namespace audio_tools {
10
18 friend class I2SStream;
19
20 public:
23 I2SConfigStd c(mode);
24 return c;
25 }
26
28 bool setAudioInfo(AudioInfo) { return false; }
29
31 bool begin(RxTxMode mode) { return begin(defaultConfig(mode)); }
32
34 bool begin(I2SConfigStd cfg) {
35 this->cfg = cfg;
36 return I2S.begin(cfg.i2s_format, cfg.sample_rate, cfg.bits_per_sample);
37 }
38
39 bool begin() { return begin(cfg); }
40
42 void end() { I2S.end(); }
43
45 I2SConfigStd config() { return cfg; }
46
47 size_t writeBytes(const void *src, size_t size_bytes) {
48 return I2S.write((const uint8_t *)src, size_bytes);
49 }
50
51 size_t readBytes(void *src, size_t size_bytes) {
52 return I2S.read(src, size_bytes);
53 }
54
55 int available() { return I2S.available(); }
56
57 int availableForWrite() { return I2S.availableForWrite(); }
58
59 protected:
60 I2SConfigStd cfg;
61};
62
63using I2SDriver = I2SDriverSAMD;
64
65} // namespace audio_tools
66
67#endif
Configuration for i2s.
Definition I2SConfigStd.h:17
Basic I2S API - for the SAMD.
Definition I2SSAMD.h:17
bool setAudioInfo(AudioInfo)
Potentially updates the sample rate (if supported)
Definition I2SSAMD.h:28
I2SConfigStd config()
provides the actual configuration
Definition I2SSAMD.h:45
I2SConfigStd defaultConfig(RxTxMode mode)
Provides the default configuration.
Definition I2SSAMD.h:22
bool begin(I2SConfigStd cfg)
starts the DAC
Definition I2SSAMD.h:34
void end()
stops the I2C and unistalls the driver
Definition I2SSAMD.h:42
bool begin(RxTxMode mode)
starts the DAC with the default config
Definition I2SSAMD.h:31
We support the Stream interface for the I2S access. In addition we allow a separate mute pin which mi...
Definition I2SStream.h:33
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
sample_rate_t sample_rate
Sample Rate: e.g 44100.
Definition AudioTypes.h:55
uint8_t bits_per_sample
Number of bits per sample (int16_t = 16 bits)
Definition AudioTypes.h:59