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) Lumiera.org
5  2008, 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 
54 #ifndef MOBJECT_SESSION_FORK_H
55 #define MOBJECT_SESSION_FORK_H
56 
58 #include "lib/idi/entry-id.hpp"
59 #include "lib/time/timevalue.hpp"
60 
61 
62 
63 namespace steam {
64 namespace mobject {
65 namespace session {
66 
67  using lib::time::Time;
68 
69  class Fork;
70 
71  using ForkID = lib::idi::EntryID<Fork>;
72 
73 
74 
75 
78 
103  class Fork : public Meta
104  {
105  Time start_;
106  ForkID id_;
107 
108 
109  string
110  initShortID() const
111  {
112  return buildShortID("Fork");
113  }
114 
115  bool isValid() const;
116 
117  protected:
118  Fork (ForkID const&);
119  friend class MObjectFactory;
120 
121  public:
123 // vector<Placement<Track>> subTracks; ///////////TODO: it should really work with PlacementRefs! this here is just a decoy!!!!!!!
125 
126  bool isSameID (string const&);
127 
128  };
129 
130 
131  inline bool
132  Fork::isSameID(string const& refID)
133  {
134  return refID == id_.getSym();
135  }
136 
137 
138  } // namespace mobject::session
139 
143 
144 }} // namespace steam::mobject
145 #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:89
bool isSameID(string const &)
Child tracks in a tree structure.
Definition: fork.hpp:132
Fork(ForkID const &)
create a new fork-MObject based on the given unique ID.
Definition: fork.cpp:45
Steam-Layer implementation namespace root.
Namespace of Session and user visible high-level objects.
Definition: sequence.hpp:74
Lumiera&#39;s internal time value datatype.
Definition: timevalue.hpp:305
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:103
bool isValid() const
MObject self-test (usable for asserting)
Definition: fork.cpp:54
Bare symbolic and hash ID used for accounting of asset like entries.
a family of time value like entities and their relationships.