From 5ede6af7a00aff73493e36ecb81ef6ecb115cc0e Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Wed, 2 Aug 2017 07:52:48 +0900 Subject: [PATCH] Revert "Revert "Fix vc_elm api for setting voice touch"" This reverts commit 464606f35d0ddfcd5bda14bda1cb64419b8f5db9. Change-Id: I176f0e56c46851056f46ab3636604a4afb84e217 --- CMakeLists.txt | 2 +- packaging/app-core.spec | 1 + src/efl_base/appcore_efl_base.c | 47 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a2289b..c9cc480 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,7 +88,7 @@ SET(SRCS_efl src/legacy/appcore-efl.c src/efl_base/appcore_efl_base.c) SET(HEADERS_efl appcore-efl.h appcore_efl_base.h) INCLUDE(FindPkgConfig) -SET(APPCORE_PKG_CHECK_MODULES2 "elementary dlog aul bundle") +SET(APPCORE_PKG_CHECK_MODULES2 "elementary dlog aul bundle voice-control-elm") pkg_check_modules(pkg_efl REQUIRED ${APPCORE_PKG_CHECK_MODULES2}) diff --git a/packaging/app-core.spec b/packaging/app-core.spec index 9f842ef..769fe86 100644 --- a/packaging/app-core.spec +++ b/packaging/app-core.spec @@ -24,6 +24,7 @@ BuildRequires: pkgconfig(pkgmgr-info) BuildRequires: pkgconfig(ttrace) BuildRequires: cmake BuildRequires: pkgconfig(capi-system-info) +BuildRequires: pkgconfig(voice-control-elm) %description SLP common application basic diff --git a/src/efl_base/appcore_efl_base.c b/src/efl_base/appcore_efl_base.c index 1ac09fd..9f53902 100644 --- a/src/efl_base/appcore_efl_base.c +++ b/src/efl_base/appcore_efl_base.c @@ -20,14 +20,42 @@ #include #include #include +#include +#include +#include #include "appcore_efl_base_private.h" #include "appcore_efl_base.h" +static bool vc_elm_initialized; + +static void __vc_vtauto_changed_cb(keynode_t *key, void *data) +{ + const char *name; + int vt_automode; + + name = vconf_keynode_get_name(key); + if (!name || strcmp(name, VCONFKEY_VC_VOICE_TOUCH_AUTOMODE) != 0) + return; + + vt_automode = vconf_keynode_get_bool(key); + if (vt_automode) { + if (!vc_elm_initialized) { + vc_elm_initialize(); + vc_elm_initialized = true; + } + vc_elm_set_auto_register_mode(2, 0); + } else { + vc_elm_deinitialize(); + vc_elm_initialized = false; + } +} + static int __efl_app_init(int argc, char **argv, void *data) { int hint; const char *hwacc; + int vt_automode = 0; elm_init(argc, argv); @@ -47,11 +75,30 @@ static int __efl_app_init(int argc, char **argv, void *data) } } + /* VC voice touch setting */ + vconf_notify_key_changed(VCONFKEY_VC_VOICE_TOUCH_AUTOMODE, + __vc_vtauto_changed_cb, NULL); + vconf_get_bool(VCONFKEY_VC_VOICE_TOUCH_AUTOMODE, &vt_automode); + if (vt_automode) { + if (!vc_elm_initialized) { + vc_elm_initialize(); + vc_elm_initialized = true; + } + vc_elm_set_auto_register_mode(2, 0); + } + return 0; } static void __efl_app_finish(void) { + vconf_ignore_key_changed(VCONFKEY_VC_VOICE_TOUCH_AUTOMODE, + __vc_vtauto_changed_cb); + if (vc_elm_initialized) { + vc_elm_deinitialize(); + vc_elm_initialized = false; + } + elm_shutdown(); /* Check loader case */ -- 2.7.4