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

Go to the source code of this file.

Description

Organisational unit of an ongoing render- or playback process.

A process object doesn't perform any work in itself, rather it's an entry in the process table maintained within the PlayService. This table entry is used to keep track of the individual data feeds, each corresponding to one of the global pipes to be "performed" in order to generate output data. Usually, these global pipes all belong to a given Timeline (but other setups are possible as well).

Each of these Feed objects comprising a play process is in turn responsible for getting one or multiple CalculationStream entities configured and operative within the actual render engine. Each of these calculation streams corresponds to a running series of calculations for consecutive frames, to be delivered in a time-bound fashion from the render engine into an OutputSlot, allocated for rendering this specific feed.

A PlayProcess isn't exposed directly to client code – it's the body object, while a Play::Controller handle is returned to the client (PImpl pattern). Using this controller frontend, clients are allowed to control and change the playback or rendering state and goals, which then causes the PlayProcess to reconfigure the ongoing or planned calculations.

See also
lumiera::DummyPlayer
stage::PlaybackController usage example

Definition in file play-process.hpp.

#include "lib/error.hpp"
#include "lib/nocopy.hpp"
#include "steam/mobject/model-port.hpp"
#include "steam/engine/calc-stream.hpp"
#include "lib/iter-source.hpp"
#include "lib/util.hpp"
#include <functional>
#include <vector>

Classes

class  Feed
 Rendering data feed, corresponding to a single global pipe and to be delivered into a single OutputSlot. More...
 
class  PlayProcess
 Playback/Render process within the Lumiera Player. More...
 

Typedefs

typedef function< Feed(ModelPort)> FeedBuilder
 
typedef lib::IterSource< ModelPort >::iterator ModelPorts
 
typedef std::vector< Feed > OutputFeeds
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::play
 Playback and rendering control subsystem.