61 using lib::RecursiveLock_NoWait;
65 using std::placeholders::_1;
87 :
public Sync<RecursiveLock_NoWait>
89 typedef weak_ptr<PlayProcess>
Entry;
148 UNIMPLEMENTED (
"block waiting for any ongoing play processes. Ensure the process table is empty -- OR -- hand it over to some kind of cleanup service");
184 return pTable_->establishProcess(
214 return this->
connect (ports, output);
224 UNIMPLEMENTED (
"build PlayProcess based on a set of pipes");
234 UNIMPLEMENTED (
"build PlayProcess for a Timeline");
244 UNIMPLEMENTED (
"build PlayProcess directly for a Viewer element");
254 UNIMPLEMENTED (
"build PlayProcess for a single Fork");
264 UNIMPLEMENTED (
"build virtual Timeline and PlayProcess to show a single Clip");
Access point to singletons and other kinds of dependencies designated by type.
Handle & activate(IMP *impl, DEL whenDead)
Activation of the handle by the managing service.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
scoped guard to control the actual locking.
Facility for monitor object based locking.
static const FrameRate PAL
predefined constant for PAL framerate
Continuous playback process, which has been hooked up and started with a fixed set of output slots.
Interface to the Player subsystem of Lumiera (Steam-Layer).
steam::play::POutputManager Output
static lib::Depend< Play > facade
get an implementation instance of this service
Controller perform(ModelPorts, Output)
Generic point-of-Service for starting playback.
virtual Controller connect(ModelPorts, Output)=0
core operation: create a new playback process outputting to the given viewer/display
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location w...
Playback/Render process within the Lumiera Player.
static PlayProcess * initiate(ModelPorts dataGenerators, FeedBuilder)
Factory: Initialise and configure a new PlayProcess.
std::unique_ptr< ProcessTable > pTable_
PlayService()
bring up the global render- and playback service.
virtual Controller connect(ModelPorts, POutputManager)
Implementation: build a PlayProcess.
Play::Controller establishProcess(PlayProcess *newProcess)
static bool isDead(Entry const &e)
void endProcess(PlayProcess *dyingProcess)
std::vector< Entry > ProcTable
weak_ptr< PlayProcess > Entry
Generic frame timing specification.
#define LUMIERA_ERROR_DEFINE(err, msg)
Definition and initialisation of an error constant.
Lumiera error handling (C++ interface).
Lumiera public interface.
RenderConfigurator::ConnectFunction buildRenderConfiguration(POutputManager outputPossibilities, Timings playTimings)
Factory function to build a RenderConfigurator specifically tailored for a PlayProcess,...
shared_ptr< OutputManager > POutputManager
Steam-Layer implementation namespace root.
bool remove_if(SET &set, FUN test)
remove all elements fulfilling a given predicate from a (sorted) set.
bool and_all(IT i, IT end, FUN predicate)
All quantification: check if all elements of a collection satisfy the given predicate.
A global service to handle all external output connections.
Public access point to the playback service provided by the »play-out subsystem«
Organisational unit of an ongoing render- or playback process.
Primary service of the Player subsystem: Starting and controlling render/playback.
Strategy to hold all the detail knowledge necessary to establish a running render CalculationStream.
Perform operations "for each element" of a collection.