genode/repos/demo/src/server/liquid_framebuffer
Norman Feske 0ed68a56b7 Use signals for delivering input events
This patch changes both the Input::Session interface and the skeleton
for the server-side implementation of this interface
('input/component.h').

The Input::Session interface offers a new 'sigh' function, which can be
called be the client to register a signal handler. The signal handler
gets notified on the arrival of new input. This alleviates the need to
poll for input events at the client side.

The server-side skeleton for implementing input services underwent a
redesign to make it more modular and robust. I.e., there are no
global functions needed at the server side and the event-queue
enable/disable mechanism is implemented at a central place (in the root
component) rather than inside each driver.

Fixes #46
2014-06-06 14:54:07 +02:00
..
framebuffer_window.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
main.cc Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
services.cc Use signals for delivering input events 2014-06-06 14:54:07 +02:00
services.h Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
target.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00

Liquid frame buffer is an implementation of the frame buffer interface
running as a client of the Nitpicker GUI server. It supports the
following configuration options. The example shows the default
values.

! <config
!
!   <!-- enable the animated background,
!        valid values are 'on' and 'off' -->
!   animate="on"
!
!   <!-- the initial window position and
!        size of the virtual frame buffer -->
!   xpos="400"
!   ypos="270"
!   width="500"
!   height="400"
!
!   <!-- set the window title -->
!   title="Liquid Framebuffer"
!
!   <!-- show a resize handle,
!        valid values are 'on' and 'off' -->
!   resize_handle="off"
!
!   <!-- show window decoration (title bar and borders),
!        valid values are 'on' and 'off' -->
!   decoration="on"
!
! />

Because Liquid frame buffer creates the virtual frame-buffer window at
start time, not at session-creation time, sufficient memory resources must
be provided when starting the program. Consequently, the client does not
need to donate memory for the frame buffer backing store.

Liquid frame buffer supports only one client. If multiple
virtual frame buffers are needed, multiple instances of the
program should be used.