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 
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 
61  {
65  static void deleterFunc (MObject* o) { delete o; }
66 
67  public:
68 
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
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location w...
Definition: trait.hpp:82
key abstraction: media-like assets
Definition: media.hpp:63
Core abstraction of the Session model: a media object.
Steam-Layer implementation namespace root.
Namespace of Session and user visible high-level objects.
Definition: sequence.hpp:65
Effect or media processing component.
MObject is the interface class for all "Media Objects".
Definition: mobject.hpp:70
Token or Atom with distinct identity.
Definition: symbol.hpp:117
Organise a collection of preconfigured default objects.
Marker types to indicate a literal string and a Symbol.
bookkeeping (Asset) view of a media clip.
Definition: asset/clip.hpp:35
Lumiera public interface.
Definition: advice.cpp:104
Bare symbolic and hash ID used for accounting of asset like entries.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Definition: trait.hpp:71
static void deleterFunc(MObject *o)
custom deleter function allowing Placement to take ownership of MObjct instances
The asset subsystem of the Steam-Layer.
Definition: wrapperptr.hpp:35