Lumiera  0.pre.03
»edit your freedom«
PlayService Class Reference

#include "steam/play/play-service.hpp"

Description

Implementation access point: Player subsystem.

The PlayService is the primary way for clients to get into using Lumiera's Play/Output Subsystem. It allows to perform a timeline or model object. Behind the scenes, this will create and outfit a PlayProcess, which is accessible through the Play::Controller returned as frontend/handle.

the PlayService is instantiated and owned by the OutputDirector, which acts as a central hub for the Player subsystem. Clients should always access this functionality through the lumiera::Play facade interface.

Definition at line 96 of file play-service.hpp.

Public Member Functions

 PlayService ()
 bring up the global render- and playback service. More...
 
- Public Member Functions inherited from Play
Controller perform (ModelPorts, Output)
 Generic point-of-Service for starting playback. More...
 
Controller perform (Pipes, Output)
 
Controller perform (Timeline)
 
Controller perform (Viewer)
 
Controller perform (Fork)
 
Controller perform (Clip)
 

Private Member Functions

virtual Controller connect (ModelPorts, POutputManager)
 Implementation: build a PlayProcess. More...
 
- Private Member Functions inherited from NonCopyable
 NonCopyable (NonCopyable const &)=delete
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Private Attributes

std::unique_ptr< ProcessTablepTable_
 

Additional Inherited Members

- Public Types inherited from Play
using Clip = steam::mobject::session::PClip
 
using Fork = steam::mobject::PFork
 
using ModelPorts = lib::IterSource< steam::mobject::ModelPort >::iterator
 
using Output = steam::play::POutputManager
 
using Pipes = lib::IterSource< steam::mobject::OutputDesignation >::iterator
 
using Timeline = steam::asset::PTimeline
 
using Viewer = steam::asset::PViewer
 
- Static Public Attributes inherited from Play
static lib::Depend< Playfacade
 get an implementation instance of this service More...
 

Constructor & Destructor Documentation

◆ PlayService()

bring up the global render- and playback service.

This service allows to create individual PlayProcess instances to perform a timeline or similar model object, creating rendered data for output. Client code is assumed to access this service through the lumiera::Play facade.

Definition at line 160 of file play-service.cpp.

Member Function Documentation

◆ connect()

Play::Controller connect ( ModelPorts  dataGenerators,
POutputManager  outputPossibilities 
)
privatevirtual

Implementation: build a PlayProcess.

Note
this is the core operation of the play and render service

Invoking this function investigates the given exit nodes of the render nodes network and retrieves actual output destinations through the given OutputManager. The goal is to configure a PlayProcess, based on the renderengine and the collection of OutputSlot instances retrieved for each of the given exit nodes. Running this PlayProcess will activate the render engine to deliver calculated media data to the outputs.

Implements Play.

Definition at line 180 of file play-service.cpp.

References steam::play::buildRenderConfiguration(), PlayProcess::initiate(), and FrameRate::PAL.

Referenced by Play::perform().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:
+ Inheritance diagram for PlayService:
+ Collaboration diagram for PlayService:

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