Lumiera  0.pre.03
»edit your freedom«
fork.hpp
Go to the documentation of this file.
1 /*
2  FORK.hpp - A grouping device within the Session.
3 
4  Copyright (C)
5  2008, 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 
45 #ifndef MOBJECT_SESSION_FORK_H
46 #define MOBJECT_SESSION_FORK_H
47 
49 #include "lib/idi/entry-id.hpp"
50 #include "lib/time/timevalue.hpp"
51 
52 
53 
54 namespace steam {
55 namespace mobject {
56 namespace session {
57 
58  using lib::time::Time;
59 
60  class Fork;
61 
62  using ForkID = lib::idi::EntryID<Fork>;
63 
64 
65 
66 
69 
94  class Fork : public Meta
95  {
96  Time start_;
97  ForkID id_;
98 
99 
100  string
101  initShortID() const
102  {
103  return buildShortID("Fork");
104  }
105 
106  bool isValid() const;
107 
108  protected:
109  Fork (ForkID const&);
110  friend class MObjectFactory;
111 
112  public:
114 // vector<Placement<Track>> subTracks; ///////////TODO: it should really work with PlacementRefs! this here is just a decoy!!!!!!!
116 
117  bool isSameID (string const&);
118 
119  };
120 
121 
122  inline bool
123  Fork::isSameID(string const& refID)
124  {
125  return refID == id_.getSym();
126  }
127 
128 
129  } // namespace mobject::session
130 
134 
135 }} // namespace steam::mobject
136 #endif /*MOBJECT_SESSION_FORK_H*/
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location w...
Definition: trait.hpp:82
bool isSameID(string const &)
Child tracks in a tree structure.
Definition: fork.hpp:123
Fork(ForkID const &)
create a new fork-MObject based on the given unique ID.
Definition: fork.cpp:36
Steam-Layer implementation namespace root.
Namespace of Session and user visible high-level objects.
Definition: sequence.hpp:65
Lumiera&#39;s internal time value datatype.
Definition: timevalue.hpp:299
Intermediate Asset interface: metadata and processing instructions.
Meta-MObject doesn&#39;t represent real Media Content, but rather all sorts of Processing Instructions an...
A Fork serves as grouping device within the Session.
Definition: fork.hpp:94
bool isValid() const
MObject self-test (usable for asserting)
Definition: fork.cpp:45
Bare symbolic and hash ID used for accounting of asset like entries.
a family of time value like entities and their relationships.