#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];
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;