From 30b419f46682e332985488ba122296aa4d36bc48 Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Wed, 3 Apr 2024 15:50:03 +0200 Subject: [PATCH] portaudio: specify nr audio channels with MAX_NR_AUDIO_CHANNELS, default to 2 --- platform/posix/btstack_audio_portaudio.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/platform/posix/btstack_audio_portaudio.c b/platform/posix/btstack_audio_portaudio.c index 1a7e846fd..a059aa2a4 100644 --- a/platform/posix/btstack_audio_portaudio.c +++ b/platform/posix/btstack_audio_portaudio.c @@ -52,6 +52,10 @@ #define NUM_INPUT_BUFFERS 2 #define DRIVER_POLL_INTERVAL_MS 5 +#ifndef MAX_NR_AUDIO_CHANNELS +#define MAX_NR_AUDIO_CHANNELS 2 +#endif + #include // config @@ -79,14 +83,14 @@ static void (*playback_callback)(int16_t * buffer, uint16_t num_samples); static void (*recording_callback)(const int16_t * buffer, uint16_t num_samples); // output buffer -static int16_t output_buffer_storage[NUM_OUTPUT_BUFFERS * NUM_FRAMES_PER_PA_BUFFER * 2]; // stereo +static int16_t output_buffer_storage[NUM_OUTPUT_BUFFERS * NUM_FRAMES_PER_PA_BUFFER * MAX_NR_AUDIO_CHANNELS]; static int16_t * output_buffers[NUM_OUTPUT_BUFFERS]; static int output_buffer_to_play; static int output_buffer_to_fill; // input buffer -static int16_t input_buffer_a[NUM_FRAMES_PER_PA_BUFFER * 2]; // stereo -static int16_t input_buffer_b[NUM_FRAMES_PER_PA_BUFFER * 2]; // stereo +static int16_t input_buffer_a[NUM_FRAMES_PER_PA_BUFFER * MAX_NR_AUDIO_CHANNELS]; +static int16_t input_buffer_b[NUM_FRAMES_PER_PA_BUFFER * MAX_NR_AUDIO_CHANNELS]; static int16_t * input_buffers[NUM_INPUT_BUFFERS] = { input_buffer_a, input_buffer_b}; static int input_buffer_to_record; static int input_buffer_to_fill; @@ -200,12 +204,14 @@ static int btstack_audio_portaudio_sink_init( ){ PaError err; + btstack_assert(channels <= MAX_NR_AUDIO_CHANNELS); + num_channels_sink = channels; num_bytes_per_sample_sink = 2 * channels; uint8_t i; for (i=0;i