Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Asset representation of structural elements within the model.
Structural parts of the Session (e.g. "tracks", i.e. Fork objects) can be reflected into the "bookkeeping view" as a specific Kind of Asset. For the different kinds of Assets, we use sub-interfaces inheriting from the general Asset interface, each of which expose a distinguishing feature. In the case of structural assets, the key point is the ability to retrieve an instance based on a capabilities query; structural assets are typically created on demand, just by referral. Thus, the collection of these assets provides a map for exploring the current session's structure and allow for tweaking of the default behaviour.
entryID
within the asset view.asset::Struct instances are created on demand; the interface is to invoke the StructFactory with a (typed) Query describing properties or capabilities. In case this query succeeds, an existing asset will be returned, otherwise a suitable new instance is created automatically. Typically, structural assets aren't deleted. Doing so would require a dedicated function which not only drops an asset instance from AssetManager, but also ensures removal of all properties within the model which could cause automatic re-creation of this asset. E.g. purging a track asset (=unique trackID) would necessitate to remove or disconnect all placements located within the scope of the referred Fork; this could be sub forks, clips, effects, automation or labels. Obviously, this is way beyond the realm of asset management.
Definition in file struct.hpp.
#include "lib/symbol.hpp"
#include "steam/asset.hpp"
#include "common/query.hpp"
#include "lib/nocopy.hpp"
#include <memory>
#include <string>
Classes | |
class | ID< Struct > |
class | Struct |
key abstraction: structural asset Created automatically as a sideeffect of building the structure of the high-level-model (session contents), thus providing IDs for later referral, search and attachment of metadata. More... | |
class | StructFactory |
Factory specialised for creating Structural Asset objects. More... | |
Namespaces | |
steam | |
Steam-Layer implementation namespace root. | |
steam::asset | |
The asset subsystem of the Steam-Layer. | |