summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsanghyeok.oh <sanghyeok.oh@samsung.com>2020-01-08 14:30:35 +0900
committerHyotaek Shim <hyotaek.shim@samsung.com>2020-02-11 09:17:46 +0000
commit9d746f09254610c7fa7c7111b5a36a385d522c18 (patch)
tree87d8a750a08146a433d65b597b8920cb16edefb1
parent897a1f2557a5750e62f6ee8aa46d081098832508 (diff)
downloadlibsvi-submit/tizen/20200214.104642.tar.gz
libsvi-submit/tizen/20200214.104642.tar.bz2
libsvi-submit/tizen/20200214.104642.zip
dbus: replace old dbus api with GVariant support apisubmit/tizen/20200214.104642accepted/tizen/unified/20200216.215217
Change-Id: Id813b8518a2e44b4426efdeb153ed77243a1b80f Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
-rw-r--r--src/dbus.c40
-rw-r--r--src/dbus.h4
-rw-r--r--src/vibrator.c59
3 files changed, 40 insertions, 63 deletions
diff --git a/src/dbus.c b/src/dbus.c
index d5f493c..ff20c1b 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -75,7 +75,7 @@ static int g_dbus_error_to_errno(int code)
return -ECOMM;
}
-static GVariant *append_g_variant(const char *sig, char *param[])
+static GVariant *append_g_variant(const char *sig, const char *param[])
{
GVariantBuilder builder;
char *ch;
@@ -266,9 +266,8 @@ static GDBusProxy *get_proxy_from_proxy_pool(const char *dest,
return proxy;
}
-int dbus_method_sync(const char *dest, const char *path,
- const char *interface, const char *method,
- const char *sig, char *param[])
+int dbus_method_sync_var(const char *dest, const char *path,
+ const char *interface, const char *method, GVariant *param)
{
GDBusProxy *proxy;
GError *err = NULL;
@@ -281,6 +280,7 @@ int dbus_method_sync(const char *dest, const char *path,
pthread_mutex_lock(&dmutex);
proxy = get_proxy_from_proxy_pool(dest, path, interface, &err);
+//LCOV_EXCL_START System Error
if (!proxy) {
pthread_mutex_unlock(&dmutex);
_E("fail to get proxy from proxy pool : %s-%s (%d-%s)",
@@ -289,30 +289,29 @@ int dbus_method_sync(const char *dest, const char *path,
g_clear_error(&err);
return result;
}
-
+//LCOV_EXCL_STOP
output = g_dbus_proxy_call_sync(proxy,
method, /* method name */
- append_g_variant(sig, param), /* parameters */
+ param, /* parameters */
G_DBUS_CALL_FLAGS_NONE,
DBUS_REPLY_TIMEOUT, /* timeout */
NULL, /* GCancellable */
&err);
pthread_mutex_unlock(&dmutex);
+//LCOV_EXCL_START System Error
if (!output) {
- //LCOV_EXCL_START System Error
- if (err) {
- _E("g_dbus_proxy_call_sync error : %s-%s (%d-%s)",
- interface, method, err->code, err->message);
- result = g_dbus_error_to_errno(err->code);
- g_clear_error(&err);
- } else {
+ if (!err) {
_E("g_dbus_proxy_call_sync error : %s-%s",
interface, method);
- result = -ECOMM;
+ return -EPERM;
}
+ _E("g_dbus_proxy_call_sync error : %s-%s (%d-%s)",
+ interface, method, err->code, err->message);
+ result = g_dbus_error_to_errno(err->code);
+ g_clear_error(&err);
return result;
- //LCOV_EXCL_STOP
+//LCOV_EXCL_STOP
}
/* get output value */
@@ -323,6 +322,17 @@ int dbus_method_sync(const char *dest, const char *path,
return result;
}
+int dbus_method_sync(const char *dest, const char *path,
+ const char *interface, const char *method,
+ const char *sig, const char *param[])
+{
+ return dbus_method_sync_var(dest,
+ path,
+ interface,
+ method,
+ append_g_variant(sig, param));
+}
+
//LCOV_EXCL_START Not called Callback
static void feedback_signal_callback(GDBusConnection *conn,
const gchar *sender,
diff --git a/src/dbus.h b/src/dbus.h
index 7d7d9f7..d714ba0 100644
--- a/src/dbus.h
+++ b/src/dbus.h
@@ -44,9 +44,11 @@ struct dbus_byte {
int size;
};
+int dbus_method_sync_var(const char *dest, const char *path,
+ const char *interface, const char *method, GVariant *param);
int dbus_method_sync(const char *dest, const char *path,
const char *interface, const char *method,
- const char *sig, char *param[]);
+ const char *sig, const char *param[]);
/**
* If result is NULL, err is set.
diff --git a/src/vibrator.c b/src/vibrator.c
index 942cca8..15cd741 100644
--- a/src/vibrator.c
+++ b/src/vibrator.c
@@ -78,75 +78,40 @@ inline int is_vibration_mode(void)
static int haptic_open(void)
{
- char *arr[1];
- char buf_index[32];
-
- snprintf(buf_index, sizeof(buf_index), "%d", HAPTIC_DEVICE);
- arr[0] = buf_index;
-
- return dbus_method_sync(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
+ return dbus_method_sync_var(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
VIBRATOR_INTERFACE_HAPTIC, METHOD_OPEN,
- "i", arr);
+ g_variant_new("(i)", HAPTIC_DEVICE));
}
static int haptic_close(unsigned int handle)
{
- char *arr[1];
- char buf_handle[32];
-
- snprintf(buf_handle, sizeof(buf_handle), "%u", handle);
- arr[0] = buf_handle;
-
- return dbus_method_sync(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
+ return dbus_method_sync_var(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
VIBRATOR_INTERFACE_HAPTIC, METHOD_CLOSE,
- "u", arr);
+ g_variant_new("(u)", handle));
}
-static int haptic_is_supported(char *pattern)
+static int haptic_is_supported(const char *pattern)
{
- char *arr[1];
-
- arr[0] = pattern;
-
- return dbus_method_sync(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
+ return dbus_method_sync_var(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
VIBRATOR_INTERFACE_HAPTIC, METHOD_IS_SUPPORTED,
- "s", arr);
+ g_variant_new("(s)", pattern));
}
static int haptic_vibrate_effect(unsigned int handle,
- char *pattern,
+ const char *pattern,
int feedback,
int priority)
{
- char *arr[4];
- char buf_handle[32];
- char buf_feedback[32];
- char buf_priority[32];
-
- snprintf(buf_handle, sizeof(buf_handle), "%u", handle);
- arr[0] = buf_handle;
- arr[1] = pattern;
- snprintf(buf_feedback, sizeof(buf_feedback), "%d", feedback);
- arr[2] = buf_feedback;
- snprintf(buf_priority, sizeof(buf_priority), "%d", priority);
- arr[3] = buf_priority;
-
- return dbus_method_sync(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
+ return dbus_method_sync_var(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
VIBRATOR_INTERFACE_HAPTIC, METHOD_VIBRATE_PATTERN,
- "usii", arr);
+ g_variant_new("(usii)", handle, pattern, feedback, priority));
}
static int haptic_vibrate_stop(unsigned int handle)
{
- char *arr[1];
- char buf_handle[32];
-
- snprintf(buf_handle, sizeof(buf_handle), "%u", handle);
- arr[0] = buf_handle;
-
- return dbus_method_sync(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
+ return dbus_method_sync_var(VIBRATOR_BUS_NAME, VIBRATOR_PATH_HAPTIC,
VIBRATOR_INTERFACE_HAPTIC, METHOD_STOP,
- "u", arr);
+ g_variant_new("(u)", handle));
}
static int get_priority(feedback_pattern_e pattern)