Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
time-grid.hpp
Go to the documentation of this file.
1/*
2 TIME-GRID.hpp - reference scale for quantised time
3
4 Copyright (C)
5 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
39#ifndef ASSET_META_TIME_GRID_H
40#define ASSET_META_TIME_GRID_H
41
42#include "steam/asset/meta.hpp"
43#include "lib/idi/entry-id.hpp"
44#include "lib/time/grid.hpp"
46#include "lib/symbol.hpp"
47
48
49
50namespace steam {
51namespace asset {
52namespace meta {
53
54 using lib::Symbol;
55 using lib::time::Time;
59 using lib::time::FSecs;
60
61
62 class TimeGrid;
65
66
78 : public Meta
79 , public virtual lib::time::Grid
80 {
81 public:
82 /* === shortcut builder functions === */
83 static PGrid build (FrameRate frames_per_second);
84 static PGrid build (Symbol gridID, FrameRate frames_per_second);
85 static PGrid build (Symbol gridID, FrameRate frames_per_second, Time origin);
86
87 protected:
88 TimeGrid (GridID const&);
89 };
90
91
92
93
94 template<>
96 {
97 string id;
98
101
108
114 Builder(string const& nameID ="")
115 : id {nameID}
116 , fps{1}
117 , origin{TimeValue(0)}
118 , predecessor{}
119 { }
120
124 lib::P<TimeGrid> commit();
125
126 };
127
128}}} // namespace steam::asset::meta
129#endif
Internal and organisational metadata.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Definition p.hpp:77
Token or Atom with distinct identity.
Definition symbol.hpp:120
Framerate specified as frames per second.
Abstraction of a value alignment grid.
Definition grid.hpp:59
basic constant internal time value.
a mutable time value, behaving like a plain number, allowing copy and re-accessing
Lumiera's internal time value datatype.
key abstraction: metadata, parametrisation, customisation and similar organisational traits.
Interface: a grid and scale definition for time quantisation.
Definition time-grid.hpp:80
static PGrid build(FrameRate frames_per_second)
Bare symbolic and hash ID used for accounting of asset like entries.
definition of a time grid abstraction for time and timecode handling.
boost::rational< int64_t > FSecs
rational representation of fractional seconds
Building and configuring a meta asset.
The asset subsystem of the Steam-Layer.
Steam-Layer implementation namespace root.
typed symbolic and hash ID for asset-like position accounting.
Definition entry-id.hpp:219
lib::P< TimeGrid > predecessor
when building a compound or variable grid, the predecessor is the grid active before the origin of th...
Builder(string const &nameID="")
initialise to blank (zero).
Marker types to indicate a literal string and a Symbol.
a family of time value like entities and their relationships.