From 5d186985a2c3adbba77cacd534bb7ab9949978c9 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 9 Aug 2019 15:43:33 +0900 Subject: [PATCH] Clear audio data when voice key gets pressed Change-Id: I105c93d9c75438b540a3c0e6f8614c034b660749 --- plugins/wakeup-manager/inc/wakeup_audio_manager.h | 1 + plugins/wakeup-manager/src/wakeup_audio_manager.cpp | 10 ++++++++++ plugins/wakeup-manager/src/wakeup_manager.cpp | 2 ++ 3 files changed, 13 insertions(+) diff --git a/plugins/wakeup-manager/inc/wakeup_audio_manager.h b/plugins/wakeup-manager/inc/wakeup_audio_manager.h index 0e1bc6b..d23a1f5 100644 --- a/plugins/wakeup-manager/inc/wakeup_audio_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_audio_manager.h @@ -66,6 +66,7 @@ public: void feed_audio_data(wakeup_speech_streaming_event_e event, void* buffer, int len); void finalize_audio_data(); + void clear_audio_data(); void start_streaming_current_utterance_data(long start_time = 0); void stop_streaming_current_utterance_data(); diff --git a/plugins/wakeup-manager/src/wakeup_audio_manager.cpp b/plugins/wakeup-manager/src/wakeup_audio_manager.cpp index d6c1868..1eb1899 100644 --- a/plugins/wakeup-manager/src/wakeup_audio_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_audio_manager.cpp @@ -271,6 +271,16 @@ void CAudioManager::finalize_audio_data() } } +void CAudioManager::clear_audio_data() +{ + lock_guard lock(mMutex); + + for (const auto &data : mAudioData) { + if (data.data.buffer) free(data.data.buffer); + } + mAudioData.clear(); +} + void CAudioManager::notify_audio_data_recording(long time, void* data, int len) { for (const auto& observer : mObservers) { diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index 0eaeb2c..60dcd4c 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -385,6 +385,8 @@ bool CWakeupManager::process_event(ma_plugin_event_e event, void* data, int len) stop_streaming_utterance_data(); stop_streaming_previous_utterance_data(); stop_streaming_follow_up_data(); + + mAudioManager.clear_audio_data(); change_manager_state(WAKEUP_MANAGER_STATE_UTTERANCE); mVoiceKeyPressed = true; -- 2.34.1