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

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

Description

A user visible/editable Clip is a reference to a contiguous sequence of media data loaded as Asset into the current Session.

As such, it is a virtual (non destructive) cut or edit of the source material and can be placed into the Session to be rendered into the output. The actual media type of a clip will be derived at runtime by resolving this reference to the underlying Asset.

Todo:
define how to denote Time positions /lengths. This is tricky, because it depends on the actual media type, and we want to encapsulate all these details as much as possible.

Definition at line 71 of file mobject/session/clip.hpp.

Public Member Functions

 DEFINE_PROCESSABLE_BY (builder::BuilderTool)
 
PClipAsset findClipAsset () const
 locate the corresponding asset representing this clip or the whole compound in case of a multichannel clip
 
PMedia getMedia () const
 access the underlying media asset
 
bool isValid () const
 implementing the common MObject self test. More...
 
- 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

 Clip (const asset::Clip &, const Media &)
 new clip-MO linked with the given asset::Clip. More...
 
- Protected Member Functions inherited from AbstractMO
string buildShortID (lib::Literal typeID, string suffix="") const
 
void throwIfInvalid () const
 

Protected Attributes

const asset::ClipclipDef_
 
const MediamediaDef_
 
TimeVar start_
 start position in source
 
- Protected Attributes inherited from MObject
Duration length_
 
string shortID_
 

Private Member Functions

string initShortID () const
 
void setupLength ()
 

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)
 

Constructor & Destructor Documentation

◆ Clip()

Clip ( const asset::Clip clipDef,
const Media mediaDef 
)
protected

new clip-MO linked with the given asset::Clip.

Initially, this clip will cover the whole source media length.

Definition at line 48 of file mobject/session/clip.cpp.

Member Function Documentation

◆ isValid()

bool isValid ( ) const
virtual

implementing the common MObject self test.

Length definition is consistent, underlying media def is accessible etc.

Implements MObject.

Definition at line 62 of file mobject/session/clip.cpp.

Member Data Documentation

◆ mediaDef_

const Media& mediaDef_
protected
Todo:
using a mere ref here is against the scheme and only done as temporal solution, until we work out how to handle multichannel clips.

It should be a smart pointer of some kind and the unlink() function of the asset should take it into account when breaking circular references.

Definition at line 95 of file mobject/session/clip.hpp.

Referenced by Clip::getMedia().

+ Inheritance diagram for Clip:
+ Collaboration diagram for Clip:

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