From 7e32372de6f9df7041229378eb46a633c048ea75 Mon Sep 17 00:00:00 2001 From: "pr.jung" Date: Thu, 17 Nov 2016 14:52:44 +0900 Subject: [PATCH] haptic: Add signal to notify when haptic initialization is finished Change-Id: Ib94edf74bddd53ebdfb99fdd2f109fa40b5f78fd Signed-off-by: pr.jung --- src/haptic/edbus-handler.c | 32 ++++++++++++++++++++++++++++++++ src/haptic/edbus-handler.h | 2 ++ src/haptic/haptic.c | 6 ++++++ 3 files changed, 40 insertions(+) diff --git a/src/haptic/edbus-handler.c b/src/haptic/edbus-handler.c index 37d5bdb..7c940d3 100644 --- a/src/haptic/edbus-handler.c +++ b/src/haptic/edbus-handler.c @@ -201,6 +201,38 @@ int unregister_edbus_signal_handler(const char *path, const char *interface, return -1; } +int broadcast_edbus_signal(const char *path, const char *interface, + const char *name, const char *sig, char *param[]) +{ + DBusMessage *msg; + DBusMessageIter iter; + int r; + + msg = dbus_message_new_signal(path, interface, name); + if (!msg) { + _E("fail to allocate new %s.%s signal", interface, name); + return -EPERM; + } + + dbus_message_iter_init_append(msg, &iter); + r = append_variant(&iter, sig, param); + if (r < 0) { + _E("append_variant error(%d)", r); + return -EPERM; + } + + r = dbus_connection_send(conn, msg, NULL); + dbus_message_unref(msg); + + if (r != TRUE) { + _E("dbus_connection_send error(%s:%s-%s)", + path, interface, name); + return -ECOMM; + } + + return 0; +} + static void print_watch_item(void) { struct watch_info *watch; diff --git a/src/haptic/edbus-handler.h b/src/haptic/edbus-handler.h index e933f48..7c1f0fa 100644 --- a/src/haptic/edbus-handler.h +++ b/src/haptic/edbus-handler.h @@ -38,6 +38,8 @@ int register_edbus_signal_handler(const char *path, const char *interface, int unregister_edbus_signal_handler(const char *path, const char *interface, const char *name); E_DBus_Interface *get_edbus_interface(const char *path); +int broadcast_edbus_signal(const char *path, const char *interface, + const char *name, const char *sig, char *param[]); int register_edbus_watch(const char *sender, void (*func)(const char *sender, void *data), void *data); int unregister_edbus_watch(const char *sender, diff --git a/src/haptic/haptic.c b/src/haptic/haptic.c index b04e671..e43bf45 100644 --- a/src/haptic/haptic.c +++ b/src/haptic/haptic.c @@ -41,6 +41,7 @@ #define HAPTIC_CONF_PATH "/etc/deviced/haptic.conf" #define SIGNAL_CHANGE_HARDKEY "ChangeHardkey" #define SIGNAL_POWEROFF_STATE "ChangeState" +#define SIGNAL_VIBRATOR_INITIATED "InitiateVibrator" /* hardkey vibration variable */ #define HARDKEY_VIB_ITERATION 1 @@ -916,6 +917,11 @@ void haptic_init(void) SIGNAL_POWEROFF_STATE, haptic_poweroff_cb); + broadcast_edbus_signal(VIBRATOR_PATH_HAPTIC, + VIBRATOR_INTERFACE_HAPTIC, + SIGNAL_VIBRATOR_INITIATED, + "", NULL); + /* add watch for sound capturing value */ if (haptic_conf.sound_capture) vconf_notify_key_changed(VCONFKEY_RECORDER_STATE, sound_capturing_cb, NULL); -- 2.7.4