From 610b7331333fa2f7d9cd6b4df32d2133f51f290c Mon Sep 17 00:00:00 2001 From: Christian Helmuth Date: Thu, 3 Dec 2015 16:54:34 +0100 Subject: [PATCH] liquid_fb: generate periodic sync events Issue #1762 --- .../src/server/liquid_framebuffer/services.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/repos/demo/src/server/liquid_framebuffer/services.cc b/repos/demo/src/server/liquid_framebuffer/services.cc index f465b65243..b844447135 100644 --- a/repos/demo/src/server/liquid_framebuffer/services.cc +++ b/repos/demo/src/server/liquid_framebuffer/services.cc @@ -20,6 +20,7 @@ #include #include #include +#include /* local includes */ #include "services.h" @@ -228,9 +229,9 @@ class Framebuffer::Session_component : public Genode::Rpc_object { private: - Window_content &_window_content; + Timer::Connection _timer; - Genode::Signal_context_capability _sync_sigh; + Window_content &_window_content; public: @@ -252,15 +253,15 @@ class Framebuffer::Session_component : public Genode::Rpc_object void mode_sigh(Genode::Signal_context_capability sigh) override { _window_content.mode_sigh(sigh); } - void sync_sigh(Genode::Signal_context_capability sigh) override { - _sync_sigh = sigh; } + void sync_sigh(Genode::Signal_context_capability sigh) override + { + _timer.sigh(sigh); + _timer.trigger_periodic(10*1000); + } void refresh(int x, int y, int w, int h) override { _window_content.redraw_area(x, y, w, h); - - if (_sync_sigh.valid()) - Genode::Signal_transmitter(_sync_sigh).submit(); } };