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

Go to the source code of this file.

Description

Primary service of the Player subsystem: Starting and controlling render/playback.

This is the implementation level service interface for the "Player". Client code should access this service through the lumiera::Play facade interface.

The player and render control subsystem allows to start and control playback and rendering at any given collection of model ports (the conceptual exit points of the High-Level-Model). These model ports are the (side effect) result of a build process performed on the High-Level-Model, causing all nominal output designations within the model to be resolved as far as possible. Additionally, for playback, the global level of the model (the global pipes of a timeline) need to be connected to a viewer component. This results in a further resolution step, mapping the output designations to the concrete output possibilities of the running Lumiera instance. This mapping information is kept embedded within an OutputManager instance, passed as parameter when invoking the player service. Alternatively, for rendering, a similar kind of output mapping information needs to be provided, again embedded within an OutputManager instance, this time leading to an output file to be rendered.

The result of an invocation of the Player service is a Play::Controller frontend object. This smart-ptr like handle can be used by the client to control all aspects of playback or rendering; it behaves like a state machine. When the last copy of this Play::Controller frontend goes out of scope, behind the scenes the corresponding PlayProcess gets terminated and prepared for cleanup.

See also
engine::EngineService
Todo:

started as draft in 11/2011

as of 2016 development in this area is stalled, but the design done thus far valid

Warning
as of 4/2023 Render-Engine integration work is underway ////////////////////////////////////////TICKET #1233

Definition in file play-service.hpp.

#include "lib/error.hpp"
#include "lib/nocopy.hpp"
#include "include/play-facade.hpp"
#include <memory>

Classes

class  PlayService
 Implementation access point: Player subsystem. More...
 

Functions

 LUMIERA_ERROR_DECLARE (CANT_PLAY)
 unable to build playback or render process for this configuration
 

Namespaces

 lumiera
 Lumiera public interface.
 
 steam
 Steam-Layer implementation namespace root.
 
 steam::play
 Playback and rendering control subsystem.