From b4efdd236d0d89c088a45928b6104c8811af4e37 Mon Sep 17 00:00:00 2001 From: Ji-hoon Lee Date: Wed, 24 Oct 2018 19:12:15 +0900 Subject: [PATCH] Send change assistant request to panel on wakeup event Change-Id: I1036df869fd8b5b3180d22c6c2f4eda4345a761a --- inc/multi_assistant_service.h | 2 +- src/multi_assistant_service.c | 83 ++++++++++++++++-------------------- src/multi_assistant_service_plugin.c | 2 +- 3 files changed, 38 insertions(+), 49 deletions(-) diff --git a/inc/multi_assistant_service.h b/inc/multi_assistant_service.h index 017ec20..f530d11 100644 --- a/inc/multi_assistant_service.h +++ b/inc/multi_assistant_service.h @@ -51,7 +51,7 @@ int mas_get_client_pid_by_wakeup_word(const char *wakeup_word); int mas_get_client_pid_by_appid(const char *appid); -const char* mas_get_client_appid_by_pid(int pid); +const char* mas_get_client_appid_by_wakeup_word(const char *wakeup_word); int mas_set_current_client_by_wakeup_word(const char *wakeup_word); diff --git a/src/multi_assistant_service.c b/src/multi_assistant_service.c index 944923a..9b0ce1f 100644 --- a/src/multi_assistant_service.c +++ b/src/multi_assistant_service.c @@ -513,7 +513,41 @@ static void deinit_wakeup(void) } } -static const char* __get_client_appid_by_wakeup_word(const char *wakeup_word) +int mas_get_current_client_pid() +{ + int ret = -1; + if (g_current_maclient_info >= 0 && g_current_maclient_info < MAX_MACLIENT_INFO_NUM) { + const char *current_maclient_appid = g_maclient_info[g_current_maclient_info].appid; + ma_client_s* client = ma_client_find_by_appid(current_maclient_appid); + if (client) { + ret = client->pid; + } + } + return ret; +} + +int mas_get_client_pid_by_appid(const char *appid) +{ + int ret = -1; + + if (appid) { + ma_client_s *client = NULL; + client = ma_client_find_by_appid(appid); + if (client) { + ret = client->pid; + } + } + + return ret; +} + +int mas_get_client_pid_by_wakeup_word(const char *wakeup_word) +{ + const char *appid = mas_get_client_appid_by_wakeup_word(wakeup_word); + return mas_get_client_pid_by_appid(appid); +} + +const char* mas_get_client_appid_by_wakeup_word(const char *wakeup_word) { int loop; const char *appid = NULL; @@ -559,51 +593,6 @@ static const char* __get_client_appid_by_wakeup_word(const char *wakeup_word) return appid; } -int mas_get_current_client_pid() -{ - int ret = -1; - if (g_current_maclient_info >= 0 && g_current_maclient_info < MAX_MACLIENT_INFO_NUM) { - const char *current_maclient_appid = g_maclient_info[g_current_maclient_info].appid; - ma_client_s* client = ma_client_find_by_appid(current_maclient_appid); - if (client) { - ret = client->pid; - } - } - return ret; -} - -int mas_get_client_pid_by_appid(const char *appid) -{ - int ret = -1; - - if (appid) { - ma_client_s *client = NULL; - client = ma_client_find_by_appid(appid); - if (client) { - ret = client->pid; - } - } - - return ret; -} - -const char* mas_get_client_appid_by_pid(int pid) -{ - const char *ret = NULL; - ma_client_s *client = NULL; - client = ma_client_find_by_pid(pid); - if (client) { - ret = client->appid; - } - return ret; -} - -int mas_get_client_pid_by_wakeup_word(const char *wakeup_word) -{ - const char *appid = __get_client_appid_by_wakeup_word(wakeup_word); - return mas_get_client_pid_by_appid(appid); -} - int mas_set_current_client_by_wakeup_word(const char *wakeup_word) { int loop; @@ -719,7 +708,7 @@ int mas_launch_client_by_appid(const char *appid) int mas_launch_client_by_wakeup_word(const char *wakeup_word) { - const char *appid = __get_client_appid_by_wakeup_word(wakeup_word); + const char *appid = mas_get_client_appid_by_wakeup_word(wakeup_word); return mas_launch_client_by_appid(appid); } diff --git a/src/multi_assistant_service_plugin.c b/src/multi_assistant_service_plugin.c index 7a75552..d56dbfa 100644 --- a/src/multi_assistant_service_plugin.c +++ b/src/multi_assistant_service_plugin.c @@ -86,9 +86,9 @@ Eina_Bool __request_speech_data(void *data) if (!wakeup_word) return EINA_FALSE; mas_set_current_client_by_wakeup_word(wakeup_word); + masc_ui_dbus_change_assistant(mas_get_client_appid_by_wakeup_word(wakeup_word)); if ((pid = mas_get_client_pid_by_wakeup_word(wakeup_word)) != -1) { MAS_LOGD("MA Client with wakeup word %s exists, requesting speech data", (wakeup_word ? wakeup_word : "NULL")); - masc_ui_dbus_change_assistant(mas_get_client_appid_by_pid(pid)); ma_client_set_temp_speech_data_requested(1); int ret = wakeup_service_request_speech_data(); if (0 != ret) { -- 2.7.4