Lumiera
0.pre.03
»edit your freedom«
mobjectfactory.hpp
Go to the documentation of this file.
1
/*
2
MOBJECTFACTORY.hpp - creating concrete MObject subclass instances
3
4
Copyright (C) Lumiera.org
5
2008, 2010, Hermann Vosseler <Ichthyostega@web.de>
6
7
This program is free software; you can redistribute it and/or
8
modify it under the terms of the GNU General Public License as
9
published by the Free Software Foundation; either version 2 of
10
the License, or (at your option) any later version.
11
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with this program; if not, write to the Free Software
19
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
21
*/
22
23
32
#ifndef STEAM_MOBJECT_SESSION_MOBJECTFACTORY_H
33
#define STEAM_MOBJECT_SESSION_MOBJECTFACTORY_H
34
35
#include "
steam/mobject/mobject.hpp
"
36
#include "
lib/idi/entry-id.hpp
"
37
#include "
lib/symbol.hpp
"
38
39
40
namespace
lumiera
{
41
namespace
query {
42
class
DefsManager;
43
}}
44
45
namespace
steam
{
46
namespace
asset
{
47
48
class
Clip;
49
class
Media;
50
class
Effect;
51
class
Sequence;
52
53
typedef
lib::P<Sequence>
PSequence;
54
55
}
56
57
namespace
mobject {
58
namespace
session
{
59
60
class
Root;
61
class
Clip;
62
class
Fork;
63
class
Effect;
64
class
Label;
65
class
Binding;
66
67
68
69
class
MObjectFactory
70
{
74
static
void
deleterFunc
(
MObject
* o) {
delete
o; }
75
76
public
:
77
78
Placement<Root>
operator() (
lumiera::query::DefsManager
&);
79
Placement<Clip>
operator() (
asset::Clip
const
&,
asset::Media
const
&);
80
Placement<Clip>
operator() (
asset::Clip
const
&, vector<asset::Media const*>);
81
Placement<Fork>
operator() (
lib::idi::EntryID<Fork>
const
&);
82
Placement<Effect>
operator() (
asset::Effect
const
&);
83
Placement<Label>
operator() (
lib::Symbol
);
84
Placement<Binding>
operator() (
asset::PSequence
const
&);
85
87
};
88
89
90
91
}}}
// namespace steam::mobject::session
92
#endif
steam::mobject::Placement
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location w...
Definition:
trait.hpp:91
steam::mobject::session::MObjectFactory
Definition:
mobjectfactory.hpp:69
steam::asset::Media
key abstraction: media-like assets
Definition:
media.hpp:72
lib::idi::EntryID< Fork >
mobject.hpp
Core abstraction of the Session model: a media object.
steam
Steam-Layer implementation namespace root.
Definition:
dummy-player-facade.h:46
steam::mobject::session
Namespace of Session and user visible high-level objects.
Definition:
sequence.hpp:74
steam::asset::Effect
Effect or media processing component.
Definition:
asset/effect.hpp:42
steam::mobject::MObject
MObject is the interface class for all "Media Objects".
Definition:
mobject.hpp:79
lib::Symbol
Token or Atom with distinct identity.
Definition:
symbol.hpp:126
lumiera::query::DefsManager
Organise a collection of preconfigured default objects.
Definition:
defs-manager.hpp:138
symbol.hpp
Marker types to indicate a literal string and a Symbol.
steam::asset::Clip
bookkeeping (Asset) view of a media clip.
Definition:
asset/clip.hpp:44
lumiera
Lumiera public interface.
Definition:
advice.cpp:113
entry-id.hpp
Bare symbolic and hash ID used for accounting of asset like entries.
lib::P
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Definition:
trait.hpp:80
steam::mobject::session::MObjectFactory::deleterFunc
static void deleterFunc(MObject *o)
custom deleter function allowing Placement to take ownership of MObjct instances
Definition:
mobjectfactory.hpp:74
steam::asset
The asset subsystem of the Steam-Layer.
Definition:
wrapperptr.hpp:44
steam
mobject
session
mobjectfactory.hpp
Generated on Sat Apr 20 2024 02:03:40 for Lumiera by
1.8.13