Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
mobjectfactory.cpp
Go to the documentation of this file.
1/*
2 MObjectFactory - creating concrete MObject subclass instances
3
4 Copyright (C)
5 2008,2010, Hermann Vosseler <Ichthyostega@web.de>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12* *****************************************************************/
13
14
28#include "steam/asset/clip.hpp"
31
33
34namespace steam {
35namespace mobject {
36namespace session {
38
39
40
42 Placement<Root>
44 {
45 return Placement<Root> (*new Root (sessionDefaultsHandler), &deleterFunc);
46 }
47
48
52 {
53 return Placement<Label> (*new Label (labelType), &deleterFunc);
54 }
55
56
70 MObjectFactory::operator() (const asset::Clip& clipRef, const asset::Media& mediaDef)
71 {
72 return Placement<Clip> (*new Clip (clipRef,mediaDef), &deleterFunc);
73 }
74
80 MObjectFactory::operator() (const asset::Clip& clipRef, vector<const Media*> mediaTracks)
81 {
82 UNIMPLEMENTED ("build multichannel compound clip-MO");
83 }
84
88 {
89 TODO ("what needs to be registered when creating an Fork-MO?");
90 TODO ("assure the ID is indeed unique and not already used for another fork??");
91 return Placement<Fork> (*new Fork (id), &deleterFunc);
92 }
93
97 {
98 UNIMPLEMENTED ("fabricate effect-MO");
99 }
100
103 MObjectFactory::operator() (PSequence const& sequence_to_bind)
104 {
105 TODO ("any additional liabilities when creating a binding?");
106 return Placement<Binding> (*new Binding(sequence_to_bind), &deleterFunc);
107 }
108
109
110
111}}} // namespace mobject::session
Definition of Asset representation for a media clip.
Definition of an Asset representation for any kind of effect or media processor.
Token or Atom with distinct identity.
Definition symbol.hpp:120
Organise a collection of preconfigured default objects.
bookkeeping (Asset) view of a media clip.
Effect or media processing component.
key abstraction: media-like assets
Definition media.hpp:64
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location w...
Explicit link to bind a Sequence (container) to be used within the Session, either as contents of a t...
A user visible/editable Clip is a reference to a contiguous sequence of media data loaded as Asset in...
A Fork serves as grouping device within the Session.
Definition fork.hpp:95
Any sort of User visible Marker or Tag, used to mark time positions and ranges, or specific locations...
Definition label.hpp:51
static void deleterFunc(MObject *o)
custom deleter function allowing Placement to take ownership of MObjct instances
Placement< Root > operator()(lumiera::query::DefsManager &)
build a new session/model root element.
High-level model root element, corresponding to the global session wide scope.
Definition root.hpp:61
Management of defaults and default rules.
Organisational grouping device within the Session model ("Track" / "Media Bin").
A marker or reference point in the Session.
MObject in the Session to represent a clip on the timeline.
Core factory to generate media objects for use in the Session model.
Namespace of Session and user visible high-level objects.
Definition sequence.hpp:65
Steam-Layer implementation namespace root.
MObject within the session to represent "the session itself".
MObject in session to represent the top-level binding of a sequence.