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

#include "steam/mobject/session/fork.hpp"

Description

A Fork serves as grouping device within the Session.

Within the timeline, forks are used to organise continuous trails of consecutive clips – similar to the role of "Tracks" in other editing applications. Just, in Lumiera a Fork is only a grouping device and not limited just to video or audio. Moreover, Forks are also used to organise and group clips in preparation to editing (the so called "media bins"). And forks can be used to create assortments of effects and other editing tools. In all these cases, the Fork creates a scope.

The corresponding Placement by which this Fork object is attached to the session defines fallback placing properties to be used by all objects placed within the scope of this fork, unless individual objects specify more concrete placements. Typically, the placement within a fork of the timeline is used to derive the default processing pipe connections, define a layer or pan for sound and also for for disabling groups of clips. But note that forks are always nested, forming a tree like grouping device with hierarchically nested scopes.

This Fork Media Object (sometimes referred to as "fork-MO") is always dealt with locally within one Sequence. Client code normally doesn't have to care for creating or retrieving a fork-MO. Rather, it refers to the global fork-asset-ID. The same holds true when placing some other Media Object into the scope of a fork: the corresponding placement just refers the global forkID, while the builder automatically retrieves the matching fork-MO for the Sequence in question.

Definition at line 103 of file fork.hpp.

Public Member Functions

bool isSameID (string const &)
 Child tracks in a tree structure.
 
- Public Member Functions inherited from AbstractMO
DurationgetLength ()
 
bool operator== (const MObject &oo) const
 default/fallback implementation of equality using literal object identity (same address). More...
 
- Public Member Functions inherited from MObject
string const & shortID () const
 a short readable ID as a single name-token, denoting both the kind of MObject and some sort of instance identity. More...
 
- Public Member Functions inherited from Visitable< builder::BuilderTool >
virtual ReturnType apply (builder::BuilderTool &)=0
 to be defined by the DEFINE_PROCESSABLE_BY macro in all classes wanting to be treated by some tool
 

Friends

class MObjectFactory
 

Protected Member Functions

 Fork (ForkID const &)
 create a new fork-MObject based on the given unique ID. More...
 
- Protected Member Functions inherited from AbstractMO
string buildShortID (lib::Literal typeID, string suffix="") const
 
void throwIfInvalid () const
 

Private Member Functions

string initShortID () const
 
bool isValid () const
 MObject self-test (usable for asserting)
 

Private Attributes

ForkID id_
 
Time start_
 

Additional Inherited Members

- Public Types inherited from Visitable< builder::BuilderTool >
typedef builder::BuilderTool ::ReturnType ReturnType
 
- Static Public Attributes inherited from MObject
static session::MObjectFactory create
 Storage for the (single, static) MObject factory object.
 
- Protected Types inherited from MObject
typedef lib::time::Duration Duration
 
- Protected Types inherited from Visitable< builder::BuilderTool >
typedef builder::BuilderTool ::ToolBase ToolBase
 
- Static Protected Member Functions inherited from Visitable< builder::BuilderTool >
static ReturnType dispatchOp (TAR &target, builder::BuilderTool &tool)
 
- Protected Attributes inherited from MObject
Duration length_
 
string shortID_
 

Constructor & Destructor Documentation

◆ Fork()

Fork ( ForkID const &  forkID)
protected

create a new fork-MObject based on the given unique ID.

While the fork is an MObject attached locally within the given Sequence, it referres to a globally known forkID, which is an Asset. These fork-IDs might be shared among several Sequences and can be used to refer to several scopes simultaneously.

Definition at line 45 of file fork.cpp.

+ Inheritance diagram for Fork:
+ Collaboration diagram for Fork:

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