Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
DisplayService Class Reference

#include "gui/display-service.hpp"

Description

Actual implementation of the DisplayService.

Creating an instance of this class automatically registers the interface lumieraorg_Display with the Lumiera Interface/Plugin system and creates a forwarding proxy within the application core to route calls through this interface.

In addition to the Display interface, this class implements an additional service for the GUI, allowing actually to set up display slots, which then can be handed out to client code in the course of the play process for outputting frames.

Definition at line 129 of file display-service.hpp.

Public Member Functions

 DisplayService ()
 
 ~DisplayService ()
 
void allocate (LumieraDisplaySlot, bool doAllocate)
 prepare and the given slot for output More...
 
DisplayerSlotresolve (LumieraDisplaySlot)
 resolve the given display slot handle to yield a ref to an actual implementation object. More...
 

Static Public Member Functions

static LumieraDisplaySlot setUp (FrameDestination const &)
 open a new display, sending frames to the given output destination More...
 

Private Types

typedef
lumiera::InstanceHandle
< LUMIERA_INTERFACE_INAME(lumieraorg_Display,
0), lumiera::Display
ServiceInstanceHandle
 

Private Attributes

string error_
 
ServiceInstanceHandle serviceInstance_
 
DisplayerTab slots_
 

Additional Inherited Members

- Private Member Functions inherited from NonCopyable
 NonCopyable ()=default
 
 NonCopyable (NonCopyable const &)=delete
 
 ~NonCopyable ()=default
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Member Typedef Documentation

Definition at line 141 of file display-service.hpp.

Constructor & Destructor Documentation

Definition at line 185 of file display-service.cpp.

~DisplayService ( )
inline

Definition at line 147 of file display-service.hpp.

Member Function Documentation

LumieraDisplaySlot setUp ( FrameDestination const &  outputDestination)
static

open a new display, sending frames to the given output destination

Returns
handle for this slot, can be used to start a play process. NULL handle in case of any error.

Definition at line 195 of file display-service.cpp.

References ScopedPtrVect< T >::manage(), and DisplayService::slots_.

+ Here is the call graph for this function:

void allocate ( LumieraDisplaySlot  handle,
bool  doAllocate 
)

prepare and the given slot for output

Parameters
doAllocateallocate when true, else release it
Exceptions
lumiera::error::Logicwhen already in use

Definition at line 204 of file display-service.cpp.

References InstanceHandle< I, FA >::get(), and DisplayService::serviceInstance_.

+ Here is the call graph for this function:

DisplayerSlot & resolve ( LumieraDisplaySlot  handle)

resolve the given display slot handle to yield a ref to an actual implementation object.

In order to be resolvable, the DisplayerSlot needs to be locked (=allocated) for output use.

Definition at line 225 of file display-service.cpp.

Member Data Documentation

string error_
private

Definition at line 133 of file display-service.hpp.

DisplayerTab slots_
private

Definition at line 134 of file display-service.hpp.

Referenced by DisplayService::setUp().

ServiceInstanceHandle serviceInstance_
private

Definition at line 142 of file display-service.hpp.

Referenced by DisplayService::allocate().

+ Inheritance diagram for DisplayService:
+ Collaboration diagram for DisplayService:

The documentation for this class was generated from the following files: