decorator: use server API

This commit is contained in:
Norman Feske 2015-11-11 10:57:21 +01:00 committed by Christian Helmuth
parent acb0ddd9ef
commit c26d30dffc
2 changed files with 25 additions and 27 deletions

View File

@ -18,6 +18,7 @@
#include <os/pixel_rgb565.h> #include <os/pixel_rgb565.h>
#include <os/attached_rom_dataspace.h> #include <os/attached_rom_dataspace.h>
#include <os/reporter.h> #include <os/reporter.h>
#include <os/server.h>
/* decorator includes */ /* decorator includes */
#include <decorator/window_stack.h> #include <decorator/window_stack.h>
@ -36,7 +37,7 @@ namespace Decorator {
struct Decorator::Main : Window_factory_base struct Decorator::Main : Window_factory_base
{ {
Signal_receiver &sig_rec; Server::Entrypoint &ep;
Nitpicker::Connection nitpicker; Nitpicker::Connection nitpicker;
@ -55,8 +56,8 @@ struct Decorator::Main : Window_factory_base
*/ */
void handle_window_layout_update(unsigned); void handle_window_layout_update(unsigned);
Signal_dispatcher<Main> window_layout_dispatcher = { Signal_rpc_member<Main> window_layout_dispatcher = {
sig_rec, *this, &Main::handle_window_layout_update }; ep, *this, &Main::handle_window_layout_update };
Attached_rom_dataspace window_layout { "window_layout" }; Attached_rom_dataspace window_layout { "window_layout" };
@ -65,8 +66,8 @@ struct Decorator::Main : Window_factory_base
*/ */
void handle_pointer_update(unsigned); void handle_pointer_update(unsigned);
Signal_dispatcher<Main> pointer_dispatcher = { Signal_rpc_member<Main> pointer_dispatcher = {
sig_rec, *this, &Main::handle_pointer_update }; ep, *this, &Main::handle_pointer_update };
Attached_rom_dataspace pointer { "pointer" }; Attached_rom_dataspace pointer { "pointer" };
@ -97,20 +98,20 @@ struct Decorator::Main : Window_factory_base
*/ */
void handle_nitpicker_sync(unsigned); void handle_nitpicker_sync(unsigned);
Signal_dispatcher<Main> nitpicker_sync_dispatcher = { Signal_rpc_member<Main> nitpicker_sync_dispatcher = {
sig_rec, *this, &Main::handle_nitpicker_sync }; ep, *this, &Main::handle_nitpicker_sync };
Config config { *Genode::env()->heap() }; Config config { *Genode::env()->heap() };
void handle_config(unsigned); void handle_config(unsigned);
Signal_dispatcher<Main> config_dispatcher = { Signal_rpc_member<Main> config_dispatcher = {
sig_rec, *this, &Main::handle_config}; ep, *this, &Main::handle_config};
/** /**
* Constructor * Constructor
*/ */
Main(Signal_receiver &sig_rec) : sig_rec(sig_rec) Main(Server::Entrypoint &ep) : ep(ep)
{ {
Genode::config()->sigh(config_dispatcher); Genode::config()->sigh(config_dispatcher);
handle_config(0); handle_config(0);
@ -121,6 +122,10 @@ struct Decorator::Main : Window_factory_base
nitpicker.framebuffer()->sync_sigh(nitpicker_sync_dispatcher); nitpicker.framebuffer()->sync_sigh(nitpicker_sync_dispatcher);
hover_reporter.enabled(true); hover_reporter.enabled(true);
/* import initial state */
handle_pointer_update(0);
handle_window_layout_update(0);
} }
/** /**
@ -293,25 +298,18 @@ void Decorator::Main::handle_pointer_update(unsigned)
} }
int main(int argc, char **argv) /************
{ ** Server **
static Genode::Signal_receiver sig_rec; ************/
static Decorator::Main application(sig_rec); namespace Server {
/* import initial state */ char const *name() { return "decorator_ep"; }
application.handle_pointer_update(0);
application.handle_window_layout_update(0);
/* process incoming signals */ size_t stack_size() { return 8*1024*sizeof(long); }
for (;;) {
using namespace Genode;
Signal sig = sig_rec.wait_for_signal(); void construct(Entrypoint &ep)
Signal_dispatcher_base *dispatcher = {
dynamic_cast<Signal_dispatcher_base *>(sig.context()); static Decorator::Main main(ep);
if (dispatcher)
dispatcher->dispatch(sig.num());
} }
} }

View File

@ -2,7 +2,7 @@ TARGET = decorator
SRC_CC = main.cc texture_by_id.cc default_font.h window.cc SRC_CC = main.cc texture_by_id.cc default_font.h window.cc
SRC_BIN = closer.rgba maximize.rgba minimize.rgba windowed.rgba SRC_BIN = closer.rgba maximize.rgba minimize.rgba windowed.rgba
SRC_BIN += droidsansb10.tff SRC_BIN += droidsansb10.tff
LIBS = base config LIBS = base config server
TFF_DIR = $(call select_from_repositories,src/app/scout/data) TFF_DIR = $(call select_from_repositories,src/app/scout/data)
INC_DIR += $(PRG_DIR) INC_DIR += $(PRG_DIR)