From 71d57e0658dba389847524a9a943b26b9a8db317 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 22 Nov 2019 14:18:09 +0900 Subject: [PATCH 01/16] Enable sending wakeup engine commands to the dependency module Change-Id: I27db2e1cc1da263428d800dc3b02dab6d5770df3 --- inc/multi_wakeup_recognizer.h | 8 +++++- .../dependency-default/inc/dependency_default.h | 1 + .../dependency-default/src/dependency_default.cpp | 6 ++++ plugins/wakeup-manager/inc/dependency_resolver.h | 4 +++ plugins/wakeup-manager/inc/wakeup_engine_manager.h | 6 ++-- plugins/wakeup-manager/inc/wakeup_manager.h | 6 ++-- .../wakeup-manager/inc/wakeup_manager_wrapper.h | 8 +++++- plugins/wakeup-manager/src/dependency_resolver.cpp | 28 ++++++++++++++++++ .../wakeup-manager/src/wakeup_engine_manager.cpp | 33 ++++++++++++++-------- plugins/wakeup-manager/src/wakeup_manager.cpp | 15 +++++++--- .../wakeup-manager/src/wakeup_manager_wrapper.cpp | 7 +++-- src/multi_assistant_service_plugin.c | 2 +- 12 files changed, 98 insertions(+), 26 deletions(-) diff --git a/inc/multi_wakeup_recognizer.h b/inc/multi_wakeup_recognizer.h index f928720..03e6685 100644 --- a/inc/multi_wakeup_recognizer.h +++ b/inc/multi_wakeup_recognizer.h @@ -91,6 +91,12 @@ typedef enum { MA_AUDIO_STREAMING_DATA_SECTION_WAKE_WORD, /**< Wake word section started */ } ma_audio_streaming_data_section_e; +typedef enum { + WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS = 0, /**< All assistants - name not required */ + WAKEUP_ENGINE_COMMAND_TARGET_SPECIFIC_ASSISTANTS, /**< Specific assistant - name required */ + WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE, /**< Dependency module - name not required */ +} wakeup_engine_command_target_e; + typedef void (*ma_audio_streaming_data_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data); typedef void (*wakeup_service_wakeup_event_cb)(wakeup_event_info wakeup_info, const char* wakeup_word, void* user_data); @@ -105,7 +111,7 @@ typedef void (*wakeup_service_error_cb)(int error, const char* err_msg, void* us typedef void (*wakeup_service_streaming_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data); -typedef void (*wakeup_service_wakeup_engine_command_cb)(const char* assistant_name, const char* command, void* user_data); +typedef void (*wakeup_service_wakeup_engine_command_cb)(wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data); #ifdef __cplusplus } diff --git a/plugins/wakeup-manager/dependency-default/inc/dependency_default.h b/plugins/wakeup-manager/dependency-default/inc/dependency_default.h index 2598200..f0e3c29 100644 --- a/plugins/wakeup-manager/dependency-default/inc/dependency_default.h +++ b/plugins/wakeup-manager/dependency-default/inc/dependency_default.h @@ -68,6 +68,7 @@ EXPORT_API int mas_dependency_set_recording_session(unsigned int session); EXPORT_API int mas_dependency_set_background_volume(double ratio); EXPORT_API int mas_dependency_get_audio_format(int* rate, int* channel, int* audio_type); EXPORT_API int mas_dependency_get_audio_source_type(char** type); +EXPORT_API int mas_dependency_process_wakeup_engine_command(const char* engine_name, const char* command); #ifdef __cplusplus } diff --git a/plugins/wakeup-manager/dependency-default/src/dependency_default.cpp b/plugins/wakeup-manager/dependency-default/src/dependency_default.cpp index edff076..e3d859d 100644 --- a/plugins/wakeup-manager/dependency-default/src/dependency_default.cpp +++ b/plugins/wakeup-manager/dependency-default/src/dependency_default.cpp @@ -88,3 +88,9 @@ int mas_dependency_get_audio_source_type(char** type) dependency_default_audio_get_audio_source_type(type); return 0; } + +int mas_dependency_process_wakeup_engine_command(const char* engine_name, const char* command) +{ + LOGD("Wakeup Engine %s has sent a command : %s", engine_name, command); + return 0; +} \ No newline at end of file diff --git a/plugins/wakeup-manager/inc/dependency_resolver.h b/plugins/wakeup-manager/inc/dependency_resolver.h index b1ed068..2f7271a 100644 --- a/plugins/wakeup-manager/inc/dependency_resolver.h +++ b/plugins/wakeup-manager/inc/dependency_resolver.h @@ -43,6 +43,7 @@ int dependency_resolver_set_recording_session(unsigned int); int dependency_resolver_set_background_volume(double ratio); int dependency_resolver_get_audio_format(int* rate, int* channel, int* audio_type); int dependency_resolver_get_audio_source_type(char** type); +int dependency_resolver_process_wakeup_engine_command(const char* engine, const char* command); /************************************************************************************** *** Definitions for dependencies @@ -73,6 +74,8 @@ typedef int (*mas_dependency_set_background_volume)(double ratio); typedef int (*mas_dependency_get_audio_format)(int* rate, int* channel, int* audio_type); #define MAS_DEPENDENCY_FUNC_GET_AUDIO_SOURCE_TYPE "mas_dependency_get_audio_source_type" typedef int (*mas_dependency_get_audio_source_type)(char** type); +#define MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_ENGINE_COMMAND "mas_dependency_process_wakeup_engine_command" +typedef int (*mas_dependency_process_wakeup_engine_command)(const char* engine_name, const char* command); typedef struct { mas_dependency_initialize initialize; @@ -84,6 +87,7 @@ typedef struct { mas_dependency_set_background_volume set_background_volume; mas_dependency_get_audio_format get_audio_format; mas_dependency_get_audio_source_type get_audio_source_type; + mas_dependency_process_wakeup_engine_command process_wakeup_engine_command; } mas_dependency; #ifdef __cplusplus diff --git a/plugins/wakeup-manager/inc/wakeup_engine_manager.h b/plugins/wakeup-manager/inc/wakeup_engine_manager.h index 8789ee8..cdf6f69 100644 --- a/plugins/wakeup-manager/inc/wakeup_engine_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_engine_manager.h @@ -130,7 +130,8 @@ public: virtual bool on_streaming_audio_data( wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) = 0; virtual bool on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) = 0; - virtual bool on_wakeup_engine_command(string assistant_name, string command) = 0; + virtual bool on_wakeup_engine_command( + wakeup_engine_command_target_e target, string engine_name, string assistant_name, string command) = 0; }; class CWakeupEngineManager @@ -173,7 +174,8 @@ public: bool on_speech_status(string engine_name, wakeup_service_speech_status_e status); bool on_error(string engine_name, int error_code, string error_message); bool on_audio_data_require_status(string engine_name, bool require); - bool on_wakeup_engine_command(string engine_name, string assistant_name, string command); + bool on_wakeup_engine_command(string engine_name, + wakeup_engine_command_target_e target, string assistant_name, string command); private: typedef struct { int version; diff --git a/plugins/wakeup-manager/inc/wakeup_manager.h b/plugins/wakeup-manager/inc/wakeup_manager.h index ef2574d..3c7ba95 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_manager.h @@ -48,7 +48,8 @@ public: virtual void on_streaming_audio_data( wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) = 0; virtual void on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) = 0; - virtual void on_wakeup_engine_command(const char* assistant_name, const char* command) = 0; + virtual void on_wakeup_engine_command( + wakeup_engine_command_target_e target, const char* name, const char* command) = 0; }; class ISettingValueObserver { @@ -139,7 +140,8 @@ private: bool on_streaming_audio_data( wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) override; bool on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) override; - bool on_wakeup_engine_command(string assistant_name, string command) override; + bool on_wakeup_engine_command( + wakeup_engine_command_target_e target, string engine, string name, string command) override; void set_wakeup_manager(CWakeupManager *manager) { mWakeupManager = manager; } private: diff --git a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h index 561d855..1e975b9 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h +++ b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h @@ -55,6 +55,12 @@ typedef enum { MA_AUDIO_STREAMING_DATA_SECTION_WAKE_WORD, /**< Wake word section started */ } ma_audio_streaming_data_section_e; +typedef enum { + WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS = 0, /**< All assistants - name not required */ + WAKEUP_ENGINE_COMMAND_TARGET_SPECIFIC_ASSISTANT, /**< Specific assistant - name required */ + WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE, /**< Dependency module - name not required */ +} wakeup_engine_command_target_e; + typedef void (*ma_audio_streaming_data_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data); typedef void (*wakeup_service_wakeup_event_cb)(wakeup_event_info wakeup_info, void* user_data); @@ -71,7 +77,7 @@ typedef void (*wakeup_service_audio_data_require_status_cb)(bool require, void* typedef void (*wakeup_service_streaming_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data); -typedef void (*wakeup_service_engine_command_cb)(const char* assistant_name, const char* command, void* user_data); +typedef void (*wakeup_service_engine_command_cb)(wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data); typedef enum { MA_PLUGIN_EVENT_VOICE_KEY_PRESSED = 0, diff --git a/plugins/wakeup-manager/src/dependency_resolver.cpp b/plugins/wakeup-manager/src/dependency_resolver.cpp index 43b080d..b15eef8 100644 --- a/plugins/wakeup-manager/src/dependency_resolver.cpp +++ b/plugins/wakeup-manager/src/dependency_resolver.cpp @@ -86,6 +86,9 @@ int dependency_resolver_initialize(mas_proxy_interface interface) g_mas_dependency.get_audio_source_type = (mas_dependency_get_audio_source_type)dlsym(g_handle, MAS_DEPENDENCY_FUNC_GET_AUDIO_SOURCE_TYPE); + g_mas_dependency.process_wakeup_engine_command = + (mas_dependency_process_wakeup_engine_command)dlsym(g_handle, + MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_ENGINE_COMMAND); int ret = -1; int dependency_version = 0; @@ -316,3 +319,28 @@ int dependency_resolver_get_audio_source_type(char** type) return ret; } + +int dependency_resolver_process_wakeup_engine_command(const char* engine, const char* command) +{ + int ret = -1; + if (NULL != g_handle) { + mas_dependency_process_wakeup_engine_command func = g_mas_dependency.process_wakeup_engine_command; + if (NULL == func) { + MAS_LOGE("[ERROR] symbol lookup failed : %s", MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_ENGINE_COMMAND); + } else { + try { + ret = func(engine, command); + } catch (const std::exception& e) { + MAS_LOGE("[ERROR] %s of dependency module threw exception : %s", + MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_ENGINE_COMMAND, e.what()); + } + if (0 != ret) { + MAS_LOGE("[ERROR] Fail to process wakeup engine command, ret(%d)", ret); + } + } + } else { + MAS_LOGE("[ERROR] g_handle is not valid"); + } + + return ret; +} diff --git a/plugins/wakeup-manager/src/wakeup_engine_manager.cpp b/plugins/wakeup-manager/src/wakeup_engine_manager.cpp index d9f6d7e..f75f958 100644 --- a/plugins/wakeup-manager/src/wakeup_engine_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_engine_manager.cpp @@ -590,21 +590,29 @@ bool CWakeupEngineManager::on_audio_data_require_status(string engine_name, bool return true; } -bool CWakeupEngineManager::on_wakeup_engine_command(string engine_name, string assistant_name, string command) +bool CWakeupEngineManager::on_wakeup_engine_command(string engine_name, wakeup_engine_command_target_e target, string assistant_name, string command) { MWR_LOGD("[ENTER]"); for (const auto& observer : mObservers) { if (observer) { - const auto& iter = find_if(mEngineInfo.begin(), mEngineInfo.end(), - [engine_name](const EngineInfo& info) { - return (0 == info.engine_name.compare(engine_name)); - }); - if (mEngineInfo.end() != iter) { - for (const auto& assistant : iter->assistant_list) { - if (0 == assistant_name.compare(assistant) || 0 == assistant_name.length()) - if (!observer->on_wakeup_engine_command(assistant, command)) { - LOGE("[Recorder WARNING] One of the observer returned false"); + if (WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE == target) { + if (!observer->on_wakeup_engine_command(target, engine_name, assistant_name, command)) { + LOGE("[Recorder WARNING] One of the observer returned false"); + } + } else { + const auto& iter = find_if(mEngineInfo.begin(), mEngineInfo.end(), + [engine_name](const EngineInfo& info) { + return (0 == info.engine_name.compare(engine_name)); + }); + if (mEngineInfo.end() != iter) { + for (const auto& assistant : iter->assistant_list) { + if (0 == assistant_name.compare(assistant) || + WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS == target) { + if (!observer->on_wakeup_engine_command(target, engine_name, assistant, command)) { + LOGE("[Recorder WARNING] One of the observer returned false"); + } + } } } } @@ -754,13 +762,14 @@ void CWakeupEngineManager::add_engine(string name, string path) if (info.interface.set_wakeup_engine_command_callback) { info.interface.set_wakeup_engine_command_callback( - [](const char* assistant_name, const char* command, void* user_data) { + [](wakeup_engine_command_target_e target, + const char* assistant_name, const char* command, void* user_data) { CallbackUserData* data = static_cast(user_data); if (nullptr == data) return; if (nullptr == data->manager) return; if (nullptr == command) return; data->manager->on_wakeup_engine_command( - data->engine_name, (assistant_name ? assistant_name : ""), command); + data->engine_name, target, (assistant_name ? assistant_name : ""), command); }, &(callback_user_data.back())); } diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index d0b0e05..d4e82fc 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -910,13 +910,20 @@ bool CWakeupManager::CEngineEventObserver::on_audio_streaming_data_section( } bool CWakeupManager::CEngineEventObserver::on_wakeup_engine_command( - string assistant_name, string command) + wakeup_engine_command_target_e target, string engine_name, string assistant_name, string command) { if (nullptr == mWakeupManager) return false; - vector observers = mWakeupManager->get_wakeup_observers(); - for (const auto& observer : observers) { - observer->on_wakeup_engine_command(assistant_name.c_str(), command.c_str()); + if (WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE == target) { + dependency_resolver_process_wakeup_engine_command(engine_name.c_str(), command.c_str()); + } + + if (WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS == target || + WAKEUP_ENGINE_COMMAND_TARGET_SPECIFIC_ASSISTANT == target) { + vector observers = mWakeupManager->get_wakeup_observers(); + for (const auto& observer : observers) { + observer->on_wakeup_engine_command(target, assistant_name.c_str(), command.c_str()); + } } return true; diff --git a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp index 5e041ee..1abfbdf 100644 --- a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp @@ -54,7 +54,8 @@ class CWakeupEventObserver : public IWakeupEventObserver void on_streaming_audio_data( wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) override; void on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) override; - void on_wakeup_engine_command(const char* assistant_name, const char* command) override; + void on_wakeup_engine_command( + wakeup_engine_command_target_e target, const char* assistant_name, const char* command) override; }; class CSettingValueObserver : public ISettingValueObserver @@ -683,10 +684,10 @@ void CWakeupEventObserver::on_audio_streaming_data_section( } void CWakeupEventObserver::on_wakeup_engine_command( - const char* assistant_name, const char* command) + wakeup_engine_command_target_e target, const char* assistant_name, const char* command) { if (g_wakeup_engine_command_cb) { - g_wakeup_engine_command_cb(assistant_name, command, g_wakeup_engine_command_user_data); + g_wakeup_engine_command_cb(target, assistant_name, command, g_wakeup_engine_command_user_data); } } diff --git a/src/multi_assistant_service_plugin.c b/src/multi_assistant_service_plugin.c index 3af09f0..892eed3 100644 --- a/src/multi_assistant_service_plugin.c +++ b/src/multi_assistant_service_plugin.c @@ -354,7 +354,7 @@ static void __streaming_section_changed_cb(ma_audio_streaming_data_section_e sec } } -static void __wakeup_engine_command_cb(const char* assistant_name, const char* command, void* user_data) +static void __wakeup_engine_command_cb(wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data) { MAS_LOGD( "[SUCCESS] __wakeup_engine_command_cb is called, command(%s)", command); -- 2.7.4 From dee3e8c805ca0740d6352debebb5db487d39f396 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 22 Nov 2019 16:53:06 +0900 Subject: [PATCH 02/16] Bump version to 0.2.12 Change-Id: I00755dfa06ed68a8a67e0c0051582f0055ded072 --- 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 0aa3e02..e91e3a3 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 a87311f..edf1ad9 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.2.11 +Version: 0.2.12 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Flora-1.1 -- 2.7.4 From bc6e9d853f78d1ea528afd978e819b00c305039d Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 22 Nov 2019 19:37:36 +0900 Subject: [PATCH 03/16] Remove unnecessary dependency module Change-Id: I24796ea086e8c01b1bf0d84869b72dfdb2a65ea4 --- packaging/org.tizen.multi-assistant-service.spec | 15 - plugins/wakeup-manager/CMakeLists.txt | 7 - .../wakeup-manager/dependency-tv/CMakeLists.txt | 62 --- .../dependency-tv/inc/dependency_tv.h | 102 ----- .../dependency-tv/inc/dependency_tv_audio.h | 36 -- .../dependency-tv/inc/dependency_tv_button.h | 23 -- .../dependency-tv/src/dependency_tv.cpp | 70 ---- .../dependency-tv/src/dependency_tv_audio.cpp | 420 --------------------- .../dependency-tv/src/dependency_tv_button.cpp | 142 ------- plugins/wakeup-manager/inc/dependency_resolver.h | 4 - 10 files changed, 881 deletions(-) delete mode 100644 plugins/wakeup-manager/dependency-tv/CMakeLists.txt delete mode 100644 plugins/wakeup-manager/dependency-tv/inc/dependency_tv.h delete mode 100644 plugins/wakeup-manager/dependency-tv/inc/dependency_tv_audio.h delete mode 100644 plugins/wakeup-manager/dependency-tv/inc/dependency_tv_button.h delete mode 100644 plugins/wakeup-manager/dependency-tv/src/dependency_tv.cpp delete mode 100644 plugins/wakeup-manager/dependency-tv/src/dependency_tv_audio.cpp delete mode 100644 plugins/wakeup-manager/dependency-tv/src/dependency_tv_button.cpp diff --git a/packaging/org.tizen.multi-assistant-service.spec b/packaging/org.tizen.multi-assistant-service.spec index edf1ad9..0bcc5e4 100644 --- a/packaging/org.tizen.multi-assistant-service.spec +++ b/packaging/org.tizen.multi-assistant-service.spec @@ -24,14 +24,6 @@ BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(multi-assistant) BuildRequires: pkgconfig(vconf) BuildRequires: pkgconfig(pkgmgr-info) -%if "%{tizen_profile_name}" == "tv" -BuildRequires: pkgconfig(vd-win-util) -BuildRequires: pkgconfig(capi-network-bluetooth) -BuildRequires: pkgconfig(capi-network-bluetooth-tv) -#BuildRequires: pkgconfig(msfapi) -BuildRequires: pkgconfig(farfield-voice-api) -%endif - BuildRequires: boost-system BuildRequires: boost-thread @@ -60,9 +52,6 @@ LDFLAGS="$LDFLAGS -Wl,-z -Wl,nodelete" export LDFLAGS cmake \ -%if "%{tizen_profile_name}" == "tv" - -D_TV_PRODUCT=TRUE \ -%endif -DCMAKE_INSTALL_PREFIX=%{_appdir} \ -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE \ @@ -94,11 +83,7 @@ exit 0 /usr/share/license/* /usr/share/packages/org.tizen.multi-assistant-service.xml %{TZ_SYS_RO_SHARE}/multiassistant/libma-wakeup-manager.so -%if "%{tizen_profile_name}" == "tv" -%{TZ_SYS_RO_SHARE}/multiassistant/libma-dependency-tv.so -%else %{TZ_SYS_RO_SHARE}/multiassistant/libma-dependency-default.so -%endif #%{_appdir}/lib/* %{_appdir}/bin/* #%defattr(-,app,app,-) diff --git a/plugins/wakeup-manager/CMakeLists.txt b/plugins/wakeup-manager/CMakeLists.txt index 7f07524..4e322b3 100644 --- a/plugins/wakeup-manager/CMakeLists.txt +++ b/plugins/wakeup-manager/CMakeLists.txt @@ -55,9 +55,6 @@ ENDFOREACH(flag) SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -fPIC -Wall" ) -IF("${_TV_PRODUCT}" STREQUAL "TRUE") - SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -DTV_PRODUCT") -ENDIF() SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-z,relro -fPIC -std=c++11 -fvisibility=hidden") SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") @@ -68,8 +65,4 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${wmpkgs_LDFLAGS} -ldl ${EXTRA_LDFLAGS}) MESSAGE("LDFLAG : ${wmpkgs_LDFLAGS}") INSTALL(FILES ${CMAKE_SOURCE_DIR}/plugins/wakeup-manager/libma-wakeup-manager.so DESTINATION ${TZ_SYS_RO_SHARE}/multiassistant/) -IF("${_TV_PRODUCT}" STREQUAL "TRUE") -ADD_SUBDIRECTORY(dependency-tv) -ELSE() ADD_SUBDIRECTORY(dependency-default) -ENDIF() diff --git a/plugins/wakeup-manager/dependency-tv/CMakeLists.txt b/plugins/wakeup-manager/dependency-tv/CMakeLists.txt deleted file mode 100644 index b89f19a..0000000 --- a/plugins/wakeup-manager/dependency-tv/CMakeLists.txt +++ /dev/null @@ -1,62 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(ma-dependency-tv) - -SET(PREFIX ${CMAKE_INSTALL_PREFIX}) -SET(PACKAGE ${PROJECT_NAME}) - -SET(CMAKE_SKIP_BUILD_RPATH TRUE) - -INCLUDE_DIRECTORIES( - ${CMAKE_SOURCE_DIR}/inc - ./inc - ) - -SET(DDPKG_CHECK_MODULES - ecore - ecore-wl2 - dlog - eina - capi-media-sound-manager - capi-network-bluetooth - capi-network-bluetooth-tv - vd-win-util - farfield-voice-api -) - -INCLUDE(FindPkgConfig) -pkg_check_modules(ddpkgs REQUIRED ${DDPKG_CHECK_MODULES}) -MESSAGE("Modules : ${DDPKG_CHECK_MODULES}") - -IF("${CMAKE_BUILD_TYPE}" STREQUAL "") - SET(CMAKE_BUILD_TYPE "Release") -ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") -MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") - -ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") -ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"") - -SET(SRCS - src/dependency_tv.cpp - src/dependency_tv_audio.cpp - src/dependency_tv_button.cpp -) - -FOREACH(flag ${ddpkgs_CFLAGS}) - SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}") -ENDFOREACH(flag) - - - -SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -fPIC -Wall" ) -IF("${_TV_PRODUCT}" STREQUAL "TRUE") - SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -DTV_PRODUCT") -ENDIF() -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -fPIC -std=c++11 -fvisibility=hidden") -SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") - -ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS} ) - -# Install libraries -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ddpkgs_LDFLAGS} -ldl ${EXTRA_LDFLAGS}) -MESSAGE("LDFLAG : ${ddpkgs_LDFLAGS}") -INSTALL(FILES ${CMAKE_SOURCE_DIR}/plugins/wakeup-manager/dependency-tv/lib${PACKAGE}.so DESTINATION ${TZ_SYS_RO_SHARE}/multiassistant/) diff --git a/plugins/wakeup-manager/dependency-tv/inc/dependency_tv.h b/plugins/wakeup-manager/dependency-tv/inc/dependency_tv.h deleted file mode 100644 index bf39e54..0000000 --- a/plugins/wakeup-manager/dependency-tv/inc/dependency_tv.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2018 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef _DEPENDENCY_TV_H_ -#define _DEPENDENCY_TV_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef LOG_TAG -#define LOG_TAG "dependency_tv" -#endif - -typedef enum { - WAKEUP_SPEECH_STREAMING_EVENT_FAIL = -1, /**< Failed */ - WAKEUP_SPEECH_STREAMING_EVENT_START = 1, /**< Start event */ - WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE = 2, /**< Continue event */ - WAKEUP_SPEECH_STREAMING_EVENT_FINISH = 3 /**< Finish event */ -} wakeup_speech_streaming_event_e; - -typedef enum { - MA_PLUGIN_EVENT_VOICE_KEY_PRESSED = 0, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH = MA_PLUGIN_EVENT_VOICE_KEY_RELEASED, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_TAP, -} ma_plugin_event_e; - -typedef enum -{ - RECORDING_SESSION_WAKE_WORD, - RECORDING_SESSION_UTTERANCE, - RECORDING_SESSION_FOLLOW_UP, -} recording_session; - -typedef void (*mas_dependency_error_cb)(int error, const char* err_msg, void* user_data); - -typedef int (*mas_proxy_process_event)(int event, void* data, int len); -typedef int (*mas_proxy_feed_audio_data)(wakeup_speech_streaming_event_e event, void* buffer, int len); - -typedef struct { - mas_proxy_process_event process_event; - mas_proxy_feed_audio_data feed_audio_data; -} mas_proxy_interface; - -#ifndef EXPORT_API - #if defined _WIN32 || defined __CYGWIN__ - #ifdef BUILDING_DLL - #ifdef __GNUC__ - #define EXPORT_API __attribute__ ((dllexport)) - #else - #define EXPORT_API __declspec(dllexport) // Note: actually gcc seems to also supports this syntax. - #endif - #else - #ifdef __GNUC__ - #define EXPORT_API __attribute__ ((dllimport)) - #else - #define EXPORT_API __declspec(dllimport) // Note: actually gcc seems to also supports this syntax. - #endif - #endif - #define DLL_LOCAL - #else - #if __GNUC__ >= 4 - #define EXPORT_API __attribute__ ((visibility ("default"))) - #define DLL_LOCAL __attribute__ ((visibility ("hidden"))) - #else - #define EXPORT_API - #define DLL_LOCAL - #endif - #endif -#endif - -EXPORT_API int mas_dependency_initialize(mas_proxy_interface interfaces, int *dependency_version); -EXPORT_API int mas_dependency_deinitialize(void); -EXPORT_API int mas_dependency_set_error_callback(mas_dependency_error_cb callback, void* user_data); -EXPORT_API int mas_dependency_start_recording(void); -EXPORT_API int mas_dependency_stop_recording(void); -EXPORT_API int mas_dependency_set_recording_session(unsigned int session); -EXPORT_API int mas_dependency_set_background_volume(double ratio); -EXPORT_API int mas_dependency_get_audio_format(int* rate, int* channel, int* audio_type); -EXPORT_API int mas_dependency_get_audio_source_type(char** type); - - -#ifdef __cplusplus -} -#endif - -#endif /* _DEPENDENCY_TV_H_ */ diff --git a/plugins/wakeup-manager/dependency-tv/inc/dependency_tv_audio.h b/plugins/wakeup-manager/dependency-tv/inc/dependency_tv_audio.h deleted file mode 100644 index b829865..0000000 --- a/plugins/wakeup-manager/dependency-tv/inc/dependency_tv_audio.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2018 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _DEPENDENCY_TV_AUDIO_H_ -#define _DEPENDENCY_TV_AUDIO_H_ - -void dependency_tv_audio_initialize(mas_proxy_interface interface); -void dependency_tv_audio_deinitialize(); - -void dependency_tv_audio_start_recording(); -void dependency_tv_audio_stop_recording(); - -void dependency_tv_audio_set_recording_session(unsigned int session); - -void dependency_tv_audio_set_background_volume(double ratio); - -void dependency_tv_audio_voice_key_pressed_set(bool pressed); - -void dependency_tv_audio_get_audio_format(int* rate, int* channel, int* audio_type); - -void dependency_tv_audio_get_audio_source_type(char** type); - -#endif //_DEPENDENCY_TV_AUDIO_H_ diff --git a/plugins/wakeup-manager/dependency-tv/inc/dependency_tv_button.h b/plugins/wakeup-manager/dependency-tv/inc/dependency_tv_button.h deleted file mode 100644 index a1b1db7..0000000 --- a/plugins/wakeup-manager/dependency-tv/inc/dependency_tv_button.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2018 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _DEPENDENCY_TV_BUTTON_H_ -#define _DEPENDENCY_TV_BUTTON_H_ - -void dependency_tv_button_initialize(mas_proxy_interface interface); -void dependency_tv_button_deinitialize(); - -#endif //_DEPENDENCY_TV_BUTTON_H_ diff --git a/plugins/wakeup-manager/dependency-tv/src/dependency_tv.cpp b/plugins/wakeup-manager/dependency-tv/src/dependency_tv.cpp deleted file mode 100644 index d6eb6f1..0000000 --- a/plugins/wakeup-manager/dependency-tv/src/dependency_tv.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "dependency_tv.h" -#include "dependency_tv_audio.h" -#include "dependency_tv_button.h" - -static mas_proxy_interface g_proxy_interface; -const int g_dependency_version = 1; - -int mas_dependency_initialize(mas_proxy_interface interface, int *dependency_version) -{ - g_proxy_interface = interface; - - dependency_tv_audio_initialize(interface); - dependency_tv_button_initialize(interface); - - if (dependency_version) { - *dependency_version = g_dependency_version; - } - - return 0; -} - -int mas_dependency_deinitialize(void) -{ - dependency_tv_audio_deinitialize(); - dependency_tv_button_deinitialize(); - - return 0; -} - -int mas_dependency_set_error_callback(mas_dependency_error_cb callback, void* user_data) -{ - return 0; -} - -int mas_dependency_start_recording(void) -{ - dependency_tv_audio_start_recording(); - return 0; -} - -int mas_dependency_stop_recording(void) -{ - dependency_tv_audio_stop_recording(); - return 0; -} - -int mas_dependency_set_recording_session(unsigned int session) -{ - dependency_tv_audio_set_recording_session(session); - return 0; -} - -int mas_dependency_set_background_volume(double ratio) -{ - dependency_tv_audio_set_background_volume(ratio); - return 0; -} - -int mas_dependency_get_audio_format(int* rate, int* channel, int* audio_type) -{ - dependency_tv_audio_get_audio_format(rate, channel, audio_type); - return 0; -} - -int mas_dependency_get_audio_source_type(char** type) -{ - dependency_tv_audio_get_audio_source_type(type); - return 0; -} - diff --git a/plugins/wakeup-manager/dependency-tv/src/dependency_tv_audio.cpp b/plugins/wakeup-manager/dependency-tv/src/dependency_tv_audio.cpp deleted file mode 100644 index 8b66842..0000000 --- a/plugins/wakeup-manager/dependency-tv/src/dependency_tv_audio.cpp +++ /dev/null @@ -1,420 +0,0 @@ -#include "dependency_tv.h" -#include "dependency_tv_audio.h" - -static bool g_voice_key_pressed = false; -static mas_proxy_interface g_proxy_interface; - -#include -#include -#include -#include - -#include -#include -#include - -using namespace std; - -#include -#include -#include - -#define SMART_CONTROL_EXTEND_CMD 0x03 -#define SMART_CONTROL_START_CMD 0x04 - -#define VC_AUDIO_ID_BLUETOOTH "VC_AUDIO_ID_BLUETOOTH" -#define VC_AUDIO_ID_MIC "VC_FARFIELD_VOICE_VD" - -/* Sound buf save for test */ -#if 0 -#define BUF_SAVE_MODE -#endif - -#ifdef BUF_SAVE_MODE -static char g_temp_file_name[128] = {'\0', }; - -static FILE* g_pFile = NULL; - -static int g_count = 1; -#endif - -static int g_bt_extend_count; -static farfield_voice_h g_farfieldvoice_h = NULL; - -static sound_stream_info_h g_volume_stream = NULL; -static virtual_sound_stream_h g_virtual_sound_stream = NULL; -#define AUDIO_SOURCE_TYPE_LEN 64 -static char g_audio_source_type[AUDIO_SOURCE_TYPE_LEN]; - -static long get_current_milliseconds_after_epoch() -{ - auto now = chrono::system_clock::now(); - auto now_ms = chrono::time_point_cast(now); - /* number of milliseconds since the epoch of system_clock */ - auto value = now_ms.time_since_epoch(); - - return value.count(); -} - -static void set_audio_source_type(const char* src_type) -{ - if (0 != strncmp(src_type, g_audio_source_type, AUDIO_SOURCE_TYPE_LEN)) { - snprintf(g_audio_source_type, AUDIO_SOURCE_TYPE_LEN, "%s", src_type); - g_audio_source_type[AUDIO_SOURCE_TYPE_LEN - 1] = '\0'; - LOGE("[Recorder] source_type [%s]", g_audio_source_type); - - // TODO:: - vconf_set_str("db/farfieldvoice/devicetype", src_type); - } -} - -static void _bt_cb_hid_state_changed(int result, bool connected, const char *remote_address, void *user_data) -{ - LOGD("[Recorder] Bluetooth Event [%d] Received address [%s]", result, remote_address); - return; -} - -static void _bt_hid_audio_data_receive_cb(bt_hid_voice_data_s *voice_data, void *user_data) -{ - static int g_buffer_count = 0; - if (nullptr == voice_data) return; - - set_audio_source_type(VC_AUDIO_ID_BLUETOOTH); - - g_proxy_interface.feed_audio_data(WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE, - voice_data->audio_buf, voice_data->length); - -#ifdef BUF_SAVE_MODE - /* write pcm buffer */ - if (g_pFile) - fwrite(voice_data->audio_buf, 1, voice_data->length, g_pFile); -#endif - - if (0 == g_buffer_count || 0 == g_buffer_count % 50) { - LOGD("[Recorder][%d] Recording... : read_size(%d)", g_buffer_count, voice_data->length); - - if (0 == g_bt_extend_count % 5 && 0 != g_buffer_count) { - const unsigned char input_data[2] = {SMART_CONTROL_EXTEND_CMD, 0x10 }; - if (BT_ERROR_NONE != bt_hid_send_rc_command(NULL, input_data, sizeof(input_data))) { - LOGE("[Recorder ERROR] Fail bt_hid_send_rc_command"); - } else { - LOGD("[Recorder] Extend bt audio recorder"); - } - } - g_bt_extend_count++; - - if (100000 == g_buffer_count) { - g_buffer_count = 0; - } - } - - g_buffer_count++; - - return; -} - -static void stereo_to_mono_pcm(char* mono_buffer, const char* stereo_buffer, int len) -{ - int cnt = 0; - while (cnt < len) { - /* The code below collects audio data from only one channel for testing */ - mono_buffer[cnt / 2] = stereo_buffer[cnt]; - mono_buffer[cnt / 2 + 1] = stereo_buffer[cnt + 1]; - cnt += 4; - } -} - -static void _ffv_audio_function_cb(void* data, unsigned int length, void* user_data) -{ - /* When voice key is pressed, _bt_hid_audio should receive audio data */ - if (g_voice_key_pressed) return; - - set_audio_source_type(VC_AUDIO_ID_MIC); - - static int g_buffer_count = 0; - if (0 == g_buffer_count || 0 == g_buffer_count % 50) { - LOGD("[Recorder INFO] farfield audio function callback is invoked"); - - if (100000 == g_buffer_count) { - g_buffer_count = 0; - } - } - g_buffer_count++; - -#ifdef STEREO_TO_MONO - int mono_length = length / 2; - char* mono_buffer = (char*)calloc(length, sizeof(char)); - if (!mono_buffer) return; - stereo_to_mono_pcm(mono_buffer, (const char*)data, length); - - g_proxy_interface.feed_audio_data(WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE, - mono_buffer, mono_length); - -#ifdef BUF_SAVE_MODE - /* write pcm buffer */ - if (g_pFile) - fwrite(mono_buffer, 1, mono_length, g_pFile); -#endif - - if (mono_buffer) free(mono_buffer); - mono_buffer = NULL; -#else - g_proxy_interface.feed_audio_data(WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE, - data, length); -#ifdef BUF_SAVE_MODE - /* write pcm buffer */ - if (g_pFile) - fwrite(data, 1, length, g_pFile); -#endif -#endif -} - -void dependency_tv_audio_initialize(mas_proxy_interface interfaces) -{ - g_proxy_interface = interfaces; - - bool is_bt_failed = false; - - if (false == is_bt_failed && BT_ERROR_NONE != bt_product_init()) { - LOGE("[Recorder ERROR] Fail to init bt"); - is_bt_failed = true; - } - - if (false == is_bt_failed && BT_ERROR_NONE != bt_hid_host_initialize(_bt_cb_hid_state_changed, NULL)) { - LOGE("[Recorder ERROR] Fail bt_hid_host_initialize()"); - is_bt_failed = true; - } - - if (false == is_bt_failed && BT_ERROR_NONE != bt_hid_set_audio_data_receive_cb(_bt_hid_audio_data_receive_cb, NULL)) { - LOGE("[Recorder ERROR] Fail bt_hid_set_audio_data_receive_cb()"); - is_bt_failed = true; - } - - if (false == is_bt_failed) { - LOGD("[Recorder] Bluetooth is available"); - } - -#if 1 - g_farfieldvoice_h = farfield_voice_init(); - if (NULL == g_farfieldvoice_h) { - LOGE("[Recorder ERROR] Fail to init farfield_voice_init"); - } - - if (g_farfieldvoice_h) { - LOGI("[Recorder INFO] Register farfield voice audio callback"); - farfield_voice_register_audio_cb(g_farfieldvoice_h, _ffv_audio_function_cb, NULL); - } -#endif - - set_audio_source_type(VC_AUDIO_ID_BLUETOOTH); -} - -void dependency_tv_audio_deinitialize() -{ - int ret; - if (g_virtual_sound_stream) { - sound_manager_stop_virtual_stream(g_virtual_sound_stream); - ret = sound_manager_destroy_virtual_stream(g_virtual_sound_stream); - if (0 != ret) { - LOGE("[Audio ERROR] Fail to destroy virtual stream, ret(%d)", ret); - } - g_virtual_sound_stream = NULL; - } - - if (g_volume_stream) { - ret = sound_manager_destroy_stream_information(g_volume_stream); - if (0 != ret) { - LOGE("[Audio ERROR] Fail to destroy stream information, ret(%d)", ret); - } - g_volume_stream = NULL; - } - -#if 1 - if (NULL != g_farfieldvoice_h) { - LOGD("[Recorder INFO] Unregister farfield voice"); - farfield_voice_unregister_audio_cb(g_farfieldvoice_h); - farfield_voice_final(g_farfieldvoice_h); - g_farfieldvoice_h = NULL; - } -#endif - - bt_hid_unset_audio_data_receive_cb(); - bt_hid_host_deinitialize(); - bt_product_deinit(); -} - -static void recorder_thread_func() -{ - const int FRAME_LENGTH = 160; - const int BUFFER_LENGTH = FRAME_LENGTH * 2; -} - -void dependency_tv_audio_start_recording() -{ - /* Do not start normal recorder thread if TV_PRODUCT and g_voice_key_pressed, - just send bt_hid start message */ - if (g_voice_key_pressed) { - const unsigned char input_data[2] = {SMART_CONTROL_START_CMD, 0x00}; - int bt_retry = 0; - const int max_retry = 5; - while (max_retry > bt_retry) { - int ret = bt_hid_send_rc_command(NULL, input_data, sizeof(input_data)); - if (BT_ERROR_NONE == ret) { - LOGD("[Recorder] Start bt audio recorder"); - break; - } else if (BT_ERROR_NOW_IN_PROGRESS == ret) { - LOGE("[Recorder ERROR] Fail bt_hid_send_rc_command : %d", ret); - this_thread::sleep_for(chrono::milliseconds(50)); - bt_retry++; - } else { - break; - } - } - if (max_retry == bt_retry) { - LOGE("[Recorder ERROR] Fail to start bt audio"); - return; - } - - g_bt_extend_count = 0; - } -#ifdef BUF_SAVE_MODE - if (g_pFile) { - fclose(g_pFile); - g_pFile = NULL; - } else { - LOGD("[Recorder Info] File not found!"); - } - - while (1) { - snprintf(g_temp_file_name, sizeof(g_temp_file_name), "/tmp/dependency_tv_%s_%d_%d", g_audio_source_type, getpid(), g_count); - int ret = access(g_temp_file_name, 0); - - if (0 == ret) { - LOGD("[Recorder ERROR] File is already exist"); - if (0 == remove(g_temp_file_name)) { - LOGD("[Recorder] Remove file"); - break; - } else { - g_count++; - } - } else { - break; - } - } - - LOGD("[Recorder] Temp file name=[%s]", g_temp_file_name); - - /* open test file */ - g_pFile = fopen(g_temp_file_name, "wb+x"); - if (!g_pFile) { - LOGD("[Recorder ERROR] File not found!"); - return; - } - g_count++; -#endif -} - -void dependency_tv_audio_stop_recording() -{ -} - -void dependency_tv_audio_set_recording_session(unsigned int session) -{ - LOGD("Current recording session : [%s]", - (RECORDING_SESSION_WAKE_WORD == session) ? "wake word detecting" : - (RECORDING_SESSION_UTTERANCE == session) ? "utterance recording" : - (RECORDING_SESSION_FOLLOW_UP == session) ? "follow-up speech recording" : - "ERROR - Invalid recording session information" - ); -} - -void dependency_tv_audio_set_background_volume(double ratio) -{ - int ret; - - if (ratio >= 0.5) { - if (g_virtual_sound_stream) { - ret = sound_manager_stop_virtual_stream(g_virtual_sound_stream); - if (0 != ret) { - LOGD("[Audio ERROR] Fail to stop virtual stream, ret(%d)", ret); - } - ret = sound_manager_destroy_virtual_stream(g_virtual_sound_stream); - if (0 != ret) { - LOGD("[Audio ERROR] Fail to destroy virtual stream, ret(%d)", ret); - return; - } - g_virtual_sound_stream = NULL; - } - - if (g_volume_stream) { - ret = sound_manager_destroy_stream_information(g_volume_stream); - if (0 != ret) { - LOGD("[Audio ERROR] Fail to destroy stream information, ret(%d)", ret); - return; - } - g_volume_stream = NULL; - } - } else { - if (!g_volume_stream) { - ret = sound_manager_create_stream_information_internal(SOUND_STREAM_TYPE_VOICE_RECOGNITION_SERVICE, NULL, NULL, &g_volume_stream); - if (0 != ret) { - LOGD("[Audio] Fail to create stream information, ret(%d)", ret); - return; - } - } - - if (!g_virtual_sound_stream) { - ret = sound_manager_create_virtual_stream(g_volume_stream, &g_virtual_sound_stream); - if (0 != ret) { - LOGD("[Audio ERROR] Fail to create virtual stream, ret(%d)", ret); - return; - } - } - if (g_virtual_sound_stream) { - ret = sound_manager_start_virtual_stream(g_virtual_sound_stream); - if (0 != ret) { - LOGD("[Audio ERROR] Fail to start virtual stream, ret(%d)", ret); - return; - } - } - } -} - -void dependency_tv_audio_voice_key_pressed_set(bool pressed) -{ - LOGE("ENTER : %d", pressed); - if (true == g_voice_key_pressed && false == pressed) { - bt_hid_rc_stop_sending_voice(NULL); - } - - if (pressed != g_voice_key_pressed) { - if (pressed) { - set_audio_source_type(VC_AUDIO_ID_BLUETOOTH); - dependency_tv_audio_set_background_volume(0.3); - } else { - dependency_tv_audio_set_background_volume(1.0); - } - } - - g_voice_key_pressed = pressed; - LOGE("EXIT : %d", g_voice_key_pressed); -} - -void dependency_tv_audio_get_audio_format(int* rate, int* channel, int* audio_type) -{ - if (!audio_type || !rate || !channel) { - return; - } - *rate = 16000; - *channel = 0; - *audio_type = 0; -} - -void dependency_tv_audio_get_audio_source_type(char** type) -{ - if (!type) { - return; - } - *type = g_audio_source_type; -} - diff --git a/plugins/wakeup-manager/dependency-tv/src/dependency_tv_button.cpp b/plugins/wakeup-manager/dependency-tv/src/dependency_tv_button.cpp deleted file mode 100644 index 350d2fd..0000000 --- a/plugins/wakeup-manager/dependency-tv/src/dependency_tv_button.cpp +++ /dev/null @@ -1,142 +0,0 @@ -#include "dependency_tv.h" -#include "dependency_tv_button.h" -#include "dependency_tv_audio.h" - -#include - -#include - -static mas_proxy_interface g_proxy_interface; - -#define EFL_BETA_API_SUPPORT - -#include -#include -#include - -static Ecore_Event_Handler* _key_down_handler = NULL; -static Ecore_Event_Handler* _key_up_handler = NULL; - -static long get_current_milliseconds_after_epoch() -{ - auto now = std::chrono::system_clock::now(); - auto now_ms = std::chrono::time_point_cast(now); - /* number of milliseconds since the epoch of system_clock */ - auto value = now_ms.time_since_epoch(); - - return value.count(); -} - -static Eina_Bool _key_down_cb(void* data, int type, void* event) -{ - Ecore_Event_Key *ev = (Ecore_Event_Key *) event; - if (ev) { - LOGE("KEY[%s], typep[%d]", ev->keyname, type); - - if (ev->keyname && strncmp(ev->keyname, KEY_BT_VOICE, strlen(KEY_BT_VOICE)) == 0 ) { - dependency_tv_audio_voice_key_pressed_set(true); - if (g_proxy_interface.process_event) { - g_proxy_interface.process_event(MA_PLUGIN_EVENT_VOICE_KEY_PRESSED, NULL, 0); - } - } - } - - return ECORE_CALLBACK_DONE; -} - -static Eina_Bool _key_up_cb(void* data, int type, void* event) -{ - Ecore_Event_Key *ev = (Ecore_Event_Key *) event; - if (ev) { - LOGE("KEY[%s], typep[%d]", ev->keyname, type); - - if (ev->keyname && strncmp(ev->keyname, KEY_BT_VOICE, strlen(KEY_BT_VOICE)) == 0) { - dependency_tv_audio_voice_key_pressed_set(false); - long key_up_time = get_current_milliseconds_after_epoch(); - ma_plugin_event_e event = MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH; - if (g_proxy_interface.process_event) { - g_proxy_interface.process_event(event, NULL, 0); - } - } - } - return ECORE_CALLBACK_DONE; -} - -static bool _grab_voice_key(void) -{ - Eina_Bool bRet = true; - bRet = ecore_wl2_window_keygrab_set(NULL, KEY_BT_VOICE, 0, 0, 0, ECORE_WL2_WINDOW_KEYGRAB_SHARED); - LOGD("ecore_wl2_window_keygrab_set ret[%d] [%s]", bRet, KEY_BT_VOICE); - return bRet; -} - -static bool _ungrab_voice_key(void) -{ - Eina_Bool bRet = true; - bRet = ecore_wl2_window_keygrab_unset(NULL, KEY_BT_VOICE, 0, 0); - LOGD("ecore_wl2_window_keygrab_unset ret[%d] [%s]", bRet, KEY_BT_VOICE); - return bRet; -} - -static bool _add_key_cb() -{ - if (_key_down_handler == NULL) - { - LOGE("_key_down_handler"); - _key_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_down_cb, NULL); - if(_key_down_handler == NULL) - { - LOGE("_key_down_handler == NULL "); - } - } - - if (_key_up_handler == NULL) - { - LOGE("_key_down_handler"); - _key_up_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_up_cb, NULL); - if(_key_up_handler == NULL) - { - LOGE("_key_up_handler == NULL "); - } - } - return true; -} - -static bool _delete_key_cb(void) -{ - LOGE("start"); - if (_key_down_handler != NULL) - { - ecore_event_handler_del(_key_down_handler); - _key_down_handler = NULL; - } - - if (_key_up_handler != NULL) - { - ecore_event_handler_del(_key_up_handler); - _key_up_handler = NULL; - } - LOGE("end"); - return true; -} - -void dependency_tv_button_initialize(mas_proxy_interface interface) -{ - g_proxy_interface = interface; - Ecore_Wl2_Display *_ecore_wl2_display = NULL; - - Eina_Bool bRet = ecore_wl2_init(); - LOGD("ecore_wl2_init: %d", bRet); - - _ecore_wl2_display = ecore_wl2_display_connect(NULL); - LOGD("_ecore_wl2_display: %p", _ecore_wl2_display); - - _grab_voice_key(); - _add_key_cb(); -} - -void dependency_tv_button_deinitialize() -{ - _delete_key_cb(); - _ungrab_voice_key(); -} diff --git a/plugins/wakeup-manager/inc/dependency_resolver.h b/plugins/wakeup-manager/inc/dependency_resolver.h index 2f7271a..cb12633 100644 --- a/plugins/wakeup-manager/inc/dependency_resolver.h +++ b/plugins/wakeup-manager/inc/dependency_resolver.h @@ -49,11 +49,7 @@ int dependency_resolver_process_wakeup_engine_command(const char* engine, const *** Definitions for dependencies *************************************************************************************/ #define MAS_DEPENDENCY_DEFAULT_PATH tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "multiassistant/") -#ifdef TV_PRODUCT -#define MAS_DEPENDENCY_DEFAULT_FILENAME "libma-dependency-tv.so" -#else #define MAS_DEPENDENCY_DEFAULT_FILENAME "libma-dependency-default.so" -#endif #define MAS_DEPENDENCY_MODULE_PATH "db/multi-assistant/dependency_module_path" #define MAS_DEPENDENCY_FUNC_INITIALIZE "mas_dependency_initialize" -- 2.7.4 From a1b9c3348fae2006951ae2e1c851e692bf55f5db Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 22 Nov 2019 19:57:21 +0900 Subject: [PATCH 04/16] Unify indentation Change-Id: I37f0b6fc8304bfb2498f4df6b533637566ea7ab4 --- inc/multi_assistant_service_plugin.h | 68 +++--- packaging/org.tizen.multi-assistant-service.spec | 4 +- plugins/wakeup-manager/inc/heap_tracer.h | 56 ++--- plugins/wakeup-manager/src/heap_tracer.cpp | 252 +++++++++++------------ src/multi_assistant_dbus.c | 42 ++-- src/multi_assistant_service_plugin.c | 14 +- 6 files changed, 218 insertions(+), 218 deletions(-) diff --git a/inc/multi_assistant_service_plugin.h b/inc/multi_assistant_service_plugin.h index b225b29..69fd1be 100644 --- a/inc/multi_assistant_service_plugin.h +++ b/inc/multi_assistant_service_plugin.h @@ -181,41 +181,41 @@ typedef int (*wakeup_manager_set_streaming_section_changed_callback)(wakeup_serv typedef int (*wakeup_manager_set_wakeup_engine_command_callback)(wakeup_service_wakeup_engine_command_cb callback, void* user_data); typedef struct { - wakeup_manager_initialize initialize; - wakeup_manager_deinitialize deinitialize; - wakeup_manager_get_settings get_settings; - wakeup_manager_add_assistant_wakeup_word add_assistant_wakeup_word; - wakeup_manager_add_assistant_language add_assistant_language; - wakeup_manager_set_assistant_wakeup_engine set_assistant_wakeup_engine; - wakeup_manager_set_default_assistant set_default_assistant; - wakeup_manager_get_default_assistant get_default_assistant; - wakeup_manager_set_language set_language; - wakeup_manager_activate activate; - wakeup_manager_deactivate deactivate; - wakeup_manager_update_voice_feedback_state update_voice_feedback_state; - wakeup_manager_send_assistant_specific_command send_assistant_specific_command; - wakeup_manager_set_background_volume set_background_volume; - wakeup_manager_update_recognition_result update_recognition_result; - wakeup_manager_process_event process_event; - wakeup_manager_start_streaming_utterance_data start_streaming_utterance_data; - wakeup_manager_stop_streaming_utterance_data stop_streaming_utterance_data; - wakeup_manager_start_streaming_previous_utterance_data start_streaming_previous_utterance_data; - wakeup_manager_stop_streaming_previous_utterance_data stop_streaming_previous_utterance_data; - wakeup_manager_start_streaming_follow_up_data start_streaming_follow_up_data; - wakeup_manager_stop_streaming_follow_up_data stop_streaming_follow_up_data; - wakeup_manager_get_audio_format get_audio_format; - wakeup_manager_get_audio_source_type get_audio_source_type; - wakeup_manager_set_wake_word_audio_require_flag set_wake_word_audio_require_flag; - wakeup_manager_set_assistant_language set_assistant_language; - wakeup_manager_set_wakeup_event_callback set_wakeup_event_callback; - wakeup_manager_set_utterance_streaming_callback set_utterance_streaming_callback; + wakeup_manager_initialize initialize; + wakeup_manager_deinitialize deinitialize; + wakeup_manager_get_settings get_settings; + wakeup_manager_add_assistant_wakeup_word add_assistant_wakeup_word; + wakeup_manager_add_assistant_language add_assistant_language; + wakeup_manager_set_assistant_wakeup_engine set_assistant_wakeup_engine; + wakeup_manager_set_default_assistant set_default_assistant; + wakeup_manager_get_default_assistant get_default_assistant; + wakeup_manager_set_language set_language; + wakeup_manager_activate activate; + wakeup_manager_deactivate deactivate; + wakeup_manager_update_voice_feedback_state update_voice_feedback_state; + wakeup_manager_send_assistant_specific_command send_assistant_specific_command; + wakeup_manager_set_background_volume set_background_volume; + wakeup_manager_update_recognition_result update_recognition_result; + wakeup_manager_process_event process_event; + wakeup_manager_start_streaming_utterance_data start_streaming_utterance_data; + wakeup_manager_stop_streaming_utterance_data stop_streaming_utterance_data; + wakeup_manager_start_streaming_previous_utterance_data start_streaming_previous_utterance_data; + wakeup_manager_stop_streaming_previous_utterance_data stop_streaming_previous_utterance_data; + wakeup_manager_start_streaming_follow_up_data start_streaming_follow_up_data; + wakeup_manager_stop_streaming_follow_up_data stop_streaming_follow_up_data; + wakeup_manager_get_audio_format get_audio_format; + wakeup_manager_get_audio_source_type get_audio_source_type; + wakeup_manager_set_wake_word_audio_require_flag set_wake_word_audio_require_flag; + wakeup_manager_set_assistant_language set_assistant_language; + wakeup_manager_set_wakeup_event_callback set_wakeup_event_callback; + wakeup_manager_set_utterance_streaming_callback set_utterance_streaming_callback; wakeup_manager_set_previous_utterance_streaming_callback set_previous_utterance_streaming_callback; - wakeup_manager_set_follow_up_streaming_callback set_follow_up_streaming_callback; - wakeup_manager_set_speech_status_callback set_speech_status_callback; - wakeup_manager_set_setting_changed_callback set_setting_changed_callback; - wakeup_manager_set_error_callback set_error_callback; - wakeup_manager_set_streaming_section_changed_callback set_streaming_section_changed_callback; - wakeup_manager_set_wakeup_engine_command_callback set_wakeup_engine_command_callback; + wakeup_manager_set_follow_up_streaming_callback set_follow_up_streaming_callback; + wakeup_manager_set_speech_status_callback set_speech_status_callback; + wakeup_manager_set_setting_changed_callback set_setting_changed_callback; + wakeup_manager_set_error_callback set_error_callback; + wakeup_manager_set_streaming_section_changed_callback set_streaming_section_changed_callback; + wakeup_manager_set_wakeup_engine_command_callback set_wakeup_engine_command_callback; } wakeup_manager_interface; #ifdef __cplusplus diff --git a/packaging/org.tizen.multi-assistant-service.spec b/packaging/org.tizen.multi-assistant-service.spec index 0bcc5e4..8de1ed1 100644 --- a/packaging/org.tizen.multi-assistant-service.spec +++ b/packaging/org.tizen.multi-assistant-service.spec @@ -52,8 +52,8 @@ LDFLAGS="$LDFLAGS -Wl,-z -Wl,nodelete" export LDFLAGS cmake \ - -DCMAKE_INSTALL_PREFIX=%{_appdir} \ - -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE \ + -DCMAKE_INSTALL_PREFIX=%{_appdir} \ + -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE \ make %{?jobs:-j%jobs} diff --git a/plugins/wakeup-manager/inc/heap_tracer.h b/plugins/wakeup-manager/inc/heap_tracer.h index fc7df29..cc8c671 100644 --- a/plugins/wakeup-manager/inc/heap_tracer.h +++ b/plugins/wakeup-manager/inc/heap_tracer.h @@ -41,41 +41,41 @@ void *vm_mark_unmanaged(void *ptr, const char *fmt, ...); class HeapTracer { public: - HeapTracer(); - virtual ~HeapTracer(); + HeapTracer(); + virtual ~HeapTracer(); - bool Insert(void *ptr, std::string description, size_t size = 0); - bool Delete(void *ptr, std::string description); - std::string Find(void *ptr); + bool Insert(void *ptr, std::string description, size_t size = 0); + bool Delete(void *ptr, std::string description); + std::string Find(void *ptr); - void MarkUnmanaged(void *ptr, std::string description); + void MarkUnmanaged(void *ptr, std::string description); - bool Empty(); - void Trace(); + bool Empty(); + void Trace(); protected: - typedef struct { - void *ptr{nullptr}; - std::string description; - int size{0}; - } AllocationEntry; + typedef struct { + void *ptr{nullptr}; + std::string description; + int size{0}; + } AllocationEntry; - std::mutex mManagedTableMutex; - std::unordered_map mManagedTable; + std::mutex mManagedTableMutex; + std::unordered_map mManagedTable; - std::mutex mUnmanagedRecordsMutex; - std::list mUnmanagedRecords; - size_t mUnmanagedRecordsSize{0}; + std::mutex mUnmanagedRecordsMutex; + std::list mUnmanagedRecords; + size_t mUnmanagedRecordsSize{0}; - enum class EntryOperation { - INSERT, - DELETE, - }; - typedef struct { - AllocationEntry entry; - EntryOperation operation; - struct timespec ts; - } EntryHistory; - std::list mEntryHistory; + enum class EntryOperation { + INSERT, + DELETE, + }; + typedef struct { + AllocationEntry entry; + EntryOperation operation; + struct timespec ts; + } EntryHistory; + std::list mEntryHistory; }; #endif /* __HEAP_TRACER_H__ */ \ No newline at end of file diff --git a/plugins/wakeup-manager/src/heap_tracer.cpp b/plugins/wakeup-manager/src/heap_tracer.cpp index 317f670..acf5bc6 100644 --- a/plugins/wakeup-manager/src/heap_tracer.cpp +++ b/plugins/wakeup-manager/src/heap_tracer.cpp @@ -23,208 +23,208 @@ const bool HEAP_TRACER_LOG_ENABLED = false void* vm_calloc(size_t nmemb, size_t size, const char *fmt, ...) { - void *ptr = calloc(nmemb, size); + void *ptr = calloc(nmemb, size); #ifdef USE_HEAP_TRACER - va_list argptr; - va_start(argptr, fmt); + va_list argptr; + va_start(argptr, fmt); - char description[DESCRIPTION_LENGTH]; - vsnprintf(description, sizeof(description), fmt, argptr); - _tracer.Insert(ptr, description, nmemb * size); + char description[DESCRIPTION_LENGTH]; + vsnprintf(description, sizeof(description), fmt, argptr); + _tracer.Insert(ptr, description, nmemb * size); - va_end(argptr); + va_end(argptr); #endif - return ptr; + return ptr; } void* vm_malloc(size_t size, const char *fmt, ...) { - void *ptr = malloc(size); + void *ptr = malloc(size); #ifdef USE_HEAP_TRACER - va_list argptr; - va_start(argptr, fmt); + va_list argptr; + va_start(argptr, fmt); - char description[DESCRIPTION_LENGTH]; - vsnprintf(description, sizeof(description), fmt, argptr); - _tracer.Insert(ptr, description, size); + char description[DESCRIPTION_LENGTH]; + vsnprintf(description, sizeof(description), fmt, argptr); + _tracer.Insert(ptr, description, size); - va_end(argptr); + va_end(argptr); #endif - return ptr; + return ptr; } void vm_free(void *ptr, const char *fmt, ...) { - if (ptr) { + if (ptr) { #ifdef USE_HEAP_TRACER - va_list argptr; - va_start(argptr, fmt); - - char description[DESCRIPTION_LENGTH]; - vsnprintf(description, sizeof(description), fmt, argptr); - if (false == _tracer.Delete(ptr, description)) { - _tracer.Find(ptr); - } - va_end(argptr); + va_list argptr; + va_start(argptr, fmt); + + char description[DESCRIPTION_LENGTH]; + vsnprintf(description, sizeof(description), fmt, argptr); + if (false == _tracer.Delete(ptr, description)) { + _tracer.Find(ptr); + } + va_end(argptr); #endif - free(ptr); - } else { - LOGD("Trying to free a null pointer"); - } + free(ptr); + } else { + LOGD("Trying to free a null pointer"); + } } char* vm_strdup(const char *s, const char *fmt, ...) { - char *ptr = nullptr; - if (s) { - ptr = strdup(s); + char *ptr = nullptr; + if (s) { + ptr = strdup(s); #ifdef USE_HEAP_TRACER - va_list argptr; - va_start(argptr, fmt); + va_list argptr; + va_start(argptr, fmt); - char description[DESCRIPTION_LENGTH]; - vsnprintf(description, sizeof(description), fmt, argptr); - _tracer.Insert(ptr, description, strlen(s) + 1); + char description[DESCRIPTION_LENGTH]; + vsnprintf(description, sizeof(description), fmt, argptr); + _tracer.Insert(ptr, description, strlen(s) + 1); - va_end(argptr); + va_end(argptr); #endif - } else { - LOGD("Trying to duplicate a null pointer"); - } - return ptr; + } else { + LOGD("Trying to duplicate a null pointer"); + } + return ptr; } void *vm_mark_unmanaged(void *ptr, const char *fmt, ...) { #ifdef USE_HEAP_TRACER - va_list argptr; - va_start(argptr, fmt); + va_list argptr; + va_start(argptr, fmt); - char description[DESCRIPTION_LENGTH]; - vsnprintf(description, sizeof(description), fmt, argptr); - _tracer.MarkUnmanaged(ptr, description); + char description[DESCRIPTION_LENGTH]; + vsnprintf(description, sizeof(description), fmt, argptr); + _tracer.MarkUnmanaged(ptr, description); - va_end(argptr); + va_end(argptr); #endif - return ptr; + return ptr; } HeapTracer::HeapTracer() { - LOGD("HeapTracer()"); + LOGD("HeapTracer()"); } HeapTracer::~HeapTracer() { - LOGD("~HeapTracer()"); + LOGD("~HeapTracer()"); - Trace(); + Trace(); } bool HeapTracer::Insert(void *ptr, std::string description, size_t size) { - if (HEAP_TRACER_LOG_ENABLED) { - LOGD("Heap allocated %p [size %zu] : %s", ptr, size, description.c_str()); - } + if (HEAP_TRACER_LOG_ENABLED) { + LOGD("Heap allocated %p [size %zu] : %s", ptr, size, description.c_str()); + } - AllocationEntry entry; - entry.ptr = ptr; - entry.description = description; - entry.size = size; + AllocationEntry entry; + entry.ptr = ptr; + entry.description = description; + entry.size = size; - std::lock_guard lock(mManagedTableMutex); - mManagedTable[ptr] = entry; + std::lock_guard lock(mManagedTableMutex); + mManagedTable[ptr] = entry; #ifdef RECORD_ALL_HISTORY - EntryHistory history; - history.entry = entry; - history.operation = EntryOperation::INSERT; - clock_gettime(CLOCK_REALTIME, &(history.ts)); - mEntryHistory.push_back(history); + EntryHistory history; + history.entry = entry; + history.operation = EntryOperation::INSERT; + clock_gettime(CLOCK_REALTIME, &(history.ts)); + mEntryHistory.push_back(history); #endif - return true; + return true; } bool HeapTracer::Delete(void *ptr, std::string description) { - if (HEAP_TRACER_LOG_ENABLED) { - LOGD("Heap deallocated %p : %s", ptr, description.c_str()); - } + if (HEAP_TRACER_LOG_ENABLED) { + LOGD("Heap deallocated %p : %s", ptr, description.c_str()); + } - std::lock_guard lock(mManagedTableMutex); - if (mManagedTable.find(ptr) != mManagedTable.end()) { + std::lock_guard lock(mManagedTableMutex); + if (mManagedTable.find(ptr) != mManagedTable.end()) { #ifdef RECORD_ALL_HISTORY - EntryHistory history; - history.entry = mManagedTable[ptr]; - history.entry.description = description; - history.operation = EntryOperation::DELETE; - clock_gettime(CLOCK_REALTIME, &(history.ts)); - mEntryHistory.push_back(history); + EntryHistory history; + history.entry = mManagedTable[ptr]; + history.entry.description = description; + history.operation = EntryOperation::DELETE; + clock_gettime(CLOCK_REALTIME, &(history.ts)); + mEntryHistory.push_back(history); #endif - mManagedTable.erase(ptr); - } else { - LOGE("Heap Trace Error : Trying to delete an entry that does not exist : %p, %s", - ptr, description.c_str()); - return false; - } - return true; + mManagedTable.erase(ptr); + } else { + LOGE("Heap Trace Error : Trying to delete an entry that does not exist : %p, %s", + ptr, description.c_str()); + return false; + } + return true; } std::string HeapTracer::Find(void *ptr) { - std::lock_guard lock(mManagedTableMutex); + std::lock_guard lock(mManagedTableMutex); #ifdef RECORD_ALL_HISTORY - for (auto entry : mEntryHistory) { - if (entry.entry.ptr == ptr) { - LOGD("Heap history record for %p : %s, %lld.%.9ld, %s", - ptr, - (entry.operation == EntryOperation::INSERT ? "INSERT" : "DELETE"), - (long long)(entry.ts.tv_sec), entry.ts.tv_nsec, - entry.entry.description.c_str()); - } - } + for (auto entry : mEntryHistory) { + if (entry.entry.ptr == ptr) { + LOGD("Heap history record for %p : %s, %lld.%.9ld, %s", + ptr, + (entry.operation == EntryOperation::INSERT ? "INSERT" : "DELETE"), + (long long)(entry.ts.tv_sec), entry.ts.tv_nsec, + entry.entry.description.c_str()); + } + } #endif - if (mManagedTable.find(ptr) != mManagedTable.end()) { - return mManagedTable[ptr].description; - } - return std::string("Not found"); + if (mManagedTable.find(ptr) != mManagedTable.end()) { + return mManagedTable[ptr].description; + } + return std::string("Not found"); } void HeapTracer::MarkUnmanaged(void *ptr, std::string description) { - LOGD("Marking as unmanaged : %p %s", ptr, description.c_str()); - - std::lock_guard lock(mManagedTableMutex); - auto iter = mManagedTable.find(ptr); - if (iter != mManagedTable.end()) { - if (RECORD_UNMANAGED_CHUNKS) { - std::lock_guard lock(mUnmanagedRecordsMutex); - if (mUnmanagedRecordsSize >= MAX_UNMANAGED_RECORDS) { - mUnmanagedRecords.pop_front(); - mUnmanagedRecordsSize--; - } - mUnmanagedRecords.push_back(iter->second); - mUnmanagedRecordsSize++; - } - mManagedTable.erase(ptr); - } else { - LOGE("Heap Trace Error : Trying to mark an entry that does not exist as unmanaged : %p", ptr); - } + LOGD("Marking as unmanaged : %p %s", ptr, description.c_str()); + + std::lock_guard lock(mManagedTableMutex); + auto iter = mManagedTable.find(ptr); + if (iter != mManagedTable.end()) { + if (RECORD_UNMANAGED_CHUNKS) { + std::lock_guard lock(mUnmanagedRecordsMutex); + if (mUnmanagedRecordsSize >= MAX_UNMANAGED_RECORDS) { + mUnmanagedRecords.pop_front(); + mUnmanagedRecordsSize--; + } + mUnmanagedRecords.push_back(iter->second); + mUnmanagedRecordsSize++; + } + mManagedTable.erase(ptr); + } else { + LOGE("Heap Trace Error : Trying to mark an entry that does not exist as unmanaged : %p", ptr); + } } bool HeapTracer::Empty() { - std::lock_guard lock(mManagedTableMutex); - return mManagedTable.empty(); + std::lock_guard lock(mManagedTableMutex); + return mManagedTable.empty(); } void HeapTracer::Trace() { - LOGD("Heap Trace Start"); + LOGD("Heap Trace Start"); - std::lock_guard lock(mManagedTableMutex); - for (auto item : mManagedTable) { - LOGD("No dealloc information exists for %p [size %d] : %s", item.first, item.second.size, item.second.description.c_str()); - } - LOGD("Heap Trace End"); + std::lock_guard lock(mManagedTableMutex); + for (auto item : mManagedTable) { + LOGD("No dealloc information exists for %p [size %d] : %s", item.first, item.second.size, item.second.description.c_str()); + } + LOGD("Heap Trace End"); } diff --git a/src/multi_assistant_dbus.c b/src/multi_assistant_dbus.c index e1ee0a6..01cac4d 100644 --- a/src/multi_assistant_dbus.c +++ b/src/multi_assistant_dbus.c @@ -45,7 +45,7 @@ int mas_dbus_reconnect() bool sender_connected = dbus_connection_get_is_connected(g_conn_sender); bool listener_connected = dbus_connection_get_is_connected(g_conn_listener); MAS_LOGW("[DBUS] Sender(%s) Listener(%s)", - sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected"); + sender_connected ? "Connected" : "Not connected", listener_connected ? "Connected" : "Not connected"); if (false == sender_connected || false == listener_connected) { mas_dbus_close_connection(); @@ -565,10 +565,10 @@ int masc_ui_dbus_send_asr_result(int pid, int event, char* asr_result) DBusMessage* msg; msg = dbus_message_new_method_call( - MA_UI_CLIENT_SERVICE_NAME, - MA_UI_CLIENT_SERVICE_OBJECT_PATH, - MA_UI_CLIENT_SERVICE_INTERFACE, - MAS_UI_METHOD_SEND_ASR_RESULT); + MA_UI_CLIENT_SERVICE_NAME, + MA_UI_CLIENT_SERVICE_OBJECT_PATH, + MA_UI_CLIENT_SERVICE_INTERFACE, + MAS_UI_METHOD_SEND_ASR_RESULT); if (NULL == msg) { MAS_LOGE("@@ Request multi-assistant send ASR result : Fail to make message"); @@ -619,10 +619,10 @@ int masc_ui_dbus_send_result(int pid, const char* display_text, const char* utte DBusMessage* msg; msg = dbus_message_new_method_call( - MA_UI_CLIENT_SERVICE_NAME, - MA_UI_CLIENT_SERVICE_OBJECT_PATH, - MA_UI_CLIENT_SERVICE_INTERFACE, - MAS_UI_METHOD_SEND_RESULT); + MA_UI_CLIENT_SERVICE_NAME, + MA_UI_CLIENT_SERVICE_OBJECT_PATH, + MA_UI_CLIENT_SERVICE_INTERFACE, + MAS_UI_METHOD_SEND_RESULT); if (NULL == msg) { MAS_LOGE("@@ Request multi-assistant send result : Fail to make message"); @@ -718,10 +718,10 @@ int masc_ui_dbus_change_assistant(char* app_id) DBusMessage* msg; msg = dbus_message_new_method_call( - MA_UI_CLIENT_SERVICE_NAME, - MA_UI_CLIENT_SERVICE_OBJECT_PATH, - MA_UI_CLIENT_SERVICE_INTERFACE, - MAS_UI_METHOD_CHANGE_ASSISTANT); + MA_UI_CLIENT_SERVICE_NAME, + MA_UI_CLIENT_SERVICE_OBJECT_PATH, + MA_UI_CLIENT_SERVICE_INTERFACE, + MAS_UI_METHOD_CHANGE_ASSISTANT); dbus_message_append_args(msg, DBUS_TYPE_STRING, &app_id, @@ -799,10 +799,10 @@ int masc_ui_dbus_send_recognition_result(int pid, int result) DBusMessage* msg; msg = dbus_message_new_method_call( - MA_UI_CLIENT_SERVICE_NAME, - MA_UI_CLIENT_SERVICE_OBJECT_PATH, - MA_UI_CLIENT_SERVICE_INTERFACE, - MAS_UI_METHOD_SEND_RECOGNITION_RESULT); + MA_UI_CLIENT_SERVICE_NAME, + MA_UI_CLIENT_SERVICE_OBJECT_PATH, + MA_UI_CLIENT_SERVICE_INTERFACE, + MAS_UI_METHOD_SEND_RECOGNITION_RESULT); if (NULL == msg) { MAS_LOGE("@@ Request multi-assistant send recognition result : Fail to make message"); @@ -840,10 +840,10 @@ int masc_ui_dbus_enable_common_ui(int enable) DBusMessage* msg; msg = dbus_message_new_method_call( - MA_UI_CLIENT_SERVICE_NAME, - MA_UI_CLIENT_SERVICE_OBJECT_PATH, - MA_UI_CLIENT_SERVICE_INTERFACE, - MAS_UI_METHOD_ENABLE_COMMON_UI); + MA_UI_CLIENT_SERVICE_NAME, + MA_UI_CLIENT_SERVICE_OBJECT_PATH, + MA_UI_CLIENT_SERVICE_INTERFACE, + MAS_UI_METHOD_ENABLE_COMMON_UI); if (NULL == msg) { MAS_LOGE("@@ Request multi-assistant enable common ui : Fail to make message"); diff --git a/src/multi_assistant_service_plugin.c b/src/multi_assistant_service_plugin.c index 892eed3..f07d730 100644 --- a/src/multi_assistant_service_plugin.c +++ b/src/multi_assistant_service_plugin.c @@ -694,7 +694,7 @@ int multi_assistant_service_plugin_activate(void) int ret = -1; if (NULL != g_handle) { wakeup_manager_activate func = _wakeup_manager_interface.activate; - if (NULL == func) { + if (NULL == func) { MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_ACTIVATE); } else { ret = func(); @@ -713,7 +713,7 @@ int multi_assistant_service_plugin_deactivate(void) int ret = -1; if (NULL != g_handle) { wakeup_manager_deactivate func = _wakeup_manager_interface.deactivate; - if (NULL == func) { + if (NULL == func) { MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_DEACTIVATE); } else { ret = func(); @@ -732,7 +732,7 @@ int multi_assistant_service_plugin_update_voice_feedback_state(const char* appid int ret = -1; if (NULL != g_handle) { wakeup_manager_update_voice_feedback_state func = _wakeup_manager_interface.update_voice_feedback_state; - if (NULL == func) { + if (NULL == func) { MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_UPDATE_VOICE_FEEDBACK_STATE); } else { ret = func(appid, state); @@ -751,7 +751,7 @@ int multi_assistant_service_plugin_send_assistant_specific_command(const char* a int ret = -1; if (NULL != g_handle) { wakeup_manager_send_assistant_specific_command func = _wakeup_manager_interface.send_assistant_specific_command; - if (NULL == func) { + if (NULL == func) { MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_SEND_ASSISTANT_SPECIFIC_COMMAND); } else { ret = func(appid, command); @@ -770,7 +770,7 @@ int multi_assistant_service_plugin_set_background_volume(const char* appid, doub int ret = -1; if (NULL != g_handle) { wakeup_manager_set_background_volume func = _wakeup_manager_interface.set_background_volume; - if (NULL == func) { + if (NULL == func) { MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_SET_BACKGROUND_VOLUME); } else { ret = func(appid, ratio); @@ -789,7 +789,7 @@ int multi_assistant_service_plugin_update_recognition_result(const char* appid, int ret = -1; if (NULL != g_handle) { wakeup_manager_update_recognition_result func = _wakeup_manager_interface.update_recognition_result; - if (NULL == func) { + if (NULL == func) { MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_UPDATE_RECOGNITION_RESULT); } else { ret = func(appid, state); @@ -808,7 +808,7 @@ int multi_assistant_service_plugin_process_event(int event, void *data, int len) int ret = -1; if (NULL != g_handle) { wakeup_manager_process_event func = _wakeup_manager_interface.process_event; - if (NULL == func) { + if (NULL == func) { MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_PROCESS_EVENT); } else { ret = func(event, data, len); -- 2.7.4 From 198831a1f50a20a87789aa103426cb1aaa7cd234 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 22 Nov 2019 20:02:08 +0900 Subject: [PATCH 05/16] Fix incorrect log messages Change-Id: Iea4b424e9a28a8fde1a923b8b92cd9071caa5de1 --- plugins/wakeup-manager/src/dependency_resolver.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/wakeup-manager/src/dependency_resolver.cpp b/plugins/wakeup-manager/src/dependency_resolver.cpp index b15eef8..793d38f 100644 --- a/plugins/wakeup-manager/src/dependency_resolver.cpp +++ b/plugins/wakeup-manager/src/dependency_resolver.cpp @@ -156,7 +156,7 @@ int dependency_resolver_set_error_callback(mas_dependency_error_cb callback, voi ret = func(callback, user_data); } catch (const std::exception& e) { MAS_LOGE("[ERROR] %s of dependency module threw exception : %s", - MAS_DEPENDENCY_FUNC_DEINITIALIZE, e.what()); + MAS_DEPENDENCY_FUNC_SET_ERROR_CALLBACK, e.what()); } if (0 != ret) { MAS_LOGE("[ERROR] Fail to set error callback(%p, %p), ret(%d)", callback, user_data, ret); @@ -181,7 +181,7 @@ int dependency_resolver_start_recording(void) ret = func(); } catch (const std::exception& e) { MAS_LOGE("[ERROR] %s of dependency module threw exception : %s", - MAS_DEPENDENCY_FUNC_DEINITIALIZE, e.what()); + MAS_DEPENDENCY_FUNC_START_RECORDING, e.what()); } if (0 != ret) { MAS_LOGE("[ERROR] Fail to start recording, ret(%d)", ret); @@ -206,7 +206,7 @@ int dependency_resolver_stop_recording(void) ret = func(); } catch (const std::exception& e) { MAS_LOGE("[ERROR] %s of dependency module threw exception : %s", - MAS_DEPENDENCY_FUNC_DEINITIALIZE, e.what()); + MAS_DEPENDENCY_FUNC_STOP_RECORDING, e.what()); } if (0 != ret) { MAS_LOGE("[ERROR] Fail to stop recording, ret(%d)", ret); @@ -232,7 +232,7 @@ int dependency_resolver_set_recording_session(unsigned int session) ret = func(session); } catch (const std::exception& e) { MAS_LOGE("[ERROR] %s of dependency module threw exception : %s", - MAS_DEPENDENCY_FUNC_DEINITIALIZE, e.what()); + MAS_DEPENDENCY_FUNC_SET_RECORDING_SESSION, e.what()); } if (0 != ret) { MAS_LOGE("[ERROR] Fail to set recording session, ret(%d)", ret); @@ -257,7 +257,7 @@ int dependency_resolver_set_background_volume(double ratio) ret = func(ratio); } catch (const std::exception& e) { MAS_LOGE("[ERROR] %s of dependency module threw exception : %s", - MAS_DEPENDENCY_FUNC_DEINITIALIZE, e.what()); + MAS_DEPENDENCY_FUNC_SET_BACKGROUND_VOLUME, e.what()); } if (0 != ret) { MAS_LOGE("[ERROR] Fail to set background volume to %f, ret(%d)", ratio, ret); @@ -282,7 +282,7 @@ int dependency_resolver_get_audio_format(int* rate, int* channel, int* audio_typ ret = func(rate, channel, audio_type); } catch (const std::exception& e) { MAS_LOGE("[ERROR] %s of dependency module threw exception : %s", - MAS_DEPENDENCY_FUNC_DEINITIALIZE, e.what()); + MAS_DEPENDENCY_FUNC_GET_AUDIO_FORMAT, e.what()); } if (0 != ret) { MAS_LOGE("[ERROR] Fail to get audio format, ret(%d)", ret); @@ -307,7 +307,7 @@ int dependency_resolver_get_audio_source_type(char** type) ret = func(type); } catch (const std::exception& e) { MAS_LOGE("[ERROR] %s of dependency module threw exception : %s", - MAS_DEPENDENCY_FUNC_DEINITIALIZE, e.what()); + MAS_DEPENDENCY_FUNC_GET_AUDIO_SOURCE_TYPE, e.what()); } if (0 != ret) { MAS_LOGE("[ERROR] Fail to get audio source type, ret(%d)", ret); -- 2.7.4 From ad1296d9896424c9fe9741a961b8872238b9a446 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 22 Nov 2019 16:39:13 +0900 Subject: [PATCH 06/16] Move common definitions into multi-assistant's dev package Change-Id: I31ad25810fe4e8d9a46245793f3d946148ab5ed6 --- ..._service.h => multi_assistant_service_client.h} | 2 - inc/multi_assistant_service_plugin.h | 8 +- inc/multi_wakeup_recognizer.h | 86 ++-------------------- plugins/wakeup-manager/CMakeLists.txt | 1 + .../dependency-default/CMakeLists.txt | 1 + .../dependency-default/inc/dependency_default.h | 37 +--------- .../inc/dependency_default_audio.h | 4 +- .../inc/dependency_default_button.h | 4 +- .../dependency-default/src/dependency_default.cpp | 6 +- .../src/dependency_default_audio.cpp | 13 ++-- .../src/dependency_default_button.cpp | 5 +- plugins/wakeup-manager/inc/dependency_resolver.h | 21 ++---- plugins/wakeup-manager/inc/wakeup_audio_manager.h | 17 ++--- plugins/wakeup-manager/inc/wakeup_engine_manager.h | 24 +++--- plugins/wakeup-manager/inc/wakeup_interfaces.h | 50 ------------- plugins/wakeup-manager/inc/wakeup_manager.h | 27 +++---- .../wakeup-manager/inc/wakeup_manager_wrapper.h | 52 +++---------- plugins/wakeup-manager/inc/wakeup_policy.h | 6 +- plugins/wakeup-manager/inc/wakeup_policy_default.h | 4 +- plugins/wakeup-manager/inc/wakeup_policy_impl.h | 2 +- plugins/wakeup-manager/src/dependency_resolver.cpp | 6 +- .../wakeup-manager/src/wakeup_audio_manager.cpp | 23 +++--- .../wakeup-manager/src/wakeup_engine_manager.cpp | 53 ++++++++++--- plugins/wakeup-manager/src/wakeup_manager.cpp | 48 ++++++------ .../wakeup-manager/src/wakeup_manager_wrapper.cpp | 34 +++++---- plugins/wakeup-manager/src/wakeup_policy.cpp | 2 +- .../wakeup-manager/src/wakeup_policy_default.cpp | 4 +- src/multi_assistant_dbus_server.c | 2 +- src/multi_assistant_service.c | 12 +-- src/multi_assistant_service_plugin.c | 42 +++++------ 30 files changed, 217 insertions(+), 379 deletions(-) rename inc/{multi_assistant_service.h => multi_assistant_service_client.h} (98%) delete mode 100644 plugins/wakeup-manager/inc/wakeup_interfaces.h diff --git a/inc/multi_assistant_service.h b/inc/multi_assistant_service_client.h similarity index 98% rename from inc/multi_assistant_service.h rename to inc/multi_assistant_service_client.h index 775245d..bc4e2a5 100644 --- a/inc/multi_assistant_service.h +++ b/inc/multi_assistant_service_client.h @@ -89,8 +89,6 @@ typedef enum { } CLIENT_LAUNCH_MODE; int mas_launch_client_by_appid(const char *appid, CLIENT_LAUNCH_MODE launch_mode); -int mas_process_voice_key_event(bool pressed); - typedef enum { PREPROCESSING_STATE_NONE, PREPROCESSING_STATE_WAKEUP_PREPROCESS_ENABLED, diff --git a/inc/multi_assistant_service_plugin.h b/inc/multi_assistant_service_plugin.h index 69fd1be..6191ea1 100644 --- a/inc/multi_assistant_service_plugin.h +++ b/inc/multi_assistant_service_plugin.h @@ -19,6 +19,7 @@ #define _MULTI_ASSISTANT_SERVICE_PLUGIN_H_ #include +#include #include "multi_wakeup_recognizer.h" #include "multi_assistant_main.h" @@ -27,13 +28,6 @@ extern "C" { #endif -typedef enum { - MA_PLUGIN_EVENT_VOICE_KEY_PRESSED = 0, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH = MA_PLUGIN_EVENT_VOICE_KEY_RELEASED, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_TAP, -} ma_plugin_event_e; - typedef struct { int plugin_version; bool ui_panel_enabled; diff --git a/inc/multi_wakeup_recognizer.h b/inc/multi_wakeup_recognizer.h index 03e6685..c7a4a0e 100644 --- a/inc/multi_wakeup_recognizer.h +++ b/inc/multi_wakeup_recognizer.h @@ -20,90 +20,18 @@ #include +#include +#include + #ifdef __cplusplus extern "C" { #endif -typedef struct { - const char *wakeup_appid; - const char *wakeup_word; - const char *wakeup_language; - const char *wakeup_voice_id; - const char *wakeup_engine; - float wakeup_confidence_score; - - long wakeup_start_time; - long wakeup_end_time; - bool wakeup_time_valid; - - const void *extra_data; - int extra_data_length; - const char *extra_data_description; -} wakeup_event_info; - -typedef enum { - WAKEUP_SPEECH_STREAMING_EVENT_FAIL = -1, /**< Failed */ - WAKEUP_SPEECH_STREAMING_EVENT_START = 1, /**< Start event */ - WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE = 2, /**< Continue event */ - WAKEUP_SPEECH_STREAMING_EVENT_FINISH = 3 /**< Finish event */ -} wakeup_speech_streaming_event_e; - -typedef enum { - WAKEUP_SPEECH_STATUS_NONE = -1, /**< None */ - WAKEUP_SPEECH_STATUS_BEGINNING_POINT_DETECTED = 1, /**< Beginning point of speech is detected */ - WAKEUP_SPEECH_STATUS_END_POINT_DETECTED = 2 /**< End point of speech is detected */ -} wakeup_speech_status_e; - -typedef enum { - WAKEUP_ASR_RESULT_EVENT_FINAL = 0, /**< Event when either the full matched or the final result is delivered */ - WAKEUP_ASR_RESULT_EVENT_PARTIAL, /**< Event when the partial matched result is delivered */ - WAKEUP_ASR_RESULT_EVENT_ERROR /**< Event when the recognition has failed */ -} wakeup_asr_result_event_e; - -typedef enum { - MA_AUDIO_STREAMING_DATA_TYPE_CURRENT_UTTERANCE = 0, /**< Current utterance */ - MA_AUDIO_STREAMING_DATA_TYPE_PREVIOUS_UTTERANCE, /**< Previous utterance */ - MA_AUDIO_STREAMING_DATA_TYPE_FOLLOW_UP_SPEECH /**< Follow-up speech */ -} ma_audio_streaming_data_type_e; - -typedef enum { - MA_ACTIVE_STATE_INACTIVE = 0, /**< 'Inactive' state */ - MA_ACTIVE_STATE_ACTIVE, /**< 'Active' state */ - MA_ACTIVE_STATE_PREPROCESSING, /**< 'Preprocessing' state */ -} ma_active_state_e; - -typedef enum { - MA_RECOGNITION_RESULT_EVENT_SUCCESS = 0, /**< Recognition succeeded */ - MA_RECOGNITION_RESULT_EVENT_EMPTY_TEXT, /**< No text result recognized */ - MA_RECOGNITION_RESULT_EVENT_ERROR, /**< Unknown error occurred */ - MA_RECOGNITION_RESULT_EVENT_FALSE_TRIGGER /**< Turned out to be a false trigger */ -} ma_recognition_result_event_e; - -typedef enum { - MA_PREPROCESSING_ALLOW_NONE = 0, /**< No preprocessing allowed */ - MA_PREPROCESSING_ALLOW_UTTERANCE, /**< Preprocessing allowed for utterance audio only */ - MA_PREPROCESSING_ALLOW_FOLLOW_UP, /**< Preprocessing allowed for follow-up audio only */ - MA_PREPROCESSING_ALLOW_ALL, /**< Preprocessing allowed for all audio */ -} ma_preprocessing_allow_mode_e; - -typedef enum { - MA_AUDIO_STREAMING_DATA_SECTION_UTTERANCE = 0, /**< Utterance section started */ - MA_AUDIO_STREAMING_DATA_SECTION_WAKE_WORD, /**< Wake word section started */ -} ma_audio_streaming_data_section_e; - -typedef enum { - WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS = 0, /**< All assistants - name not required */ - WAKEUP_ENGINE_COMMAND_TARGET_SPECIFIC_ASSISTANTS, /**< Specific assistant - name required */ - WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE, /**< Dependency module - name not required */ -} wakeup_engine_command_target_e; - -typedef void (*ma_audio_streaming_data_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data); - -typedef void (*wakeup_service_wakeup_event_cb)(wakeup_event_info wakeup_info, const char* wakeup_word, void* user_data); +typedef void (*wakeup_service_wakeup_event_cb)(mas_wakeup_event_info wakeup_info, const char* wakeup_word, void* user_data); -typedef void (*wakeup_service_speech_streaming_cb)(wakeup_speech_streaming_event_e event, unsigned char* buffer, int len, void *user_data); +typedef void (*wakeup_service_speech_streaming_cb)(mas_speech_streaming_event_e event, unsigned char* buffer, int len, void *user_data); -typedef void (*wakeup_service_speech_status_cb)(wakeup_speech_status_e status, void *user_data); +typedef void (*wakeup_service_speech_status_cb)(mas_speech_status_e status, void *user_data); typedef void (*wakeup_service_setting_changed_cb)(void *user_data); @@ -111,7 +39,7 @@ typedef void (*wakeup_service_error_cb)(int error, const char* err_msg, void* us typedef void (*wakeup_service_streaming_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data); -typedef void (*wakeup_service_wakeup_engine_command_cb)(wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data); +typedef void (*wakeup_service_wakeup_engine_command_cb)(mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data); #ifdef __cplusplus } diff --git a/plugins/wakeup-manager/CMakeLists.txt b/plugins/wakeup-manager/CMakeLists.txt index 4e322b3..1f804c1 100644 --- a/plugins/wakeup-manager/CMakeLists.txt +++ b/plugins/wakeup-manager/CMakeLists.txt @@ -22,6 +22,7 @@ SET(WMPKG_CHECK_MODULES eina vconf pkgmgr-info + multi-assistant ) INCLUDE(FindPkgConfig) diff --git a/plugins/wakeup-manager/dependency-default/CMakeLists.txt b/plugins/wakeup-manager/dependency-default/CMakeLists.txt index a08730d..b56b4d5 100644 --- a/plugins/wakeup-manager/dependency-default/CMakeLists.txt +++ b/plugins/wakeup-manager/dependency-default/CMakeLists.txt @@ -22,6 +22,7 @@ SET(DDPKG_CHECK_MODULES eina vconf pkgmgr-info + multi-assistant ) INCLUDE(FindPkgConfig) diff --git a/plugins/wakeup-manager/dependency-default/inc/dependency_default.h b/plugins/wakeup-manager/dependency-default/inc/dependency_default.h index f0e3c29..6f1f565 100644 --- a/plugins/wakeup-manager/dependency-default/inc/dependency_default.h +++ b/plugins/wakeup-manager/dependency-default/inc/dependency_default.h @@ -20,6 +20,8 @@ #include +#include + #ifndef LOG_TAG #define LOG_TAG "dependency_default" #endif @@ -28,40 +30,9 @@ extern "C" { #endif -typedef enum { - WAKEUP_SPEECH_STREAMING_EVENT_FAIL = -1, /**< Failed */ - WAKEUP_SPEECH_STREAMING_EVENT_START = 1, /**< Start event */ - WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE = 2, /**< Continue event */ - WAKEUP_SPEECH_STREAMING_EVENT_FINISH = 3 /**< Finish event */ -} wakeup_speech_streaming_event_e; - -typedef enum { - MA_PLUGIN_EVENT_VOICE_KEY_PRESSED = 0, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH = MA_PLUGIN_EVENT_VOICE_KEY_RELEASED, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_TAP, -} ma_plugin_event_e; - -typedef enum -{ - RECORDING_SESSION_WAKE_WORD, - RECORDING_SESSION_UTTERANCE, - RECORDING_SESSION_FOLLOW_UP, -} recording_session; - -typedef void (*mas_dependency_error_cb)(int error, const char* err_msg, void* user_data); - -typedef int (*mas_proxy_process_event)(int event, void* data, int len); -typedef int (*mas_proxy_feed_audio_data)(wakeup_speech_streaming_event_e event, void* buffer, int len); - -typedef struct { - mas_proxy_process_event process_event; - mas_proxy_feed_audio_data feed_audio_data; -} mas_proxy_interface; - -EXPORT_API int mas_dependency_initialize(mas_proxy_interface interfaces, int *dependency_version); +EXPORT_API int mas_dependency_initialize(mas_dependency_plugin_proxy_interface interfaces, int *dependency_version); EXPORT_API int mas_dependency_deinitialize(void); -EXPORT_API int mas_dependency_set_error_callback(mas_dependency_error_cb callback, void* user_data); +EXPORT_API int mas_dependency_set_error_callback(mas_error_cb callback, void* user_data); EXPORT_API int mas_dependency_start_recording(void); EXPORT_API int mas_dependency_stop_recording(void); EXPORT_API int mas_dependency_set_recording_session(unsigned int session); diff --git a/plugins/wakeup-manager/dependency-default/inc/dependency_default_audio.h b/plugins/wakeup-manager/dependency-default/inc/dependency_default_audio.h index a51bb03..d723e00 100644 --- a/plugins/wakeup-manager/dependency-default/inc/dependency_default_audio.h +++ b/plugins/wakeup-manager/dependency-default/inc/dependency_default_audio.h @@ -17,7 +17,9 @@ #ifndef _DEPENDENCY_DEFAULT_AUDIO_H_ #define _DEPENDENCY_DEFAULT_AUDIO_H_ -void dependency_default_audio_initialize(mas_proxy_interface interface); +#include "dependency_default.h" + +void dependency_default_audio_initialize(mas_dependency_plugin_proxy_interface interface); void dependency_default_audio_deinitialize(); void dependency_default_audio_start_recording(); diff --git a/plugins/wakeup-manager/dependency-default/inc/dependency_default_button.h b/plugins/wakeup-manager/dependency-default/inc/dependency_default_button.h index 4639c4b..043283a 100644 --- a/plugins/wakeup-manager/dependency-default/inc/dependency_default_button.h +++ b/plugins/wakeup-manager/dependency-default/inc/dependency_default_button.h @@ -17,7 +17,9 @@ #ifndef _DEPENDENCY_DEFAULT_BUTTON_H_ #define _DEPENDENCY_DEFAULT_BUTTON_H_ -void dependency_default_button_initialize(mas_proxy_interface interface); +#include "dependency_default.h" + +void dependency_default_button_initialize(mas_dependency_plugin_proxy_interface interface); void dependency_default_button_deinitialize(); #endif //_DEPENDENCY_DEFAULT_BUTTON_H_ diff --git a/plugins/wakeup-manager/dependency-default/src/dependency_default.cpp b/plugins/wakeup-manager/dependency-default/src/dependency_default.cpp index e3d859d..7ca62bc 100644 --- a/plugins/wakeup-manager/dependency-default/src/dependency_default.cpp +++ b/plugins/wakeup-manager/dependency-default/src/dependency_default.cpp @@ -7,12 +7,12 @@ #include -static mas_proxy_interface g_proxy_interface; +static mas_dependency_plugin_proxy_interface g_proxy_interface; const int g_dependency_version = 1; static bool g_should_exit = false; -int mas_dependency_initialize(mas_proxy_interface interface, int *dependency_version) +int mas_dependency_initialize(mas_dependency_plugin_proxy_interface interface, int *dependency_version) { g_proxy_interface = interface; @@ -48,7 +48,7 @@ int mas_dependency_deinitialize(void) return 0; } -int mas_dependency_set_error_callback(mas_dependency_error_cb callback, void* user_data) +int mas_dependency_set_error_callback(mas_error_cb callback, void* user_data) { return 0; } diff --git a/plugins/wakeup-manager/dependency-default/src/dependency_default_audio.cpp b/plugins/wakeup-manager/dependency-default/src/dependency_default_audio.cpp index d1662c8..e1cb9ab 100644 --- a/plugins/wakeup-manager/dependency-default/src/dependency_default_audio.cpp +++ b/plugins/wakeup-manager/dependency-default/src/dependency_default_audio.cpp @@ -1,8 +1,7 @@ -#include "dependency_default.h" #include "dependency_default_audio.h" static bool g_voice_key_pressed = false; -static mas_proxy_interface g_proxy_interface; +static mas_dependency_plugin_proxy_interface g_proxy_interface; #include #include @@ -119,7 +118,7 @@ static void _audio_in_state_changed_cb(audio_in_h handle, audio_io_state_e previ } } -void dependency_default_audio_initialize(mas_proxy_interface interfaces) +void dependency_default_audio_initialize(mas_dependency_plugin_proxy_interface interfaces) { const int rate = 16000; const audio_channel_e channel = AUDIO_CHANNEL_MONO; @@ -282,7 +281,7 @@ static void recorder_thread_func() break; } - g_proxy_interface.feed_audio_data(WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE, + g_proxy_interface.feed_audio_data(MAS_SPEECH_STREAMING_EVENT_CONTINUE, buffer, read_bytes); /* Audio read log */ @@ -331,9 +330,9 @@ void dependency_default_audio_stop_recording() void dependency_default_audio_set_recording_session(unsigned int session) { LOGD("Current recording session : [%s]", - (RECORDING_SESSION_WAKE_WORD == session) ? "wake word detecting" : - (RECORDING_SESSION_UTTERANCE == session) ? "utterance recording" : - (RECORDING_SESSION_FOLLOW_UP == session) ? "follow-up speech recording" : + (MAS_RECORDING_SESSION_WAKE_WORD == session) ? "wake word detecting" : + (MAS_RECORDING_SESSION_UTTERANCE == session) ? "utterance recording" : + (MAS_RECORDING_SESSION_FOLLOW_UP == session) ? "follow-up speech recording" : "ERROR - Invalid recording session information" ); } diff --git a/plugins/wakeup-manager/dependency-default/src/dependency_default_button.cpp b/plugins/wakeup-manager/dependency-default/src/dependency_default_button.cpp index 5b39979..6803bdb 100644 --- a/plugins/wakeup-manager/dependency-default/src/dependency_default_button.cpp +++ b/plugins/wakeup-manager/dependency-default/src/dependency_default_button.cpp @@ -1,11 +1,10 @@ -#include "dependency_default.h" #include "dependency_default_button.h" #include -static mas_proxy_interface g_proxy_interface; +static mas_dependency_plugin_proxy_interface g_proxy_interface; -void dependency_default_button_initialize(mas_proxy_interface interface) +void dependency_default_button_initialize(mas_dependency_plugin_proxy_interface interface) { g_proxy_interface = interface; } diff --git a/plugins/wakeup-manager/inc/dependency_resolver.h b/plugins/wakeup-manager/inc/dependency_resolver.h index cb12633..995c8cd 100644 --- a/plugins/wakeup-manager/inc/dependency_resolver.h +++ b/plugins/wakeup-manager/inc/dependency_resolver.h @@ -19,24 +19,15 @@ #define _DEPENDENCY_RESOLVER_H_ #include +#include #ifdef __cplusplus extern "C" { #endif -typedef void (*mas_dependency_error_cb)(int error, const char* err_msg, void* user_data); - -typedef int (*mas_proxy_process_event)(int event, void* data, int len); -typedef int (*mas_proxy_feed_audio_data)(wakeup_speech_streaming_event_e event, void* buffer, int len); - -typedef struct { - mas_proxy_process_event process_event; - mas_proxy_feed_audio_data feed_audio_data; -} mas_proxy_interface; - -int dependency_resolver_initialize(mas_proxy_interface interface); +int dependency_resolver_initialize(mas_dependency_plugin_proxy_interface interface); int dependency_resolver_deinitialize(void); -int dependency_resolver_set_error_callback(mas_dependency_error_cb callback, void* user_data); +int dependency_resolver_set_error_callback(mas_error_cb callback, void* user_data); int dependency_resolver_start_recording(); int dependency_resolver_stop_recording(); int dependency_resolver_set_recording_session(unsigned int); @@ -53,11 +44,11 @@ int dependency_resolver_process_wakeup_engine_command(const char* engine, const #define MAS_DEPENDENCY_MODULE_PATH "db/multi-assistant/dependency_module_path" #define MAS_DEPENDENCY_FUNC_INITIALIZE "mas_dependency_initialize" -typedef int (*mas_dependency_initialize)(mas_proxy_interface interface, int *dependency_version); +typedef int (*mas_dependency_initialize)(mas_dependency_plugin_proxy_interface interface, int *dependency_version); #define MAS_DEPENDENCY_FUNC_DEINITIALIZE "mas_dependency_deinitialize" typedef int (*mas_dependency_deinitialize)(void); #define MAS_DEPENDENCY_FUNC_SET_ERROR_CALLBACK "mas_dependency_set_error_callback" -typedef int (*mas_dependency_set_error_callback)(mas_dependency_error_cb callback, void* user_data); +typedef int (*mas_dependency_set_error_callback)(mas_error_cb callback, void* user_data); #define MAS_DEPENDENCY_FUNC_START_RECORDING "mas_dependency_start_recording" typedef int (*mas_dependency_start_recording)(void); #define MAS_DEPENDENCY_FUNC_STOP_RECORDING "mas_dependency_stop_recording" @@ -84,7 +75,7 @@ typedef struct { mas_dependency_get_audio_format get_audio_format; mas_dependency_get_audio_source_type get_audio_source_type; mas_dependency_process_wakeup_engine_command process_wakeup_engine_command; -} mas_dependency; +} mas_dependency_module_interface; #ifdef __cplusplus } diff --git a/plugins/wakeup-manager/inc/wakeup_audio_manager.h b/plugins/wakeup-manager/inc/wakeup_audio_manager.h index 966e77a..0b81d89 100644 --- a/plugins/wakeup-manager/inc/wakeup_audio_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_audio_manager.h @@ -18,14 +18,13 @@ #ifndef _WAKEUP_AUDIO_MANAGER_H_ #define _WAKEUP_AUDIO_MANAGER_H_ -#include "wakeup_interfaces.h" - #include #include #include #include #include +#include #include #include #include @@ -43,7 +42,7 @@ public: virtual ~IAudioEventObserver() = default; virtual bool on_recording_audio_data(long time, void* data, int len) = 0; virtual bool on_streaming_audio_data( - wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) = 0; + mas_speech_streaming_event_e event, void* buffer, unsigned int len) = 0; }; typedef enum @@ -76,7 +75,7 @@ public: void set_recording_session(recording_session session); - void feed_audio_data(wakeup_speech_streaming_event_e event, void* buffer, int len); + void feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len); void finalize_audio_data(); void clear_audio_data(); @@ -91,7 +90,7 @@ public: void set_background_volume(double ratio); private: - void add_audio_data(wakeup_speech_data& data, long time); + void add_audio_data(mas_speech_data& data, long time); void notify_audio_data_recording(long time, void* data, int len); void streaming_previous_audio_data_thread_func(); @@ -112,10 +111,10 @@ private: static constexpr long mAudioRecordingDurationMilliseconds = 10 * 1000; typedef struct { long time; - wakeup_speech_data data; - } wakeup_speech_data_with_time; - vector mPreviousAudioData; - list mAudioData; + mas_speech_data data; + } mas_speech_data_with_time; + vector mPreviousAudioData; + list mAudioData; mutex mMutex; bool mVoiceKeyPressed{false}; diff --git a/plugins/wakeup-manager/inc/wakeup_engine_manager.h b/plugins/wakeup-manager/inc/wakeup_engine_manager.h index cdf6f69..83d5b77 100644 --- a/plugins/wakeup-manager/inc/wakeup_engine_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_engine_manager.h @@ -67,11 +67,11 @@ typedef int (*wakeup_engine_feed_audio_data)(long time, void* data, int len); #define MA_WAKEUP_ENGINE_FUNC_GET_UTTERANCE_DATA_COUNT "wakeup_engine_get_utterance_data_count" typedef int (*wakeup_engine_get_utterance_data_count)(void); #define MA_WAKEUP_ENGINE_FUNC_GET_UTTERANCE_DATA "wakeup_engine_get_utterance_data" -typedef int (*wakeup_engine_get_utterance_data)(int index, wakeup_speech_data *data); +typedef int (*wakeup_engine_get_utterance_data)(int index, mas_speech_data *data); #define MA_WAKEUP_ENGINE_FUNC_GET_WAKE_WORD_DATA_COUNT "wakeup_engine_get_wake_word_data_count" typedef int (*wakeup_engine_get_wake_word_data_count)(void); #define MA_WAKEUP_ENGINE_FUNC_GET_WAKE_WORD_DATA "wakeup_engine_get_wake_word_data" -typedef int (*wakeup_engine_get_wake_word_data)(int index, wakeup_speech_data *data); +typedef int (*wakeup_engine_get_wake_word_data)(int index, mas_speech_data *data); #define MA_WAKEUP_ENGINE_FUNC_SET_ASSISTANT_SPECIFIC_COMMAND "wakeup_engine_set_assistant_specific_command" typedef int (*wakeup_engine_set_assistant_specific_command)(const char* appid, const char* command); #define MA_WAKEUP_ENGINE_FUNC_SET_WAKE_WORD_AUDIO_REQUIRE_FLAG "wakeup_engine_set_wake_word_audio_require_flag" @@ -90,6 +90,8 @@ typedef int (*wakeup_engine_set_wakeup_engine_command_callback)(wakeup_service_e /* Interfaces after version 1 */ #define MA_WAKEUP_ENGINE_FUNC_GET_VERSION "wakeup_engine_get_version" typedef int (*wakeup_engine_get_version)(int* version); +#define MA_WAKEUP_ENGINE_FUNC_SET_DEPENDENCY_MODULE_COMMAND "wakeup_engine_set_dependency_module_command" +typedef int (*wakeup_engine_set_dependency_module_command)(const char* command); typedef struct { wakeup_engine_initialize initialize; @@ -111,6 +113,7 @@ typedef struct { wakeup_engine_get_version get_version; wakeup_engine_set_assistant_specific_command set_assistant_specific_command; wakeup_engine_set_wake_word_audio_require_flag set_wake_word_audio_require_flag; + wakeup_engine_set_dependency_module_command set_dependency_module_command; wakeup_engine_set_wakeup_event_callback set_wakeup_event_callback; wakeup_engine_set_speech_status_callback set_speech_status_callback; wakeup_engine_set_error_callback set_error_callback; @@ -122,16 +125,16 @@ class IEngineEventObserver { public: virtual ~IEngineEventObserver() = default; - virtual bool on_wakeup_event(string engine_name, wakeup_event_info wakeup_info) = 0; - virtual bool on_speech_status(string engine_name, wakeup_service_speech_status_e status) = 0; + virtual bool on_wakeup_event(string engine_name, mas_wakeup_event_info wakeup_info) = 0; + virtual bool on_speech_status(string engine_name, mas_speech_status_e status) = 0; virtual bool on_error(string engine_name, int error_code, string error_message) = 0; virtual bool on_audio_data_require_status(string engine_name, bool require) = 0; virtual bool on_streaming_audio_data( - wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) = 0; + mas_speech_streaming_event_e event, void* buffer, unsigned int len) = 0; virtual bool on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) = 0; virtual bool on_wakeup_engine_command( - wakeup_engine_command_target_e target, string engine_name, string assistant_name, string command) = 0; + mas_wakeup_engine_command_target_e target, string engine_name, string assistant_name, string command) = 0; }; class CWakeupEngineManager @@ -151,7 +154,7 @@ public: void unsubscribe(IEngineEventObserver *observer); bool get_audio_data_required(); - void set_selected_wakeup_info(wakeup_event_info wakeup_info); + void set_selected_wakeup_info(mas_wakeup_event_info wakeup_info); bool set_language(string language); bool set_assistant_language(string appid, string language); @@ -168,14 +171,15 @@ public: void engine_add_target_assistant(string engine_name, string appid); void engine_add_wakeup_word(string appid, string wakeup_word, string language); void engine_set_assistant_specific_command(string appid, string command); + void engine_set_dependency_module_command(string engine_name, string command); void engine_feed_audio_data(long time, void* data, int len); - bool on_wakeup_event(string engine_name, wakeup_event_info wakeup_info); - bool on_speech_status(string engine_name, wakeup_service_speech_status_e status); + bool on_wakeup_event(string engine_name, mas_wakeup_event_info wakeup_info); + bool on_speech_status(string engine_name, mas_speech_status_e status); bool on_error(string engine_name, int error_code, string error_message); bool on_audio_data_require_status(string engine_name, bool require); bool on_wakeup_engine_command(string engine_name, - wakeup_engine_command_target_e target, string assistant_name, string command); + mas_wakeup_engine_command_target_e target, string assistant_name, string command); private: typedef struct { int version; diff --git a/plugins/wakeup-manager/inc/wakeup_interfaces.h b/plugins/wakeup-manager/inc/wakeup_interfaces.h deleted file mode 100644 index 6d12de9..0000000 --- a/plugins/wakeup-manager/inc/wakeup_interfaces.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2018 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _WAKEUP_INTERFACES_H_ -#define _WAKEUP_INTERFACES_H_ - -typedef struct { - const char *wakeup_appid; - const char *wakeup_word; - const char *wakeup_language; - const char *wakeup_voice_id; - const char *wakeup_engine; - float wakeup_confidence_score; - - long wakeup_start_time; - long wakeup_end_time; - bool wakeup_time_valid; - - const void *extra_data; - int extra_data_length; - const char *extra_data_description; -} wakeup_event_info; - -typedef enum { - WAKEUP_SPEECH_STREAMING_EVENT_FAIL = -1, /**< Failed */ - WAKEUP_SPEECH_STREAMING_EVENT_START = 1, /**< Start event */ - WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE = 2, /**< Continue event */ - WAKEUP_SPEECH_STREAMING_EVENT_FINISH = 3 /**< Finish event */ -} wakeup_speech_streaming_event_e; - -typedef struct { - wakeup_speech_streaming_event_e event; - void* buffer; - int len; -} wakeup_speech_data; - -#endif /* _WAKEUP_INTERFACES_H_ */ \ No newline at end of file diff --git a/plugins/wakeup-manager/inc/wakeup_manager.h b/plugins/wakeup-manager/inc/wakeup_manager.h index 3c7ba95..a53d36c 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_manager.h @@ -44,12 +44,12 @@ enum class STREAMING_MODE { class IWakeupEventObserver { public: virtual ~IWakeupEventObserver() = default; - virtual void on_wakeup(wakeup_event_info wakeup_info) = 0; + virtual void on_wakeup(mas_wakeup_event_info wakeup_info) = 0; virtual void on_streaming_audio_data( - wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) = 0; + mas_speech_streaming_event_e event, void* buffer, unsigned int len) = 0; virtual void on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) = 0; virtual void on_wakeup_engine_command( - wakeup_engine_command_target_e target, const char* name, const char* command) = 0; + mas_wakeup_engine_command_target_e target, const char* name, const char* command) = 0; }; class ISettingValueObserver { @@ -97,7 +97,7 @@ public: bool send_assistant_specific_command(string appid, string command); bool set_background_volume(string appid, double ratio); bool update_recognition_result(string appid, int result); - bool process_event(ma_plugin_event_e event, void* data, int len); + bool process_event(mas_plugin_event_e event, void* data, int len); bool get_audio_format(int* rate, int* channel, int* audio_type); bool get_audio_source_type(char** type); bool set_language(string language); @@ -120,28 +120,29 @@ public: CWakeupSettings* get_wakeup_settings(); vector get_wakeup_observers(); - void set_last_wakeup_event_info(wakeup_event_info wakeup_info); + void set_last_wakeup_event_info(mas_wakeup_event_info wakeup_info); vector get_setting_observers(); bool change_manager_state(wakeup_manager_state_e state); wakeup_manager_state_e get_manager_state(); - void feed_audio_data(wakeup_speech_streaming_event_e event, void* buffer, int len); + void feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len); + void send_dependency_module_command(string engine_name, string command); private: class CEngineEventObserver : public IEngineEventObserver { public: - bool on_wakeup_event(string engine_name, wakeup_event_info wakeup_info) override; - bool on_speech_status(string engine_name, wakeup_service_speech_status_e status) override; + bool on_wakeup_event(string engine_name, mas_wakeup_event_info wakeup_info) override; + bool on_speech_status(string engine_name, mas_speech_status_e status) override; bool on_error(string engine_name, int error_code, string error_message) override; bool on_audio_data_require_status(string engine_name, bool require) override; bool on_streaming_audio_data( - wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) override; + mas_speech_streaming_event_e event, void* buffer, unsigned int len) override; bool on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) override; bool on_wakeup_engine_command( - wakeup_engine_command_target_e target, string engine, string name, string command) override; + mas_wakeup_engine_command_target_e target, string engine, string name, string command) override; void set_wakeup_manager(CWakeupManager *manager) { mWakeupManager = manager; } private: @@ -151,7 +152,7 @@ private: class CPolicyEventObserver : public IPolicyEventObserver { public: - void on_wakeup(wakeup_event_info wakeup_info) override; + void on_wakeup(mas_wakeup_event_info wakeup_info) override; void set_wakeup_manager(CWakeupManager *manager) { mWakeupManager = manager; } private: @@ -163,7 +164,7 @@ private: public: bool on_recording_audio_data(long time, void* data, int len) override; bool on_streaming_audio_data( - wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) override; + mas_speech_streaming_event_e event, void* buffer, unsigned int len) override; void set_wakeup_manager(CWakeupManager *manager) { mWakeupManager = manager; } void set_wakeup_engine_manager(CWakeupEngineManager *manager) { mEngineManager = manager; } @@ -220,7 +221,7 @@ private: wakeup_manager_state_e mWakeupManagerState{WAKEUP_MANAGER_STATE_INACTIVE}; - wakeup_event_info mLastWakeupEventInfo; + mas_wakeup_event_info mLastWakeupEventInfo; }; } // wakeup diff --git a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h index 1e975b9..0af69cf 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h +++ b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h @@ -23,19 +23,13 @@ #include #include -#include "wakeup_interfaces.h" +#include #ifdef __cplusplus extern "C" { #endif typedef enum { - WAKEUP_SPEECH_STATUS_NONE = -1, /**< None */ - WAKEUP_SPEECH_STATUS_BEGINNING_POINT_DETECTED = 1, /**< Beginning point of speech is detected */ - WAKEUP_SPEECH_STATUS_END_POINT_DETECTED = 2 /**< End point of speech is detected */ -} wakeup_service_speech_status_e; - -typedef enum { WAKEUP_MANAGER_STATE_INACTIVE = 0, WAKEUP_MANAGER_STATE_LISTENING = 1, WAKEUP_MANAGER_STATE_UTTERANCE = 2, @@ -43,31 +37,13 @@ typedef enum { WAKEUP_MANAGER_STATE_VOICE_FEEDBACK = 4 } wakeup_manager_state_e; -typedef enum { - MA_PREPROCESSING_ALLOW_NONE = 0, /**< No preprocessing allowed */ - MA_PREPROCESSING_ALLOW_UTTERANCE, /**< Preprocessing allowed for utterance audio only */ - MA_PREPROCESSING_ALLOW_FOLLOW_UP, /**< Preprocessing allowed for follow-up audio only */ - MA_PREPROCESSING_ALLOW_ALL, /**< Preprocessing allowed for all audio */ -} ma_preprocessing_allow_mode_e; - -typedef enum { - MA_AUDIO_STREAMING_DATA_SECTION_UTTERANCE = 0, /**< Utterance section started */ - MA_AUDIO_STREAMING_DATA_SECTION_WAKE_WORD, /**< Wake word section started */ -} ma_audio_streaming_data_section_e; - -typedef enum { - WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS = 0, /**< All assistants - name not required */ - WAKEUP_ENGINE_COMMAND_TARGET_SPECIFIC_ASSISTANT, /**< Specific assistant - name required */ - WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE, /**< Dependency module - name not required */ -} wakeup_engine_command_target_e; - typedef void (*ma_audio_streaming_data_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data); -typedef void (*wakeup_service_wakeup_event_cb)(wakeup_event_info wakeup_info, void* user_data); +typedef void (*wakeup_service_wakeup_event_cb)(mas_wakeup_event_info wakeup_info, void* user_data); -typedef void (*wakeup_service_speech_streaming_cb)(wakeup_speech_streaming_event_e event, void* buffer, int len, void *user_data); +typedef void (*wakeup_service_speech_streaming_cb)(mas_speech_streaming_event_e event, void* buffer, int len, void *user_data); -typedef void (*wakeup_service_speech_status_cb)(wakeup_service_speech_status_e status, void *user_data); +typedef void (*wakeup_service_speech_status_cb)(mas_speech_status_e status, void *user_data); typedef void (*wakeup_service_setting_changed_cb)( void *user_data); @@ -77,19 +53,7 @@ typedef void (*wakeup_service_audio_data_require_status_cb)(bool require, void* typedef void (*wakeup_service_streaming_section_changed_cb)(ma_audio_streaming_data_section_e section, void* user_data); -typedef void (*wakeup_service_engine_command_cb)(wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data); - -typedef enum { - MA_PLUGIN_EVENT_VOICE_KEY_PRESSED = 0, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH = MA_PLUGIN_EVENT_VOICE_KEY_RELEASED, - MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_TAP, -} ma_plugin_event_e; - -typedef enum { - MA_SYSTEM_VOLUME_EVENT_CHANGE, - MA_SYSTEM_VOLUME_EVENT_RECOVER -} ma_system_volume_event_e; +typedef void (*wakeup_service_engine_command_cb)(mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data); typedef struct { int plugin_version; @@ -126,7 +90,7 @@ EXPORT_API int wakeup_manager_set_background_volume(const char *appid, double ra EXPORT_API int wakeup_manager_update_recognition_result(const char *appid, int result); -EXPORT_API int wakeup_manager_process_event(int event, void* data, int len); +EXPORT_API int wakeup_manager_process_event(mas_plugin_event_e event, void* data, int len); EXPORT_API int wakeup_manager_start_streaming_utterance_data(void); @@ -168,7 +132,9 @@ EXPORT_API int wakeup_manager_set_wakeup_engine_command_callback(wakeup_service_ /* Internal API declarations for dependency modules */ -int wakeup_manager_feed_audio_data(wakeup_speech_streaming_event_e event, void* buffer, int len); +int wakeup_manager_feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len); + +int wakeup_manager_send_dependency_module_command(const char* engine_name, const char* command); #ifdef __cplusplus } diff --git a/plugins/wakeup-manager/inc/wakeup_policy.h b/plugins/wakeup-manager/inc/wakeup_policy.h index d1738ab..0cedcda 100644 --- a/plugins/wakeup-manager/inc/wakeup_policy.h +++ b/plugins/wakeup-manager/inc/wakeup_policy.h @@ -20,7 +20,7 @@ #include #include -#include "wakeup_interfaces.h" +#include namespace multiassistant { @@ -33,7 +33,7 @@ class IPolicyEventObserver { public: virtual ~IPolicyEventObserver() = default; - virtual void on_wakeup(wakeup_event_info wakeup_info) = 0; + virtual void on_wakeup(mas_wakeup_event_info wakeup_info) = 0; }; class CWakeupPolicyImpl; @@ -51,7 +51,7 @@ public: void subscribe(IPolicyEventObserver *observer); void unsubscribe(IPolicyEventObserver *observer); - virtual void wakeup_candidate(wakeup_event_info wakeup_info) = 0; + virtual void wakeup_candidate(mas_wakeup_event_info wakeup_info) = 0; protected: unique_ptr mImpl; }; diff --git a/plugins/wakeup-manager/inc/wakeup_policy_default.h b/plugins/wakeup-manager/inc/wakeup_policy_default.h index be20625..6dc132c 100644 --- a/plugins/wakeup-manager/inc/wakeup_policy_default.h +++ b/plugins/wakeup-manager/inc/wakeup_policy_default.h @@ -41,7 +41,7 @@ public: void set_assistant_priority(string appid, int priority); void set_delay(float seconds); - void wakeup_candidate(wakeup_event_info wakeup_info); + void wakeup_candidate(mas_wakeup_event_info wakeup_info); void timer_expired(); private: typedef struct { @@ -51,7 +51,7 @@ private: float mDelaySeconds{0.0f}; vector mPriorityInfos; - vector mWakeupInfos; + vector mWakeupInfos; Ecore_Timer *mTimer{nullptr}; }; diff --git a/plugins/wakeup-manager/inc/wakeup_policy_impl.h b/plugins/wakeup-manager/inc/wakeup_policy_impl.h index 63723f1..8a615f8 100644 --- a/plugins/wakeup-manager/inc/wakeup_policy_impl.h +++ b/plugins/wakeup-manager/inc/wakeup_policy_impl.h @@ -35,7 +35,7 @@ public: void subscribe(IPolicyEventObserver *observer); void unsubscribe(IPolicyEventObserver *observer); - void wakeup(wakeup_event_info wakeup_info); + void wakeup(mas_wakeup_event_info wakeup_info); private: vector mObservers; }; diff --git a/plugins/wakeup-manager/src/dependency_resolver.cpp b/plugins/wakeup-manager/src/dependency_resolver.cpp index 793d38f..7f89343 100644 --- a/plugins/wakeup-manager/src/dependency_resolver.cpp +++ b/plugins/wakeup-manager/src/dependency_resolver.cpp @@ -33,9 +33,9 @@ #define LOG_TAG "dependency-resolver" static void *g_handle = NULL; -static mas_dependency g_mas_dependency = { NULL, }; +static mas_dependency_module_interface g_mas_dependency = { NULL, }; -int dependency_resolver_initialize(mas_proxy_interface interface) +int dependency_resolver_initialize(mas_dependency_plugin_proxy_interface interface) { MAS_LOGD("[Enter]"); @@ -144,7 +144,7 @@ int dependency_resolver_deinitialize(void) return ret; } -int dependency_resolver_set_error_callback(mas_dependency_error_cb callback, void* user_data) +int dependency_resolver_set_error_callback(mas_error_cb callback, void* user_data) { int ret = -1; if (NULL != g_handle) { diff --git a/plugins/wakeup-manager/src/wakeup_audio_manager.cpp b/plugins/wakeup-manager/src/wakeup_audio_manager.cpp index 94ce56e..201c8a6 100644 --- a/plugins/wakeup-manager/src/wakeup_audio_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_audio_manager.cpp @@ -1,6 +1,5 @@ #include "wakeup_audio_manager.h" #include "wakeup_manager_main.h" -#include "wakeup_interfaces.h" #include "dependency_resolver.h" #include "heap_tracer.h" @@ -179,7 +178,7 @@ void CAudioManager::streaming_previous_audio_data_thread_func() lock.lock(); audio_data_size = mPreviousAudioData.size(); for (int index = 0; index < audio_data_size; index++) { - wakeup_speech_data& speech_data = mPreviousAudioData.at(index).data; + mas_speech_data& speech_data = mPreviousAudioData.at(index).data; for (const auto& observer : mObservers) { if (observer) { if (!observer->on_streaming_audio_data( @@ -188,7 +187,7 @@ void CAudioManager::streaming_previous_audio_data_thread_func() } } - if (WAKEUP_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) { + if (MAS_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) { MWR_LOGI("[INFO] Finish to send previous speech data"); return; } @@ -255,7 +254,7 @@ void CAudioManager::streaming_audio_data_thread_func(long start_time) for (const auto& observer : mObservers) { if (observer) { if (!observer->on_streaming_audio_data( - WAKEUP_SPEECH_STREAMING_EVENT_FAIL, NULL, 0)) { + MAS_SPEECH_STREAMING_EVENT_FAIL, NULL, 0)) { LOGE("[Recorder WARNING] One of the observer returned false"); } } @@ -275,7 +274,7 @@ void CAudioManager::streaming_audio_data_thread_func(long start_time) /* FIXME : Extracted audio data here should be used as previous audio data*/ - wakeup_speech_data& speech_data = iter->data; + mas_speech_data& speech_data = iter->data; for (const auto& observer : mObservers) { if (observer) { if (!observer->on_streaming_audio_data( @@ -285,7 +284,7 @@ void CAudioManager::streaming_audio_data_thread_func(long start_time) } } - if (WAKEUP_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) { + if (MAS_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) { MWR_LOGI("[INFO] Finish to get and send speech data"); break; } @@ -295,13 +294,13 @@ void CAudioManager::streaming_audio_data_thread_func(long start_time) MWR_LOGD("[EXIT]"); } -void CAudioManager::add_audio_data(wakeup_speech_data& data, long time) +void CAudioManager::add_audio_data(mas_speech_data& data, long time) { long delta = mAudioRecordingDurationMilliseconds; notify_audio_data_recording(time, data.buffer, data.len); - wakeup_speech_data_with_time data_with_time; + mas_speech_data_with_time data_with_time; data_with_time.data = data; data_with_time.time = time; @@ -318,11 +317,11 @@ void CAudioManager::add_audio_data(wakeup_speech_data& data, long time) mAudioData.push_back(data_with_time); } -void CAudioManager::feed_audio_data(wakeup_speech_streaming_event_e event, void* buffer, int len) +void CAudioManager::feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len) { if (NULL == buffer || 0 == len) return; - wakeup_speech_data speech_data; + mas_speech_data speech_data; speech_data.buffer = vm_malloc_simple(len); if (speech_data.buffer) { long time = get_current_milliseconds_after_epoch(); @@ -337,8 +336,8 @@ void CAudioManager::feed_audio_data(wakeup_speech_streaming_event_e event, void* void CAudioManager::finalize_audio_data() { unsigned char final_buffer[2] = {'\0', }; - wakeup_speech_data speech_data; - speech_data.event = WAKEUP_SPEECH_STREAMING_EVENT_FINISH; + mas_speech_data speech_data; + speech_data.event = MAS_SPEECH_STREAMING_EVENT_FINISH; speech_data.len = sizeof(final_buffer); speech_data.buffer = vm_malloc_simple(speech_data.len); if (speech_data.buffer) { diff --git a/plugins/wakeup-manager/src/wakeup_engine_manager.cpp b/plugins/wakeup-manager/src/wakeup_engine_manager.cpp index f75f958..596b697 100644 --- a/plugins/wakeup-manager/src/wakeup_engine_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_engine_manager.cpp @@ -1,3 +1,5 @@ +#include + #include "wakeup_engine_manager.h" #include "wakeup_manager_main.h" @@ -142,7 +144,7 @@ bool CWakeupEngineManager::get_audio_data_required() return mAudioDataRequired; } -void CWakeupEngineManager::set_selected_wakeup_info(wakeup_event_info wakeup_info) +void CWakeupEngineManager::set_selected_wakeup_info(mas_wakeup_event_info wakeup_info) { mSelectedEngine = nullptr; for (const auto& info : mEngineInfo) { @@ -267,7 +269,7 @@ void CWakeupEngineManager::streaming_speech_data_thread_func() MWR_LOGD("data_count : %d", interface->get_utterance_data_count()); - wakeup_speech_data speech_data; + mas_speech_data speech_data; int index = 0; bool finish_event_sent = false; @@ -331,7 +333,7 @@ void CWakeupEngineManager::streaming_speech_data_thread_func() for (const auto& observer : mObservers) { if (observer) { if (!observer->on_streaming_audio_data( - WAKEUP_SPEECH_STREAMING_EVENT_FAIL, NULL, 0)) { + MAS_SPEECH_STREAMING_EVENT_FAIL, NULL, 0)) { LOGE("[Recorder WARNING] One of the observer returned false"); } } @@ -355,7 +357,7 @@ void CWakeupEngineManager::streaming_speech_data_thread_func() } } - if (WAKEUP_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) { + if (MAS_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) { MWR_LOGI("[INFO] Finish to get and send speech data"); finish_event_sent = true; break; @@ -370,7 +372,7 @@ void CWakeupEngineManager::streaming_speech_data_thread_func() for (const auto& observer : mObservers) { if (observer) { if (!observer->on_streaming_audio_data( - WAKEUP_SPEECH_STREAMING_EVENT_FINISH, final_buffer, sizeof(final_buffer))) { + MAS_SPEECH_STREAMING_EVENT_FINISH, final_buffer, sizeof(final_buffer))) { LOGE("[Recorder WARNING] One of the observer returned false"); } } @@ -509,7 +511,31 @@ void CWakeupEngineManager::engine_feed_audio_data(long time, void* data, int len } } -bool CWakeupEngineManager::on_wakeup_event(string engine_name, wakeup_event_info info) +void CWakeupEngineManager::engine_set_dependency_module_command(string engine_name, string command) +{ + const auto& iter = find_if(mEngineInfo.begin(), mEngineInfo.end(), + [engine_name](const EngineInfo& info) { + return (0 == info.engine_name.compare(engine_name)); + }); + + if (mEngineInfo.end() != iter) { + if (iter->activated && + iter->interface.set_dependency_module_command) { + try { + int ret = iter->interface.set_dependency_module_command(command.c_str()); + if (0 != ret) { + LOGE("[ERROR] Fail to set dependency module command, ret(%d) : %s", + ret, iter->engine_name.c_str()); + } + } catch (const std::exception& e) { + MWR_LOGE("[ERROR] wakeup engine %s threw exception : %s", + iter->engine_name.c_str(), e.what()); + } + } + } +} + +bool CWakeupEngineManager::on_wakeup_event(string engine_name, mas_wakeup_event_info info) { MWR_LOGD("[ENTER]"); @@ -524,7 +550,7 @@ bool CWakeupEngineManager::on_wakeup_event(string engine_name, wakeup_event_info return true; } -bool CWakeupEngineManager::on_speech_status(string engine_name, wakeup_service_speech_status_e status) +bool CWakeupEngineManager::on_speech_status(string engine_name, mas_speech_status_e status) { MWR_LOGD("[ENTER]"); @@ -590,13 +616,13 @@ bool CWakeupEngineManager::on_audio_data_require_status(string engine_name, bool return true; } -bool CWakeupEngineManager::on_wakeup_engine_command(string engine_name, wakeup_engine_command_target_e target, string assistant_name, string command) +bool CWakeupEngineManager::on_wakeup_engine_command(string engine_name, mas_wakeup_engine_command_target_e target, string assistant_name, string command) { MWR_LOGD("[ENTER]"); for (const auto& observer : mObservers) { if (observer) { - if (WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE == target) { + if (MAS_WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE == target) { if (!observer->on_wakeup_engine_command(target, engine_name, assistant_name, command)) { LOGE("[Recorder WARNING] One of the observer returned false"); } @@ -608,7 +634,7 @@ bool CWakeupEngineManager::on_wakeup_engine_command(string engine_name, wakeup_e if (mEngineInfo.end() != iter) { for (const auto& assistant : iter->assistant_list) { if (0 == assistant_name.compare(assistant) || - WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS == target) { + MAS_WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS == target) { if (!observer->on_wakeup_engine_command(target, engine_name, assistant, command)) { LOGE("[Recorder WARNING] One of the observer returned false"); } @@ -710,6 +736,9 @@ void CWakeupEngineManager::add_engine(string name, string path) info.interface.get_version = (wakeup_engine_get_version)dlsym(info.engine_handle, MA_WAKEUP_ENGINE_FUNC_GET_VERSION); + info.interface.set_dependency_module_command = + (wakeup_engine_set_dependency_module_command)dlsym(info.engine_handle, + MA_WAKEUP_ENGINE_FUNC_SET_DEPENDENCY_MODULE_COMMAND); info.version = 0; info.engine_path = path; @@ -741,7 +770,7 @@ void CWakeupEngineManager::add_engine(string name, string path) try { if (info.interface.set_wakeup_event_callback) { info.interface.set_wakeup_event_callback( - [](wakeup_event_info info, void* user_data) { + [](mas_wakeup_event_info info, void* user_data) { CallbackUserData *data = static_cast(user_data); if (nullptr == data) return; if (nullptr == data->manager) return; @@ -762,7 +791,7 @@ void CWakeupEngineManager::add_engine(string name, string path) if (info.interface.set_wakeup_engine_command_callback) { info.interface.set_wakeup_engine_command_callback( - [](wakeup_engine_command_target_e target, + [](mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data) { CallbackUserData* data = static_cast(user_data); if (nullptr == data) return; diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index d4e82fc..f68e145 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -30,7 +30,7 @@ static bool check_language_valid(string language) return true; } -static bool initialize_wakeup_event_info(wakeup_event_info* wakeup_info) +static bool initialize_wakeup_event_info(mas_wakeup_event_info* wakeup_info) { bool ret = false; if (wakeup_info) { @@ -111,9 +111,10 @@ bool CWakeupManager::initialize() mWakeupEngineManager.subscribe(&mEngineEventObserver); mWakeupEngineManager.initialize(); - mas_proxy_interface interface; + mas_dependency_plugin_proxy_interface interface; interface.process_event = wakeup_manager_process_event; interface.feed_audio_data = wakeup_manager_feed_audio_data; + //interface.send_dependency_module_command = wakeup_manager_send_dependency_module_command; dependency_resolver_initialize(interface); @@ -458,14 +459,14 @@ static long get_current_milliseconds_after_epoch() return value.count(); } -bool CWakeupManager::process_event(ma_plugin_event_e event, void* data, int len) +bool CWakeupManager::process_event(mas_plugin_event_e event, void* data, int len) { MWR_LOGD("[ENTER] : %d", event); if (WAKEUP_MANAGER_STATE_INACTIVE == mWakeupManagerState) return false; // LOCK REQUIRED - if (MA_PLUGIN_EVENT_VOICE_KEY_PRESSED == event) { + if (MAS_PLUGIN_EVENT_VOICE_KEY_PRESSED == event) { if (mVoiceKeyPressed != true) { mAudioManager.stop_recording(true); @@ -484,7 +485,7 @@ bool CWakeupManager::process_event(ma_plugin_event_e event, void* data, int len) /* Wakeup default assistant */ /* TODO: apply conversation timeout for selecting assistant here */ - wakeup_event_info wakeup_info; + mas_wakeup_event_info wakeup_info; initialize_wakeup_event_info(&wakeup_info); /* Make sure to use background data */ wakeup_info.wakeup_time_valid = true; @@ -501,7 +502,7 @@ bool CWakeupManager::process_event(ma_plugin_event_e event, void* data, int len) observer->on_wakeup(wakeup_info); } } - } else if (MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH == event) { + } else if (MAS_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH == event) { if (mVoiceKeyPressed != false) { mAudioManager.finalize_audio_data(); mVoiceKeyPressed = false; @@ -521,7 +522,7 @@ bool CWakeupManager::process_event(ma_plugin_event_e event, void* data, int len) mAudioManager.stop_recording(true); } } - } else if (MA_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_TAP == event) { + } else if (MAS_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_TAP == event) { if (mVoiceKeyPressed != false) { mVoiceKeyPressed = false; } @@ -537,7 +538,7 @@ vector CWakeupManager::get_wakeup_observers() return mWakeupObservers; } -void CWakeupManager::set_last_wakeup_event_info(wakeup_event_info wakeup_info) +void CWakeupManager::set_last_wakeup_event_info(mas_wakeup_event_info wakeup_info) { mLastWakeupEventInfo = wakeup_info; } @@ -580,7 +581,7 @@ static Eina_Bool streaming_duration_expired(void *data) vector observers = wakeup_manager->get_wakeup_observers(); for (const auto& observer : observers) { observer->on_streaming_audio_data( - WAKEUP_SPEECH_STREAMING_EVENT_FINISH, final_buffer, sizeof(final_buffer)); + MAS_SPEECH_STREAMING_EVENT_FINISH, final_buffer, sizeof(final_buffer)); } wakeup_manager->set_streaming_mode(STREAMING_MODE::NONE); @@ -815,12 +816,17 @@ CWakeupSettings* CWakeupManager::get_wakeup_settings() return &mWakeupSettings; } -void CWakeupManager::feed_audio_data(wakeup_speech_streaming_event_e event, void* buffer, int len) +void CWakeupManager::feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len) { mAudioManager.feed_audio_data(event, buffer, len); } -bool CWakeupManager::CEngineEventObserver::on_wakeup_event(string engine_name, wakeup_event_info wakeup_info) +void CWakeupManager::send_dependency_module_command(string engine_name, string command) +{ + mWakeupEngineManager.engine_set_dependency_module_command(engine_name, command); +} + +bool CWakeupManager::CEngineEventObserver::on_wakeup_event(string engine_name, mas_wakeup_event_info wakeup_info) { MWR_LOGD("[ENTER]"); if (nullptr == mWakeupManager) return false; @@ -840,7 +846,7 @@ bool CWakeupManager::CEngineEventObserver::on_wakeup_event(string engine_name, w return true; } -bool CWakeupManager::CEngineEventObserver::on_speech_status(string engine_name, wakeup_service_speech_status_e status) +bool CWakeupManager::CEngineEventObserver::on_speech_status(string engine_name, mas_speech_status_e status) { MWR_LOGD("[ENTER]"); if (nullptr == mWakeupManager) return false; @@ -881,7 +887,7 @@ bool CWakeupManager::CEngineEventObserver::on_audio_data_require_status(string e } bool CWakeupManager::CEngineEventObserver::on_streaming_audio_data( - wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) + mas_speech_streaming_event_e event, void* buffer, unsigned int len) { if (nullptr == mWakeupManager) return false; @@ -889,7 +895,7 @@ bool CWakeupManager::CEngineEventObserver::on_streaming_audio_data( for (const auto& observer : observers) { observer->on_streaming_audio_data(event, buffer, len); } - if (WAKEUP_SPEECH_STREAMING_EVENT_FINISH == event) { + if (MAS_SPEECH_STREAMING_EVENT_FINISH == event) { mWakeupManager->set_streaming_mode(STREAMING_MODE::NONE); } @@ -910,16 +916,16 @@ bool CWakeupManager::CEngineEventObserver::on_audio_streaming_data_section( } bool CWakeupManager::CEngineEventObserver::on_wakeup_engine_command( - wakeup_engine_command_target_e target, string engine_name, string assistant_name, string command) + mas_wakeup_engine_command_target_e target, string engine_name, string assistant_name, string command) { if (nullptr == mWakeupManager) return false; - if (WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE == target) { + if (MAS_WAKEUP_ENGINE_COMMAND_TARGET_DEPENDENCY_MODULE == target) { dependency_resolver_process_wakeup_engine_command(engine_name.c_str(), command.c_str()); } - if (WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS == target || - WAKEUP_ENGINE_COMMAND_TARGET_SPECIFIC_ASSISTANT == target) { + if (MAS_WAKEUP_ENGINE_COMMAND_TARGET_ALL_ASSISTANTS == target || + MAS_WAKEUP_ENGINE_COMMAND_TARGET_SPECIFIC_ASSISTANT == target) { vector observers = mWakeupManager->get_wakeup_observers(); for (const auto& observer : observers) { observer->on_wakeup_engine_command(target, assistant_name.c_str(), command.c_str()); @@ -929,7 +935,7 @@ bool CWakeupManager::CEngineEventObserver::on_wakeup_engine_command( return true; } -void CWakeupManager::CPolicyEventObserver::on_wakeup(wakeup_event_info wakeup_info) +void CWakeupManager::CPolicyEventObserver::on_wakeup(mas_wakeup_event_info wakeup_info) { if (nullptr == mWakeupManager) return; @@ -970,7 +976,7 @@ bool CWakeupManager::CAudioEventObserver::on_recording_audio_data(long time, voi } bool CWakeupManager::CAudioEventObserver::on_streaming_audio_data( - wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) + mas_speech_streaming_event_e event, void* buffer, unsigned int len) { if (nullptr == mWakeupManager) return false; @@ -978,7 +984,7 @@ bool CWakeupManager::CAudioEventObserver::on_streaming_audio_data( for (const auto& observer : observers) { observer->on_streaming_audio_data(event, buffer, len); } - if (WAKEUP_SPEECH_STREAMING_EVENT_FINISH == event) { + if (MAS_SPEECH_STREAMING_EVENT_FINISH == event) { mWakeupManager->set_streaming_mode(STREAMING_MODE::NONE); } diff --git a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp index 1abfbdf..324c27a 100644 --- a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp @@ -50,12 +50,12 @@ static void* g_wakeup_engine_command_user_data; class CWakeupEventObserver : public IWakeupEventObserver { - void on_wakeup(wakeup_event_info wakeup_info) override; + void on_wakeup(mas_wakeup_event_info wakeup_info) override; void on_streaming_audio_data( - wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) override; + mas_speech_streaming_event_e event, void* buffer, unsigned int len) override; void on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) override; void on_wakeup_engine_command( - wakeup_engine_command_target_e target, const char* assistant_name, const char* command) override; + mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command) override; }; class CSettingValueObserver : public ISettingValueObserver @@ -360,12 +360,12 @@ int wakeup_manager_update_recognition_result(const char* appid, int result) return 0; } -int wakeup_manager_process_event(int event, void* data, int len) +int wakeup_manager_process_event(mas_plugin_event_e event, void* data, int len) { MWR_LOGD("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; - g_wakeup_manager->process_event(static_cast(event), data, len); + g_wakeup_manager->process_event(event, data, len); MWR_LOGD("[END]"); return 0; @@ -644,15 +644,23 @@ int wakeup_manager_set_wakeup_engine_command_callback(wakeup_service_engine_comm return 0; } - -int wakeup_manager_feed_audio_data(wakeup_speech_streaming_event_e event, void* buffer, int len) +int wakeup_manager_feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len) { if (nullptr == g_wakeup_manager) return -1; g_wakeup_manager->feed_audio_data(event, buffer, len); return 0; } -void CWakeupEventObserver::on_wakeup(wakeup_event_info wakeup_info) +int wakeup_manager_send_dependency_module_command(const char* engine_name, const char* command) +{ + if (nullptr == g_wakeup_manager) return -1; + g_wakeup_manager->send_dependency_module_command( + engine_name ? engine_name : "", + command ? command : ""); + return 0; +} + +void CWakeupEventObserver::on_wakeup(mas_wakeup_event_info wakeup_info) { if (NULL != g_wakeup_event_cb) { g_wakeup_event_cb(wakeup_info, g_wakeup_event_user_data); @@ -660,12 +668,12 @@ void CWakeupEventObserver::on_wakeup(wakeup_event_info wakeup_info) } void CWakeupEventObserver::on_streaming_audio_data( - wakeup_speech_streaming_event_e event, void* buffer, unsigned int len) + mas_speech_streaming_event_e event, void* buffer, unsigned int len) { - if (WAKEUP_SPEECH_STREAMING_EVENT_START == event) { + if (MAS_SPEECH_STREAMING_EVENT_START == event) { MWR_LOGD("streaming_cb START"); } - if (WAKEUP_SPEECH_STREAMING_EVENT_FINISH == event) { + if (MAS_SPEECH_STREAMING_EVENT_FINISH == event) { MWR_LOGD("streaming_cb FINISH"); } if (NULL != g_utterance_streaming_cb) { @@ -684,7 +692,7 @@ void CWakeupEventObserver::on_audio_streaming_data_section( } void CWakeupEventObserver::on_wakeup_engine_command( - wakeup_engine_command_target_e target, const char* assistant_name, const char* command) + mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command) { if (g_wakeup_engine_command_cb) { g_wakeup_engine_command_cb(target, assistant_name, command, g_wakeup_engine_command_user_data); @@ -696,4 +704,4 @@ void CSettingValueObserver::on_value_changed() if (g_setting_changed_cb) { g_setting_changed_cb(g_setting_changed_user_data); } -} \ No newline at end of file +} diff --git a/plugins/wakeup-manager/src/wakeup_policy.cpp b/plugins/wakeup-manager/src/wakeup_policy.cpp index 1ab9f12..e196ac0 100644 --- a/plugins/wakeup-manager/src/wakeup_policy.cpp +++ b/plugins/wakeup-manager/src/wakeup_policy.cpp @@ -22,7 +22,7 @@ void CWakeupPolicyImpl::unsubscribe(IPolicyEventObserver *observer) } } -void CWakeupPolicyImpl::wakeup(wakeup_event_info wakeup_info) +void CWakeupPolicyImpl::wakeup(mas_wakeup_event_info wakeup_info) { for (const auto& observer : mObservers) { if (observer) { diff --git a/plugins/wakeup-manager/src/wakeup_policy_default.cpp b/plugins/wakeup-manager/src/wakeup_policy_default.cpp index 2415636..1715ddf 100644 --- a/plugins/wakeup-manager/src/wakeup_policy_default.cpp +++ b/plugins/wakeup-manager/src/wakeup_policy_default.cpp @@ -58,7 +58,7 @@ static Eina_Bool timer_func(void *data) return ECORE_CALLBACK_CANCEL; } -void CWakeupPolicyDefault::wakeup_candidate(wakeup_event_info wakeup_info) +void CWakeupPolicyDefault::wakeup_candidate(mas_wakeup_event_info wakeup_info) { mWakeupInfos.push_back(wakeup_info); if (nullptr == mTimer) { @@ -73,7 +73,7 @@ void CWakeupPolicyDefault::timer_expired() LOGD("[ENTER]"); if (0 == mWakeupInfos.size()) return; - wakeup_event_info selected = mWakeupInfos.front(); + mas_wakeup_event_info selected = mWakeupInfos.front(); int selected_priority = -1; for (const auto &wakeup : mWakeupInfos) { for (const auto &info : mPriorityInfos) { diff --git a/src/multi_assistant_dbus_server.c b/src/multi_assistant_dbus_server.c index 40c9e13..83d9cc3 100644 --- a/src/multi_assistant_dbus_server.c +++ b/src/multi_assistant_dbus_server.c @@ -17,7 +17,7 @@ #include "multi_assistant_main.h" #include "multi_assistant_dbus.h" #include "multi_assistant_dbus_server.h" -#include "multi_assistant_service.h" +#include "multi_assistant_service_client.h" /* * Dbus Client-Daemon Server diff --git a/src/multi_assistant_service.c b/src/multi_assistant_service.c index 8c1101f..98688ad 100644 --- a/src/multi_assistant_service.c +++ b/src/multi_assistant_service.c @@ -31,7 +31,7 @@ #include #include "multi_assistant_main.h" -#include "multi_assistant_service.h" +#include "multi_assistant_service_client.h" #include "multi_assistant_service_plugin.h" #include "multi_assistant_dbus.h" #include "multi_assistant_config.h" @@ -1130,16 +1130,6 @@ int mas_prelaunch_default_assistant() } -int mas_process_voice_key_event(bool pressed) -{ - if (pressed) { - multi_assistant_service_plugin_process_event(MA_PLUGIN_EVENT_VOICE_KEY_PRESSED, NULL, 0); - } else { - multi_assistant_service_plugin_process_event(MA_PLUGIN_EVENT_VOICE_KEY_RELEASED, NULL, 0); - } - return 0; -} - ma_preprocessing_allow_mode_e get_preprocessing_allow_mode(const char* appid) { for (int loop = 0; loop < MAX_MACLIENT_INFO_NUM; loop++) { diff --git a/src/multi_assistant_service_plugin.c b/src/multi_assistant_service_plugin.c index f07d730..232fbfa 100644 --- a/src/multi_assistant_service_plugin.c +++ b/src/multi_assistant_service_plugin.c @@ -29,7 +29,7 @@ #include "multi_wakeup_recognizer.h" #include "multi_assistant_main.h" -#include "multi_assistant_service.h" +#include "multi_assistant_service_client.h" #include "multi_assistant_service_plugin.h" #include "multi_assistant_dbus.h" @@ -137,7 +137,7 @@ Eina_Bool process_wakeup_event_by_word_timer(char* wakeup_word) return ECORE_CALLBACK_CANCEL; } -static void __wakeup_event_cb(wakeup_event_info wakeup_info, void* user_data) +static void __wakeup_event_cb(mas_wakeup_event_info wakeup_info, void* user_data) { MAS_LOGD("[SUCCESS] __wakeup_event_cb is called, wakeup_word(%s)", wakeup_info.wakeup_word); int ret = -1; @@ -217,26 +217,26 @@ static void __wakeup_event_cb(wakeup_event_info wakeup_info, void* user_data) } -static bool __validate_streaming_event_order(int pid, wakeup_speech_streaming_event_e *event) +static bool __validate_streaming_event_order(int pid, mas_speech_streaming_event_e *event) { bool ret = false; static int previous_pid = -1; - static wakeup_speech_streaming_event_e previous_event = WAKEUP_SPEECH_STREAMING_EVENT_FINISH; + static mas_speech_streaming_event_e previous_event = MAS_SPEECH_STREAMING_EVENT_FINISH; if (NULL == event) return false; - wakeup_speech_streaming_event_e expected_sequence [][2] = { - {WAKEUP_SPEECH_STREAMING_EVENT_START, WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE}, - {WAKEUP_SPEECH_STREAMING_EVENT_START, WAKEUP_SPEECH_STREAMING_EVENT_FINISH}, - {WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE, WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE}, - {WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE, WAKEUP_SPEECH_STREAMING_EVENT_FINISH}, - {WAKEUP_SPEECH_STREAMING_EVENT_FINISH, WAKEUP_SPEECH_STREAMING_EVENT_START}, + mas_speech_streaming_event_e expected_sequence [][2] = { + {MAS_SPEECH_STREAMING_EVENT_START, MAS_SPEECH_STREAMING_EVENT_CONTINUE}, + {MAS_SPEECH_STREAMING_EVENT_START, MAS_SPEECH_STREAMING_EVENT_FINISH}, + {MAS_SPEECH_STREAMING_EVENT_CONTINUE, MAS_SPEECH_STREAMING_EVENT_CONTINUE}, + {MAS_SPEECH_STREAMING_EVENT_CONTINUE, MAS_SPEECH_STREAMING_EVENT_FINISH}, + {MAS_SPEECH_STREAMING_EVENT_FINISH, MAS_SPEECH_STREAMING_EVENT_START}, }; if (pid != previous_pid) { /* When sending streaming event to a new client, it always sends START message first */ - previous_event = WAKEUP_SPEECH_STREAMING_EVENT_FINISH; + previous_event = MAS_SPEECH_STREAMING_EVENT_FINISH; } for (int loop = 0;loop < sizeof(expected_sequence) / sizeof(expected_sequence[0]);loop++) { @@ -247,9 +247,9 @@ static bool __validate_streaming_event_order(int pid, wakeup_speech_streaming_ev } if (!ret) { /* In case of FINISH -> CONTINUE without START, simply modify current event value */ - if (WAKEUP_SPEECH_STREAMING_EVENT_FINISH == previous_event && - WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE == *event) { - *event = WAKEUP_SPEECH_STREAMING_EVENT_START; + if (MAS_SPEECH_STREAMING_EVENT_FINISH == previous_event && + MAS_SPEECH_STREAMING_EVENT_CONTINUE == *event) { + *event = MAS_SPEECH_STREAMING_EVENT_START; ret = true; MAS_LOGD("[WARNING] forcibly changed CONTINUE to START : %d -> %d (PID %d -> %d)", @@ -272,14 +272,14 @@ static void handle_speech_streaming_event_failure(void *data) mas_client_send_recognition_result(0, MA_RECOGNITION_RESULT_EVENT_ERROR); } -static void __audio_streaming_cb(wakeup_speech_streaming_event_e event, unsigned char* buffer, int len, void *user_data) +static void __audio_streaming_cb(mas_speech_streaming_event_e event, unsigned char* buffer, int len, void *user_data) { - if (event == WAKEUP_SPEECH_STREAMING_EVENT_FAIL) { + if (event == MAS_SPEECH_STREAMING_EVENT_FAIL) { ecore_main_loop_thread_safe_call_async(handle_speech_streaming_event_failure, NULL); return; } static int count = 0; - if (event != WAKEUP_SPEECH_STREAMING_EVENT_CONTINUE || count % 100 == 0) { + if (event != MAS_SPEECH_STREAMING_EVENT_CONTINUE || count % 100 == 0) { MAS_LOGD( "[SUCCESS] __audio_streaming_cb is called, event(%d), buffer(%p), len(%d)", event, buffer, len); } ++count; @@ -308,7 +308,7 @@ static void __audio_streaming_cb(wakeup_speech_streaming_event_e event, unsigned if (g_pFile) fwrite(buffer, 1, len, g_pFile); - if (WAKEUP_SPEECH_STREAMING_EVENT_FINISH == event) { + if (MAS_SPEECH_STREAMING_EVENT_FINISH == event) { if (g_pFile) { MAS_LOGE("[Recorder SUCCESS] File Close"); fclose(g_pFile); @@ -320,7 +320,7 @@ static void __audio_streaming_cb(wakeup_speech_streaming_event_e event, unsigned #endif } -static void __speech_status_cb(wakeup_speech_status_e status, void *user_data) +static void __speech_status_cb(mas_speech_status_e status, void *user_data) { MAS_LOGD( "[SUCCESS] __speech_status_cb is called, status(%d)", status); } @@ -354,7 +354,7 @@ static void __streaming_section_changed_cb(ma_audio_streaming_data_section_e sec } } -static void __wakeup_engine_command_cb(wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data) +static void __wakeup_engine_command_cb(mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data) { MAS_LOGD( "[SUCCESS] __wakeup_engine_command_cb is called, command(%s)", command); @@ -811,7 +811,7 @@ int multi_assistant_service_plugin_process_event(int event, void *data, int len) if (NULL == func) { MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_PROCESS_EVENT); } else { - ret = func(event, data, len); + ret = func((mas_plugin_event_e)event, data, len); if (0 != ret) { MAS_LOGE("[ERROR] Fail to stop recording, ret(%d)", ret); } -- 2.7.4 From 3d204ce44e7466dedaf2d0dd23f4a987b6fe4d85 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Mon, 25 Nov 2019 20:12:37 +0900 Subject: [PATCH 07/16] Bump version to 0.2.13 Change-Id: I7d35ea5c29f952f323f0b0c52147218ee05f5352 --- 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 e91e3a3..b97ba98 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 8de1ed1..74f0601 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.2.12 +Version: 0.2.13 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Flora-1.1 -- 2.7.4 From f12adc6d38c9295e1a9b3d51ba15f9b7b265ab81 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Tue, 26 Nov 2019 20:13:18 +0900 Subject: [PATCH 08/16] Update year information of license boilerplate Change-Id: Iefbe7ffb4b5754aa7c33b906c01d9324e9767215 --- inc/multi_assistant_config.h | 2 +- inc/multi_assistant_service_client.h | 2 +- inc/multi_assistant_service_plugin.h | 2 +- inc/multi_wakeup_recognizer.h | 2 +- plugins/wakeup-manager/dependency-default/inc/dependency_default.h | 2 +- .../wakeup-manager/dependency-default/inc/dependency_default_audio.h | 2 +- .../wakeup-manager/dependency-default/inc/dependency_default_button.h | 2 +- plugins/wakeup-manager/inc/dependency_resolver.h | 2 +- plugins/wakeup-manager/inc/heap_tracer.h | 2 +- plugins/wakeup-manager/inc/wakeup_audio_manager.h | 2 +- plugins/wakeup-manager/inc/wakeup_engine_manager.h | 2 +- plugins/wakeup-manager/inc/wakeup_manager.h | 2 +- plugins/wakeup-manager/inc/wakeup_manager_wrapper.h | 2 +- plugins/wakeup-manager/inc/wakeup_policy.h | 2 +- plugins/wakeup-manager/inc/wakeup_policy_default.h | 2 +- plugins/wakeup-manager/inc/wakeup_policy_impl.h | 2 +- plugins/wakeup-manager/inc/wakeup_settings.h | 2 +- plugins/wakeup-manager/src/dependency_resolver.cpp | 2 +- plugins/wakeup-manager/src/wakeup_manager.cpp | 2 +- plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp | 2 +- src/multi_assistant_config.c | 2 +- src/multi_assistant_dbus.c | 2 +- src/multi_assistant_dbus.h | 2 +- src/multi_assistant_dbus_server.c | 2 +- src/multi_assistant_dbus_server.h | 2 +- src/multi_assistant_service.c | 2 +- src/multi_assistant_service_plugin.c | 2 +- 27 files changed, 27 insertions(+), 27 deletions(-) diff --git a/inc/multi_assistant_config.h b/inc/multi_assistant_config.h index d117b81..e0b9f20 100644 --- a/inc/multi_assistant_config.h +++ b/inc/multi_assistant_config.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/inc/multi_assistant_service_client.h b/inc/multi_assistant_service_client.h index bc4e2a5..b3eebf1 100644 --- a/inc/multi_assistant_service_client.h +++ b/inc/multi_assistant_service_client.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/inc/multi_assistant_service_plugin.h b/inc/multi_assistant_service_plugin.h index 6191ea1..7115f95 100644 --- a/inc/multi_assistant_service_plugin.h +++ b/inc/multi_assistant_service_plugin.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/inc/multi_wakeup_recognizer.h b/inc/multi_wakeup_recognizer.h index c7a4a0e..6e1b26a 100644 --- a/inc/multi_wakeup_recognizer.h +++ b/inc/multi_wakeup_recognizer.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/dependency-default/inc/dependency_default.h b/plugins/wakeup-manager/dependency-default/inc/dependency_default.h index 6f1f565..bdd2b18 100644 --- a/plugins/wakeup-manager/dependency-default/inc/dependency_default.h +++ b/plugins/wakeup-manager/dependency-default/inc/dependency_default.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/dependency-default/inc/dependency_default_audio.h b/plugins/wakeup-manager/dependency-default/inc/dependency_default_audio.h index d723e00..d9f402e 100644 --- a/plugins/wakeup-manager/dependency-default/inc/dependency_default_audio.h +++ b/plugins/wakeup-manager/dependency-default/inc/dependency_default_audio.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/dependency-default/inc/dependency_default_button.h b/plugins/wakeup-manager/dependency-default/inc/dependency_default_button.h index 043283a..9c5b3c9 100644 --- a/plugins/wakeup-manager/dependency-default/inc/dependency_default_button.h +++ b/plugins/wakeup-manager/dependency-default/inc/dependency_default_button.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/dependency_resolver.h b/plugins/wakeup-manager/inc/dependency_resolver.h index 995c8cd..d0ab5b7 100644 --- a/plugins/wakeup-manager/inc/dependency_resolver.h +++ b/plugins/wakeup-manager/inc/dependency_resolver.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/heap_tracer.h b/plugins/wakeup-manager/inc/heap_tracer.h index cc8c671..626bac1 100644 --- a/plugins/wakeup-manager/inc/heap_tracer.h +++ b/plugins/wakeup-manager/inc/heap_tracer.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/wakeup_audio_manager.h b/plugins/wakeup-manager/inc/wakeup_audio_manager.h index 0b81d89..5e179c1 100644 --- a/plugins/wakeup-manager/inc/wakeup_audio_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_audio_manager.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/wakeup_engine_manager.h b/plugins/wakeup-manager/inc/wakeup_engine_manager.h index 83d5b77..fb668a9 100644 --- a/plugins/wakeup-manager/inc/wakeup_engine_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_engine_manager.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/wakeup_manager.h b/plugins/wakeup-manager/inc/wakeup_manager.h index a53d36c..8d36921 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_manager.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h index 0af69cf..533c1bd 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h +++ b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/wakeup_policy.h b/plugins/wakeup-manager/inc/wakeup_policy.h index 0cedcda..09bbd8f 100644 --- a/plugins/wakeup-manager/inc/wakeup_policy.h +++ b/plugins/wakeup-manager/inc/wakeup_policy.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/wakeup_policy_default.h b/plugins/wakeup-manager/inc/wakeup_policy_default.h index 6dc132c..f2a3081 100644 --- a/plugins/wakeup-manager/inc/wakeup_policy_default.h +++ b/plugins/wakeup-manager/inc/wakeup_policy_default.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/wakeup_policy_impl.h b/plugins/wakeup-manager/inc/wakeup_policy_impl.h index 8a615f8..a1da86b 100644 --- a/plugins/wakeup-manager/inc/wakeup_policy_impl.h +++ b/plugins/wakeup-manager/inc/wakeup_policy_impl.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/inc/wakeup_settings.h b/plugins/wakeup-manager/inc/wakeup_settings.h index 13ecbb4..6804209 100644 --- a/plugins/wakeup-manager/inc/wakeup_settings.h +++ b/plugins/wakeup-manager/inc/wakeup_settings.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/src/dependency_resolver.cpp b/plugins/wakeup-manager/src/dependency_resolver.cpp index 7f89343..e329bda 100644 --- a/plugins/wakeup-manager/src/dependency_resolver.cpp +++ b/plugins/wakeup-manager/src/dependency_resolver.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index f68e145..a18eef8 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp index 324c27a..a5cdc59 100644 --- a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/src/multi_assistant_config.c b/src/multi_assistant_config.c index 25b3fdf..5e7dd0f 100644 --- a/src/multi_assistant_config.c +++ b/src/multi_assistant_config.c @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/src/multi_assistant_dbus.c b/src/multi_assistant_dbus.c index 01cac4d..1fb2ed4 100644 --- a/src/multi_assistant_dbus.c +++ b/src/multi_assistant_dbus.c @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/src/multi_assistant_dbus.h b/src/multi_assistant_dbus.h index 47091bf..9a8790c 100644 --- a/src/multi_assistant_dbus.h +++ b/src/multi_assistant_dbus.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/src/multi_assistant_dbus_server.c b/src/multi_assistant_dbus_server.c index 83d9cc3..7fcde20 100644 --- a/src/multi_assistant_dbus_server.c +++ b/src/multi_assistant_dbus_server.c @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/src/multi_assistant_dbus_server.h b/src/multi_assistant_dbus_server.h index a205cac..c77c356 100644 --- a/src/multi_assistant_dbus_server.h +++ b/src/multi_assistant_dbus_server.h @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/src/multi_assistant_service.c b/src/multi_assistant_service.c index 98688ad..0361e22 100644 --- a/src/multi_assistant_service.c +++ b/src/multi_assistant_service.c @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. diff --git a/src/multi_assistant_service_plugin.c b/src/multi_assistant_service_plugin.c index 232fbfa..aca5001 100644 --- a/src/multi_assistant_service_plugin.c +++ b/src/multi_assistant_service_plugin.c @@ -1,5 +1,5 @@ /* - * Copyright 2018 Samsung Electronics Co., Ltd + * Copyright 2018-2019 Samsung Electronics Co., Ltd * * Licensed under the Flora License, Version 1.1 (the License); * you may not use this file except in compliance with the License. -- 2.7.4 From fa0544613c3be12cdf353fb0623b94c51d7c086b Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Tue, 26 Nov 2019 19:34:28 +0900 Subject: [PATCH 09/16] Add button handler for speaker profile Change-Id: I1c5ad346382668672909c7ed617def58f777a112 --- .../dependency-default/CMakeLists.txt | 1 + .../src/dependency_default_button.cpp | 130 ++++++++++++++++++++- 2 files changed, 130 insertions(+), 1 deletion(-) diff --git a/plugins/wakeup-manager/dependency-default/CMakeLists.txt b/plugins/wakeup-manager/dependency-default/CMakeLists.txt index b56b4d5..000597d 100644 --- a/plugins/wakeup-manager/dependency-default/CMakeLists.txt +++ b/plugins/wakeup-manager/dependency-default/CMakeLists.txt @@ -14,6 +14,7 @@ INCLUDE_DIRECTORIES( SET(DDPKG_CHECK_MODULES appcore-agent ecore + ecore-wl2 dlog capi-appfw-app-manager capi-network-connection diff --git a/plugins/wakeup-manager/dependency-default/src/dependency_default_button.cpp b/plugins/wakeup-manager/dependency-default/src/dependency_default_button.cpp index 6803bdb..f52886b 100644 --- a/plugins/wakeup-manager/dependency-default/src/dependency_default_button.cpp +++ b/plugins/wakeup-manager/dependency-default/src/dependency_default_button.cpp @@ -1,14 +1,142 @@ #include "dependency_default_button.h" +#include + +using namespace std; + +#define EFL_BETA_API_SUPPORT + #include +#include +#include +#include static mas_dependency_plugin_proxy_interface g_proxy_interface; +static Ecore_Event_Handler* g_key_down_handler = NULL; +static Ecore_Event_Handler* g_key_up_handler = NULL; + +static chrono::time_point g_last_time_point; +static bool g_voice_key_pressed = false; + +#define VOICE_KEY "XF86AudioPlayPause" + +static Eina_Bool _key_down_cb(void* data, int type, void* event) +{ + Ecore_Event_Key *ev = (Ecore_Event_Key *) event; + if (ev) { + LOGD("KEY[%s], type[%d]", ev->keyname, type); + + if (ev->keyname && strncmp(ev->keyname, VOICE_KEY, strlen(VOICE_KEY)) == 0 ) { + chrono::time_point current_time_point; + current_time_point = chrono::system_clock::now(); + auto diff = current_time_point - g_last_time_point; + auto milliseconds = chrono::duration_cast(diff).count(); + /* If double click detected within 500 msec */ + LOGD("milliseconds : %lld", milliseconds); + if (milliseconds < 500) { + if (g_proxy_interface.process_event) { + g_proxy_interface.process_event(MAS_PLUGIN_EVENT_VOICE_KEY_PRESSED, NULL, 0); + g_voice_key_pressed = true; + } + } + g_last_time_point = current_time_point; + } + } + + return ECORE_CALLBACK_DONE; +} + +static Eina_Bool _key_up_cb(void* data, int type, void* event) +{ + Ecore_Event_Key *ev = (Ecore_Event_Key *) event; + if (ev) { + LOGD("KEY[%s], type[%d]", ev->keyname, type); + + if (g_voice_key_pressed && + ev->keyname && strncmp(ev->keyname, VOICE_KEY, strlen(VOICE_KEY)) == 0) { + mas_plugin_event_e event = MAS_PLUGIN_EVENT_VOICE_KEY_RELEASED_AFTER_PUSH; + if (g_proxy_interface.process_event) { + g_proxy_interface.process_event(event, NULL, 0); + } + } + } + return ECORE_CALLBACK_DONE; +} + +static bool _grab_voice_key(void) +{ + Eina_Bool ret = true; + ret = ecore_wl2_window_keygrab_set(NULL, VOICE_KEY, 0, 0, 0, ECORE_WL2_WINDOW_KEYGRAB_SHARED); + LOGD("ecore_wl2_window_keygrab_set ret[%d] [%s]", ret, VOICE_KEY); + + return ret; +} + +static bool _ungrab_voice_key(void) +{ + Eina_Bool ret = true; + ret = ecore_wl2_window_keygrab_unset(NULL, VOICE_KEY, 0, 0); + LOGD("ecore_wl2_window_keygrab_unset ret[%d] [%s]", ret, VOICE_KEY); + + return ret; +} + +static bool _add_key_cb() +{ + if (g_key_down_handler == NULL) { + LOGE("_key_down_handler"); + g_key_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_down_cb, NULL); + if(g_key_down_handler == NULL) { + LOGE("_key_down_handler == NULL "); + } + } + + if (g_key_up_handler == NULL) { + LOGE("_key_down_handler"); + g_key_up_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_up_cb, NULL); + if(g_key_up_handler == NULL) { + LOGE("_key_up_handler == NULL "); + } + } + return true; +} + +static bool _delete_key_cb(void) +{ + LOGE("start"); + if (NULL != g_key_down_handler) { + ecore_event_handler_del(g_key_down_handler); + g_key_down_handler = NULL; + } + + if (NULL != g_key_up_handler) { + ecore_event_handler_del(g_key_up_handler); + g_key_up_handler = NULL; + } + LOGE("end"); + return true; +} + void dependency_default_button_initialize(mas_dependency_plugin_proxy_interface interface) { g_proxy_interface = interface; + + Ecore_Wl2_Display *_ecore_wl2_display = NULL; + + Eina_Bool ret = ecore_wl2_init(); + LOGD("ecore_wl2_init: %d", ret); + + _ecore_wl2_display = ecore_wl2_display_connect(NULL); + LOGD("_ecore_wl2_display: %p", _ecore_wl2_display); + + g_last_time_point = chrono::system_clock::now(); + _grab_voice_key(); + _add_key_cb(); } void dependency_default_button_deinitialize() { -} + _delete_key_cb(); + _ungrab_voice_key(); +} \ No newline at end of file -- 2.7.4 From e423d6427ba67ae4a334e361059b044475806977 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Mon, 2 Dec 2019 19:48:39 +0900 Subject: [PATCH 10/16] Remove unused privilege definition Change-Id: If00ccd366f4592239d0c84684a6117d20b01c536 --- org.tizen.multi-assistant-service.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/org.tizen.multi-assistant-service.xml b/org.tizen.multi-assistant-service.xml index b97ba98..7ba4aa1 100644 --- a/org.tizen.multi-assistant-service.xml +++ b/org.tizen.multi-assistant-service.xml @@ -28,7 +28,6 @@ http://tizen.org/privilege/appmanager.kill http://tizen.org/privilege/keygrab http://tizen.org/privilege/recorder - http://tizen.org/privilege/appdir.shareddata http://tizen.org/privilege/internet http://tizen.org/privilege/network.get http://tizen.org/privilege/bluetooth -- 2.7.4 From e31bc9cd7a1e572bc4eaeedf487de20ca8268fe2 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Tue, 3 Dec 2019 18:02:24 +0900 Subject: [PATCH 11/16] Add wakeup policy support in dependency module Change-Id: I54d5e54b7a1a45a4eef03a80679b0705925dcc32 --- plugins/wakeup-manager/CMakeLists.txt | 1 + plugins/wakeup-manager/inc/dependency_resolver.h | 28 ++++++++----- .../wakeup-manager/inc/wakeup_manager_wrapper.h | 2 + plugins/wakeup-manager/inc/wakeup_policy.h | 3 ++ plugins/wakeup-manager/inc/wakeup_policy_default.h | 7 +++- .../wakeup-manager/inc/wakeup_policy_external.h | 44 +++++++++++++++++++ plugins/wakeup-manager/src/dependency_resolver.cpp | 33 +++++++++++++++ plugins/wakeup-manager/src/wakeup_manager.cpp | 35 +++++++++------- .../wakeup-manager/src/wakeup_manager_wrapper.cpp | 7 ++++ .../wakeup-manager/src/wakeup_policy_default.cpp | 18 ++++---- .../wakeup-manager/src/wakeup_policy_external.cpp | 49 ++++++++++++++++++++++ 11 files changed, 191 insertions(+), 36 deletions(-) create mode 100644 plugins/wakeup-manager/inc/wakeup_policy_external.h create mode 100644 plugins/wakeup-manager/src/wakeup_policy_external.cpp diff --git a/plugins/wakeup-manager/CMakeLists.txt b/plugins/wakeup-manager/CMakeLists.txt index 1f804c1..55a8770 100644 --- a/plugins/wakeup-manager/CMakeLists.txt +++ b/plugins/wakeup-manager/CMakeLists.txt @@ -42,6 +42,7 @@ SET(SRCS src/wakeup_settings.cpp src/wakeup_policy.cpp src/wakeup_policy_default.cpp + src/wakeup_policy_external.cpp src/wakeup_audio_manager.cpp src/wakeup_engine_manager.cpp src/wakeup_manager_wrapper.cpp diff --git a/plugins/wakeup-manager/inc/dependency_resolver.h b/plugins/wakeup-manager/inc/dependency_resolver.h index d0ab5b7..75d882e 100644 --- a/plugins/wakeup-manager/inc/dependency_resolver.h +++ b/plugins/wakeup-manager/inc/dependency_resolver.h @@ -25,17 +25,6 @@ extern "C" { #endif -int dependency_resolver_initialize(mas_dependency_plugin_proxy_interface interface); -int dependency_resolver_deinitialize(void); -int dependency_resolver_set_error_callback(mas_error_cb callback, void* user_data); -int dependency_resolver_start_recording(); -int dependency_resolver_stop_recording(); -int dependency_resolver_set_recording_session(unsigned int); -int dependency_resolver_set_background_volume(double ratio); -int dependency_resolver_get_audio_format(int* rate, int* channel, int* audio_type); -int dependency_resolver_get_audio_source_type(char** type); -int dependency_resolver_process_wakeup_engine_command(const char* engine, const char* command); - /************************************************************************************** *** Definitions for dependencies *************************************************************************************/ @@ -63,6 +52,8 @@ typedef int (*mas_dependency_get_audio_format)(int* rate, int* channel, int* aud typedef int (*mas_dependency_get_audio_source_type)(char** type); #define MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_ENGINE_COMMAND "mas_dependency_process_wakeup_engine_command" typedef int (*mas_dependency_process_wakeup_engine_command)(const char* engine_name, const char* command); +#define MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_CANDIDATE "mas_dependency_process_wakeup_candidate" +typedef int (*mas_dependency_process_wakeup_candidate)(const mas_wakeup_event_info* info); typedef struct { mas_dependency_initialize initialize; @@ -75,8 +66,23 @@ typedef struct { mas_dependency_get_audio_format get_audio_format; mas_dependency_get_audio_source_type get_audio_source_type; mas_dependency_process_wakeup_engine_command process_wakeup_engine_command; + mas_dependency_process_wakeup_candidate process_wakeup_candidate; } mas_dependency_module_interface; +int dependency_resolver_initialize(mas_dependency_plugin_proxy_interface interface); +int dependency_resolver_deinitialize(void); +int dependency_resolver_set_error_callback(mas_error_cb callback, void* user_data); +int dependency_resolver_start_recording(); +int dependency_resolver_stop_recording(); +int dependency_resolver_set_recording_session(unsigned int); +int dependency_resolver_set_background_volume(double ratio); +int dependency_resolver_get_audio_format(int* rate, int* channel, int* audio_type); +int dependency_resolver_get_audio_source_type(char** type); +int dependency_resolver_process_wakeup_engine_command(const char* engine, const char* command); +int dependency_resolver_process_wakeup_candidate(mas_wakeup_event_info* info); + +mas_dependency_module_interface* dependency_resolver_get_interface(); + #ifdef __cplusplus } #endif diff --git a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h index 533c1bd..92858fb 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h +++ b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h @@ -136,6 +136,8 @@ int wakeup_manager_feed_audio_data(mas_speech_streaming_event_e event, void* buf int wakeup_manager_send_dependency_module_command(const char* engine_name, const char* command); +int wakeup_manager_wakeup_assistant(const mas_wakeup_event_info* wakeup_info); + #ifdef __cplusplus } #endif diff --git a/plugins/wakeup-manager/inc/wakeup_policy.h b/plugins/wakeup-manager/inc/wakeup_policy.h index 09bbd8f..238a27b 100644 --- a/plugins/wakeup-manager/inc/wakeup_policy.h +++ b/plugins/wakeup-manager/inc/wakeup_policy.h @@ -48,10 +48,13 @@ public: CWakeupPolicy(const CWakeupPolicy&) = delete; CWakeupPolicy& operator=(const CWakeupPolicy&) = delete; + virtual bool valid() = 0; + void subscribe(IPolicyEventObserver *observer); void unsubscribe(IPolicyEventObserver *observer); virtual void wakeup_candidate(mas_wakeup_event_info wakeup_info) = 0; + virtual void select_candidate(mas_wakeup_event_info wakeup_info) = 0; protected: unique_ptr mImpl; }; diff --git a/plugins/wakeup-manager/inc/wakeup_policy_default.h b/plugins/wakeup-manager/inc/wakeup_policy_default.h index f2a3081..d4b36b7 100644 --- a/plugins/wakeup-manager/inc/wakeup_policy_default.h +++ b/plugins/wakeup-manager/inc/wakeup_policy_default.h @@ -34,14 +34,17 @@ using namespace std; class CWakeupPolicyDefault : public CWakeupPolicy { public: - CWakeupPolicyDefault(); CWakeupPolicyDefault(IPolicyEventObserver *observer); ~CWakeupPolicyDefault(); + bool valid() override; + void set_assistant_priority(string appid, int priority); void set_delay(float seconds); - void wakeup_candidate(mas_wakeup_event_info wakeup_info); + void wakeup_candidate(mas_wakeup_event_info wakeup_info) override; + void select_candidate(mas_wakeup_event_info wakeup_info) override; + void timer_expired(); private: typedef struct { diff --git a/plugins/wakeup-manager/inc/wakeup_policy_external.h b/plugins/wakeup-manager/inc/wakeup_policy_external.h new file mode 100644 index 0000000..846330f --- /dev/null +++ b/plugins/wakeup-manager/inc/wakeup_policy_external.h @@ -0,0 +1,44 @@ +/* + * Copyright 2018 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _WAKEUP_POLICY_EXTERNAL_H_ +#define _WAKEUP_POLICY_EXTERNAL_H_ + +#include "wakeup_policy.h" + +namespace multiassistant +{ +namespace wakeup +{ + +using namespace std; + +class CWakeupPolicyExternal : public CWakeupPolicy +{ +public: + CWakeupPolicyExternal(IPolicyEventObserver *observer); + ~CWakeupPolicyExternal(); + + bool valid() override; + + void wakeup_candidate(mas_wakeup_event_info wakeup_info) override; + void select_candidate(mas_wakeup_event_info wakeup_info) override; +}; + +} // wakeup +} // multiassistant + +#endif /* _WAKEUP_POLICY_EXTERNAL_H_ */ diff --git a/plugins/wakeup-manager/src/dependency_resolver.cpp b/plugins/wakeup-manager/src/dependency_resolver.cpp index e329bda..c2537d6 100644 --- a/plugins/wakeup-manager/src/dependency_resolver.cpp +++ b/plugins/wakeup-manager/src/dependency_resolver.cpp @@ -35,6 +35,11 @@ static void *g_handle = NULL; static mas_dependency_module_interface g_mas_dependency = { NULL, }; +mas_dependency_module_interface* dependency_resolver_get_interface() +{ + return &g_mas_dependency; +} + int dependency_resolver_initialize(mas_dependency_plugin_proxy_interface interface) { MAS_LOGD("[Enter]"); @@ -89,6 +94,9 @@ int dependency_resolver_initialize(mas_dependency_plugin_proxy_interface interfa g_mas_dependency.process_wakeup_engine_command = (mas_dependency_process_wakeup_engine_command)dlsym(g_handle, MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_ENGINE_COMMAND); + g_mas_dependency.process_wakeup_candidate = + (mas_dependency_process_wakeup_candidate)dlsym(g_handle, + MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_CANDIDATE); int ret = -1; int dependency_version = 0; @@ -344,3 +352,28 @@ int dependency_resolver_process_wakeup_engine_command(const char* engine, const return ret; } + +int dependency_resolver_process_wakeup_candidate(mas_wakeup_event_info* info) +{ + int ret = -1; + if (NULL != g_handle) { + mas_dependency_process_wakeup_candidate func = g_mas_dependency.process_wakeup_candidate; + if (NULL == func) { + MAS_LOGE("[ERROR] symbol lookup failed : %s", MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_CANDIDATE); + } else { + try { + ret = func(info); + } catch (const std::exception& e) { + MAS_LOGE("[ERROR] %s of dependency module threw exception : %s", + MAS_DEPENDENCY_FUNC_PROCESS_WAKEUP_CANDIDATE, e.what()); + } + if (0 != ret) { + MAS_LOGE("[ERROR] Fail to process wakeup candidate, ret(%d)", ret); + } + } + } else { + MAS_LOGE("[ERROR] g_handle is not valid"); + } + + return ret; +} diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index a18eef8..352ebbe 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -17,6 +17,7 @@ #include "wakeup_manager.h" #include "wakeup_manager_main.h" #include "wakeup_policy_default.h" +#include "wakeup_policy_external.h" #include "dependency_resolver.h" #include @@ -73,19 +74,22 @@ CWakeupManager::~CWakeupManager() void CWakeupManager::initialize_wakeup_policy() { - mWakeupPolicy.reset(new CWakeupPolicyDefault{&mPolicyEventObserver}); - - /* Default Policy specific initialization */ - CWakeupPolicyDefault *policy = - dynamic_cast(mWakeupPolicy.get()); - if (policy) { - int priority = 0; - - policy->set_delay(mWakeupSettings.get_wakeup_policy_delay()); - MWR_LOGD("Setting Delay : %f", mWakeupSettings.get_wakeup_policy_delay()); - for (const auto& assistant : mWakeupSettings.get_wakeup_policy_priority()) { - policy->set_assistant_priority(assistant, ++priority); - MWR_LOGD("Setting Priority : %d %s", priority, assistant.c_str()); + mWakeupPolicy.reset(new CWakeupPolicyExternal{&mPolicyEventObserver}); + if (nullptr == mWakeupPolicy || !(mWakeupPolicy->valid())) { + mWakeupPolicy.reset(new CWakeupPolicyDefault{&mPolicyEventObserver}); + + /* Default Policy specific initialization */ + CWakeupPolicyDefault *policy = + dynamic_cast(mWakeupPolicy.get()); + if (policy) { + int priority = 0; + + policy->set_delay(mWakeupSettings.get_wakeup_policy_delay()); + MWR_LOGD("Setting Delay : %f", mWakeupSettings.get_wakeup_policy_delay()); + for (const auto& assistant : mWakeupSettings.get_wakeup_policy_priority()) { + policy->set_assistant_priority(assistant, ++priority); + MWR_LOGD("Setting Priority : %d %s", priority, assistant.c_str()); + } } } } @@ -106,8 +110,6 @@ bool CWakeupManager::initialize() mAudioManager.subscribe(&mAudioEventObserver); mAudioManager.initialize(); - initialize_wakeup_policy(); - mWakeupEngineManager.subscribe(&mEngineEventObserver); mWakeupEngineManager.initialize(); @@ -115,9 +117,12 @@ bool CWakeupManager::initialize() interface.process_event = wakeup_manager_process_event; interface.feed_audio_data = wakeup_manager_feed_audio_data; //interface.send_dependency_module_command = wakeup_manager_send_dependency_module_command; + interface.wakeup_assistant = wakeup_manager_wakeup_assistant; dependency_resolver_initialize(interface); + initialize_wakeup_policy(); + MWR_LOGD("[END]"); return true; } diff --git a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp index a5cdc59..2325bcb 100644 --- a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp @@ -660,6 +660,13 @@ int wakeup_manager_send_dependency_module_command(const char* engine_name, const return 0; } +int wakeup_manager_wakeup_assistant(const mas_wakeup_event_info* wakeup_info) +{ + if (nullptr == g_wakeup_manager) return -1; + CWakeupPolicy* policy = g_wakeup_manager->get_wakeup_policy(); + if (policy) policy->select_candidate(*wakeup_info); +} + void CWakeupEventObserver::on_wakeup(mas_wakeup_event_info wakeup_info) { if (NULL != g_wakeup_event_cb) { diff --git a/plugins/wakeup-manager/src/wakeup_policy_default.cpp b/plugins/wakeup-manager/src/wakeup_policy_default.cpp index 1715ddf..7a471fd 100644 --- a/plugins/wakeup-manager/src/wakeup_policy_default.cpp +++ b/plugins/wakeup-manager/src/wakeup_policy_default.cpp @@ -6,19 +6,11 @@ #include #include -#ifndef LOG_TAG -#define LOG_TAG "WakeupPolicyDefault" -#endif - namespace multiassistant { namespace wakeup { -CWakeupPolicyDefault::CWakeupPolicyDefault() -{ -} - CWakeupPolicyDefault::CWakeupPolicyDefault(IPolicyEventObserver *observer) : CWakeupPolicy(observer) { @@ -32,6 +24,11 @@ CWakeupPolicyDefault::~CWakeupPolicyDefault() } } +bool CWakeupPolicyDefault::valid() +{ + return true; +} + void CWakeupPolicyDefault::set_assistant_priority(string appid, int priority) { PRIORITY_INFO info; @@ -68,6 +65,11 @@ void CWakeupPolicyDefault::wakeup_candidate(mas_wakeup_event_info wakeup_info) } } +void CWakeupPolicyDefault::select_candidate(mas_wakeup_event_info wakeup_info) +{ + LOGE("Default wakeup policy does not support selecting candidate"); +} + void CWakeupPolicyDefault::timer_expired() { LOGD("[ENTER]"); diff --git a/plugins/wakeup-manager/src/wakeup_policy_external.cpp b/plugins/wakeup-manager/src/wakeup_policy_external.cpp new file mode 100644 index 0000000..2c94a2a --- /dev/null +++ b/plugins/wakeup-manager/src/wakeup_policy_external.cpp @@ -0,0 +1,49 @@ +#include "wakeup_policy_external.h" +#include "wakeup_policy_impl.h" + +#include "dependency_resolver.h" + +#include + +#ifndef LOG_TAG +#define LOG_TAG "WakeupPolicyExternal" +#endif + +namespace multiassistant +{ +namespace wakeup +{ + +CWakeupPolicyExternal::CWakeupPolicyExternal(IPolicyEventObserver *observer) + : CWakeupPolicy(observer) +{ +} + +CWakeupPolicyExternal::~CWakeupPolicyExternal() +{ +} + +bool CWakeupPolicyExternal::valid() +{ + bool ret = false; + mas_dependency_module_interface* interface = dependency_resolver_get_interface(); + if (interface) { + if (interface->process_wakeup_candidate) { + ret = true; + } + } + return ret; +} + +void CWakeupPolicyExternal::wakeup_candidate(mas_wakeup_event_info wakeup_info) +{ + dependency_resolver_process_wakeup_candidate(&wakeup_info); +} + +void CWakeupPolicyExternal::select_candidate(mas_wakeup_event_info wakeup_info) +{ + if (mImpl) mImpl->wakeup(wakeup_info); +} + +} // wakeup +} // multiassistant -- 2.7.4 From 1b3cd8e9bb4a2fe2634c370f5df76d1a7126b7f9 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 6 Dec 2019 19:00:44 +0900 Subject: [PATCH 12/16] Keep assistants updated about service state changes Change-Id: Ie7e01bc84b61da61da959e03cbebec16bf14a9fa --- inc/multi_assistant_main.h | 1 + inc/multi_assistant_service_client.h | 4 ++ inc/multi_assistant_service_plugin.h | 3 ++ inc/multi_wakeup_recognizer.h | 3 ++ plugins/wakeup-manager/inc/wakeup_manager.h | 1 + .../wakeup-manager/inc/wakeup_manager_wrapper.h | 5 +++ plugins/wakeup-manager/src/wakeup_manager.cpp | 3 ++ .../wakeup-manager/src/wakeup_manager_wrapper.cpp | 30 +++++++++++++ src/multi_assistant_dbus.c | 51 ++++++++++++++++++++++ src/multi_assistant_dbus.h | 8 ++++ src/multi_assistant_service.c | 32 +++++++++++++- src/multi_assistant_service_plugin.c | 36 ++++++++++++++- 12 files changed, 175 insertions(+), 2 deletions(-) diff --git a/inc/multi_assistant_main.h b/inc/multi_assistant_main.h index 3e2b2c1..8adc1c0 100644 --- a/inc/multi_assistant_main.h +++ b/inc/multi_assistant_main.h @@ -82,6 +82,7 @@ #define MAS_METHOD_AUDIO_STREAMING_DATA_SECTION "mas_method_audio_streaming_data_section" #define MAS_METHOD_SEND_PREPROCESSING_RESULT "mas_method_send_preprocessing_result" #define MAS_METHOD_SEND_WAKEUP_ENGINE_COMMAND "mas_method_send_wakeup_engine_command" +#define MAS_METHOD_SERVICE_STATE_CHANGE "mas_method_service_state_change" #define MAS_UI_METHOD_SEND_ASR_RESULT "mas_ui_method_send_asr_result" #define MAS_UI_METHOD_SEND_RESULT "mas_ui_method_send_result" diff --git a/inc/multi_assistant_service_client.h b/inc/multi_assistant_service_client.h index b3eebf1..110d0d1 100644 --- a/inc/multi_assistant_service_client.h +++ b/inc/multi_assistant_service_client.h @@ -83,6 +83,10 @@ int mas_launch_client_by_wakeup_word(const char *wakeup_word); int mas_prelaunch_default_assistant(); +int mas_set_current_service_state(ma_service_state_e state); + +ma_service_state_e mas_get_current_service_state(); + typedef enum { CLIENT_LAUNCH_MODE_ACTIVATION, CLIENT_LAUNCH_MODE_PRELAUNCH, diff --git a/inc/multi_assistant_service_plugin.h b/inc/multi_assistant_service_plugin.h index 7115f95..cae0038 100644 --- a/inc/multi_assistant_service_plugin.h +++ b/inc/multi_assistant_service_plugin.h @@ -173,6 +173,8 @@ typedef int (*wakeup_manager_set_error_callback)(wakeup_service_error_cb callbac typedef int (*wakeup_manager_set_streaming_section_changed_callback)(wakeup_service_streaming_section_changed_cb callback, void* user_data); #define MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_ENGINE_COMMAND_CALLBACK "wakeup_manager_set_wakeup_engine_command_callback" typedef int (*wakeup_manager_set_wakeup_engine_command_callback)(wakeup_service_wakeup_engine_command_cb callback, void* user_data); +#define MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_SERVICE_STATE_CHANGED_CALLBACK "wakeup_manager_set_wakeup_service_state_changed_callback" +typedef int (*wakeup_manager_set_wakeup_service_state_changed_callback)(wakeup_service_wakeup_service_state_changed_cb callback, void* user_data); typedef struct { wakeup_manager_initialize initialize; @@ -210,6 +212,7 @@ typedef struct { wakeup_manager_set_error_callback set_error_callback; wakeup_manager_set_streaming_section_changed_callback set_streaming_section_changed_callback; wakeup_manager_set_wakeup_engine_command_callback set_wakeup_engine_command_callback; + wakeup_manager_set_wakeup_service_state_changed_callback set_wakeup_service_state_changed_callback; } wakeup_manager_interface; #ifdef __cplusplus diff --git a/inc/multi_wakeup_recognizer.h b/inc/multi_wakeup_recognizer.h index 6e1b26a..cdd8140 100644 --- a/inc/multi_wakeup_recognizer.h +++ b/inc/multi_wakeup_recognizer.h @@ -22,6 +22,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -41,6 +42,8 @@ typedef void (*wakeup_service_streaming_section_changed_cb)(ma_audio_streaming_d typedef void (*wakeup_service_wakeup_engine_command_cb)(mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data); +typedef void (*wakeup_service_wakeup_service_state_changed_cb)(ma_service_state_e state, void* user_data); + #ifdef __cplusplus } #endif diff --git a/plugins/wakeup-manager/inc/wakeup_manager.h b/plugins/wakeup-manager/inc/wakeup_manager.h index 8d36921..85ce732 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_manager.h @@ -50,6 +50,7 @@ public: virtual void on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) = 0; virtual void on_wakeup_engine_command( mas_wakeup_engine_command_target_e target, const char* name, const char* command) = 0; + virtual void on_wakeup_service_state_changed(ma_service_state_e state) = 0; }; class ISettingValueObserver { diff --git a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h index 92858fb..54fd533 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h +++ b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h @@ -24,6 +24,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -55,6 +56,8 @@ typedef void (*wakeup_service_streaming_section_changed_cb)(ma_audio_streaming_d typedef void (*wakeup_service_engine_command_cb)(mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command, void* user_data); +typedef void (*wakeup_service_state_changed_cb)(ma_service_state_e state, void* user_data); + typedef struct { int plugin_version; bool ui_panel_enabled; @@ -130,6 +133,8 @@ EXPORT_API int wakeup_manager_set_streaming_section_changed_callback(wakeup_serv EXPORT_API int wakeup_manager_set_wakeup_engine_command_callback(wakeup_service_engine_command_cb callback, void* user_data); +EXPORT_API int wakeup_manager_set_wakeup_service_state_changed_callback(wakeup_service_state_changed_cb callback, void* user_data); + /* Internal API declarations for dependency modules */ int wakeup_manager_feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len); diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index 352ebbe..7119251 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -379,6 +379,9 @@ bool CWakeupManager::change_manager_state(wakeup_manager_state_e state) { mWakeupManagerState = state; mWakeupEngineManager.update_manager_state(state); + for (const auto& observer : mWakeupObservers) { + observer->on_wakeup_service_state_changed((ma_service_state_e)state); + } return true; } diff --git a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp index 2325bcb..5fe6469 100644 --- a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp @@ -48,6 +48,9 @@ static void* g_streaming_section_changed_user_data; static wakeup_service_engine_command_cb g_wakeup_engine_command_cb; static void* g_wakeup_engine_command_user_data; +static wakeup_service_state_changed_cb g_wakeup_service_state_changed_cb; +static void *g_wakeup_service_state_changed_user_data; + class CWakeupEventObserver : public IWakeupEventObserver { void on_wakeup(mas_wakeup_event_info wakeup_info) override; @@ -56,6 +59,7 @@ class CWakeupEventObserver : public IWakeupEventObserver void on_audio_streaming_data_section(ma_audio_streaming_data_section_e section) override; void on_wakeup_engine_command( mas_wakeup_engine_command_target_e target, const char* assistant_name, const char* command) override; + void on_wakeup_service_state_changed(ma_service_state_e state) override; }; class CSettingValueObserver : public ISettingValueObserver @@ -110,6 +114,9 @@ int wakeup_manager_initialize(void) g_wakeup_engine_command_cb = NULL; g_wakeup_engine_command_user_data = NULL; + g_wakeup_service_state_changed_cb = NULL; + g_wakeup_service_state_changed_user_data = NULL; + g_wakeup_manager->initialize(); MWR_LOGD("[END]"); @@ -644,6 +651,22 @@ int wakeup_manager_set_wakeup_engine_command_callback(wakeup_service_engine_comm return 0; } +int wakeup_manager_set_wakeup_service_state_changed_callback(wakeup_service_state_changed_cb callback, void* user_data) +{ + MWR_LOGD("[ENTER]"); + + if (NULL == callback) { + MWR_LOGE("[ERROR] Input parameter is NULL"); + return -1; + } + + g_wakeup_service_state_changed_cb = callback; + g_wakeup_service_state_changed_user_data = user_data; + + MWR_LOGD("[END]"); + return 0; +} + int wakeup_manager_feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len) { if (nullptr == g_wakeup_manager) return -1; @@ -706,6 +729,13 @@ void CWakeupEventObserver::on_wakeup_engine_command( } } +void CWakeupEventObserver::on_wakeup_service_state_changed(ma_service_state_e state) +{ + if (g_wakeup_service_state_changed_cb) { + g_wakeup_service_state_changed_cb(state, g_wakeup_service_state_changed_user_data); + } +} + void CSettingValueObserver::on_value_changed() { if (g_setting_changed_cb) { diff --git a/src/multi_assistant_dbus.c b/src/multi_assistant_dbus.c index 1fb2ed4..664a111 100644 --- a/src/multi_assistant_dbus.c +++ b/src/multi_assistant_dbus.c @@ -512,6 +512,57 @@ int masc_dbus_send_wakeup_engine_command(int pid, const char* command) return 0; } +int masc_dbus_service_state_change(int pid, int state) +{ + if (0 != __dbus_check()) { + return -1; //MAS_ERROR_OPERATION_FAILED; + } + + DBusMessage* msg; + + DBusError err; + dbus_error_init(&err); + + char service_name[64]; + memset(service_name, '\0', 64); + snprintf(service_name, 64, "%s_%d", MA_CLIENT_SERVICE_NAME, pid); + + msg = dbus_message_new_method_call( + service_name, + MA_CLIENT_SERVICE_OBJECT_PATH, + MA_CLIENT_SERVICE_INTERFACE, + MAS_METHOD_SERVICE_STATE_CHANGE); + + static int count = 0; + if (NULL == msg) { + MAS_LOGE(">>>> Request mas send service state message : Fail to make message"); + return -1; // MAS_ERROR_OPERATION_FAILED; + } else { + MAS_LOGD(">>>> Request mas send service state message : %s", service_name); + } + + if (true != dbus_message_append_args(msg, + DBUS_TYPE_INT32, &state, + DBUS_TYPE_INVALID)) { + dbus_message_unref(msg); + MAS_LOGE("[ERROR] Fail to append args"); + return -1; + } + + dbus_message_set_no_reply(msg, TRUE); + + if (1 != dbus_connection_send(g_conn_sender, msg, NULL)) { + MAS_LOGE("[Dbus ERROR] Fail to Send"); + return -1; // MAS_ERROR_OPERATION_FAILED; + } else { + MAS_LOGD("[Dbus DEBUG] Success to Send activate message : %d", state); + dbus_connection_flush(g_conn_sender); + } + + dbus_message_unref(msg); + return 0; +} + int masc_ui_dbus_send_hello(void) { if (0 != __dbus_check()) { diff --git a/src/multi_assistant_dbus.h b/src/multi_assistant_dbus.h index 9a8790c..4c38cd2 100644 --- a/src/multi_assistant_dbus.h +++ b/src/multi_assistant_dbus.h @@ -35,6 +35,14 @@ int masc_dbus_active_state_change(int pid, int state); int masc_dbus_send_preprocessing_information(int pid, const char* app_id); +int masc_dbus_send_streaming_section_changed(int pid, int section); + +int masc_dbus_send_preprocessing_result(int pid, bool result); + +int masc_dbus_send_wakeup_engine_command(int pid, const char* command); + +int masc_dbus_service_state_change(int pid, int state); + int masc_ui_dbus_send_hello(void); int masc_ui_dbus_send_asr_result(int pid, int event, char* asr_result); diff --git a/src/multi_assistant_service.c b/src/multi_assistant_service.c index 0361e22..7faabf5 100644 --- a/src/multi_assistant_service.c +++ b/src/multi_assistant_service.c @@ -75,6 +75,7 @@ static const char *g_wakeup_maclient_appid = NULL; static package_manager_h g_pkgmgr = NULL; static PREPROCESSING_STATE g_current_preprocessing_state = PREPROCESSING_STATE_NONE; +static ma_service_state_e g_current_service_state = MA_SERVICE_STATE_INACTIVE; /* client list */ static GSList* g_client_list = NULL; @@ -259,6 +260,8 @@ int mas_client_initialize(int pid) } else { MAS_LOGD("MA client connected, but its appid does not match with current maclient"); } + + masc_dbus_service_state_change(pid, mas_get_current_service_state()); } else { MAS_LOGE("[ERROR] Fail to retrieve appid"); } @@ -1129,7 +1132,6 @@ int mas_prelaunch_default_assistant() return 0; } - ma_preprocessing_allow_mode_e get_preprocessing_allow_mode(const char* appid) { for (int loop = 0; loop < MAX_MACLIENT_INFO_NUM; loop++) { @@ -1253,6 +1255,34 @@ int mas_process_preprocessing_state_event(PREPROCESSING_STATE_EVENT event) return 0; } +int mas_set_current_service_state(ma_service_state_e state) +{ + g_current_service_state = state; + + ma_client_s *data = NULL; + + int count = g_slist_length(g_client_list); + int i; + + for (i = 0; i < count; i++) { + data = g_slist_nth_data(g_client_list, i); + + if (NULL != data && -1 != data->pid) { + int ret = masc_dbus_service_state_change(data->pid, state); + if (0 != ret) { + MAS_LOGE("[ERROR] Fail to send wakeup service state change to %d, ret(%d)", + data->pid, ret); + } + } + } + return 0; +} + +ma_service_state_e mas_get_current_service_state() +{ + return g_current_service_state; +} + static int pkg_app_list_cb(const pkgmgrinfo_appinfo_h handle, void *user_data) { char *appid = NULL; diff --git a/src/multi_assistant_service_plugin.c b/src/multi_assistant_service_plugin.c index aca5001..a486a84 100644 --- a/src/multi_assistant_service_plugin.c +++ b/src/multi_assistant_service_plugin.c @@ -367,6 +367,13 @@ static void __wakeup_engine_command_cb(mas_wakeup_engine_command_target_e target } } +static void __wakeup_service_state_changed_cb(ma_service_state_e state, void* user_data) +{ + MAS_LOGD( "[SUCCESS] __wakeup_service_state_changed_cb is called, state(%d)", state); + + mas_set_current_service_state(state); +} + int multi_assistant_service_plugin_initialize(void) { MAS_LOGD( "[Enter]"); @@ -488,6 +495,9 @@ int multi_assistant_service_plugin_initialize(void) _wakeup_manager_interface.set_wakeup_engine_command_callback = (wakeup_manager_set_wakeup_engine_command_callback)dlsym(g_handle, MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_ENGINE_COMMAND_CALLBACK); + _wakeup_manager_interface.set_wakeup_service_state_changed_callback = + (wakeup_manager_set_wakeup_service_state_changed_callback)dlsym(g_handle, + MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_SERVICE_STATE_CHANGED_CALLBACK); int ret = -1; if (NULL != g_handle) { @@ -1068,6 +1078,12 @@ int multi_assistant_service_plugin_set_callbacks(void) return ret; } + ret = multi_assistant_service_plugin_set_wakeup_service_state_changed_callback(__wakeup_service_state_changed_cb, NULL); + if (0 != ret) { + MAS_LOGE("Fail to set wakeup engine command cb"); + return ret; + } + return 0; } @@ -1230,4 +1246,22 @@ int multi_assistant_service_plugin_set_wakeup_engine_command_callback(wakeup_ser } } return ret; -} \ No newline at end of file +} + +int multi_assistant_service_plugin_set_wakeup_service_state_changed_callback(wakeup_service_wakeup_service_state_changed_cb callback, void* user_data) +{ + int ret = -1; + if (NULL != g_handle) { + wakeup_manager_set_wakeup_service_state_changed_callback func = _wakeup_manager_interface.set_wakeup_service_state_changed_callback; + if (NULL == func) { + MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_SET_WAKEUP_SERVICE_STATE_CHANGED_CALLBACK); + } else { + ret = func(callback, user_data); + if (0 != ret) { + MAS_LOGE("[ERROR] Fail to set error callback, ret(%d)", ret); + } + } + } + return ret; +} + -- 2.7.4 From cffa459eb692f8165e6042b7c20b762b94228017 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 13 Dec 2019 13:14:57 +0900 Subject: [PATCH 13/16] Rename process_event to process_plugin_event Change-Id: I773bd187d329a005fdc9e6052c91b4b2d4bd4fde --- inc/multi_assistant_service_plugin.h | 6 +++--- plugins/wakeup-manager/inc/wakeup_manager.h | 2 +- plugins/wakeup-manager/inc/wakeup_manager_wrapper.h | 2 +- plugins/wakeup-manager/src/wakeup_manager.cpp | 4 ++-- plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp | 4 ++-- src/multi_assistant_service_plugin.c | 10 +++++----- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/inc/multi_assistant_service_plugin.h b/inc/multi_assistant_service_plugin.h index cae0038..1f31ac0 100644 --- a/inc/multi_assistant_service_plugin.h +++ b/inc/multi_assistant_service_plugin.h @@ -133,8 +133,8 @@ typedef int (*wakeup_manager_send_assistant_specific_command)(const char* appid, typedef int (*wakeup_manager_set_background_volume)(const char* appid, double ratio); #define MA_WAKEUP_MANAGER_FUNC_UPDATE_RECOGNITION_RESULT "wakeup_manager_update_recognition_result" typedef int (*wakeup_manager_update_recognition_result)(const char* appid, int result); -#define MA_WAKEUP_MANAGER_FUNC_PROCESS_EVENT "wakeup_manager_process_event" -typedef int (*wakeup_manager_process_event)(int event, void* data, int len); +#define MA_WAKEUP_MANAGER_FUNC_PROCESS_PLUGIN_EVENT "wakeup_manager_process_plugin_event" +typedef int (*wakeup_manager_process_plugin_event)(int event, void* data, int len); #define MA_WAKEUP_MANAGER_FUNC_START_STREAMING_UTTERANCE_DATA "wakeup_manager_start_streaming_utterance_data" typedef int (*wakeup_manager_start_streaming_utterance_data)(void); #define MA_WAKEUP_MANAGER_FUNC_STOP_STREAMING_UTTERANCE_DATA "wakeup_manager_stop_streaming_utterance_data" @@ -192,7 +192,7 @@ typedef struct { wakeup_manager_send_assistant_specific_command send_assistant_specific_command; wakeup_manager_set_background_volume set_background_volume; wakeup_manager_update_recognition_result update_recognition_result; - wakeup_manager_process_event process_event; + wakeup_manager_process_plugin_event process_plugin_event; wakeup_manager_start_streaming_utterance_data start_streaming_utterance_data; wakeup_manager_stop_streaming_utterance_data stop_streaming_utterance_data; wakeup_manager_start_streaming_previous_utterance_data start_streaming_previous_utterance_data; diff --git a/plugins/wakeup-manager/inc/wakeup_manager.h b/plugins/wakeup-manager/inc/wakeup_manager.h index 85ce732..25c5498 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_manager.h @@ -98,7 +98,7 @@ public: bool send_assistant_specific_command(string appid, string command); bool set_background_volume(string appid, double ratio); bool update_recognition_result(string appid, int result); - bool process_event(mas_plugin_event_e event, void* data, int len); + bool process_plugin_event(mas_plugin_event_e event, void* data, int len); bool get_audio_format(int* rate, int* channel, int* audio_type); bool get_audio_source_type(char** type); bool set_language(string language); diff --git a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h index 54fd533..1477360 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h +++ b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h @@ -93,7 +93,7 @@ EXPORT_API int wakeup_manager_set_background_volume(const char *appid, double ra EXPORT_API int wakeup_manager_update_recognition_result(const char *appid, int result); -EXPORT_API int wakeup_manager_process_event(mas_plugin_event_e event, void* data, int len); +EXPORT_API int wakeup_manager_process_plugin_event(mas_plugin_event_e event, void* data, int len); EXPORT_API int wakeup_manager_start_streaming_utterance_data(void); diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index 7119251..7372efb 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -114,7 +114,7 @@ bool CWakeupManager::initialize() mWakeupEngineManager.initialize(); mas_dependency_plugin_proxy_interface interface; - interface.process_event = wakeup_manager_process_event; + interface.process_event = wakeup_manager_process_plugin_event; interface.feed_audio_data = wakeup_manager_feed_audio_data; //interface.send_dependency_module_command = wakeup_manager_send_dependency_module_command; interface.wakeup_assistant = wakeup_manager_wakeup_assistant; @@ -467,7 +467,7 @@ static long get_current_milliseconds_after_epoch() return value.count(); } -bool CWakeupManager::process_event(mas_plugin_event_e event, void* data, int len) +bool CWakeupManager::process_plugin_event(mas_plugin_event_e event, void* data, int len) { MWR_LOGD("[ENTER] : %d", event); if (WAKEUP_MANAGER_STATE_INACTIVE == mWakeupManagerState) diff --git a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp index 5fe6469..5dc12dc 100644 --- a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp @@ -367,12 +367,12 @@ int wakeup_manager_update_recognition_result(const char* appid, int result) return 0; } -int wakeup_manager_process_event(mas_plugin_event_e event, void* data, int len) +int wakeup_manager_process_plugin_event(mas_plugin_event_e event, void* data, int len) { MWR_LOGD("[ENTER]"); if (nullptr == g_wakeup_manager) return -1; - g_wakeup_manager->process_event(event, data, len); + g_wakeup_manager->process_plugin_event(event, data, len); MWR_LOGD("[END]"); return 0; diff --git a/src/multi_assistant_service_plugin.c b/src/multi_assistant_service_plugin.c index a486a84..d9a1e6e 100644 --- a/src/multi_assistant_service_plugin.c +++ b/src/multi_assistant_service_plugin.c @@ -435,9 +435,9 @@ int multi_assistant_service_plugin_initialize(void) _wakeup_manager_interface.update_recognition_result = (wakeup_manager_update_recognition_result)dlsym(g_handle, MA_WAKEUP_MANAGER_FUNC_UPDATE_RECOGNITION_RESULT); - _wakeup_manager_interface.process_event = - (wakeup_manager_process_event)dlsym(g_handle, - MA_WAKEUP_MANAGER_FUNC_PROCESS_EVENT); + _wakeup_manager_interface.process_plugin_event = + (wakeup_manager_process_plugin_event)dlsym(g_handle, + MA_WAKEUP_MANAGER_FUNC_PROCESS_PLUGIN_EVENT); _wakeup_manager_interface.start_streaming_utterance_data = (wakeup_manager_start_streaming_utterance_data)dlsym(g_handle, MA_WAKEUP_MANAGER_FUNC_START_STREAMING_UTTERANCE_DATA); @@ -817,9 +817,9 @@ int multi_assistant_service_plugin_process_event(int event, void *data, int len) { int ret = -1; if (NULL != g_handle) { - wakeup_manager_process_event func = _wakeup_manager_interface.process_event; + wakeup_manager_process_plugin_event func = _wakeup_manager_interface.process_plugin_event; if (NULL == func) { - MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_PROCESS_EVENT); + MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_PROCESS_PLUGIN_EVENT); } else { ret = func((mas_plugin_event_e)event, data, len); if (0 != ret) { -- 2.7.4 From 4d000d33e1399981d72ea0b14321ee28a20ac5c9 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 13 Dec 2019 16:44:06 +0900 Subject: [PATCH 14/16] Rename inappropriate send_* functions to set_* Change-Id: Ia5d18f98ddbe51377e5681f9be15457d6b80f8c6 --- inc/multi_assistant_service_client.h | 2 +- inc/multi_assistant_service_plugin.h | 8 ++++---- plugins/wakeup-manager/inc/wakeup_manager.h | 4 ++-- plugins/wakeup-manager/inc/wakeup_manager_wrapper.h | 4 ++-- plugins/wakeup-manager/src/wakeup_manager.cpp | 4 ++-- plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp | 8 ++++---- src/multi_assistant_dbus_server.c | 2 +- src/multi_assistant_service.c | 4 ++-- src/multi_assistant_service_plugin.c | 12 ++++++------ 9 files changed, 24 insertions(+), 24 deletions(-) diff --git a/inc/multi_assistant_service_client.h b/inc/multi_assistant_service_client.h index 110d0d1..b6d7f42 100644 --- a/inc/multi_assistant_service_client.h +++ b/inc/multi_assistant_service_client.h @@ -49,7 +49,7 @@ int mas_client_stop_streaming_audio_data(int pid, int type); int mas_client_update_voice_feedback_state(int pid, int state); -int mas_client_send_assistant_specific_command(int pid, const char *command); +int mas_client_set_assistant_specific_command(int pid, const char *command); int mas_client_set_background_volume(int pid, double ratio); diff --git a/inc/multi_assistant_service_plugin.h b/inc/multi_assistant_service_plugin.h index 1f31ac0..4f431e6 100644 --- a/inc/multi_assistant_service_plugin.h +++ b/inc/multi_assistant_service_plugin.h @@ -57,7 +57,7 @@ int multi_assistant_service_plugin_deactivate(void); int multi_assistant_service_plugin_update_voice_feedback_state(const char* appid, int state); -int multi_assistant_service_plugin_send_assistant_specific_command(const char *appid, const char* command); +int multi_assistant_service_plugin_set_assistant_specific_command(const char *appid, const char* command); int multi_assistant_service_plugin_set_background_volume(const char *appid, double ratio); @@ -127,8 +127,8 @@ typedef int (*wakeup_manager_activate)(void); typedef int (*wakeup_manager_deactivate)(void); #define MA_WAKEUP_MANAGER_FUNC_UPDATE_VOICE_FEEDBACK_STATE "wakeup_manager_update_voice_feedback_state" typedef int (*wakeup_manager_update_voice_feedback_state)(const char* appid, int state); -#define MA_WAKEUP_MANAGER_FUNC_SEND_ASSISTANT_SPECIFIC_COMMAND "wakeup_manager_send_assistant_specific_command" -typedef int (*wakeup_manager_send_assistant_specific_command)(const char* appid, const char* command); +#define MA_WAKEUP_MANAGER_FUNC_SET_ASSISTANT_SPECIFIC_COMMAND "wakeup_manager_set_assistant_specific_command" +typedef int (*wakeup_manager_set_assistant_specific_command)(const char* appid, const char* command); #define MA_WAKEUP_MANAGER_FUNC_SET_BACKGROUND_VOLUME "wakeup_manager_set_background_volume" typedef int (*wakeup_manager_set_background_volume)(const char* appid, double ratio); #define MA_WAKEUP_MANAGER_FUNC_UPDATE_RECOGNITION_RESULT "wakeup_manager_update_recognition_result" @@ -189,7 +189,7 @@ typedef struct { wakeup_manager_activate activate; wakeup_manager_deactivate deactivate; wakeup_manager_update_voice_feedback_state update_voice_feedback_state; - wakeup_manager_send_assistant_specific_command send_assistant_specific_command; + wakeup_manager_set_assistant_specific_command set_assistant_specific_command; wakeup_manager_set_background_volume set_background_volume; wakeup_manager_update_recognition_result update_recognition_result; wakeup_manager_process_plugin_event process_plugin_event; diff --git a/plugins/wakeup-manager/inc/wakeup_manager.h b/plugins/wakeup-manager/inc/wakeup_manager.h index 25c5498..f734256 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager.h +++ b/plugins/wakeup-manager/inc/wakeup_manager.h @@ -95,7 +95,7 @@ public: string get_default_assistant(); bool update_voice_feedback_state(string appid, bool state); - bool send_assistant_specific_command(string appid, string command); + bool set_assistant_specific_command(string appid, string command); bool set_background_volume(string appid, double ratio); bool update_recognition_result(string appid, int result); bool process_plugin_event(mas_plugin_event_e event, void* data, int len); @@ -129,7 +129,7 @@ public: wakeup_manager_state_e get_manager_state(); void feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len); - void send_dependency_module_command(string engine_name, string command); + void set_dependency_module_command(string engine_name, string command); private: class CEngineEventObserver : public IEngineEventObserver { diff --git a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h index 1477360..7857664 100644 --- a/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h +++ b/plugins/wakeup-manager/inc/wakeup_manager_wrapper.h @@ -87,7 +87,7 @@ EXPORT_API int wakeup_manager_deactivate(void); EXPORT_API int wakeup_manager_update_voice_feedback_state(const char *appid, int state); -EXPORT_API int wakeup_manager_send_assistant_specific_command(const char* appid, const char* command); +EXPORT_API int wakeup_manager_set_assistant_specific_command(const char* appid, const char* command); EXPORT_API int wakeup_manager_set_background_volume(const char *appid, double ratio); @@ -139,7 +139,7 @@ EXPORT_API int wakeup_manager_set_wakeup_service_state_changed_callback(wakeup_s int wakeup_manager_feed_audio_data(mas_speech_streaming_event_e event, void* buffer, int len); -int wakeup_manager_send_dependency_module_command(const char* engine_name, const char* command); +int wakeup_manager_set_dependency_module_command(const char* engine_name, const char* command); int wakeup_manager_wakeup_assistant(const mas_wakeup_event_info* wakeup_info); diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index 7372efb..528578b 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -409,7 +409,7 @@ bool CWakeupManager::update_voice_feedback_state(string appid, bool state) return true; } -bool CWakeupManager::send_assistant_specific_command(string appid, string command) +bool CWakeupManager::set_assistant_specific_command(string appid, string command) { MWR_LOGD("[ENTER]"); @@ -829,7 +829,7 @@ void CWakeupManager::feed_audio_data(mas_speech_streaming_event_e event, void* b mAudioManager.feed_audio_data(event, buffer, len); } -void CWakeupManager::send_dependency_module_command(string engine_name, string command) +void CWakeupManager::set_dependency_module_command(string engine_name, string command) { mWakeupEngineManager.engine_set_dependency_module_command(engine_name, command); } diff --git a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp index 5dc12dc..5e0b31a 100644 --- a/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager_wrapper.cpp @@ -312,7 +312,7 @@ int wakeup_manager_update_voice_feedback_state(const char* appid, int state) return 0; } -int wakeup_manager_send_assistant_specific_command(const char* appid, const char* command) +int wakeup_manager_set_assistant_specific_command(const char* appid, const char* command) { MWR_LOGD("[ENTER]"); @@ -325,7 +325,7 @@ int wakeup_manager_send_assistant_specific_command(const char* appid, const char if (command) command_string = command; if (nullptr == g_wakeup_manager) return -1; - g_wakeup_manager->send_assistant_specific_command(appid_string, command_string); + g_wakeup_manager->set_assistant_specific_command(appid_string, command_string); MWR_LOGD("[END]"); return 0; @@ -674,10 +674,10 @@ int wakeup_manager_feed_audio_data(mas_speech_streaming_event_e event, void* buf return 0; } -int wakeup_manager_send_dependency_module_command(const char* engine_name, const char* command) +int wakeup_manager_set_dependency_module_command(const char* engine_name, const char* command) { if (nullptr == g_wakeup_manager) return -1; - g_wakeup_manager->send_dependency_module_command( + g_wakeup_manager->set_dependency_module_command( engine_name ? engine_name : "", command ? command : ""); return 0; diff --git a/src/multi_assistant_dbus_server.c b/src/multi_assistant_dbus_server.c index 7fcde20..c229817 100644 --- a/src/multi_assistant_dbus_server.c +++ b/src/multi_assistant_dbus_server.c @@ -522,7 +522,7 @@ int ma_service_dbus_send_assistant_specific_command(DBusConnection* conn, DBusMe ret = -1; //MAS_ERROR_OPERATION_FAILED; } else { MAS_LOGD("[IN] mas send assistant specific command : pid(%d), command(%s)", pid, command); - ret = mas_client_send_assistant_specific_command(pid, command); + ret = mas_client_set_assistant_specific_command(pid, command); } MAS_LOGD("<<<<<"); diff --git a/src/multi_assistant_service.c b/src/multi_assistant_service.c index 7faabf5..2e955bb 100644 --- a/src/multi_assistant_service.c +++ b/src/multi_assistant_service.c @@ -440,7 +440,7 @@ int mas_client_update_voice_feedback_state(int pid, int state) return 0; } -int mas_client_send_assistant_specific_command(int pid, const char *command) +int mas_client_set_assistant_specific_command(int pid, const char *command) { const char* pid_appid = NULL; char buf[MAX_APPID_LEN] = {'\0',}; @@ -448,7 +448,7 @@ int mas_client_send_assistant_specific_command(int pid, const char *command) buf[MAX_APPID_LEN - 1] = '\0'; pid_appid = buf; } - multi_assistant_service_plugin_send_assistant_specific_command(pid_appid, command); + multi_assistant_service_plugin_set_assistant_specific_command(pid_appid, command); return 0; } diff --git a/src/multi_assistant_service_plugin.c b/src/multi_assistant_service_plugin.c index d9a1e6e..6eed1f5 100644 --- a/src/multi_assistant_service_plugin.c +++ b/src/multi_assistant_service_plugin.c @@ -426,9 +426,9 @@ int multi_assistant_service_plugin_initialize(void) _wakeup_manager_interface.update_voice_feedback_state = (wakeup_manager_update_voice_feedback_state)dlsym(g_handle, MA_WAKEUP_MANAGER_FUNC_UPDATE_VOICE_FEEDBACK_STATE); - _wakeup_manager_interface.send_assistant_specific_command = - (wakeup_manager_send_assistant_specific_command)dlsym(g_handle, - MA_WAKEUP_MANAGER_FUNC_SEND_ASSISTANT_SPECIFIC_COMMAND); + _wakeup_manager_interface.set_assistant_specific_command = + (wakeup_manager_set_assistant_specific_command)dlsym(g_handle, + MA_WAKEUP_MANAGER_FUNC_SET_ASSISTANT_SPECIFIC_COMMAND); _wakeup_manager_interface.set_background_volume = (wakeup_manager_set_background_volume)dlsym(g_handle, MA_WAKEUP_MANAGER_FUNC_SET_BACKGROUND_VOLUME); @@ -756,13 +756,13 @@ int multi_assistant_service_plugin_update_voice_feedback_state(const char* appid return ret; } -int multi_assistant_service_plugin_send_assistant_specific_command(const char* appid, const char* command) +int multi_assistant_service_plugin_set_assistant_specific_command(const char* appid, const char* command) { int ret = -1; if (NULL != g_handle) { - wakeup_manager_send_assistant_specific_command func = _wakeup_manager_interface.send_assistant_specific_command; + wakeup_manager_set_assistant_specific_command func = _wakeup_manager_interface.set_assistant_specific_command; if (NULL == func) { - MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_SEND_ASSISTANT_SPECIFIC_COMMAND); + MAS_LOGE("[ERROR] symbol lookup failed : %s", MA_WAKEUP_MANAGER_FUNC_SET_ASSISTANT_SPECIFIC_COMMAND); } else { ret = func(appid, command); if (0 != ret) { -- 2.7.4 From 3cdc69d8f343d4284b2781aaa44894ac034c448c Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 13 Dec 2019 16:45:18 +0900 Subject: [PATCH 15/16] Enable sending dependency module commands Change-Id: Ib1727f074d9d07d216a485a594d045d60f02b28e --- plugins/wakeup-manager/src/wakeup_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/wakeup-manager/src/wakeup_manager.cpp b/plugins/wakeup-manager/src/wakeup_manager.cpp index 528578b..095083a 100644 --- a/plugins/wakeup-manager/src/wakeup_manager.cpp +++ b/plugins/wakeup-manager/src/wakeup_manager.cpp @@ -116,7 +116,7 @@ bool CWakeupManager::initialize() mas_dependency_plugin_proxy_interface interface; interface.process_event = wakeup_manager_process_plugin_event; interface.feed_audio_data = wakeup_manager_feed_audio_data; - //interface.send_dependency_module_command = wakeup_manager_send_dependency_module_command; + interface.send_command = wakeup_manager_set_dependency_module_command; interface.wakeup_assistant = wakeup_manager_wakeup_assistant; dependency_resolver_initialize(interface); -- 2.7.4 From 6b360f012d264fc0505967fe0adfce16e148f1a9 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Fri, 13 Dec 2019 16:48:55 +0900 Subject: [PATCH 16/16] Bump version to 0.2.14 Change-Id: Ifc50009ee06fb4f6e9c676d6638596cf44945935 --- 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 7ba4aa1..bc42b6b 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 74f0601..60ef2ca 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.2.13 +Version: 0.2.14 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Flora-1.1 -- 2.7.4