rp2040-i2s
All Classes Files Functions Variables Typedefs Modules Pages
Classes | Typedefs | Enumerations | Functions
audio.h File Reference

Go to the source code of this file.

Classes

struct  audio_format
 Audio format definition. More...
 
struct  audio_buffer_format
 Audio buffer format definition. More...
 
struct  audio_buffer
 Audio buffer definition. More...
 
struct  audio_buffer_pool
 
struct  audio_connection
 
struct  buffer_copying_on_consumer_take_connection
 
struct  producer_pool_blocking_give_connection
 
struct  pio_audio_channel_config
 

Typedefs

typedef struct audio_format audio_format_t
 Audio format definition.
 
typedef struct audio_buffer_format audio_buffer_format_t
 Audio buffer format definition.
 
typedef struct audio_buffer audio_buffer_t
 Audio buffer definition.
 
typedef struct audio_connection audio_connection_t
 
typedef struct audio_buffer_pool audio_buffer_pool_t
 
typedef struct __packed pio_audio_channel_config pio_audio_channel_config_t
 

Enumerations

enum  audio_correction_mode { none , fixed_dither , dither , noise_shaped_dither }
 

Functions

audio_buffer_pool_taudio_new_producer_pool (audio_buffer_format_t *format, int buffer_count, int buffer_sample_count)
 Allocate and initialise an audio producer pool. More...
 
audio_buffer_pool_taudio_new_consumer_pool (audio_buffer_format_t *format, int buffer_count, int buffer_sample_count)
 Allocate and initialise an audio consumer pool. More...
 
audio_buffer_taudio_new_wrapping_buffer (audio_buffer_format_t *format, mem_buffer_t *buffer)
 Allocate and initialise an audio wrapping buffer. More...
 
audio_buffer_taudio_new_buffer (audio_buffer_format_t *format, int buffer_sample_count)
 Allocate and initialise an new audio buffer. More...
 
void audio_init_buffer (audio_buffer_t *audio_buffer, audio_buffer_format_t *format, int buffer_sample_count)
 Initialise an audio buffer. More...
 
void give_audio_buffer (audio_buffer_pool_t *ac, audio_buffer_t *buffer)
 
audio_buffer_ttake_audio_buffer (audio_buffer_pool_t *ac, bool block)
 
void audio_upsample (int16_t *input, int16_t *output, uint output_count, uint32_t step)
 
void audio_upsample_words (int16_t *input, int16_t *output_aligned, uint output_word_count, uint32_t step)
 
void audio_upsample_double (int16_t *input, int16_t *output, uint output_count, uint32_t step)
 
void audio_complete_connection (audio_connection_t *connection, audio_buffer_pool_t *producer, audio_buffer_pool_t *consumer)
 
audio_buffer_tget_free_audio_buffer (audio_buffer_pool_t *context, bool block)
 
void queue_free_audio_buffer (audio_buffer_pool_t *context, audio_buffer_t *ab)
 
audio_buffer_tget_full_audio_buffer (audio_buffer_pool_t *context, bool block)
 
void queue_full_audio_buffer (audio_buffer_pool_t *context, audio_buffer_t *ab)
 
void consumer_pool_give_buffer_default (audio_connection_t *connection, audio_buffer_t *buffer)
 
audio_buffer_tconsumer_pool_take_buffer_default (audio_connection_t *connection, bool block)
 
void producer_pool_give_buffer_default (audio_connection_t *connection, audio_buffer_t *buffer)
 
audio_buffer_tproducer_pool_take_buffer_default (audio_connection_t *connection, bool block)
 
audio_buffer_tmono_to_mono_consumer_take (audio_connection_t *connection, bool block)
 
audio_buffer_tmono_s8_to_mono_consumer_take (audio_connection_t *connection, bool block)
 
audio_buffer_tstereo_to_stereo_consumer_take (audio_connection_t *connection, bool block)
 
audio_buffer_tmono_to_stereo_consumer_take (audio_connection_t *connection, bool block)
 
audio_buffer_tmono_s8_to_stereo_consumer_take (audio_connection_t *connection, bool block)
 
void stereo_to_stereo_producer_give (audio_connection_t *connection, audio_buffer_t *buffer)