arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
CoreAudio
AudioI2S
I2SSAMD.h
Go to the documentation of this file.
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
9
namespace
audio_tools
{
10
17
class
I2SDriverSAMD
{
18
friend
class
I2SStream
;
19
20
public
:
22
I2SConfigStd
defaultConfig
(
RxTxMode
mode) {
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
63
using
I2SDriver
=
I2SDriverSAMD
;
64
65
}
// namespace audio_tools
66
67
#endif
I2SConfig.h
audio_tools::I2SConfigStd
Configuration for i2s.
Definition
I2SConfigStd.h:17
audio_tools::I2SConfigStd::i2s_format
I2SFormat i2s_format
Definition
I2SConfigStd.h:50
audio_tools::I2SDriverESP32
Basic I2S API - for the ESP32. If we receive 1 channel, we expand the result to 2 channels.
Definition
I2SESP32.h:25
audio_tools::I2SDriverSAMD
Basic I2S API - for the SAMD.
Definition
I2SSAMD.h:17
audio_tools::I2SDriverSAMD::setAudioInfo
bool setAudioInfo(AudioInfo)
Potentially updates the sample rate (if supported)
Definition
I2SSAMD.h:28
audio_tools::I2SDriverSAMD::config
I2SConfigStd config()
provides the actual configuration
Definition
I2SSAMD.h:45
audio_tools::I2SDriverSAMD::available
int available()
Definition
I2SSAMD.h:55
audio_tools::I2SDriverSAMD::begin
bool begin()
Definition
I2SSAMD.h:39
audio_tools::I2SDriverSAMD::defaultConfig
I2SConfigStd defaultConfig(RxTxMode mode)
Provides the default configuration.
Definition
I2SSAMD.h:22
audio_tools::I2SDriverSAMD::availableForWrite
int availableForWrite()
Definition
I2SSAMD.h:57
audio_tools::I2SDriverSAMD::readBytes
size_t readBytes(void *src, size_t size_bytes)
Definition
I2SSAMD.h:51
audio_tools::I2SDriverSAMD::begin
bool begin(I2SConfigStd cfg)
starts the DAC
Definition
I2SSAMD.h:34
audio_tools::I2SDriverSAMD::end
void end()
stops the I2C and unistalls the driver
Definition
I2SSAMD.h:42
audio_tools::I2SDriverSAMD::begin
bool begin(RxTxMode mode)
starts the DAC with the default config
Definition
I2SSAMD.h:31
audio_tools::I2SDriverSAMD::writeBytes
size_t writeBytes(const void *src, size_t size_bytes)
Definition
I2SSAMD.h:47
audio_tools::I2SDriverSAMD::cfg
I2SConfigStd cfg
Definition
I2SSAMD.h:60
audio_tools::I2SStream
We support the Stream interface for the I2S access. In addition we allow a separate mute pin which mi...
Definition
I2SStream.h:33
audio_tools::RxTxMode
RxTxMode
The Microcontroller is the Audio Source (TX_MODE) or Audio Sink (RX_MODE). RXTX_MODE is Source and Si...
Definition
AudioTypes.h:30
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
AudioCodecsBase.h:10
audio_tools::writeData
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition
AudioTypes.h:512
audio_tools::AudioInfo
Basic Audio information which drives e.g. I2S.
Definition
AudioTypes.h:55
audio_tools::AudioInfo::sample_rate
sample_rate_t sample_rate
Sample Rate: e.g 44100.
Definition
AudioTypes.h:57
audio_tools::AudioInfo::bits_per_sample
uint8_t bits_per_sample
Number of bits per sample (int16_t = 16 bits)
Definition
AudioTypes.h:61
Generated by
1.9.8