Lumiera  0.pre.03
»edityourfreedom«
proc::mobject Namespace Reference

Description

Media-Objects, edit operations and high-level session.

Todo:
is this interface or implementation ??

Namespaces

 _mapping
 
 builder
 Namespace of the Builder, transforming high-level into low-level.
 
 controller
 
 session
 Namespace of Session and user visible high-level objects.
 
 test
 

Typedefs

typedef MORef< MObjectMObjectRef
 
typedef Placement< session::Binding, session::MetaPBinding
 
typedef Placement< session::BusMO, session::MetaPBus
 
typedef Placement< session::Fork, session::MetaPFork
 
typedef OutputDesignation::PID PID
 
typedef Placement< MObjectPlacementMO
 
typedef PlacementRef< MObjectPlaRef
 TODO: as of 5/09 the idea is to phase out direct dependency on the placement class and recast those dependencies in terms of PlacementRef. More...
 
typedef Placement< MObjectPMO
 
typedef OutputDesignation::PPipe PPipe
 
typedef Placement< session::Root, session::MetaPRoot
 
typedef session::SessManagerPSess
 acts as a "PImpl" smart ptr More...
 
typedef PlacementRef< MObjectRefPlacement
 frequently-used shorthand More...
 
typedef OutputDesignation::TargetSpec TargetSpec
 

Classes

struct  AbsoluteSpec
 
class  Buildable
 Marker Interface for classes visitable by Builder tools. More...
 
class  BuilderFacade
 Provides unified access to the builder functionality. More...
 
class  ExplicitPlacement
 Special kind of Placement, where the location of the MObject has been nailed down to a fixed position. More...
 
struct  IndirectSpec
 
class  Interpolator
 Provides the implementation for getting the actual value of a time varying or automated effect/plugin parameter. More...
 
class  MObject
 MObject is the interface class for all "Media Objects". More...
 
class  ModelPort
 Handle denoting a point within the model, where actually output data can be pulled. More...
 
class  MORef
 An active (smart-ptr like) external reference to a specifically placed MObject "instance" within the session. More...
 
class  OutputDesignation
 Descriptor to denote the desired target of produced media data. More...
 
class  OutputMapping
 OutputMapping is a facility to resolve output designations. More...
 
class  Parameter
 Descriptor and access object for a plugin parameter. More...
 
class  ParamProvider
 A facility to get the actual value of a plugin/effect parameter. More...
 
class  Placement
 A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location where the MObject is supposed to be within the Session/Model. More...
 
class  Placement< MObject, MObject >
 this specialisation forms the root of all placements and defines all of Placement's actual functionality. More...
 
class  PlacementRef
 Reference tag denoting a placement attached to the session. More...
 
struct  RelativeSpec
 
class  Session
 The (current) Session holds all the user visible content to be edited and manipulated within the Lumiera Application. More...
 

Functions

string format_PlacementID (Placement< MObject > const &pla)
 
string format_PlacementID (PlacementMO const &)
 
template<class MOX , class MOY >
bool isEquivalentPlacement (MORef< MOX > const &ref1, MORef< MOY > const &ref2)
 check if the two references actually denote an equivalent placement More...
 
bool isSameDef (PlacementMO const &, PlacementMO const &)
 compare the properties of placement More...
 
template<class MOX , class MOY >
bool isSharedPointee (MORef< MOX > const &ref1, MORef< MOY > const &ref2)
 check if the two references actually share ownership on the same underlying MObject (as opposed to referring to the same Placement, which is tested by operator== ) More...
 
 LUMIERA_ERROR_DECLARE (BUILDER_LIFECYCLE)
 Builder activated while in non operational state. More...
 
 LUMIERA_ERROR_DECLARE (INVALID_MODEL_PORT)
 Referral to unknown model port. More...
 
 LUMIERA_ERROR_DECLARE (UNCONNECTED_MODEL_PORT)
 Attempt to operate on an existing but unconnected model port. More...
 
 LUMIERA_ERROR_DECLARE (BOTTOM_MOBJECTREF)
 NIL MObjectRef encountered. More...
 
 LUMIERA_ERROR_DECLARE (INVALID_PLACEMENTREF)
 unresolvable placement reference, or of incompatible type More...
 
 LUMIERA_ERROR_DECLARE (BOTTOM_PLACEMENTREF)
 NIL placement-ID marker encountered. More...
 
 LUMIERA_ERROR_DEFINE (BUILDER_LIFECYCLE, "Builder activated while in non operational state")
 
 LUMIERA_ERROR_DEFINE (INVALID_PLACEMENTREF, "unresolvable placement reference, or of incompatible type")
 
 LUMIERA_ERROR_DEFINE (BOTTOM_PLACEMENTREF, "NIL placement-ID marker encountered.")
 
 LUMIERA_ERROR_DEFINE (BOTTOM_MOBJECTREF, "NIL MObjectRef encountered")
 
 LUMIERA_ERROR_DEFINE (INVALID_MODEL_PORT, "Referral to unknown model port")
 
 LUMIERA_ERROR_DEFINE (UNCONNECTED_MODEL_PORT, "Attempt to operate on an existing but unconnected model port")
 

