From ef61fff63b701b57d7a598c8b89f91e94267965e Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Mon, 13 Jan 2020 11:22:34 +0900 Subject: [PATCH] Skip calling streaming callbacks for CONTINUE when stopped Change-Id: I2e7ba96c415a82381e78dec789f4ef4f72cb94bc --- client/ma_dbus.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/client/ma_dbus.c b/client/ma_dbus.c index 8e6c9ad..2bb657a 100644 --- a/client/ma_dbus.c +++ b/client/ma_dbus.c @@ -29,6 +29,8 @@ static Ecore_Fd_Handler* g_fd_handler = NULL; static DBusConnection* g_conn_sender = NULL; static DBusConnection* g_conn_listener = NULL; +static bool g_streaming_requested = false; + extern int __ma_cb_error(int reason, char* msg); extern int __ma_cb_audio_streaming(int event, char* buffer, int len); extern int __ma_cb_active_state_changed(int state); @@ -102,11 +104,16 @@ static void message_port_cb(int local_port_id, memcpy(&audio_data_header, pending_buffer + sizeof(streaming_data_header), sizeof(streaming_data_audio_data_header)); - __ma_cb_audio_streaming(audio_data_header.event, - pending_buffer + sizeof(streaming_data_header) + sizeof(streaming_data_audio_data_header), - audio_data_header.data_size); - if (0 == header.streaming_data_serial % 50) { - MA_SLOGI("__ma_cb_audio_streaming() called, serial : %d", header.streaming_data_serial); + /* Don't invoke audio streaming callback for CONTINUE audio events + if the streaming request is no more valid, since it would not provide + any useful information to the client application */ + if (g_streaming_requested || MA_AUDIO_STREAMING_EVENT_CONTINUE != audio_data_header.event) { + __ma_cb_audio_streaming(audio_data_header.event, + pending_buffer + sizeof(streaming_data_header) + sizeof(streaming_data_audio_data_header), + audio_data_header.data_size); + if (0 == header.streaming_data_serial % 50) { + MA_SLOGI("__ma_cb_audio_streaming() called, serial : %d", header.streaming_data_serial); + } } } else if (streaming_data_type_streaming_section == header.streaming_data_type) { streaming_data_streaming_section_header streaming_section_header; @@ -1171,6 +1178,8 @@ int ma_dbus_start_streaming_audio_data(int pid, ma_audio_streaming_data_type_e t dbus_message_unref(msg); + g_streaming_requested = true; + return 0; } @@ -1219,6 +1228,8 @@ int ma_dbus_stop_streaming_audio_data(int pid, ma_audio_streaming_data_type_e ty dbus_message_unref(msg); + g_streaming_requested = false; + return 0; } -- 2.34.1