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;
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;
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)",
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 */
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,
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.
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)