7 #ifndef _PICO_AUDIO_I2S_H
8 #define _PICO_AUDIO_I2S_H
27 #ifndef PICO_AUDIO_I2S_DMA_IRQ
28 #ifdef PICO_AUDIO_DMA_IRQ
29 #define PICO_AUDIO_I2S_DMA_IRQ PICO_AUDIO_DMA_IRQ
31 #define PICO_AUDIO_I2S_DMA_IRQ 0
35 #ifndef PICO_AUDIO_I2S_PIO
37 #define PICO_AUDIO_I2S_PIO PICO_AUDIO_PIO
39 #define PICO_AUDIO_I2S_PIO 0
43 #if !(PICO_AUDIO_I2S_DMA_IRQ == 0 || PICO_AUDIO_I2S_DMA_IRQ == 1)
44 #error PICO_AUDIO_I2S_DMA_IRQ must be 0 or 1
47 #if !(PICO_AUDIO_I2S_PIO == 0 || PICO_AUDIO_I2S_PIO == 1)
48 #error PICO_AUDIO_I2S_PIO ust be 0 or 1
51 #ifndef PICO_AUDIO_I2S_MAX_CHANNELS
52 #ifdef PICO_AUDIO_MAX_CHANNELS
53 #define PICO_AUDIO_I2S_MAX_CHANNELS PICO_AUDIO_MAX_CHANNELS
55 #define PICO_AUDIO_I2S_MAX_CHANNELS 2u
59 #ifndef PICO_AUDIO_I2S_BUFFERS_PER_CHANNEL
60 #ifdef PICO_AUDIO_BUFFERS_PER_CHANNEL
61 #define PICO_AUDIO_I2S_BUFFERS_PER_CHANNEL PICO_AUDIO_BUFFERS_PER_CHANNEL
63 #define PICO_AUDIO_I2S_BUFFERS_PER_CHANNEL 3u
67 #ifndef PICO_AUDIO_I2S_BUFFER_SAMPLE_LENGTH
68 #ifdef PICO_AUDIO_BUFFER_SAMPLE_LENGTH
69 #define PICO_AUDIO_I2S_BUFFER_SAMPLE_LENGTH PICO_AUDIO_BUFFER_SAMPLE_LENGTH
71 #define PICO_AUDIO_I2S_BUFFER_SAMPLE_LENGTH 576u
75 #ifndef PICO_AUDIO_I2S_SILENCE_BUFFER_SAMPLE_LENGTH
76 #ifdef PICO_AUDIO_I2S_SILENCE_BUFFER_SAMPLE_LENGTH
77 #define PICO_AUDIO_I2S_SILENCE_BUFFER_SAMPLE_LENGTH PICO_AUDIO_SILENCE_BUFFER_SAMPLE_LENGTH
79 #define PICO_AUDIO_I2S_SILENCE_BUFFER_SAMPLE_LENGTH 256u
84 #ifndef PICO_AUDIO_I2S_NOOP
85 #ifdef PICO_AUDIO_NOOP
86 #define PICO_AUDIO_I2S_NOOP PICO_AUDIO_NOOP
88 #define PICO_AUDIO_I2S_NOOP 0
92 #ifndef PICO_AUDIO_I2S_MONO_INPUT
93 #define PICO_AUDIO_I2S_MONO_INPUT 0
95 #ifndef PICO_AUDIO_I2S_MONO_OUTPUT
96 #define PICO_AUDIO_I2S_MONO_OUTPUT 0
99 #ifndef PICO_AUDIO_I2S_DATA_PIN
101 #define PICO_AUDIO_I2S_DATA_PIN 28
104 #ifndef PICO_AUDIO_I2S_CLOCK_PIN_BASE
106 #define PICO_AUDIO_I2S_CLOCK_PIN_BASE 26
115 uint8_t clock_pin_base;
void audio_i2s_set_enabled(bool enabled)
Set up system to output I2S audio.
Definition: audio_i2s.c:343
const audio_format_t * audio_i2s_setup(const audio_format_t *intended_audio_format, const audio_i2s_config_t *config)
Set up system to output I2S audio.
Definition: audio_i2s.c:54
bool audio_i2s_connect(audio_buffer_pool_t *producer)
Definition: audio_i2s.c:174
bool audio_i2s_connect_thru(audio_buffer_pool_t *producer, audio_connection_t *connection)
Definition: audio_i2s.c:170
struct audio_i2s_config audio_i2s_config_t
Base configuration structure used when setting up.
bool audio_i2s_connect_s8(audio_buffer_pool_t *producer)
Definition: audio_i2s.c:242
bool audio_i2s_connect_extra(audio_buffer_pool_t *producer, bool buffer_on_give, uint buffer_count, uint samples_per_buffer, audio_connection_t *connection)
Definition: audio_i2s.c:178
Base configuration structure used when setting up.
Definition: audio_i2s.h:113