From: Ji-hoon Lee Date: Mon, 13 Jan 2020 02:22:34 +0000 (+0900) Subject: Skip calling streaming callbacks for CONTINUE when stopped X-Git-Tag: submit/tizen/20200113.120709^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F46%2F222246%2F1;p=platform%2Fcore%2Fuifw%2Fmulti-assistant.git Skip calling streaming callbacks for CONTINUE when stopped Change-Id: I2e7ba96c415a82381e78dec789f4ef4f72cb94bc --- 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; }