From 7221b868f05816b602529d053b145e84a025db44 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Wed, 26 Aug 2020 11:27:14 +0900 Subject: [PATCH 01/16] Update selected wakeup info based on wakeup engine name Change-Id: Ib9098fd831797fbd1e6c0509438e090f5593a47f --- plugins/wakeup-manager/src/wakeup_engine_manager.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/plugins/wakeup-manager/src/wakeup_engine_manager.cpp b/plugins/wakeup-manager/src/wakeup_engine_manager.cpp index 2765498..09803a8 100644 --- a/plugins/wakeup-manager/src/wakeup_engine_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_engine_manager.cpp @@ -160,14 +160,18 @@ bool CWakeupEngineManager::get_audio_data_required() void CWakeupEngineManager::set_selected_wakeup_info(mas_wakeup_event_info wakeup_info) { mSelectedEngine = nullptr; - for (const auto& info : mEngineInfo) { - string appid = string{wakeup_info.wakeup_appid}; - bool found = contains(info.assistant_list, appid); - if (found) { - mSelectedEngine = &info; - MWR_LOGD("Selected : %s", info.engine_name.c_str()); - } + const auto& iter = find_if(mEngineInfo.begin(), mEngineInfo.end(), + [wakeup_info](const EngineInfo& info) { + if (nullptr == wakeup_info.wakeup_engine) + return false; + + return (0 == info.engine_name.compare(wakeup_info.wakeup_engine)); + }); + + if (iter != mEngineInfo.end()) { + mSelectedEngine = &(*iter); + MWR_LOGD("Selected : %s", iter->engine_name.c_str()); } } -- 2.7.4 From 3cf9d456596c4410baa1a67ffca0e410986d6c80 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Thu, 27 Aug 2020 18:32:15 +0900 Subject: [PATCH 02/16] Bump version to 0.3.9 Change-Id: I64e064c0ed61e3faa6e71ad3d82604abb2ec69ce --- org.tizen.multi-assistant-service.xml | 2 +- packaging/org.tizen.multi-assistant-service.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/org.tizen.multi-assistant-service.xml b/org.tizen.multi-assistant-service.xml index 758e906..1db9ad8 100644 --- a/org.tizen.multi-assistant-service.xml +++ b/org.tizen.multi-assistant-service.xml @@ -1,5 +1,5 @@ - + Won Nam Jang Sooyeon Kim diff --git a/packaging/org.tizen.multi-assistant-service.spec b/packaging/org.tizen.multi-assistant-service.spec index cbd3503..9e6a485 100644 --- a/packaging/org.tizen.multi-assistant-service.spec +++ b/packaging/org.tizen.multi-assistant-service.spec @@ -1,6 +1,6 @@ Name: org.tizen.multi-assistant-service Summary: Multi assistant service -Version: 0.3.8 +Version: 0.3.9 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Flora-1.1 -- 2.7.4 From ac37506f1b804ef4aca67cbcf171cc85f0ba2047 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Thu, 3 Sep 2020 21:00:38 +0900 Subject: [PATCH 03/16] Use appropriate pid when handling streaming failure event Change-Id: I6b2eda900ec9d17c6e37b36f046a8c9bcc0975a4 --- src/service_plugin.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/service_plugin.cpp b/src/service_plugin.cpp index 7f26d00..97ad519 100644 --- a/src/service_plugin.cpp +++ b/src/service_plugin.cpp @@ -342,7 +342,8 @@ void handle_speech_streaming_event_failure(void* data) if (plugin) service_main = plugin->get_service_main(); if (service_main) { - service_main->client_send_recognition_result(0, MA_RECOGNITION_RESULT_EVENT_ERROR); + pid_t pid = service_main->get_current_client_pid(); + service_main->client_send_recognition_result(pid, MA_RECOGNITION_RESULT_EVENT_ERROR); } delete param; -- 2.7.4 From c5141574a82c4ccbf2fd0e9af59c7e53f418ff71 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Thu, 3 Sep 2020 21:33:53 +0900 Subject: [PATCH 04/16] Bump version to 0.3.10 Change-Id: I492c2c5f92d7312b7401bfe0204c4a36ff0ed607 --- org.tizen.multi-assistant-service.xml | 2 +- packaging/org.tizen.multi-assistant-service.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/org.tizen.multi-assistant-service.xml b/org.tizen.multi-assistant-service.xml index 1db9ad8..c0ccb3a 100644 --- a/org.tizen.multi-assistant-service.xml +++ b/org.tizen.multi-assistant-service.xml @@ -1,5 +1,5 @@ - + Won Nam Jang Sooyeon Kim diff --git a/packaging/org.tizen.multi-assistant-service.spec b/packaging/org.tizen.multi-assistant-service.spec index 9e6a485..f933fa9 100644 --- a/packaging/org.tizen.multi-assistant-service.spec +++ b/packaging/org.tizen.multi-assistant-service.spec @@ -1,6 +1,6 @@ Name: org.tizen.multi-assistant-service Summary: Multi assistant service -Version: 0.3.9 +Version: 0.3.10 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Flora-1.1 -- 2.7.4 From 923f2e524890115adf014484f32c24c7229e9ddd Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Wed, 7 Oct 2020 14:05:26 +0900 Subject: [PATCH 05/16] Change log level of some messages for better trackability Change-Id: Iee9c8cbe63735f2003e415689016dd312b78268b --- plugins/wakeup-manager/src/wakeup_manager.cpp | 60 ++++++++--------- .../wakeup-manager/src/wakeup_manager_wrapper.cpp | 76 +++++++++++----------- src/service_main.cpp | 14 ++-- 3 files changed, 75 insertions(+), 75 deletions(-) diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index 5b04280..642ea65 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -100,7 +100,7 @@ void CWakeupManager::initialize_wakeup_policy() bool CWakeupManager::initialize() { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); mPolicyEventObserver.set_wakeup_manager(this); mEngineEventObserver.set_wakeup_manager(this); @@ -184,7 +184,7 @@ void CWakeupManager::unsubscribe_setting_observer(ISettingValueObserver* observe bool CWakeupManager::activate(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (WAKEUP_MANAGER_STATE_INACTIVE != mWakeupManagerState) return false; @@ -204,7 +204,7 @@ bool CWakeupManager::activate(void) bool CWakeupManager::deactivate(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (WAKEUP_MANAGER_STATE_INACTIVE == mWakeupManagerState) return false; @@ -222,7 +222,7 @@ bool CWakeupManager::deactivate(void) bool CWakeupManager::add_assistant_language(string appid, string language) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); bool found = false; for (auto& info : mAssistantLanguageInfo) { if(0 == info.appid.compare(appid)) { @@ -248,7 +248,7 @@ bool CWakeupManager::add_assistant_language(string appid, string language) bool CWakeupManager::add_assistant_wakeup_word(string appid, string wakeup_word, string language) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); mWakeupEngineManager.engine_add_wakeup_word(appid, wakeup_word, language); @@ -258,7 +258,7 @@ bool CWakeupManager::add_assistant_wakeup_word(string appid, string wakeup_word, bool CWakeupManager::remove_assistant_wakeup_word(string appid, string wakeup_word, string language) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); mWakeupEngineManager.engine_remove_wakeup_word(appid, wakeup_word, language); @@ -268,7 +268,7 @@ bool CWakeupManager::remove_assistant_wakeup_word(string appid, string wakeup_wo bool CWakeupManager::set_assistant_wakeup_engine(string appid, string engine) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); mWakeupEngineManager.engine_add_target_assistant(engine, appid); @@ -278,7 +278,7 @@ bool CWakeupManager::set_assistant_wakeup_engine(string appid, string engine) bool CWakeupManager::set_assistant_language(string appid, string language) { - MWR_LOGD("[ENTER] : %s, %s", appid.c_str(), language.c_str()); + MWR_LOGI("[ENTER] : %s, %s", appid.c_str(), language.c_str()); mWakeupEngineManager.set_assistant_language(appid, language); mAssistantConfigManager.set_assistant_language(appid, language); @@ -289,7 +289,7 @@ bool CWakeupManager::set_assistant_language(string appid, string language) bool CWakeupManager::set_assistant_enabled(string appid, bool enabled) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); mAssistantEnabled[appid] = enabled; bool activated = enabled; @@ -307,7 +307,7 @@ bool CWakeupManager::set_assistant_enabled(string appid, bool enabled) bool CWakeupManager::set_default_assistant(string appid) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); /* Check if previous default assistant has to be deactivated */ bool activated = true; @@ -340,7 +340,7 @@ bool CWakeupManager::get_assistant_enabled(string appid) bool CWakeupManager::set_language(string language) { bool valid = false; - MWR_LOGD("[ENTER] : %s", language.c_str()); + MWR_LOGI("[ENTER] : %s", language.c_str()); if (check_language_valid(language)) { mCurrentLanguage = language; @@ -420,7 +420,7 @@ wakeup_manager_state_e CWakeupManager::get_manager_state() bool CWakeupManager::update_voice_feedback_state(string appid, bool state) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (state) { if (WAKEUP_MANAGER_STATE_LISTENING == mWakeupManagerState || @@ -439,7 +439,7 @@ bool CWakeupManager::update_voice_feedback_state(string appid, bool state) bool CWakeupManager::set_assistant_specific_command(string appid, string command) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); /* static const string voice_key_pressed{"voice_key_pressed"}; @@ -469,7 +469,7 @@ bool CWakeupManager::set_background_volume(string appid, double ratio) bool CWakeupManager::update_recognition_result(string appid, int result) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); stop_streaming_utterance_data(); stop_streaming_previous_utterance_data(); @@ -511,7 +511,7 @@ bool CWakeupManager::change_voice_key_status(ma_voice_key_status_e status) { bool CWakeupManager::process_plugin_event(mas_plugin_event_e event, void* data, int len) { - MWR_LOGD("[ENTER] : %d", event); + MWR_LOGI("[ENTER] : %d", event); if (WAKEUP_MANAGER_STATE_INACTIVE == mWakeupManagerState) return false; @@ -653,7 +653,7 @@ static Eina_Bool streaming_duration_expired(void *data) bool CWakeupManager::start_streaming_utterance_data() { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); mAudioManager.stop_streaming_current_utterance_data(); mWakeupEngineManager.stop_streaming_current_utterance_data(); @@ -679,7 +679,7 @@ bool CWakeupManager::start_streaming_utterance_data() bool CWakeupManager::stop_streaming_utterance_data() { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (STREAMING_MODE::UTTERANCE != mStreamingMode) return false; mAudioManager.stop_streaming_current_utterance_data(); @@ -701,7 +701,7 @@ bool CWakeupManager::stop_streaming_utterance_data() bool CWakeupManager::start_streaming_follow_up_data() { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); mAudioManager.stop_streaming_follow_up_data(); mWakeupEngineManager.stop_streaming_current_utterance_data(); @@ -726,7 +726,7 @@ bool CWakeupManager::start_streaming_follow_up_data() bool CWakeupManager::stop_streaming_follow_up_data() { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (STREAMING_MODE::FOLLOW_UP != mStreamingMode) return false; mAudioManager.stop_streaming_follow_up_data(); @@ -753,7 +753,7 @@ bool CWakeupManager::stop_streaming_follow_up_data() bool CWakeupManager::start_streaming_previous_utterance_data() { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); mAudioManager.stop_streaming_previous_utterance_data(); mWakeupEngineManager.stop_streaming_current_utterance_data(); @@ -770,7 +770,7 @@ bool CWakeupManager::start_streaming_previous_utterance_data() bool CWakeupManager::stop_streaming_previous_utterance_data() { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (STREAMING_MODE::PREVIOUS_UTTERANCE != mStreamingMode) return false; mAudioManager.stop_streaming_previous_utterance_data(); @@ -792,7 +792,7 @@ bool CWakeupManager::stop_streaming_previous_utterance_data() bool CWakeupManager::get_audio_format(int* rate, int* channel, int* audio_type) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (!audio_type || !rate || !channel) { MWR_LOGE("[ERROR] Invalid parameter"); @@ -807,7 +807,7 @@ bool CWakeupManager::get_audio_format(int* rate, int* channel, int* audio_type) bool CWakeupManager::get_audio_source_type(char** type) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (!type) { MWR_LOGE("[ERROR] Invalid parameter"); @@ -822,7 +822,7 @@ bool CWakeupManager::get_audio_source_type(char** type) bool CWakeupManager::set_wake_word_audio_require_flag(bool require) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); mWakeupEngineManager.set_wake_word_audio_require_flag(require); @@ -832,7 +832,7 @@ bool CWakeupManager::set_wake_word_audio_require_flag(bool require) bool CWakeupManager::set_voice_key_tap_duration(float duration) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); dependency_resolver_set_voice_key_tap_duration(duration); @@ -842,7 +842,7 @@ bool CWakeupManager::set_voice_key_tap_duration(float duration) bool CWakeupManager::unset_voice_key_tap_duration() { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); dependency_resolver_unset_voice_key_tap_duration(); @@ -936,7 +936,7 @@ Ecore_Timer* CWakeupManager::get_streaming_duration_timer() bool CWakeupManager::CEngineEventObserver::on_wakeup_event(string engine_name, mas_wakeup_event_info wakeup_info) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == mWakeupManager) return false; if (nullptr == wakeup_info.wakeup_appid) return false; @@ -956,7 +956,7 @@ bool CWakeupManager::CEngineEventObserver::on_wakeup_event(string engine_name, m bool CWakeupManager::CEngineEventObserver::on_speech_status(string engine_name, mas_speech_status_e status) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == mWakeupManager) return false; return true; @@ -964,7 +964,7 @@ bool CWakeupManager::CEngineEventObserver::on_speech_status(string engine_name, bool CWakeupManager::CEngineEventObserver::on_error(string engine_name, int error_code, string error_message) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == mWakeupManager) return false; return true; @@ -972,7 +972,7 @@ bool CWakeupManager::CEngineEventObserver::on_error(string engine_name, int erro bool CWakeupManager::CEngineEventObserver::on_audio_data_require_status(string engine_name, bool require) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == mWakeupManager) return false; if (WAKEUP_MANAGER_STATE_INACTIVE == mWakeupManager->get_manager_state()) return false; diff --git a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp index 423561d..922a403 100644 --- a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp @@ -77,7 +77,7 @@ static std::unique_ptr g_wakeup_manager; int wakeup_manager_initialize(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); try { g_wakeup_event_observer.reset(new CWakeupEventObserver); @@ -174,7 +174,7 @@ int wakeup_manager_get_settings(ma_plugin_settings **settings, size_t *struct_si int wakeup_manager_add_assistant_wakeup_word(const char* appid, const char* wakeup_word, const char* language) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == appid || NULL == wakeup_word) { MWR_LOGD("[ERROR] Parameter is invalid, appid(%s), wakeup_word(%s), language(%s)", appid, wakeup_word, language); @@ -191,7 +191,7 @@ int wakeup_manager_add_assistant_wakeup_word(const char* appid, const char* wake int wakeup_manager_remove_assistant_wakeup_word(const char* appid, const char* wakeup_word, const char* language) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == appid || NULL == wakeup_word) { MWR_LOGD("[ERROR] Parameter is invalid, appid(%s), wakeup_word(%s), language(%s)", appid, wakeup_word, language); @@ -208,7 +208,7 @@ int wakeup_manager_remove_assistant_wakeup_word(const char* appid, const char* w int wakeup_manager_add_assistant_language(const char* appid, const char* language) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == appid || NULL == language) { MWR_LOGD("[ERROR] Parameter is invalid, appid(%s), language(%s)", appid, language); @@ -226,7 +226,7 @@ int wakeup_manager_add_assistant_language(const char* appid, const char* languag int wakeup_manager_set_assistant_wakeup_engine(const char* appid, const char* engine) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == appid || NULL == engine) { MWR_LOGD("[ERROR] Parameter is invalid, appid(%s), wakeup engine(%s)", appid, engine); @@ -243,7 +243,7 @@ int wakeup_manager_set_assistant_wakeup_engine(const char* appid, const char* en int wakeup_manager_set_default_assistant(const char* appid) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == appid) { MWR_LOGD("[ERROR] Parameter is NULL"); @@ -275,7 +275,7 @@ int wakeup_manager_get_default_assistant(const char** appid) int wakeup_manager_set_language(const char* language) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == language) { MWR_LOGD("[ERROR] Parameter is NULL"); @@ -298,7 +298,7 @@ int wakeup_manager_change_state(wakeup_manager_state_e state) int wakeup_manager_activate(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->activate(); @@ -309,7 +309,7 @@ int wakeup_manager_activate(void) int wakeup_manager_deactivate(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->deactivate(); @@ -320,7 +320,7 @@ int wakeup_manager_deactivate(void) int wakeup_manager_update_voice_feedback_state(const char* appid, int state) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); string appid_string; if (NULL == appid) { @@ -338,7 +338,7 @@ int wakeup_manager_update_voice_feedback_state(const char* appid, int state) int wakeup_manager_set_assistant_specific_command(const char* appid, const char* command) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); string appid_string; string command_string; @@ -357,7 +357,7 @@ int wakeup_manager_set_assistant_specific_command(const char* appid, const char* int wakeup_manager_set_background_volume(const char* appid, double ratio) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); string appid_string; if (NULL == appid) { @@ -375,7 +375,7 @@ int wakeup_manager_set_background_volume(const char* appid, double ratio) int wakeup_manager_update_recognition_result(const char* appid, int result) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); string appid_string; if (NULL == appid) { @@ -393,7 +393,7 @@ int wakeup_manager_update_recognition_result(const char* appid, int result) int wakeup_manager_process_plugin_event(mas_plugin_event_e event, void* data, int len) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->process_plugin_event(event, data, len); @@ -404,7 +404,7 @@ int wakeup_manager_process_plugin_event(mas_plugin_event_e event, void* data, in int wakeup_manager_start_streaming_utterance_data(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->start_streaming_utterance_data(); @@ -415,7 +415,7 @@ int wakeup_manager_start_streaming_utterance_data(void) int wakeup_manager_stop_streaming_utterance_data(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->stop_streaming_utterance_data(); @@ -426,7 +426,7 @@ int wakeup_manager_stop_streaming_utterance_data(void) int wakeup_manager_start_streaming_follow_up_data(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->start_streaming_follow_up_data(); @@ -437,7 +437,7 @@ int wakeup_manager_start_streaming_follow_up_data(void) int wakeup_manager_stop_streaming_follow_up_data(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->stop_streaming_follow_up_data(); @@ -448,7 +448,7 @@ int wakeup_manager_stop_streaming_follow_up_data(void) int wakeup_manager_start_streaming_previous_utterance_data(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->start_streaming_previous_utterance_data(); @@ -459,7 +459,7 @@ int wakeup_manager_start_streaming_previous_utterance_data(void) int wakeup_manager_stop_streaming_previous_utterance_data(void) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->stop_streaming_previous_utterance_data(); @@ -470,7 +470,7 @@ int wakeup_manager_stop_streaming_previous_utterance_data(void) int wakeup_manager_get_audio_format(int* rate, int* channel, int* audio_type) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (!audio_type || !rate || !channel) { MWR_LOGE("[ERROR] Invalid parameter"); @@ -486,7 +486,7 @@ int wakeup_manager_get_audio_format(int* rate, int* channel, int* audio_type) int wakeup_manager_get_audio_source_type(char** type) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (!type) { MWR_LOGE("[ERROR] Invalid parameter"); @@ -502,7 +502,7 @@ int wakeup_manager_get_audio_source_type(char** type) int wakeup_manager_set_voice_key_tap_duration(float duration) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->set_voice_key_tap_duration(duration); @@ -513,7 +513,7 @@ int wakeup_manager_set_voice_key_tap_duration(float duration) int wakeup_manager_unset_voice_key_tap_duration() { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->unset_voice_key_tap_duration(); @@ -524,7 +524,7 @@ int wakeup_manager_unset_voice_key_tap_duration() int wakeup_manager_set_voice_key_support_mode(int mode) { - MWR_LOGD("[ENTER] : %d", mode); + MWR_LOGI("[ENTER] : %d", mode); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->set_voice_key_support_mode(static_cast(mode)); @@ -535,7 +535,7 @@ int wakeup_manager_set_voice_key_support_mode(int mode) int wakeup_manager_set_wake_word_audio_require_flag(bool require) { - MWR_LOGD("[ENTER] : %d", require); + MWR_LOGI("[ENTER] : %d", require); if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->set_wake_word_audio_require_flag(require); @@ -546,7 +546,7 @@ int wakeup_manager_set_wake_word_audio_require_flag(bool require) int wakeup_manager_set_assistant_language(const char* appid, const char* language) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); string appid_string; string language_string; @@ -566,7 +566,7 @@ int wakeup_manager_set_assistant_language(const char* appid, const char* languag int wakeup_manager_set_wakeup_event_callback(wakeup_service_wakeup_event_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -582,7 +582,7 @@ int wakeup_manager_set_wakeup_event_callback(wakeup_service_wakeup_event_cb call int wakeup_manager_set_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -598,7 +598,7 @@ int wakeup_manager_set_utterance_streaming_callback(wakeup_service_speech_stream int wakeup_manager_set_previous_utterance_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -614,7 +614,7 @@ int wakeup_manager_set_previous_utterance_streaming_callback(wakeup_service_spee int wakeup_manager_set_follow_up_streaming_callback(wakeup_service_speech_streaming_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -630,7 +630,7 @@ int wakeup_manager_set_follow_up_streaming_callback(wakeup_service_speech_stream int wakeup_manager_set_speech_status_callback(wakeup_service_speech_status_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -646,7 +646,7 @@ int wakeup_manager_set_speech_status_callback(wakeup_service_speech_status_cb ca int wakeup_manager_set_setting_changed_callback(wakeup_service_setting_changed_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -662,7 +662,7 @@ int wakeup_manager_set_setting_changed_callback(wakeup_service_setting_changed_c int wakeup_manager_set_error_callback(wakeup_service_error_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -678,7 +678,7 @@ int wakeup_manager_set_error_callback(wakeup_service_error_cb callback, void* us int wakeup_manager_set_streaming_section_changed_callback(wakeup_service_streaming_section_changed_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -694,7 +694,7 @@ int wakeup_manager_set_streaming_section_changed_callback(wakeup_service_streami int wakeup_manager_set_wakeup_engine_command_callback(wakeup_service_engine_command_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -710,7 +710,7 @@ int wakeup_manager_set_wakeup_engine_command_callback(wakeup_service_engine_comm int wakeup_manager_set_wakeup_service_state_changed_callback(wakeup_service_state_changed_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); @@ -726,7 +726,7 @@ int wakeup_manager_set_wakeup_service_state_changed_callback(wakeup_service_stat int wakeup_manager_set_voice_key_status_changed_callback(wakeup_service_voice_key_status_changed_cb callback, void* user_data) { - MWR_LOGD("[ENTER]"); + MWR_LOGI("[ENTER]"); if (NULL == callback) { MWR_LOGE("[ERROR] Input parameter is NULL"); diff --git a/src/service_main.cpp b/src/service_main.cpp index bbf3098..1adff91 100644 --- a/src/service_main.cpp +++ b/src/service_main.cpp @@ -94,7 +94,7 @@ bool CServiceMain::is_current_preprocessing_assistant(const char* appid) int CServiceMain::client_get_audio_format(pid_t pid, int* rate, int* channel, int* audio_type) { - MAS_LOGD("[Enter] pid(%d)", pid); + MAS_LOGI("[Enter] pid(%d)", pid); int ret = mServicePlugin.get_recording_audio_format(rate, channel, audio_type); if (0 != ret){ @@ -107,7 +107,7 @@ int CServiceMain::client_get_audio_format(pid_t pid, int* rate, int* channel, in #define MAX_LOCAL_VARIABLE_STRING_LEN 256 int CServiceMain::client_get_audio_source_type(pid_t pid, char** type) { - MAS_LOGD("[Enter] pid(%d)", pid); + MAS_LOGI("[Enter] pid(%d)", pid); if (NULL == type) return -1; @@ -127,7 +127,7 @@ int CServiceMain::client_get_audio_source_type(pid_t pid, char** type) int CServiceMain::client_send_preprocessing_information(pid_t pid) { int ret = -1; - MAS_LOGD("[Enter] pid(%d)", pid); + MAS_LOGI("[Enter] pid(%d)", pid); boost::optional preprocessing_appid = mPreferenceManager.get_string(WAKEUP_SETTINGS_KEY_PREPROCESSING_ASSISTANT_APPID); @@ -142,7 +142,7 @@ int CServiceMain::client_send_preprocessing_information(pid_t pid) int CServiceMain::client_send_voice_key_status_change(pid_t pid, ma_voice_key_status_e status) { int ret = -1; - MAS_LOGD("[Enter] pid(%d)", pid); + MAS_LOGI("[Enter] pid(%d)", pid); ret = mServiceIpc.change_voice_key_status(pid, status); if (0 != ret) { @@ -155,7 +155,7 @@ int CServiceMain::client_send_voice_key_status_change(pid_t pid, ma_voice_key_st int CServiceMain::client_send_asr_result(pid_t pid, int event, const char* asr_result) { - MAS_LOGD("[Enter] pid(%d), event(%d), asr_result(%s)", pid, event, asr_result); + MAS_LOGI("[Enter] pid(%d), event(%d), asr_result(%s)", pid, event, asr_result); if (!is_current_assistant(pid)) return -1; bool ui_panel_enabled = mServicePlugin.is_ui_panel_enabled(); @@ -175,7 +175,7 @@ int CServiceMain::client_send_asr_result(pid_t pid, int event, const char* asr_r int CServiceMain::client_send_result(pid_t pid, const char* display_text, const char* utterance_text, const char* result_json) { - MAS_LOGD("[Enter] pid(%d), display_text(%s), utterance_text(%s), result_json(%s)", pid, display_text, utterance_text, result_json); + MAS_LOGI("[Enter] pid(%d), display_text(%s), utterance_text(%s), result_json(%s)", pid, display_text, utterance_text, result_json); if (!is_current_assistant(pid)) return -1; bool ui_panel_enabled = mServicePlugin.is_ui_panel_enabled(); @@ -199,7 +199,7 @@ int CServiceMain::client_send_result(pid_t pid, const char* display_text, int CServiceMain::client_send_recognition_result(pid_t pid, int result) { - MAS_LOGD("[Enter] pid(%d), result(%d)", pid, result); + MAS_LOGI("[Enter] pid(%d), result(%d)", pid, result); if (!is_current_assistant(pid)) return -1; bool ui_panel_enabled = mServicePlugin.is_ui_panel_enabled(); -- 2.7.4 From 64096eaeb823ebae42ea9687f7bdce672b55299f Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Thu, 5 Nov 2020 17:22:17 +0900 Subject: [PATCH 06/16] Prevent audio streaming when there is no data available Change-Id: I2f01e72f0c636b951bab414b99c2f0e0469faaec --- .../wakeup-manager/src/wakeup_audio_manager.cpp | 41 +++++++++++++--------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/plugins/wakeup-manager/src/wakeup_audio_manager.cpp b/plugins/wakeup-manager/src/wakeup_audio_manager.cpp index 8646a88..c110c01 100644 --- a/plugins/wakeup-manager/src/wakeup_audio_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_audio_manager.cpp @@ -116,7 +116,9 @@ void CAudioManager::sound_focus_changed() void CAudioManager::subscribe(IAudioEventObserver *observer) { - mObservers.push_back(observer); + if (observer) { + mObservers.push_back(observer); + } } void CAudioManager::unsubscribe(IAudioEventObserver *observer) @@ -217,7 +219,7 @@ void CAudioManager::streaming_audio_data_thread_func(long long start_time) iter = lead; advance(lead, 1); } - MWR_LOGD("data_count : %zu", mAudioData.size()); + MWR_LOGI("data_count : %zu", mAudioData.size()); lock.unlock(); while (!(mStopStreamingThread.load())) { @@ -275,27 +277,32 @@ void CAudioManager::streaming_audio_data_thread_func(long long start_time) continue; } - iter = lead; - /* FIXME : Extracted audio data here should be used as previous audio data*/ - mas_speech_data& speech_data = iter->data; - for (const auto& observer : mObservers) { - if (observer) { - if (!observer->on_streaming_audio_data( - speech_data.event, speech_data.buffer, speech_data.len)) { - LOGE("[Recorder WARNING] One of the observer returned false"); + lock.lock(); + end = mAudioData.end(); + + if (lead != end) { + iter = lead; + mas_speech_data& speech_data = iter->data; + for (const auto& observer : mObservers) { + if (observer) { + if (!observer->on_streaming_audio_data( + speech_data.event, speech_data.buffer, speech_data.len)) { + LOGE("[Recorder WARNING] One of the observer returned false"); + } } } - } - if (MAS_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) { - MWR_LOGI("[INFO] Finish to get and send speech data"); - finish_event_sent = true; - break; - } + if (MAS_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) { + MWR_LOGI("[INFO] Finish to get and send speech data"); + finish_event_sent = true; + break; + } - advance(lead, 1); + advance(lead, 1); + } + lock.unlock(); } if (true != finish_event_sent) { -- 2.7.4 From ea194c64b906c6e2666974f8c224a5fc622705e5 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Thu, 5 Nov 2020 17:22:25 +0900 Subject: [PATCH 07/16] Bump version to 0.3.11 Change-Id: I08800124b2e073c817b5c03ba6dea759f451bf12 --- org.tizen.multi-assistant-service.xml | 2 +- packaging/org.tizen.multi-assistant-service.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/org.tizen.multi-assistant-service.xml b/org.tizen.multi-assistant-service.xml index c0ccb3a..4f4e7aa 100644 --- a/org.tizen.multi-assistant-service.xml +++ b/org.tizen.multi-assistant-service.xml @@ -1,5 +1,5 @@ - + Won Nam Jang Sooyeon Kim diff --git a/packaging/org.tizen.multi-assistant-service.spec b/packaging/org.tizen.multi-assistant-service.spec index f933fa9..beb4a22 100644 --- a/packaging/org.tizen.multi-assistant-service.spec +++ b/packaging/org.tizen.multi-assistant-service.spec @@ -1,6 +1,6 @@ Name: org.tizen.multi-assistant-service Summary: Multi assistant service -Version: 0.3.10 +Version: 0.3.11 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Flora-1.1 -- 2.7.4 From 644fabbbfb305a6a9c5665267972e48572a037b4 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Tue, 1 Dec 2020 13:48:37 +0900 Subject: [PATCH 08/16] Add try-catch statements for handling exceptions Change-Id: Ib7309102e3e7a533bc532ff7f20ac75452ac2af9 --- src/main.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 33129a9..8b32458 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -14,6 +14,7 @@ * limitations under the License. */ +#include #include #include @@ -80,7 +81,12 @@ int main(int argc, char* argv[]) service_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, service_app_lang_changed, &ad); service_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, service_app_region_changed, &ad); - int ret = service_app_main(argc, argv, &event_callback, ad); + int ret = 0; + try { + ret = service_app_main(argc, argv, &event_callback, ad); + } catch (const std::exception& e) { + LOGE("Exception caught : %s", e.what()); + } LOGI("Main function exits with : %d", ret); return ret; } -- 2.7.4 From 8b1576cd5ef691253fc0ce824bef45a10019737c Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Wed, 2 Dec 2020 16:49:37 +0900 Subject: [PATCH 09/16] Remove unnecessary FINISH event emission on timeout Change-Id: I2ee7f8157aa5115f50653fadef27b23d127888cd --- plugins/wakeup-manager/src/wakeup_manager.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index 642ea65..5399c78 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -636,12 +636,6 @@ static Eina_Bool streaming_duration_expired(void *data) break; } - unsigned char final_buffer[2] = {'\0', }; - vector observers = wakeup_manager->get_wakeup_observers(); - for (const auto& observer : observers) { - observer->on_streaming_audio_data( - MAS_SPEECH_STREAMING_EVENT_FINISH, final_buffer, sizeof(final_buffer)); - } wakeup_manager->set_streaming_mode(STREAMING_MODE::NONE); if (WAKEUP_MANAGER_STATE_UTTERANCE == wakeup_manager->get_manager_state()) { -- 2.7.4 From 7fe11c55ddcb53d534b0bd95f82ef5647e831d40 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Wed, 2 Dec 2020 18:11:27 +0900 Subject: [PATCH 10/16] Remove unnecessary log messages from INFO tag Change-Id: I53375ef3e1f4f1bebe19b70bc6a43b3a71235fde --- src/client_manager.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/client_manager.cpp b/src/client_manager.cpp index 18339df..2fd5b61 100644 --- a/src/client_manager.cpp +++ b/src/client_manager.cpp @@ -75,7 +75,7 @@ int CClientManager::destroy_client_by_appid(std::string appid) ma_client_s* CClientManager::find_client_by_appid(std::string appid) { - MAS_LOGI("Looking for client with appid : %s", appid.c_str()); + MAS_LOGD("Looking for client with appid : %s", appid.c_str()); ma_client_s *data = NULL; int count = g_slist_length(mClientList); @@ -86,7 +86,7 @@ ma_client_s* CClientManager::find_client_by_appid(std::string appid) if (NULL != data) { if (0 == appid.compare(data->appid)) { - MAS_LOGI("Found client : %s %d", data->appid.c_str(), data->pid); + MAS_LOGD("Found client : %s %d", data->appid.c_str(), data->pid); return data; } } @@ -141,7 +141,7 @@ pid_t CClientManager::find_client_pid_by_index(unsigned int index) pid_t CClientManager::find_client_pid_by_appid(std::string appid) { - MAS_LOGI("Checking PID of appid : %s", appid.c_str()); + MAS_LOGD("Checking PID of appid : %s", appid.c_str()); pid_t pid = -1; if (nullptr == mApplicationManager) { @@ -151,7 +151,7 @@ pid_t CClientManager::find_client_pid_by_appid(std::string appid) ma_client_s* client = find_client_by_appid(appid); if (client) { - MAS_LOGI("Found client : %s %d", client->appid.c_str(), client->pid); + MAS_LOGD("Found client : %s %d", client->appid.c_str(), client->pid); bool running = mApplicationManager->is_application_running(client->pid); if (false == running) { MAS_LOGE("The PID for %s was %d, but it seems to be terminated", @@ -160,6 +160,9 @@ pid_t CClientManager::find_client_pid_by_appid(std::string appid) pid = client->pid; } } + if (-1 == pid) { + MAS_LOGE("PID lookup failed for : %s", appid.c_str()); + } return pid; } -- 2.7.4 From 45d9a3e1ab5a8273937c3f80704196446cf059b7 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Wed, 2 Dec 2020 19:27:32 +0900 Subject: [PATCH 11/16] Enable heap tracer and disallow free'ing unmanaged chunks Change-Id: If153dcbe74fc218c1c06228e14a10019dbaaf9b3 --- plugins/wakeup-manager/src/heap_tracer.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/wakeup-manager/src/heap_tracer.cpp b/plugins/wakeup-manager/src/heap_tracer.cpp index acf5bc6..fc24d84 100644 --- a/plugins/wakeup-manager/src/heap_tracer.cpp +++ b/plugins/wakeup-manager/src/heap_tracer.cpp @@ -18,7 +18,8 @@ const bool HEAP_TRACER_LOG_ENABLED = false ; #define DESCRIPTION_LENGTH 255 -//#define USE_HEAP_TRACER +#define USE_HEAP_TRACER +//#define ALLOW_FREE_UNMANAGED //#define RECORD_ALL_HISTORY void* vm_calloc(size_t nmemb, size_t size, const char *fmt, ...) @@ -60,14 +61,24 @@ void vm_free(void *ptr, const char *fmt, ...) va_list argptr; va_start(argptr, fmt); + bool managed = true; char description[DESCRIPTION_LENGTH]; vsnprintf(description, sizeof(description), fmt, argptr); if (false == _tracer.Delete(ptr, description)) { + managed = false; _tracer.Find(ptr); } - va_end(argptr); +#ifdef ALLOW_FREE_UNMANAGED + free(ptr); +#else + if (managed) { + free(ptr); + } #endif + va_end(argptr); +#else free(ptr); +#endif } else { LOGD("Trying to free a null pointer"); } -- 2.7.4 From 070192d25da12e8b67de6e596ca521d8e775fb6e Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Wed, 2 Dec 2020 19:27:57 +0900 Subject: [PATCH 12/16] Bump version to 0.3.12 Change-Id: Ie0a617563a3e7bc93f7a5c807349b129c1c209f9 --- org.tizen.multi-assistant-service.xml | 2 +- packaging/org.tizen.multi-assistant-service.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/org.tizen.multi-assistant-service.xml b/org.tizen.multi-assistant-service.xml index 4f4e7aa..d0e72d1 100644 --- a/org.tizen.multi-assistant-service.xml +++ b/org.tizen.multi-assistant-service.xml @@ -1,5 +1,5 @@ - + Won Nam Jang Sooyeon Kim diff --git a/packaging/org.tizen.multi-assistant-service.spec b/packaging/org.tizen.multi-assistant-service.spec index beb4a22..27c266d 100644 --- a/packaging/org.tizen.multi-assistant-service.spec +++ b/packaging/org.tizen.multi-assistant-service.spec @@ -1,6 +1,6 @@ Name: org.tizen.multi-assistant-service Summary: Multi assistant service -Version: 0.3.11 +Version: 0.3.12 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Flora-1.1 -- 2.7.4 From be865c6d6b35e58e2f6bc70042e8d141a3cf7238 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Thu, 3 Dec 2020 22:00:57 +0900 Subject: [PATCH 13/16] Add periodic log for audio feeding events Change-Id: I1e1b8d22a4a71b2175ba79f04c40b0991f6a4e70 --- plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp index 922a403..d88dd34 100644 --- a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp @@ -743,7 +743,20 @@ int wakeup_manager_set_voice_key_status_changed_callback(wakeup_service_voice_ke int wakeup_manager_feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len) { if (nullptr == g_wakeup_manager) return -1; + + static unsigned int num = 0; + const std::chrono::seconds interval(5); + static auto last = std::chrono::steady_clock::now(); + auto now = std::chrono::steady_clock::now(); + if (now - last > interval) { + MWR_LOGI("Feeding audio data : num(%d), now(%" PRId64 ")", + num, now.time_since_epoch().count()); + last = now; + } + num++; + g_wakeup_manager->feed_audio_data(event, buffer, len); + return 0; } -- 2.7.4 From d92269fb4c619356fcfc6356a2cbbe77978d6daa Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 4 Dec 2020 17:13:45 +0900 Subject: [PATCH 14/16] Add more logs that can help analyzing various issues Change-Id: Ic69134d9673f15aa01b7f9ac71cbad37cafbf301 --- plugins/wakeup-manager/src/wakeup_engine_manager.cpp | 12 ++++++++---- src/service_main.cpp | 4 +++- src/service_plugin.cpp | 16 +++++++--------- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/plugins/wakeup-manager/src/wakeup_engine_manager.cpp b/plugins/wakeup-manager/src/wakeup_engine_manager.cpp index 09803a8..56c06ca 100644 --- a/plugins/wakeup-manager/src/wakeup_engine_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_engine_manager.cpp @@ -892,10 +892,6 @@ void CWakeupEngineManager::add_engine(string name, string path) /* All the necessary information has already been set properly */ mEngineInfo.push_back(info); - MWR_LOGD("Initializing wakeup engine : %s %p", - info.engine_path.c_str(), - info.interface.initialize); - /* Workaround for registering C-style callbacks */ typedef struct { CWakeupEngineManager *manager; @@ -909,10 +905,16 @@ void CWakeupEngineManager::add_engine(string name, string path) user_data.engine_name = info.engine_name; callback_user_data.push_back(user_data); + MWR_LOGI("Initializing wakeup engine : %s %p %p", + info.engine_path.c_str(), + info.interface.initialize, + &callback_user_data.back()); + try { if (info.interface.set_wakeup_event_callback) { info.interface.set_wakeup_event_callback( [](mas_wakeup_event_info info, void* user_data) { + MWR_LOGI("user_data : %p", user_data); CallbackUserData *data = static_cast(user_data); if (nullptr == data) return; if (nullptr == data->manager) return; @@ -924,6 +926,7 @@ void CWakeupEngineManager::add_engine(string name, string path) if (info.interface.set_audio_data_require_status_callback) { info.interface.set_audio_data_require_status_callback( [](bool require, void* user_data) { + MWR_LOGI("user_data : %p", user_data); CallbackUserData *data = static_cast(user_data); if (nullptr == data) return; if (nullptr == data->manager) return; @@ -935,6 +938,7 @@ void CWakeupEngineManager::add_engine(string name, string path) info.interface.set_wakeup_engine_command_callback( [](mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data) { + MWR_LOGI("user_data : %p", user_data); CallbackUserData* data = static_cast(user_data); if (nullptr == data) return; if (nullptr == data->manager) return; diff --git a/src/service_main.cpp b/src/service_main.cpp index 1adff91..3a617ae 100644 --- a/src/service_main.cpp +++ b/src/service_main.cpp @@ -602,7 +602,7 @@ static void active_state_changed_cb(std::string key, void* user_data) boost::optional activated = manager->get_bool(MULTI_ASSISTANT_SETTINGS_ACTIVATED); if (activated) { - MAS_LOGD("multi-assistant active state : %d\n", *activated); + MAS_LOGI("multi-assistant active state : %d\n", *activated); CServicePlugin *plugin = nullptr; if (g_service_main) { @@ -617,6 +617,8 @@ static void active_state_changed_cb(std::string key, void* user_data) } else { MAS_LOGE("Could not change plugin state : %p %p", g_service_main, plugin); } + } else { + MAS_LOGE("Get value failed for : %s", MULTI_ASSISTANT_SETTINGS_ACTIVATED); } } diff --git a/src/service_plugin.cpp b/src/service_plugin.cpp index 97ad519..6f820c6 100644 --- a/src/service_plugin.cpp +++ b/src/service_plugin.cpp @@ -94,7 +94,7 @@ static void process_wakeup_event_by_appid_timer(void* data) AsyncParam* param = static_cast(data); char* appid = static_cast(param->data); - MAS_LOGD("[ENTER] appid(%s), id(%d), g_last_wakeup_event_id(%d)", + MAS_LOGI("[ENTER] appid(%s), id(%d), g_last_wakeup_event_id(%d)", appid, param->id, g_last_wakeup_event_id); if (!appid) { @@ -134,7 +134,7 @@ static void process_wakeup_event_by_appid_timer(void* data) service_main->process_preprocessing_state_event(PREPROCESSING_STATE_EVENT_ASSISTANT_ACTIVATED); } else { // Appropriate MA Client not available, trying to launch new one - MAS_LOGD("MA Client with appid %s does not exist, launching client", appid); + MAS_LOGI("MA Client with appid %s does not exist, launching client", appid); service_main->launch_client_by_appid(appid, CLIENT_LAUNCH_MODE_ACTIVATION); } } @@ -148,7 +148,7 @@ static void process_wakeup_event_by_word_timer(void* data) if (nullptr == data) return; AsyncParam* param = static_cast(data); - MAS_LOGD("[ENTER] wakeword(%s), id(%d)", (const char*)(param->data), param->id); + MAS_LOGI("[ENTER] wakeword(%s), id(%d)", (const char*)(param->data), param->id); if (!param->data) { delete param; @@ -182,14 +182,13 @@ static void process_wakeup_event_by_word_timer(void* data) } } - MAS_LOGD("END"); + MAS_LOGI("END"); return; } static void __wakeup_event_cb(mas_wakeup_event_info wakeup_info, void* user_data) { - MAS_LOGD("dalton debug : %p", user_data); - MAS_LOGD("[SUCCESS] __wakeup_event_cb is called, wakeup_word(%s)", wakeup_info.wakeup_word); + MAS_LOGI("[SUCCESS] __wakeup_event_cb is called, wakeup_word(%s)", wakeup_info.wakeup_word); int ret = -1; CServicePlugin *plugin = static_cast(user_data); @@ -425,7 +424,7 @@ static void __speech_status_cb(mas_speech_status_e status, void *user_data) static void __error_cb(int error, const char* err_msg, void* user_data) { - MAS_LOGD("[SUCCESS] __error_cb is called, error(%d), err_msg(%s)", error, err_msg); + MAS_LOGE("[SUCCESS] __error_cb is called, error(%d), err_msg(%s)", error, err_msg); CServicePlugin *plugin = static_cast(user_data); if (nullptr == plugin) return; @@ -454,7 +453,7 @@ static void __setting_changed_cb(void *user_data) static void __streaming_section_changed_cb(ma_audio_streaming_data_section_e section, void* user_data) { - MAS_LOGD("[SUCCESS] __streaming_section_changed_cb is called, section(%d)", section); + MAS_LOGI("[SUCCESS] __streaming_section_changed_cb is called, section(%d)", section); CServicePlugin *plugin = static_cast(user_data); if (nullptr == plugin) return; @@ -1347,7 +1346,6 @@ int CServicePlugin::set_wakeup_event_callback(wakeup_service_wakeup_event_cb cal MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_EVENT_CALLBACK); } else { ret = func(callback, user_data); - MAS_LOGD("dalton debug : %p", user_data); if (0 != ret) { MAS_LOGE("[ERROR] Fail to set wakeup event callback, ret(%d)", ret); } -- 2.7.4 From c4c6e5ddc7a865b31b866f2982ab4b04cc18b06b Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Wed, 16 Dec 2020 15:09:06 +0900 Subject: [PATCH 15/16] Fix bug the first item in the list gets omitted when resuming Change-Id: If77c9727f70f370ad776c8bf673dea4f9a8262f4 --- plugins/wakeup-manager/src/wakeup_audio_manager.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/wakeup-manager/src/wakeup_audio_manager.cpp b/plugins/wakeup-manager/src/wakeup_audio_manager.cpp index c110c01..a33a84c 100644 --- a/plugins/wakeup-manager/src/wakeup_audio_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_audio_manager.cpp @@ -242,11 +242,12 @@ void CAudioManager::streaming_audio_data_thread_func(long long start_time) auto begin = mAudioData.begin(); lock.unlock(); if (iter == end) { - iter = begin; - } - lead = iter; - if (lead != end) { - advance(lead, 1); + lead = begin; + } else { + lead = iter; + if (lead != end) { + advance(lead, 1); + } } if (lead != end) { MWR_LOGD("[INFO] Resume thread"); -- 2.7.4 From 760be2d3d75f0f42b330ef989db5fea268457907 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Wed, 16 Dec 2020 16:40:09 +0900 Subject: [PATCH 16/16] Bump version to 0.3.13 Change-Id: Icb84f7ffbbef101818f76fa6ab9465f9768deee5 --- org.tizen.multi-assistant-service.xml | 2 +- packaging/org.tizen.multi-assistant-service.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/org.tizen.multi-assistant-service.xml b/org.tizen.multi-assistant-service.xml index d0e72d1..f8cce66 100644 --- a/org.tizen.multi-assistant-service.xml +++ b/org.tizen.multi-assistant-service.xml @@ -1,5 +1,5 @@ - + Won Nam Jang Sooyeon Kim diff --git a/packaging/org.tizen.multi-assistant-service.spec b/packaging/org.tizen.multi-assistant-service.spec index 27c266d..ae9ec00 100644 --- a/packaging/org.tizen.multi-assistant-service.spec +++ b/packaging/org.tizen.multi-assistant-service.spec @@ -1,6 +1,6 @@ Name: org.tizen.multi-assistant-service Summary: Multi assistant service -Version: 0.3.12 +Version: 0.3.13 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Flora-1.1 -- 2.7.4