Variables

const char * ON_SESSION_CLOSE
 LifecycleHook, to commence any activity relying on an opened and fully operative session. More...
 
const char * ON_SESSION_END
 LifecycleHook, to perform any state saving, deregistration or de-activation necessary before bringing down an existing session. More...
 
const char * ON_SESSION_INIT
 LifecycleHook, to perform any initialisation, wiring and registrations necessary to get the session into a usable state. More...
 
const char * ON_SESSION_READY
 LifecycleHook, to perform post loading tasks, requiring an already completely usable and configured session to be in place. More...
 
const char * ON_SESSION_START
 LifecycleHook, to perform all the basic setup for a new session, prior to adding any specific data, configuration or content. More...
 

Typedef Documentation

◆ MObjectRef

Definition at line 367 of file mobject-ref.hpp.

◆ PMO

typedef Placement< MObject > PMO

Definition at line 121 of file mobject.hpp.

◆ PPipe

Definition at line 65 of file output-designation.cpp.

◆ PID

Definition at line 66 of file output-designation.cpp.

◆ TargetSpec

◆ RefPlacement

frequently-used shorthand

Definition at line 57 of file output-designation.hpp.

◆ PlacementMO

Todo:
cleanup uses of ref-to-placement.

See Ticket #115

Definition at line 269 of file placement.hpp.

◆ PBinding

◆ PBus

Definition at line 83 of file bus-mo.hpp.

◆ PFork

Definition at line 142 of file fork.hpp.

◆ PlaRef

TODO: as of 5/09 the idea is to phase out direct dependency on the placement class and recast those dependencies in terms of PlacementRef.

Definition at line 73 of file locatingpin.hpp.

◆ PRoot

Definition at line 100 of file root.hpp.

◆ PSess

acts as a "PImpl" smart ptr

Definition at line 80 of file session.hpp.


Class Documentation

◆ proc::mobject::Interpolator

class proc::mobject::Interpolator
+ Collaboration diagram for Interpolator< VAL >:

Function Documentation

◆ LUMIERA_ERROR_DEFINE() [1/6]

proc::mobject::LUMIERA_ERROR_DEFINE ( INVALID_MODEL_PORT  ,
"Referral to unknown model port"   
)

◆ LUMIERA_ERROR_DEFINE() [2/6]

proc::mobject::LUMIERA_ERROR_DEFINE ( UNCONNECTED_MODEL_PORT  ,
"Attempt to operate on an existing but unconnected model port"   
)

◆ LUMIERA_ERROR_DEFINE() [3/6]

proc::mobject::LUMIERA_ERROR_DEFINE ( BUILDER_LIFECYCLE  ,
"Builder activated while in non operational state"   
)

◆ LUMIERA_ERROR_DECLARE() [1/6]

proc::mobject::LUMIERA_ERROR_DECLARE ( BUILDER_LIFECYCLE  )

Builder activated while in non operational state.

◆ LUMIERA_ERROR_DEFINE() [4/6]

proc::mobject::LUMIERA_ERROR_DEFINE ( INVALID_PLACEMENTREF  ,
"unresolvable placement  reference,
or of incompatible type"   
)

◆ LUMIERA_ERROR_DEFINE() [5/6]

proc::mobject::LUMIERA_ERROR_DEFINE ( BOTTOM_PLACEMENTREF  ,
"NIL placement-ID marker encountered."   
)

◆ LUMIERA_ERROR_DEFINE() [6/6]

proc::mobject::LUMIERA_ERROR_DEFINE ( BOTTOM_MOBJECTREF  ,
"NIL MObjectRef encountered"   
)

◆ LUMIERA_ERROR_DECLARE() [2/6]

proc::mobject::LUMIERA_ERROR_DECLARE ( BOTTOM_MOBJECTREF  )

NIL MObjectRef encountered.

◆ isSharedPointee()

bool proc::mobject::isSharedPointee ( MORef< MOX > const &  ref1,
MORef< MOY > const &  ref2 
)
inline

check if the two references actually share ownership on the same underlying MObject (as opposed to referring to the same Placement, which is tested by operator== )

Definition at line 378 of file mobject-ref.hpp.

References MORef< MO >::getPlacement(), and MORef< MO >::isValid().

Referenced by SessionModifyParts_test::addObjects(), and SessionElementQuery_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isEquivalentPlacement()

