Clear audio data when voice key gets pressed 33/211833/2
authorJi-hoon Lee <dalton.lee@samsung.com>
Fri, 9 Aug 2019 06:43:33 +0000 (15:43 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Mon, 12 Aug 2019 08:04:16 +0000 (17:04 +0900)
Change-Id: I105c93d9c75438b540a3c0e6f8614c034b660749

plugins/wakeup-manager/inc/wakeup_audio_manager.h
plugins/wakeup-manager/src/wakeup_audio_manager.cpp
plugins/wakeup-manager/src/wakeup_manager.cpp

index 0e1bc6ba059f58be5fd2001fb000a0880b376057..d23a1f5b22dc56d26d031e4bbb0d7270fa86e764 100644 (file)
@@ -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();
index d6c1868869d8502f32c1208dc22ae6287e61af1e..1eb189962d8b0d9e43ecce2cca48ecce88e9179d 100644 (file)
@@ -271,6 +271,16 @@ void CAudioManager::finalize_audio_data()
        }
 }
 
+void CAudioManager::clear_audio_data()
+{
+       lock_guard<mutex> 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) {
index 0eaeb2c8983b2ab2f35d9959bad4f7b10ad9ce0d..60dcd4cc99f43062c7645c9ae88167bcd99f0d95 100644 (file)
@@ -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;