Revert "Revert "Fix vc_elm api for setting voice touch"" 50/141850/1
authorHwankyu Jhun <h.jhun@samsung.com>
Tue, 1 Aug 2017 22:52:48 +0000 (07:52 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Tue, 1 Aug 2017 22:52:53 +0000 (07:52 +0900)
This reverts commit 464606f35d0ddfcd5bda14bda1cb64419b8f5db9.

Change-Id: I176f0e56c46851056f46ab3636604a4afb84e217

CMakeLists.txt
packaging/app-core.spec
src/efl_base/appcore_efl_base.c

index 2a2289b..c9cc480 100644 (file)
@@ -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})
 
index 9f842ef..769fe86 100644 (file)
@@ -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
index 1ac09fd..9f53902 100644 (file)
 #include <stdlib.h>
 #include <stdbool.h>
 #include <Elementary.h>
+#include <vconf.h>
+#include <voice_control_elm.h>
+#include <voice_control_elm_private.h>
 
 #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 */