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)
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
23
#ifndef STEAM_MOBJECT_SESSION_MOBJECTFACTORY_H
24
#define STEAM_MOBJECT_SESSION_MOBJECTFACTORY_H
25
26
#include "
steam/mobject/mobject.hpp
"
27
#include "
lib/idi/entry-id.hpp
"
28
#include "
lib/symbol.hpp
"
29
30
31
namespace
lumiera
{
32
namespace
query {
33
class
DefsManager;
34
}}
35
36
namespace
steam
{
37
namespace
asset
{
38
39
class
Clip;
40
class
Media;
41
class
Effect;
42
class
Sequence;
43
44
typedef
lib::P<Sequence>
PSequence;
45
46
}
47
48
namespace
mobject {
49
namespace
session
{
50
51
class
Root;
52
class
Clip;
53
class
Fork;
54
class
Effect;
55
class
Label;
56
class
Binding;
57
58
59
60
class
MObjectFactory
61
{
65
static
void
deleterFunc
(
MObject
* o) {
delete
o; }
66
67
public
:
68
69
Placement<Root>
operator() (
lumiera::query::DefsManager
&);
70
Placement<Clip>
operator() (
asset::Clip
const
&,
asset::Media
const
&);
71
Placement<Clip>
operator() (
asset::Clip
const
&, vector<asset::Media const*>);
72
Placement<Fork>
operator() (
lib::idi::EntryID<Fork>
const
&);
73
Placement<Effect>
operator() (
asset::Effect
const
&);
74
Placement<Label>
operator() (
lib::Symbol
);
75
Placement<Binding>
operator() (
asset::PSequence
const
&);
76
78
};
79
80
81
82
}}}
// namespace steam::mobject::session
83
#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:82
steam::mobject::session::MObjectFactory
Definition:
mobjectfactory.hpp:60
steam::asset::Media
key abstraction: media-like assets
Definition:
media.hpp:63
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:37
steam::mobject::session
Namespace of Session and user visible high-level objects.
Definition:
sequence.hpp:65
steam::asset::Effect
Effect or media processing component.
Definition:
asset/effect.hpp:33
steam::mobject::MObject
MObject is the interface class for all "Media Objects".
Definition:
mobject.hpp:70
lib::Symbol
Token or Atom with distinct identity.
Definition:
symbol.hpp:117
lumiera::query::DefsManager
Organise a collection of preconfigured default objects.
Definition:
defs-manager.hpp:129
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:35
lumiera
Lumiera public interface.
Definition:
advice.cpp:104
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:71
steam::mobject::session::MObjectFactory::deleterFunc
static void deleterFunc(MObject *o)
custom deleter function allowing Placement to take ownership of MObjct instances
Definition:
mobjectfactory.hpp:65
steam::asset
The asset subsystem of the Steam-Layer.
Definition:
wrapperptr.hpp:35
steam
mobject
session
mobjectfactory.hpp
Generated on Fri Dec 13 2024 05:05:34 for Lumiera by
1.8.13