1 #include <libds-tizen/dpms.h>
3 #include "tinyds-tdm-common.h"
4 #include "tinyds-dpms.h"
11 struct ds_tizen_dpms *ds_dpms;
13 struct wl_listener destroy;
14 struct wl_listener set_dpms;
15 struct wl_listener get_dpms;
19 dpms_handle_destroy(struct wl_listener *listener, void *data)
21 struct tinyds_dpms *dpms;
23 dpms = wl_container_of(listener, dpms, destroy);
25 ds_inf("Dpms(%p) destroyed", dpms);
29 wl_list_remove(&dpms->destroy.link);
30 wl_list_remove(&dpms->set_dpms.link);
31 wl_list_remove(&dpms->get_dpms.link);
37 dpms_handle_set_dpms(struct wl_listener *listener, void *data)
39 struct tinyds_dpms *dpms;
40 struct ds_tizen_dpms_event *event = data;
42 dpms = wl_container_of(listener, dpms, set_dpms);
44 ds_inf("Dpms(%p) set dpms : %d", dpms, event->mode);
47 //set dpms mode to output
48 ds_tizen_dpms_send_set_result(dpms->ds_dpms, event->mode,
49 DS_TIZEN_DPMS_ERROR_NONE);
53 dpms_handle_get_dpms(struct wl_listener *listener, void *data)
55 struct tinyds_dpms *dpms;
57 dpms = wl_container_of(listener, dpms, get_dpms);
59 ds_inf("Dpms(%p) get dpms", dpms);
62 //get dpms mode from output
63 ds_tizen_dpms_send_get_result(dpms->ds_dpms, DS_TIZEN_DPMS_MODE_ON,
64 DS_TIZEN_DPMS_ERROR_NONE);
69 tinyds_dpms_init(struct wl_display *display, dpms_free_cb free_cb,
72 struct tinyds_dpms *dpms;
74 dpms = calloc(1, sizeof *dpms);
78 dpms->free_cb = free_cb;
81 dpms->ds_dpms = ds_tizen_dpms_create(display);
84 ds_err("Could not create ds_tizen_dpms");
88 dpms->destroy.notify = dpms_handle_destroy;
89 ds_tizen_dpms_add_destroy_listener(dpms->ds_dpms, &dpms->destroy);
91 dpms->set_dpms.notify = dpms_handle_set_dpms;
92 ds_tizen_dpms_add_set_dpms_listener(dpms->ds_dpms, &dpms->set_dpms);
94 dpms->get_dpms.notify = dpms_handle_get_dpms;
95 ds_tizen_dpms_add_get_dpms_listener(dpms->ds_dpms, &dpms->get_dpms);
97 ds_inf("Dpms (%p) added", dpms);