Lumiera  0.pre.03
»edityourfreedom«
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::DisplayServiceInstanceHandle
 

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

◆ ServiceInstanceHandle

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

Constructor & Destructor Documentation

◆ DisplayService()

◆ ~DisplayService()

~DisplayService ( )
inline

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

Member Function Documentation

◆ setUp()

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_.

Referenced by ViewerPanel::ViewerPanel().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ allocate()

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:

◆ resolve()

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

◆ error_

string error_
private

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

◆ slots_

DisplayerTab slots_
private

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

Referenced by DisplayService::setUp().

◆ serviceInstance_

ServiceInstanceHandle serviceInstance_
private
+ Inheritance diagram for DisplayService:
+ Collaboration diagram for DisplayService:

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