bool proc::mobject::isEquivalentPlacement ( MORef< MOX > const &  ref1,
MORef< MOY > const &  ref2 
)
inline

check if the two references actually denote an equivalent placement

Definition at line 387 of file mobject-ref.hpp.

References MORef< MO >::getPlacement(), isSameDef(), and MORef< MO >::isValid().

Referenced by SessionModifyParts_test::addObjects().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LUMIERA_ERROR_DECLARE() [3/6]

proc::mobject::LUMIERA_ERROR_DECLARE ( INVALID_MODEL_PORT  )

Referral to unknown model port.

◆ LUMIERA_ERROR_DECLARE() [4/6]

proc::mobject::LUMIERA_ERROR_DECLARE ( UNCONNECTED_MODEL_PORT  )

Attempt to operate on an existing but unconnected model port.

◆ LUMIERA_ERROR_DECLARE() [5/6]

proc::mobject::LUMIERA_ERROR_DECLARE ( INVALID_PLACEMENTREF  )

unresolvable placement reference, or of incompatible type

◆ LUMIERA_ERROR_DECLARE() [6/6]

proc::mobject::LUMIERA_ERROR_DECLARE ( BOTTOM_PLACEMENTREF  )

NIL placement-ID marker encountered.

◆ format_PlacementID() [1/2]

string proc::mobject::format_PlacementID ( Placement< MObject > const &  pla)

Definition at line 69 of file placement.cpp.

References Placement< MO, B >::getID().

Referenced by PlacementHierarchy_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isSameDef()

bool isSameDef ( PlacementMO const &  ,
PlacementMO const &   
)

compare the properties of placement

Returns
true if all the LocatingPin entries in both placements are semantically equivalent.

Definition at line 77 of file placement.cpp.

References Placement< MO, B >::getID().

Referenced by PlacementIndex_test::checkSimpleAccess(), and isEquivalentPlacement().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_PlacementID() [2/2]

string proc::mobject::format_PlacementID ( PlacementMO const &  )

Variable Documentation

◆ ON_SESSION_START

const char * ON_SESSION_START

LifecycleHook, to perform all the basic setup for a new session, prior to adding any specific data, configuration or content.

triggered before loading any content into a newly created session

Any subsystems requiring to (re)-initialise for a new session should register here. When this hook is activated, the session implementation facilities are available and the corresponding interfaces are already opened and accessible, but the session itself is completely pristine and empty.

Note
plugins providing additional facilities to be used by content of a (persisted) session should register their basic setup functions using this hook, which can be done via the C interface functions defined in lifecycle.h

Definition at line 96 of file session.cpp.

Referenced by LifecycleAdvisor::pullUp().

◆ ON_SESSION_INIT

const char * ON_SESSION_INIT

LifecycleHook, to perform any initialisation, wiring and registrations necessary to get the session into a usable state.

triggered when initialising a new session, after adding content

When activated, the specific session content and configuration has already be loaded. Any subsystems requiring to build some indices or wiring to keep track of the session's content should register here.

Definition at line 104 of file session.cpp.

Referenced by LifecycleAdvisor::pullUp().

◆ ON_SESSION_READY

const char * ON_SESSION_READY

LifecycleHook, to perform post loading tasks, requiring an already completely usable and configured session to be in place.

triggered after session is completely functional and all APIs are open.

When activated, the session is completely restored according to the standard or persisted definition and any access interfaces are already opened and enabled. Scripts and the GUI might even be accessing the session in parallel. Subsystems intending to perform additional processing should register here, if requiring fully functional client side APIs. Examples would be statistics gathering, validation or auto-correction of the session's contents.

Definition at line 115 of file session.cpp.

Referenced by LifecycleAdvisor::pullUp().

◆ ON_SESSION_CLOSE

const char * ON_SESSION_CLOSE

LifecycleHook, to commence any activity relying on an opened and fully operative session.

triggered before initiating the session shutdown sequence

When invoked, the session is still in fully operative state, all interfaces are open and the render engine is available. However, after issuing this event, the session shutdown sequence will be initiated, by detaching the engine interfaces and signalling the scheduler to cease running render jobs.

Definition at line 124 of file session.cpp.

Referenced by LifecycleAdvisor::shutDown().

◆ ON_SESSION_END

const char * ON_SESSION_END

LifecycleHook, to perform any state saving, deregistration or de-activation necessary before bringing down an existing session.

triggered before discarding an existing session

When invoked, the session is still fully valid and functional, but the GUI/external access has already been closed.

Todo:
specify how this is related to "saving". Is there a way for subsystems to add specific/internal information into the persisted state, besides actually attaching data to objects within the session?

Definition at line 134 of file session.cpp.

Referenced by LifecycleAdvisor::shutDown().