Lumiera  0.pre.03
»edit your freedom«
sequence.cpp
Go to the documentation of this file.
1 /*
2  Sequence - Compound of MObjects placed within a tree of tracks. Building block of the Session
3 
4  Copyright (C)
5  2009, 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 
20 #include "steam/asset/sequence.hpp"
21 //#include "steam/mobject/session/fork.hpp"
22 #include "steam/assetmanager.hpp"
23 //#include "steam/mobject/placement.hpp"
24 //#include "steam/mobject/session/mobjectfactory.hpp"
25 
26 namespace steam {
27 namespace asset {
28 
29  using lib::AutoRegistered;
30 
31 
34  : Struct (idi)
35  { }
36 
37 
38  PSequence
40  {
41  REQUIRE (getRegistry, "can't create a Sequence prior to session initialisation");
42 
43  PSequence newSeq (AssetManager::instance().wrap (*new Sequence (idi)));
44  getRegistry().append (newSeq);
45 
46  ENSURE (newSeq);
47  ENSURE (getRegistry().isRegistered (*newSeq));
48  return newSeq;
49  }
50 
51 
52  void
54  {
56  TODO ("purge attached fork");
58  }
59 
60 
61 
62 }} // namespace asset
virtual void unlink()
release all links to other Asset objects held internally.
Definition: asset.cpp:164
Steam-Layer Interface: Asset Lookup and Organisation.
TODO type comment.
Definition: sequence.hpp:83
Sequence(Ident const &)
create an empty default configured Sequence
Definition: sequence.cpp:33
Steam-Layer implementation namespace root.
static lib::Depend< AssetManager > instance
get at the system-wide asset manager instance.
Helper mixin template for implementing a type intended to participate in automatic element tracking...
Structural building block of the session: a sequence of clips.
static PTarget create()
factory for creating smart-ptr managed TAR instances, automatically registered with the element-track...
a POD comprised of all the information sufficiently identifying any given Asset.
Definition: asset.hpp:149
void detach()
detach this element from the element-tracking registry.
virtual void unlink()
release all links to other Asset objects held internally.
Definition: sequence.cpp:53
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Definition: trait.hpp:71
key abstraction: structural asset Created automatically as a sideeffect of building the structure of ...
Definition: struct.hpp:104
The asset subsystem of the Steam-Layer.
Definition: wrapperptr.hpp:35
static RegistryLink getRegistry
storage for the functor to link an AutoRegistered entity to the corresponding registration service ...