Lumiera  0.pre.03
»edit your freedom«
fork.hpp File Reference

Go to the source code of this file.

Description

Organisational grouping device within the Session model ("Track" / "Media Bin").

Within Lumiera, Tracks bear no direct relation to the rendering or calculation process; rather they are just conceived as a space for the user to arrange the parts included into the edit.

A Fork is a nested tree-shaped structure. When integrated into a sequence, it will be rendered in the familiar way, as tracks with media clips. But at the same time, when accessed through the Asset management view ("bookkeeping view"), a fork appears as nested folder structure to hold media clips.

Most importantly, a Fork defines a system of nested scopes. When discovering details of the wiring, setup and configuration, the Build process will look into the enclosing scope to fill in any part not defined locally at a given media object. Go give a typical example, the volume for sound playback can be defined in some root scope, causing all sound objects to inherit that volume setting – unless shadowed by a more specialised setting closer in scope to the sound object in question. This allows to set up global properties and then to override them locally, for a group of objects located in some sub-fork.

Note
to stress this point: in Lumiera we do not conceive tracks as some kind of channel, with media data flowing through the tracks. Also, tracks are not layers. This also means, there is no distinction in audio and video tracks. We leave it at the user's discretion how she wants to organise the edit.
Todo:

WIP implementation of session core from 2010

as of 2016, this effort is considered stalled but basically valid

Definition in file fork.hpp.

Classes

class  Fork
 A Fork serves as grouping device within the Session. More...
 

Typedefs

using ForkID = lib::idi::EntryID< Fork >
 
typedef Placement< session::Fork, session::MetaPFork
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::mobject
 Media-Objects, edit operations and high-level session.
 
 steam::mobject::session
 Namespace of Session and user visible high-level objects.