1
0
mirror of https://github.com/bluekitchen/btstack.git synced 2025-03-27 14:37:12 +00:00

btstack_audio: extend api to query the current sample rate

This commit is contained in:
Dirk Helbig 2023-01-13 14:09:05 +01:00
parent 5fe445cb53
commit 6926c2973a
2 changed files with 24 additions and 0 deletions

@ -331,6 +331,16 @@ static int btstack_audio_portaudio_source_init(
return 0;
}
static uint32_t btstack_audio_portaudio_sink_get_samplerate(void) {
const PaStreamInfo *stream_info = Pa_GetStreamInfo(stream_sink);
return stream_info->sampleRate;
}
static uint32_t btstack_audio_portaudio_source_get_samplerate(void) {
const PaStreamInfo *stream_info = Pa_GetStreamInfo(stream_source);
return stream_info->sampleRate;
}
static void btstack_audio_portaudio_sink_set_volume(uint8_t volume){
sink_volume = volume;
}
@ -468,6 +478,7 @@ static void btstack_audio_portaudio_source_close(void){
static const btstack_audio_sink_t btstack_audio_portaudio_sink = {
/* int (*init)(..);*/ &btstack_audio_portaudio_sink_init,
/* uint32_t (*get_samplerate)() */ &btstack_audio_portaudio_sink_get_samplerate,
/* void (*set_volume)(uint8_t volume); */ &btstack_audio_portaudio_sink_set_volume,
/* void (*start_stream(void));*/ &btstack_audio_portaudio_sink_start_stream,
/* void (*stop_stream)(void) */ &btstack_audio_portaudio_sink_stop_stream,
@ -476,6 +487,7 @@ static const btstack_audio_sink_t btstack_audio_portaudio_sink = {
static const btstack_audio_source_t btstack_audio_portaudio_source = {
/* int (*init)(..);*/ &btstack_audio_portaudio_source_init,
/* uint32_t (*get_samplerate)() */ &btstack_audio_portaudio_source_get_samplerate,
/* void (*set_gain)(uint8_t gain); */ &btstack_audio_portaudio_source_set_gain,
/* void (*start_stream(void));*/ &btstack_audio_portaudio_source_start_stream,
/* void (*stop_stream)(void) */ &btstack_audio_portaudio_source_stop_stream,

@ -68,6 +68,12 @@ typedef struct {
uint32_t samplerate,
void (*playback) (int16_t * buffer, uint16_t num_samples));
/**
* @brief Get the current playback sample rate, may differ from the
* specified sample rate
*/
uint32_t (*get_samplerate)(void);
/**
* @brief Set volume
* @param Volume 0..127
@ -105,6 +111,12 @@ typedef struct {
uint32_t samplerate,
void (*recording)(const int16_t * buffer, uint16_t num_samples));
/**
* @brief Get the current recording sample rate, may differ from the
* specified sameple rate
*/
uint32_t (*get_samplerate)(void);
/**
* @brief Set Gain
* @param Gain 0..127