|  | Fraise
    2.1
    FRAmework for Interfacing Software and Electronics | 
 
 
 
Go to the documentation of this file.
   12 #include "hardware/sync.h" 
   26 #ifndef SPINLOCK_ID_AUDIO_FREE_LIST_LOCK 
   27 #define SPINLOCK_ID_AUDIO_FREE_LIST_LOCK 6 
   31 #ifndef SPINLOCK_ID_AUDIO_PREPARED_LISTS_LOCK 
   32 #define SPINLOCK_ID_AUDIO_PREPARED_LISTS_LOCK 7 
   36 #ifndef PICO_AUDIO_NOOP 
   37 #define PICO_AUDIO_NOOP 0 
   41 #define AUDIO_BUFFER_FORMAT_PCM_S16 1           
   42 #define AUDIO_BUFFER_FORMAT_PCM_S8 2            
   43 #define AUDIO_BUFFER_FORMAT_PCM_U16 3           
   44 #define AUDIO_BUFFER_FORMAT_PCM_U8 4            
   66     uint32_t sample_count;
 
   67     uint32_t max_sample_count;
 
   77         ac_producer, ac_consumer
 
   82     spin_lock_t *free_list_spin_lock;
 
   85     spin_lock_t *prepared_list_spin_lock;
 
  114                                                          int buffer_sample_count);
 
  125                                                          int buffer_sample_count);
 
  175     buffer->sample_count = 0;
 
  185 void audio_upsample(int16_t *input, int16_t *output, uint output_count, uint32_t step);
 
  193 void audio_upsample_words(int16_t *input, int16_t *output_aligned, uint output_word_count, uint32_t step);
 
  248 enum audio_correction_mode {
 
  258     uint32_t current_producer_buffer_pos;
 
  264     uint32_t current_consumer_buffer_pos;
 
  302 } pio_audio_channel_config_t;
 
  
 
audio_buffer_t * producer_pool_take_buffer_default(audio_connection_t *connection, bool block)
audio_buffer_t * consumer_pool_take_buffer_default(audio_connection_t *connection, bool block)
Wrapper structure around a memory buffer.
Definition: buffer.h:40
void queue_full_audio_buffer(audio_buffer_pool_t *context, audio_buffer_t *ab)
audio_buffer_t * mono_to_mono_consumer_take(audio_connection_t *connection, bool block)
void stereo_to_stereo_producer_give(audio_connection_t *connection, audio_buffer_t *buffer)
audio_buffer_t * mono_to_stereo_consumer_take(audio_connection_t *connection, bool block)
void audio_upsample(int16_t *input, int16_t *output, uint output_count, uint32_t step)
audio_buffer_t * take_audio_buffer(audio_buffer_pool_t *ac, bool block)
struct audio_buffer_format audio_buffer_format_t
Audio buffer format definition.
audio_buffer_t * get_full_audio_buffer(audio_buffer_pool_t *context, bool block)
audio_buffer_pool_t * audio_new_consumer_pool(audio_buffer_format_t *format, int buffer_count, int buffer_sample_count)
Allocate and initialise an audio consumer pool.
audio_buffer_t * audio_new_buffer(audio_buffer_format_t *format, int buffer_sample_count)
Allocate and initialise an new audio buffer.
audio_buffer_t * get_free_audio_buffer(audio_buffer_pool_t *context, bool block)
Audio buffer definition.
Definition: audio.h:63
audio_buffer_t * mono_s8_to_mono_consumer_take(audio_connection_t *connection, bool block)
struct audio_format audio_format_t
Audio format definition.
audio_buffer_t * audio_new_wrapping_buffer(audio_buffer_format_t *format, mem_buffer_t *buffer)
Allocate and initialise an audio wrapping buffer.
void producer_pool_give_buffer_default(audio_connection_t *connection, audio_buffer_t *buffer)
void audio_upsample_double(int16_t *input, int16_t *output, uint output_count, uint32_t step)
audio_buffer_t * mono_s8_to_stereo_consumer_take(audio_connection_t *connection, bool block)
void audio_complete_connection(audio_connection_t *connection, audio_buffer_pool_t *producer, audio_buffer_pool_t *consumer)
void queue_free_audio_buffer(audio_buffer_pool_t *context, audio_buffer_t *ab)
audio_buffer_pool_t * audio_new_producer_pool(audio_buffer_format_t *format, int buffer_count, int buffer_sample_count)
Allocate and initialise an audio producer pool.
void consumer_pool_give_buffer_default(audio_connection_t *connection, audio_buffer_t *buffer)
void audio_upsample_words(int16_t *input, int16_t *output_aligned, uint output_word_count, uint32_t step)
void audio_init_buffer(audio_buffer_t *audio_buffer, audio_buffer_format_t *format, int buffer_sample_count)
Initialise an audio buffer.
struct audio_buffer audio_buffer_t
Audio buffer definition.
audio_buffer_t * stereo_to_stereo_consumer_take(audio_connection_t *connection, bool block)
void give_audio_buffer(audio_buffer_pool_t *ac, audio_buffer_t *buffer)