add lock/unlock sound
authorsung1103.park <sung1103.park@samsung.com>
Tue, 28 Aug 2012 08:40:12 +0000 (17:40 +0900)
committersung1103.park <sung1103.park@samsung.com>
Tue, 28 Aug 2012 08:40:12 +0000 (17:40 +0900)
CMakeLists.txt
include/draglock-util.h
include/draglock.h
packaging/org.tizen.draglock.spec
src/draglock-util.c
src/draglock.c

index 1a65ef4..eaa546b 100755 (executable)
@@ -46,6 +46,7 @@ pkg_check_modules(pkgs REQUIRED
        capi-system-power
        capi-system-runtime-info
        vconf
+       svi
 )
 
 FOREACH(flag ${pkgs_CFLAGS})
index 80cd152..17ea19e 100755 (executable)
@@ -21,5 +21,8 @@ Evas_Object *draglock_util_add_window(const char *name);
 Evas_Object *draglock_util_add_bg(Evas_Object *window);
 Evas_Object *draglock_util_add_layout(Evas_Object *parent, const char *file,
                const char *group);
+int draglock_init_svi(int *handle);
+int draglock_fini_svi(int handle);
+void draglock_play_sound(int handle, int unlock);
 
 #endif /* __DRAGLOCK_UTIL_H__ */
index 0283242..f8c6ea4 100755 (executable)
@@ -74,6 +74,7 @@ struct appdata {
        Evas_Coord_Rectangle slide_rel2;
 
        power_state_e power_state;
+       int sound_handle;
 };
 
 #endif /* __DRAGLOCK_H__ */
index ca59a79..b1663af 100755 (executable)
@@ -21,6 +21,7 @@ BuildRequires: pkgconfig(capi-appfw-application)
 BuildRequires: pkgconfig(capi-system-power)
 BuildRequires: pkgconfig(capi-system-runtime-info)
 BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(svi)
 BuildRequires: cmake
 BuildRequires: gettext
 BuildRequires: edje-tools
index 51f3af1..1921d86 100755 (executable)
@@ -16,6 +16,9 @@
 
 #include <app.h>
 #include <Ecore_X.h>
+#include <vconf-keys.h>
+#include <svi.h>
+
 #include "draglock.h"
 
 static void _draglock_util_window_deleted_cb(void *data, Evas_Object *obj,
@@ -29,6 +32,7 @@ Evas_Object *draglock_util_add_window(const char *name) {
 
        obj_window = elm_win_add(NULL, name, ELM_WIN_BASIC);
        if (obj_window != NULL) {
+               elm_win_alpha_set(obj_window, EINA_TRUE);
                elm_win_title_set(obj_window, name);
                elm_win_borderless_set(obj_window, EINA_TRUE);
                evas_object_smart_callback_add(obj_window, "delete,request",
@@ -37,7 +41,6 @@ Evas_Object *draglock_util_add_window(const char *name) {
                                &height);
                evas_object_resize(obj_window, width, height);
                elm_win_indicator_mode_set(obj_window, ELM_WIN_INDICATOR_SHOW);
-               elm_win_alpha_set(obj_window, EINA_TRUE);
        }
 
        return obj_window;
@@ -94,3 +97,39 @@ Evas_Object *draglock_util_add_layout(Evas_Object *parent, const char *file,
 
        return layout;
 }
+
+int draglock_init_svi(int *handle)
+{
+       if (svi_init(handle) != SVI_SUCCESS) {
+               DRAGLOCK_ERR("Cannot initialize SVI.");
+               svi_fini(*handle);
+               return -1;
+       }
+
+       return 0;
+}
+
+int draglock_fini_svi(int handle)
+{
+       if (svi_fini(handle) != SVI_SUCCESS) {
+               DRAGLOCK_ERR("[Error] Cannot get vconf\n");
+               return -1;
+       }
+       return 0;
+}
+
+
+void draglock_play_sound(int handle, int unlock)
+{
+       int ret = -1, val = 0;
+
+       ret = vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &val);
+       DRAGLOCK_DBG("val = %d", val);
+
+       if (ret == 0 && val == 1) {
+               svi_play(handle, SVI_VIB_NONE,
+                        unlock ? SVI_SND_OPERATION_UNLOCK :
+                        SVI_SND_OPERATION_LOCK);
+       }
+}
+
index a2472fb..2af7430 100755 (executable)
@@ -45,6 +45,9 @@ static bool app_create(void *user_data) {
                        &ad->win_h);
        DRAGLOCK_DBG("window size(%d,%d)", ad->win_w, ad->win_h);
 
+       draglock_init_svi(&ad->sound_handle);
+       draglock_play_sound(ad->sound_handle, 0);
+
        /* create window */
        app_get_name(&name);
 
@@ -73,6 +76,9 @@ static void app_terminate(void *user_data) {
                return;
        }
 
+       draglock_play_sound(ad->sound_handle, 1);
+       draglock_fini_svi(ad->sound_handle);
+
        draglock_ui_destroy(ad);
 
        if (ad->win)