117 return clip (clipID,
TimeSpan{start,dur});
157 const GenNode timeline = emptyTimeline (baseID, forkRootID);
167 , set (rootTrackName)
171 , ins (makeName(clip1))
174 , ins (makeName(clip2))
175 , ins (defineTiming(
Time{FSecs{5}},
Duration{FSecs{4}}))
190 const GenNode timeline = emptyTimeline (baseID, forkRootID);
193 const GenNode track1 = emptyTrack (
"Track-1");
194 const GenNode track2 = emptyTrack (
"Track-2");
195 const GenNode track21 = emptyTrack (
"Track-21");
196 const GenNode track22 = emptyTrack (
"Track-22");
197 const GenNode track221 = emptyTrack (
"Track-221");
198 const GenNode track222 = emptyTrack (
"Track-222");
199 const GenNode timeRuler = ruler();
200 const GenNode scopeRuler0 = ruler();
201 const GenNode scopeRuler2 = ruler();
202 const GenNode scopeRuler22 = ruler();
203 const GenNode scopeRuler221 = ruler();
209 , ins (rootTrackName)
215 , ins (makeName(track1))
218 , ins (makeName(track2))
223 , ins (makeName(track21))
226 , ins (makeName(track22))
231 , ins (makeName(track221))
232 , ins (scopeRuler221)
235 , ins (makeName(track222))
249 TODO (
"build internal diagnostic data structure, apply a copy of the message");
285 def.operation ([](
string dummyID)
287 string message{
_Fmt{
"fabricate Sequence_1 (dummyID='%s')"} % dummyID};
291 auto rootID = session::Root::getID();
294 .captureUndo ([](
string dummyID) ->
string
296 return _Fmt{
"fabricateSequence_1('%s')"} % dummyID;
298 .undoOperation ([](
string,
string memento)
311 def.operation ([](
string dummyID)
313 string message{
_Fmt{
"fabricate Sequence_2 (dummyID='%s')"} % dummyID};
317 auto rootID = session::Root::getID();
320 .captureUndo ([](
string dummyID) ->
string
322 return _Fmt{
"fabricateSequence_2('%s')"} % dummyID;
324 .undoOperation ([](
string,
string memento)
336 def.operation ([](
string dummyID)
338 string message{
_Fmt{
"fabricate gulp (dummyID='%s')"} % dummyID};
341 .captureUndo ([](
string dummyID) ->
string
343 return _Fmt{
"fabricateGulp('%s')"} % dummyID;
345 .undoOperation ([](
string,
string memento)
Access point to singletons and other kinds of dependencies designated by type.
Mutator && set(string const &key, X &&content)
Mutator && type(string const &typeID)
Hash implementation based on a lumiera unique object id (LUID) When invoking the default ctor,...
string const & getSym() const
Duration is the internal Lumiera time metric.
A time interval anchored at a specific point in time.
Lumiera's internal time value datatype.
static const Time NEVER
border condition marker value. NEVER >= any time value
Global access point to push state update and notification of events from the lower layers into the Lu...
static lib::Depend< GuiNotification > facade
static storage for the facade access front-end
Scaffolding to drive the evolution of the Lumiera application.
static lib::Depend< DummySessionConnection > instance
access point to set up the scaffolding.
MutationMessage fabricateSeq1(string baseID)
Build a population diff message to describe a specific session structure to add.
void applyCopy(MutationMessage const &)
~DummySessionConnection()
MutationMessage fabricateSeq2(string baseID)
Build another population diff message for a way more contrived timeline structure.
A front-end for using printf-style formatting.
Actually defining a command and binding it to execution parameters.
#define COMMAND_DEFINITION(_NAME_)
Macro to write command definitions in a compact form.
Dummy and scaffolding to help development of the UI - Session connection.
Generic building block for tree shaped (meta)data structures.
Major public Interface of the Lumiera GUI.
Generic Message with an embedded diff, to describe changes to model elements.
boost::rational< int64_t > FSecs
rational representation of fractional seconds
lib::idi::BareEntryID const & ID
@ NOTE_INFO
possibly interesting info that can be safely ignored
@ NOTE_ERROR
severe condition to be indicated prominently
@ NOTE_WARN
something to be aware of, to be indicated unobtrusively
CommandSetup test_fake_injectSequence_2
CommandSetup test_fake_injectSequence_1
GenNode emptyTrack(string trackID)
GenNode makeName(GenNode const &elm)
fabricate an attribute node based on the human-readable part of the given elemen's ID
GenNode defineTiming(Time start, Duration dur=Duration{FSecs{1}})
define the (optional) timings for a clip
GenNode emptyTimeline(string baseID, RandID const &forkRootID)
GenNode clip(string clipID, TimeSpan timings)
Namespace of Session and user visible high-level objects.
Steam-Layer implementation namespace root.
bool contains(MAP &map, typename MAP::key_type const &key)
shortcut for containment test on a map
bool isnil(lib::time::Duration const &dur)
MObject within the session to represent "the session itself".
generic data element node within a tree
Opaque message to effect a structural change on a target, which is likewise only known in an abstract...
Constructor for a specially crafted 'ref GenNode'.
Entry-ID with a symbolic tag but just a plain random hash part.
a family of time value like entities and their relationships.
Concrete implementation to apply structural changes to hierarchical data structures.
Hard wired key constants and basic definitions for communication with the GUI.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...