struct remoted_gstpipe gstpipe;
GstClockTime start_time;
int retry_count;
+ enum dpms_enum dpms;
};
struct mem_free_cb_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;
}
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)
{
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) {
remoting_output_finish_frame_handler,
remoted_output);
+ remoted_output->dpms = WESTON_DPMS_ON;
return 0;
}