From: Jeong Donghwan Date: Mon, 28 Nov 2016 01:31:59 +0000 (+0900) Subject: display: change async method from sync about dpms control X-Git-Tag: accepted/tizen/3.0/common/20161129.103342~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7041903f978f4511b9673d9aeb0b000b879e9cfe;p=platform%2Fcore%2Fsystem%2Fdeviced.git display: change async method from sync about dpms control If dpms control is sync method, when dpms is controlling, dbus method does blocking from another request until end dpms control. Change-Id: I4ccf525f4127a334989e5e63d47b6e44d6c68057 Signed-off-by: Jeong Donghwan --- diff --git a/src/display/dpms-wayland-none.c b/src/display/dpms-wayland-none.c index 52b0ea6..f5d8e72 100644 --- a/src/display/dpms-wayland-none.c +++ b/src/display/dpms-wayland-none.c @@ -20,11 +20,36 @@ #include "core/edbus-handler.h" #include "device-interface.h" +#include "util.h" #define ENLIGHTENMENT_BUS_NAME "org.enlightenment.wm" #define ENLIGHTENMENT_OBJECT_PATH "/org/enlightenment/wm" #define ENLIGHTENMENT_INTERFACE_NAME ENLIGHTENMENT_BUS_NAME".dpms" +static void dpms_set_cb(void *data, DBusMessage *msg, DBusError *r_err) +{ + DBusError err; + int state, ret; + + if (!msg) { + _E("no message [%s:%s], Cannot get pmlock check", + r_err->name, r_err->message); + return; + } + + dbus_error_init(&err); + ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &state, + DBUS_TYPE_INVALID); + + if (!ret) { + _E("no message [%s:%s]", err.name, err.message); + dbus_error_free(&err); + return; + } + + _D("DPMS was set %d", state); +} + int dpms_set_power(enum dpms_state state) { char *arr[1]; @@ -33,10 +58,10 @@ int dpms_set_power(enum dpms_state state) snprintf(str, sizeof(str), "%d", state); arr[0] = str; - ret = dbus_method_sync(ENLIGHTENMENT_BUS_NAME, + ret = dbus_method_async_with_reply(ENLIGHTENMENT_BUS_NAME, ENLIGHTENMENT_OBJECT_PATH, ENLIGHTENMENT_INTERFACE_NAME, - "set", "u", arr); + "set", "u", arr, dpms_set_cb, -1, NULL); if (ret < 0) return ret;