Lumiera  0.pre.03
display-service.hpp File Reference

Go to the source code of this file.


A public service provided by the GUI, implementing the lumiera::Display facade interface.

It serves two purposes:

  • It maintains a collection of DisplayerSlot objects, which are the actual connection points and allow to receive frames and dispatch them to the GTK main event loop thread. Conceptually, creating such a slot means providing a possible display for output.
  • It provides the actual implementation of the Display facade interface, i.e. the function which is to invoked periodically by the playback processes to dispose a new frame into the display.

This service is the implementation of a layer separation facade interface. This header defines the interface used to provide this service, not to access it. Clients get a specific LumieraDisplaySlot passed as parameter when initiating a playback process from the GUI. Using this LumieraDisplaySlot handle, clients should then use lumiera::DummyPlayer::facade to access an implementation instance of this service in order to push actual frames up.

See also
gui::PlaybackController usage example

Definition in file display-service.hpp.

#include "include/display-facade.h"
#include "common/instancehandle.hpp"
#include "lib/scoped-ptrvect.hpp"
#include "include/logging.h"
#include "lib/nocopy.hpp"
#include <glibmm.h>
#include <sigc++/sigc++.h>
#include <string>
#include <vector>


class  DisplayerSlot
 Actual implementation of a single displayer slot. More...
class  DisplayService
 Actual implementation of the DisplayService. More...


typedef lib::ScopedPtrVect< DisplayerSlot > DisplayerTab
typedef sigc::slot< void, void * > FrameDestination
typedef sigc::signal< void, void * > FrameSignal


 Lumiera GTK UI implementation root.