diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2020-08-27 14:14:27 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2020-08-27 14:14:27 +0300 |
commit | e0b937af2893f13de9d17cc4385f759962bb613e (patch) | |
tree | ad3a2318e3d74f25abcb46f2187f474bec356ff7 /remoting | |
parent | 2ac73a8b535f1a5d5c024935d37ad8eb06db6d2e (diff) | |
download | weston-e0b937af2893f13de9d17cc4385f759962bb613e.tar.gz |
remoting: Add DPMS support in remoting pluging
Just like pipewire, add DPMS support in remoting plug-in. Mechanical
change mimicking a24a326bb19ec5.
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Diffstat (limited to 'remoting')
-rw-r--r-- | remoting/remoting-plugin.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/remoting/remoting-plugin.c b/remoting/remoting-plugin.c index 0928a6b1..85b6bcfd 100644 --- a/remoting/remoting-plugin.c +++ b/remoting/remoting-plugin.c @@ -119,6 +119,7 @@ struct remoted_output { struct remoted_gstpipe gstpipe; GstClockTime start_time; int retry_count; + enum dpms_enum dpms; }; struct mem_free_cb_data { @@ -477,8 +478,12 @@ remoting_output_finish_frame_handler(void *data) api->finish_frame(output->output, &now, 0); } - msec = millihz_to_nsec(output->output->current_mode->refresh) / 1000000; - wl_event_source_timer_update(output->finish_frame_timer, msec); + if (output->dpms == WESTON_DPMS_ON) { + msec = millihz_to_nsec(output->output->current_mode->refresh) / 1000000; + wl_event_source_timer_update(output->finish_frame_timer, msec); + } else { + wl_event_source_timer_update(output->finish_frame_timer, 0); + } return 0; } @@ -666,6 +671,18 @@ remoting_output_start_repaint_loop(struct weston_output *output) return 0; } +static void +remoting_output_set_dpms(struct weston_output *base_output, enum dpms_enum level) +{ + struct remoted_output *output = lookup_remoted_output(base_output); + + if (output->dpms == level) + return; + + output->dpms = level; + remoting_output_finish_frame_handler(output); +} + static int remoting_output_enable(struct weston_output *output) { @@ -684,6 +701,7 @@ remoting_output_enable(struct weston_output *output) remoted_output->saved_start_repaint_loop = output->start_repaint_loop; output->start_repaint_loop = remoting_output_start_repaint_loop; + output->set_dpms = remoting_output_set_dpms; ret = remoting_gst_pipeline_init(remoted_output); if (ret < 0) { @@ -697,6 +715,7 @@ remoting_output_enable(struct weston_output *output) remoting_output_finish_frame_handler, remoted_output); + remoted_output->dpms = WESTON_DPMS_ON; return 0; } |