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);
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;
dbus_message_unref(msg);
+ g_streaming_requested = true;
+
return 0;
}
dbus_message_unref(msg);
+ g_streaming_requested = false;
+
return 0;
}