![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "lib/time/mutation.hpp"
Interface: an opaque change imposed onto some time value.
Definition at line 91 of file mutation.hpp.
Static Public Member Functions | |
| static EncapsulatedMutation | changeTime (Time) |
| Convenience factory to yield a simple Mutation changing the absolute start time. | |
| static EncapsulatedMutation | changeDuration (Duration) |
| Convenience factory: simple Mutation to adjust the duration or length of a timespan. | |
| static EncapsulatedMutation | adjust (Offset) |
| Convenience factory: simple Mutation to adjust the duration or length of a timespan. | |
| static EncapsulatedMutation | materialise (QuTime const &) |
| Convenience factory: materialise the given quantised time into an explicit fixed internal time value, according to the underlying time grid; impose the resulting value then as new time point or start point to the target. | |
| static EncapsulatedMutation | nudge (int adjustment) |
| build a time mutation to nudge the target time value by an offset, defined as number of steps on an implicit nudge grid. | |
| static EncapsulatedMutation | nudge (int adjustment, Symbol gridID) |
| build a time mutation to nudge the target time value in steps based on a pre-defined grid. | |
Public Member Functions | |
| virtual | ~Mutation () |
| virtual void | change (Duration &) const =0 |
| virtual void | change (TimeSpan &) const =0 |
| virtual void | change (QuTime &) const =0 |
Static Protected Member Functions | |
| static TimeValue & | imposeChange (TimeValue &, TimeValue const &) |
| static TimeValue & | imposeChange (TimeValue &, Offset const &) |
| static TimeValue & | imposeChange (TimeValue &, int) |
| static TimeValue & | imposeChange (QuTime &, int) |
|
virtual |
Definition at line 56 of file mutation.cpp.
|
pure virtual |
Implemented in Control< TI >.
Referenced by Duration::accept(), TimeSpan::accept(), Mutation::adjust(), Link< TI, TAR >::mutateLength(), Link< TI, TAR >::mutateTimeSpan(), Link< TI, TAR >::processValueChange(), and Link< TI, TAR >::useLengthAsChange().
Here is the caller graph for this function:
|
pure virtual |
Implemented in Control< TI >.
|
pure virtual |
Implemented in Control< TI >.
|
static |
Convenience factory to yield a simple Mutation changing the absolute start time.
This whole procedure might look quite inefficient, but actually most of the abstractions are removed at runtime, leaving only a single indirection through the VTable of the Mutation Interface.
| error::Logic | when attempting to change the (non existent) start time of a Duration |
Definition at line 285 of file mutation.cpp.
Referenced by TimeFormats_test::checkTimecodeUsageCycle(), and TimeMutation_test::mutate_by_Value().
Here is the caller graph for this function:
|
static |
Convenience factory: simple Mutation to adjust the duration or length of a timespan.
| error::Logic | when attempting to change the "duration" of a quantised time point |
Definition at line 296 of file mutation.cpp.
Referenced by TimeMutation_test::mutate_by_Value().
Here is the caller graph for this function:
|
static |
Convenience factory: simple Mutation to adjust the duration or length of a timespan.
| error::Logic | when attempting to change the "duration" of a quantised time point |
Definition at line 307 of file mutation.cpp.
References Mutation::change().
Referenced by TimeMutation_test::mutate_by_Offset().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Convenience factory: materialise the given quantised time into an explicit fixed internal time value, according to the underlying time grid; impose the resulting value then as new time point or start point to the target.
Definition at line 319 of file mutation.cpp.
Referenced by TimeMutation_test::mutate_quantised().
Here is the caller graph for this function:
|
static |
build a time mutation to nudge the target time value by an offset, defined as number of steps on an implicit nudge grid.
If the target is an continuous (not quantised) time value or duration, an internal 'default nudge grid' will be used to calculate the offset value. Typically, this grid counts in seconds. To the contrary, when the target is a quantised value, it will be aligned to the grid point relative to the current value's next grid point, measured in number of steps. This includes materialising the internal time to the exact grid position. If especially the adjustment is zero, the internal value will be changed to literally equal the current value's next grid point.
Definition at line 336 of file mutation.cpp.
Referenced by TimeFormats_test::checkTimecodeUsageCycle(), TimeMutation_test::mutate_by_Increment(), and Mutation::nudge().
Here is the caller graph for this function:
|
static |
build a time mutation to nudge the target time value in steps based on a pre-defined grid.
| adjustment | number of grid steps to apply as offset |
| gridID | symbolic reference to a grid, which needs to be defined "somewhere" within the system, typically within the session. |
Definition at line 124 of file common-services.cpp.
References Mutation::nudge(), and Quantiser::retrieve().
Here is the call graph for this function:actually force a change into a target time entity to mutate. Mutation is declared fried to TimeValue and thus is allowed to influence the basic value stored in each time entity
Definition at line 138 of file mutation.hpp.
Referenced by Mutation::imposeChange(), Mutation::imposeChange(), Link< TI, TAR >::mutateLength(), Link< TI, TAR >::mutateTimeSpan(), and Link< TI, TAR >::processValueChange().
Here is the caller graph for this function:variation to mutate a target time value by applying an offset
Definition at line 145 of file mutation.hpp.
References Mutation::imposeChange().
Here is the call graph for this function:nudge a target time value by a step wise offset. The standard case uses a fixed offset of 1 second per step //////////////////TICKET #810
Definition at line 154 of file mutation.hpp.
References Mutation::imposeChange().
Here is the call graph for this function:
Inheritance diagram for Mutation:
Collaboration diagram for Mutation: