Lumiera  0.pre.03
»edit your freedom«
display-service.hpp File Reference

Go to the source code of this file.

Description

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.

Deprecated:
This is a first draft as of 1/2009, and likely to be superseded by a better design, where rather the provider of an output facility registers with the OutputManager in the core.
See also
lumiera::Display
lumiera::DummyPlayer
stage::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>

Classes

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

Typedefs

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

Namespaces

 stage
 Lumiera GTK UI implementation root.