+ free(speech_data->buffer);
+ free(speech_data);
+}
+
+static void __audio_streaming_cb(mas_speech_streaming_event_e event, unsigned char* buffer, int len, void *user_data)
+{
+ if (event == MAS_SPEECH_STREAMING_EVENT_FAIL) {
+ ecore_main_loop_thread_safe_call_async(handle_speech_streaming_event_failure, NULL);
+ } else {
+ mas_speech_data* data = malloc(sizeof(mas_speech_data));
+ if (data) {
+ data->event = event;
+ data->buffer = malloc(len);
+ if (data->buffer) memcpy(data->buffer, buffer, len);
+ data->len = len;
+ ecore_main_loop_thread_safe_call_async(handle_speech_streaming_event_success, data);
+ }
+ }