From bcbbbb4271c3cfaa40ae8997baf8e2af402911c7 Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Thu, 21 Feb 2019 22:50:26 +0100 Subject: [PATCH] a2dp_sink_demo: allow 0..100% volume --- example/a2dp_sink_demo.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/example/a2dp_sink_demo.c b/example/a2dp_sink_demo.c index 47fd2583e..14b80b138 100644 --- a/example/a2dp_sink_demo.c +++ b/example/a2dp_sink_demo.c @@ -302,16 +302,11 @@ static void playback_handler(int16_t * buffer, uint16_t num_frames){ // then start decoding sbc frames using request_* globals request_buffer = buffer; request_frames = num_frames; - while (request_frames){ - if (btstack_ring_buffer_bytes_available(&sbc_frame_ring_buffer) >= sbc_frame_size){ - // decode frame - uint8_t sbc_frame[MAX_SBC_FRAME_SIZE]; - btstack_ring_buffer_read(&sbc_frame_ring_buffer, sbc_frame, sbc_frame_size, &bytes_read); - btstack_sbc_decoder_process_data(&state, 0, sbc_frame, sbc_frame_size); - } else { - printf("No SBC frame ready in ring buffer\n"); - break; - } + while (request_frames && btstack_ring_buffer_bytes_available(&sbc_frame_ring_buffer) >= sbc_frame_size){ + // decode frame + uint8_t sbc_frame[MAX_SBC_FRAME_SIZE]; + btstack_ring_buffer_read(&sbc_frame_ring_buffer, sbc_frame, sbc_frame_size, &bytes_read); + btstack_sbc_decoder_process_data(&state, 0, sbc_frame, sbc_frame_size); } #ifdef STORE_FROM_PLAYBACK @@ -897,7 +892,7 @@ static void a2dp_sink_packet_handler(uint8_t packet_type, uint16_t channel, uint if (cid != a2dp_cid) break; a2dp_local_seid = a2dp_subevent_stream_suspended_get_local_seid(packet); printf("A2DP Sink : stream paused\n"); - // media_processing_close(); + // TODO: pause stream break; case A2DP_SUBEVENT_STREAM_RELEASED: @@ -995,12 +990,12 @@ static void stdin_process(char cmd){ break; // Volume Control case 't': - volume_percentage = volume_percentage <= 90 ? volume_percentage + 10 : volume_percentage; + volume_percentage = volume_percentage <= 90 ? volume_percentage + 10 : 100; printf(" - volume up for 10 percent, %d%% (%d) \n", volume_percentage, volume_percentage * 127 / 100); status = avrcp_target_volume_changed(avrcp_target_cid, volume_percentage * 127 / 100); break; case 'T': - volume_percentage = volume_percentage >= 10 ? volume_percentage - 10 : volume_percentage; + volume_percentage = volume_percentage >= 10 ? volume_percentage - 10 : 0; printf(" - volume down for 10 percent, %d%% (%d) \n", volume_percentage, volume_percentage * 127 / 100); status = avrcp_target_volume_changed(avrcp_target_cid, volume_percentage * 127 / 100); break;