#include <stddef.h>
#include "conf_audio_mixer.h"
#include "conf_audio_player.h"
#include "compiler.h"
#include "audio.h"
#include "audio_mixer.h"
#include "board.h"
Macros | |
#define | AUDIO_MIXER_CODEC_COUNT (sizeof(AUDIO_MIXER_DACS) / sizeof(AUDIO_MIXER_DACS[0])) |
Number of DACs. More... | |
Functions | |
static void | audio_mixer_callback (uint32_t arg) |
Callback function the DACs drivers should invoke when out of samples. More... | |
void | audio_mixer_close_direct (void) |
Close the audio_mixer. More... | |
bool | audio_mixer_create_buffers_direct (uint8_t nb_buffers, size_t buffer_size) |
Creates DAC buffers. More... | |
void | audio_mixer_dacs_decrease_volume_direct (void) |
Decreases the output volume of the DACs. More... | |
void | audio_mixer_dacs_flush_direct (bool force) |
Flushes the sample buffer being output to the DACs. More... | |
uint8_t | audio_mixer_dacs_get_volume_direct (void) |
Get the average volume of the DACs. The value returned is in the range 0; 255 where 255 corresponds to the highest volume. More... | |
void | audio_mixer_dacs_increase_volume_direct (void) |
Increases the output volume of the DACs. More... | |
bool | audio_mixer_dacs_input_direct (void *sample_buffer, size_t sample_length) |
Inputs a sample buffer from the ADCs. More... | |
bool | audio_mixer_dacs_is_volume_muted_direct (void) |
Checks if the volume is muted or un-muted. . More... | |
bool | audio_mixer_dacs_output_direct (void *sample_buffer, size_t sample_length) |
Outputs a sample buffer to the DACs. More... | |
void | audio_mixer_dacs_set_volume_direct (uint8_t volume) |
set the average volume of the DACs. More... | |
void | audio_mixer_dacs_setup_direct (uint32_t sample_rate_hz, uint8_t num_channels, uint8_t bits_per_sample, bool swap_channels) |
Sets the DACs up with new settings. More... | |
void | audio_mixer_dacs_start_direct (uint32_t sample_rate_hz, uint8_t num_channels, uint8_t bits_per_sample, bool swap_channels) |
Starts the DACs. More... | |
void | audio_mixer_dacs_stop_direct (void) |
Stops the DACs. More... | |
void | audio_mixer_disable_dacs_direct (uint32_t dacs_mask) |
Disables the handling of the specified DACs by the audio mixer. More... | |
void | audio_mixer_enable_dacs_direct (uint32_t dacs_mask) |
Enables the handling of the specified DACs by the audio mixer. More... | |
void * | audio_mixer_get_buffer_direct (size_t size) |
This functions returns a NULL pointer when no buffer are free, else returns a free temporary buffer. More... | |
void | audio_mixer_mute_audio_direct (bool mute) |
Mute Audio if True. More... | |
Variables | |
struct { | |
void(* decrease_volume )(void) | |
void(* flush )(void) | |
uint8_t(* get_volume )(void) | |
void(* increase_volume )(void) | |
bool(* input )(void *sample_buffer, size_t sample_length) | |
bool(* is_volume_boosted )(void) | |
bool(* is_volume_muted )(void) | |
void(* mute_audio )(bool mute) | |
bool(* output )(void *sample_buffer, size_t sample_length) | |
void(* set_volume )(uint8_t volume) | |
void(* setup )(uint32_t sample_rate_hz, uint8_t num_channels, uint8_t bits_per_sample, bool swap_channels, void(*callback)(uint32_t arg), uint32_t callback_opt, uint32_t pba_hz) | |
void(* start )(uint32_t sample_rate_hz, uint8_t num_channels, uint8_t bits_per_sample, bool swap_channels, void(*callback)(uint32_t arg), uint32_t callback_opt, uint32_t pba_hz) | |
void(* stop )(void) | |
} | AUDIO_MIXER_DACS [] = AUDIO_MIXER_DACS_INTERFACES |
DACs interfaces. More... | |
struct { | |
uint8_t bits_per_sample | |
void ** buffers | |
uint8_t current_buffer | |
uint8_t nb_buffers | |
uint8_t num_channels | |
uint32_t sample_rate_hz | |
bool swap_channels | |
} | audio_mixer_dacs_settings |
DACs settings. More... | |
static uint32_t | audio_mixer_enabled_dacs_mask = 0x00000000 |
Enabled DACs mask. More... | |
#define AUDIO_MIXER_CODEC_COUNT (sizeof(AUDIO_MIXER_DACS) / sizeof(AUDIO_MIXER_DACS[0])) |
Number of DACs.
Referenced by audio_mixer_dacs_decrease_volume_direct(), audio_mixer_dacs_flush_direct(), audio_mixer_dacs_get_volume_direct(), audio_mixer_dacs_increase_volume_direct(), audio_mixer_dacs_input_direct(), audio_mixer_dacs_is_volume_muted_direct(), audio_mixer_dacs_output_direct(), audio_mixer_dacs_set_volume_direct(), audio_mixer_dacs_setup_direct(), audio_mixer_dacs_start_direct(), audio_mixer_dacs_stop_direct(), audio_mixer_disable_dacs_direct(), and audio_mixer_mute_audio_direct().
|
static |
Callback function the DACs drivers should invoke when out of samples.
References AUDIO_ADC_OUT_OF_SAMPLE_CB, AUDIO_ADC_RELOAD_CB, AUDIO_DAC_OUT_OF_SAMPLE_CB, AUDIO_DAC_RELOAD_CB, AUDIO_MIXER_OUT_OF_SAMPLES_CALLBACK, and buff_player_dacs_end_of_pcm_buf().
Referenced by audio_mixer_dacs_setup_direct(), and audio_mixer_dacs_start_direct().
void audio_mixer_close_direct | ( | void | ) |
Close the audio_mixer.
References audio_mixer_dacs_settings.
bool audio_mixer_create_buffers_direct | ( | uint8_t | nb_buffers, |
size_t | buffer_size | ||
) |
Creates DAC buffers.
References audio_mixer_dacs_settings, buffers, and nb_buffers.
void audio_mixer_dacs_decrease_volume_direct | ( | void | ) |
Decreases the output volume of the DACs.
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, and audio_mixer_enabled_dacs_mask.
void audio_mixer_dacs_flush_direct | ( | bool | force | ) |
Flushes the sample buffer being output to the DACs.
force | Force flushing means do not wait until all samples have been played before flushing the DAC. |
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, and audio_mixer_enabled_dacs_mask.
Referenced by buff_player_dacs_flush().
uint8_t audio_mixer_dacs_get_volume_direct | ( | void | ) |
Get the average volume of the DACs.
The value returned is in the range 0; 255 where 255 corresponds to the highest volume.
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, and audio_mixer_enabled_dacs_mask.
void audio_mixer_dacs_increase_volume_direct | ( | void | ) |
Increases the output volume of the DACs.
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, and audio_mixer_enabled_dacs_mask.
bool audio_mixer_dacs_input_direct | ( | void * | sample_buffer, |
size_t | sample_length | ||
) |
Inputs a sample buffer from the ADCs.
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, audio_mixer_enabled_dacs_mask, and input.
bool audio_mixer_dacs_is_volume_muted_direct | ( | void | ) |
Checks if the volume is muted or un-muted.
.
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, and audio_mixer_enabled_dacs_mask.
bool audio_mixer_dacs_output_direct | ( | void * | sample_buffer, |
size_t | sample_length | ||
) |
Outputs a sample buffer to the DACs.
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, audio_mixer_enabled_dacs_mask, and output.
Referenced by buff_player_dacs_end_of_pcm_buf(), and buff_player_dacs_output().
void audio_mixer_dacs_set_volume_direct | ( | uint8_t | volume | ) |
set the average volume of the DACs.
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, and audio_mixer_enabled_dacs_mask.
void audio_mixer_dacs_setup_direct | ( | uint32_t | sample_rate_hz, |
uint8_t | num_channels, | ||
uint8_t | bits_per_sample, | ||
bool | swap_channels | ||
) |
Sets the DACs up with new settings.
References AUDIO_ADC_OUT_OF_SAMPLE_CB, AUDIO_ADC_RELOAD_CB, AUDIO_DAC_OUT_OF_SAMPLE_CB, AUDIO_DAC_RELOAD_CB, audio_mixer_callback(), AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, audio_mixer_dacs_settings, audio_mixer_enabled_dacs_mask, AUDIO_MIXER_OUT_OF_SAMPLES_CALLBACK, bits_per_sample, FPBA_HZ, num_channels, sample_rate_hz, swap_channels, and USE_AUDIO_PLAYER_BUFFERIZATION.
Referenced by buff_player_dacs_setup().
void audio_mixer_dacs_start_direct | ( | uint32_t | sample_rate_hz, |
uint8_t | num_channels, | ||
uint8_t | bits_per_sample, | ||
bool | swap_channels | ||
) |
Starts the DACs.
References AUDIO_ADC_OUT_OF_SAMPLE_CB, AUDIO_ADC_RELOAD_CB, AUDIO_DAC_OUT_OF_SAMPLE_CB, AUDIO_DAC_RELOAD_CB, audio_mixer_callback(), AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, audio_mixer_dacs_settings, audio_mixer_enabled_dacs_mask, AUDIO_MIXER_OUT_OF_SAMPLES_CALLBACK, bits_per_sample, FPBA_HZ, num_channels, sample_rate_hz, swap_channels, and USE_AUDIO_PLAYER_BUFFERIZATION.
Referenced by audio_mixer_enable_dacs_direct().
void audio_mixer_dacs_stop_direct | ( | void | ) |
Stops the DACs.
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, audio_mixer_dacs_settings, and audio_mixer_enabled_dacs_mask.
void audio_mixer_disable_dacs_direct | ( | uint32_t | dacs_mask | ) |
Disables the handling of the specified DACs by the audio mixer.
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, audio_mixer_dacs_settings, and audio_mixer_enabled_dacs_mask.
void audio_mixer_enable_dacs_direct | ( | uint32_t | dacs_mask | ) |
Enables the handling of the specified DACs by the audio mixer.
References audio_mixer_dacs_settings, audio_mixer_dacs_start_direct(), and audio_mixer_enabled_dacs_mask.
void* audio_mixer_get_buffer_direct | ( | size_t | size | ) |
This functions returns a NULL pointer when no buffer are free, else returns a free temporary buffer.
References audio_mixer_dacs_output, and audio_mixer_dacs_settings.
void audio_mixer_mute_audio_direct | ( | bool | mute | ) |
Mute Audio if True.
mute | Set to true to mute the audio stream. Set to false otherwise. |
References AUDIO_MIXER_CODEC_COUNT, AUDIO_MIXER_DACS, and audio_mixer_enabled_dacs_mask.
Referenced by buff_player_mute_audio().
struct { ... } AUDIO_MIXER_DACS[] |
DACs interfaces.
Referenced by audio_mixer_dacs_decrease_volume_direct(), audio_mixer_dacs_flush_direct(), audio_mixer_dacs_get_volume_direct(), audio_mixer_dacs_increase_volume_direct(), audio_mixer_dacs_input_direct(), audio_mixer_dacs_is_volume_muted_direct(), audio_mixer_dacs_output_direct(), audio_mixer_dacs_set_volume_direct(), audio_mixer_dacs_setup_direct(), audio_mixer_dacs_start_direct(), audio_mixer_dacs_stop_direct(), audio_mixer_disable_dacs_direct(), and audio_mixer_mute_audio_direct().
struct { ... } audio_mixer_dacs_settings |
DACs settings.
Referenced by audio_mixer_close_direct(), audio_mixer_create_buffers_direct(), audio_mixer_dacs_setup_direct(), audio_mixer_dacs_start_direct(), audio_mixer_dacs_stop_direct(), audio_mixer_disable_dacs_direct(), audio_mixer_enable_dacs_direct(), and audio_mixer_get_buffer_direct().
|
static |
Enabled DACs mask.
Referenced by audio_mixer_dacs_decrease_volume_direct(), audio_mixer_dacs_flush_direct(), audio_mixer_dacs_get_volume_direct(), audio_mixer_dacs_increase_volume_direct(), audio_mixer_dacs_input_direct(), audio_mixer_dacs_is_volume_muted_direct(), audio_mixer_dacs_output_direct(), audio_mixer_dacs_set_volume_direct(), audio_mixer_dacs_setup_direct(), audio_mixer_dacs_start_direct(), audio_mixer_dacs_stop_direct(), audio_mixer_disable_dacs_direct(), audio_mixer_enable_dacs_direct(), and audio_mixer_mute_audio_direct().
uint8_t bits_per_sample |
Referenced by audio_mixer_dacs_setup_direct(), audio_mixer_dacs_start_direct(), and pwm_dac_setup().
void** buffers |
Referenced by audio_mixer_create_buffers_direct().
uint8_t current_buffer |
void(* decrease_volume)(void) |
void(* flush)(void) |
uint8_t(* get_volume)(void) |
void(* increase_volume)(void) |
bool(* input)(void *sample_buffer, size_t sample_length) |
Referenced by audio_mixer_dacs_input_direct().
bool(* is_volume_boosted)(void) |
bool(* is_volume_muted)(void) |
void(* mute_audio)(bool mute) |
uint8_t nb_buffers |
Referenced by audio_mixer_create_buffers_direct().
uint8_t num_channels |
bool(* output)(void *sample_buffer, size_t sample_length) |
Referenced by audio_mixer_dacs_output_direct().
uint32_t sample_rate_hz |
Referenced by audio_mixer_dacs_setup_direct(), and audio_mixer_dacs_start_direct().
void(* set_volume)(uint8_t volume) |
void(* setup)(uint32_t sample_rate_hz, uint8_t num_channels, uint8_t bits_per_sample, bool swap_channels, void(*callback)(uint32_t arg), uint32_t callback_opt, uint32_t pba_hz) |
void(* start)(uint32_t sample_rate_hz, uint8_t num_channels, uint8_t bits_per_sample, bool swap_channels, void(*callback)(uint32_t arg), uint32_t callback_opt, uint32_t pba_hz) |
void(* stop)(void) |
bool swap_channels |
Referenced by aic23b_dac_setup(), audio_mixer_dacs_setup_direct(), audio_mixer_dacs_start_direct(), and pwm_dac_setup().