![]() |
Lumiera 0.pre.04
»edit your freedom«
|
#include "lib/time/timecode.hpp"
Classical Timecode value reminiscent to SMPTE format.
After quantisation, the resulting (materialised) time value is decimated into a hours, a minutes, a seconds part and the remainder is cast into a frame number relative to the seconds. Consequently, a SmpteTC representation is always linked implicitly to a specific framerate.
0:0:0:0 minus 1 frame yields -0:0:0:1Definition at line 144 of file timecode.hpp.
Public Types | |
| using | Format = format::Smpte |
Public Attributes | |
| HourDigit | hours |
| SexaDigit | mins |
| SexaDigit | secs |
| SexaDigit | frames |
| Signum | sgn |
Public Member Functions | |
| SmpteTC (QuTime const &quantisedTime) | |
| SmpteTC (SmpteTC const &) | |
| SmpteTC & | operator= (SmpteTC const &) |
| uint | getFps () const |
| void | clear () |
| void | rebuild () |
| void | invertOrientation () |
| flip the orientation of min, sec, and frames. | |
| SmpteTC & | operator++ () |
| SmpteTC & | operator-- () |
Public Member Functions inherited from TCode | |
| virtual | ~TCode () |
| operator string () const | |
| string | describe () const |
| Time | getTime () const |
Private Member Functions | |
| virtual string | show () const |
| virtual Literal | tcID () const |
| virtual TimeValue | value () const |
Private Attributes | |
| uint | effectiveFramerate_ |
Additional Inherited Members | |
Protected Member Functions inherited from TCode | |
| TCode (PQuant const &quant) | |
Protected Attributes inherited from TCode | |
| PQuant | quantiser_ |
Definition at line 303 of file timecode.cpp.
References QuTime::castInto().
Here is the call graph for this function:Definition at line 312 of file timecode.cpp.
References SmpteTC::frames, SmpteTC::hours, SmpteTC::mins, SmpteTC::secs, and SmpteTC::sgn.
| using Format = format::Smpte |
Definition at line 156 of file timecode.hpp.
|
privatevirtual |
Implements TCode.
Definition at line 416 of file timecode.cpp.
References SmpteTC::frames, SmpteTC::hours, SmpteTC::mins, SmpteTC::secs, SmpteTC::sgn, and Digxel< NUM, FMT >::show().
Here is the call graph for this function:
|
inlineprivatevirtual |
Implements TCode.
Definition at line 151 of file timecode.hpp.
|
inlineprivatevirtual |
Implements TCode.
Definition at line 152 of file timecode.hpp.
References Smpte::evaluate(), and TCode::quantiser_.
Here is the call graph for this function:Definition at line 326 of file timecode.cpp.
References SmpteTC::effectiveFramerate_, SmpteTC::frames, SmpteTC::hours, SmpteTC::mins, SmpteTC::secs, and SmpteTC::sgn.
| uint getFps | ( | ) | const |
Definition at line 409 of file timecode.cpp.
References SmpteTC::effectiveFramerate_.
Referenced by Smpte::evaluate(), SmpteTC::invertOrientation(), and lib::time::anonymous_namespace{timecode.cpp}::wrapFrames().
Here is the caller graph for this function:| void clear | ( | ) |
Definition at line 358 of file timecode.cpp.
References SmpteTC::frames, SmpteTC::hours, SmpteTC::mins, SmpteTC::secs, Digxel< NUM, FMT >::setValueRaw(), and SmpteTC::sgn.
Referenced by Smpte::rebuild().
Here is the call graph for this function:
Here is the caller graph for this function:| void rebuild | ( | ) |
Definition at line 369 of file timecode.cpp.
References Smpte::evaluate(), TCode::quantiser_, and Smpte::rebuild().
Referenced by TimeFormats_test::checkSmpte().
Here is the call graph for this function:
Here is the caller graph for this function:| void invertOrientation | ( | ) |
flip the orientation of min, sec, and frames.
Besides changing the sign, this will flip the meaning of the component fields, which by definition are always oriented towards zero.
Normalised value fields are defined positive, with automatic overflow to next higher field. This might cause the hours to become negative. When invoked in this case, the meaning changes from -h + (m+s+f) to -(h+m+s+f)
Definition at line 388 of file timecode.cpp.
References SmpteTC::frames, SmpteTC::getFps(), SmpteTC::hours, SmpteTC::mins, SmpteTC::secs, Digxel< NUM, FMT >::setValueRaw(), and SmpteTC::sgn.
Referenced by Smpte::applyRangeLimitStrategy(), and TimeFormats_test::checkSmpte().
Here is the call graph for this function:
Here is the caller graph for this function:| SmpteTC & operator++ | ( | ) |
Definition at line 432 of file timecode.cpp.
References SmpteTC::frames, and SmpteTC::sgn.
| SmpteTC & operator-- | ( | ) |
Definition at line 439 of file timecode.cpp.
References SmpteTC::frames, and SmpteTC::sgn.
|
private |
Definition at line 148 of file timecode.hpp.
Referenced by SmpteTC::getFps(), and SmpteTC::operator=().
| HourDigit hours |
Definition at line 169 of file timecode.hpp.
Referenced by SmpteTC::SmpteTC(), Smpte::applyRangeLimitStrategy(), TimeFormats_test::checkSmpte(), SmpteTC::clear(), Smpte::evaluate(), SmpteTC::invertOrientation(), SmpteTC::operator=(), lib::time::anonymous_namespace{timecode.cpp}::setupComponentNormalisation(), SmpteTC::show(), lib::time::anonymous_namespace{timecode.cpp}::wrapHours(), and lib::time::anonymous_namespace{timecode.cpp}::wrapMinutes().
| SexaDigit mins |
Definition at line 170 of file timecode.hpp.
Referenced by SmpteTC::SmpteTC(), TimeFormats_test::checkSmpte(), SmpteTC::clear(), Smpte::evaluate(), SmpteTC::invertOrientation(), SmpteTC::operator=(), lib::time::anonymous_namespace{timecode.cpp}::setupComponentNormalisation(), SmpteTC::show(), lib::time::anonymous_namespace{timecode.cpp}::wrapMinutes(), and lib::time::anonymous_namespace{timecode.cpp}::wrapSeconds().
| SexaDigit secs |
Definition at line 171 of file timecode.hpp.
Referenced by SmpteTC::SmpteTC(), TimeFormats_test::checkSmpte(), SmpteTC::clear(), Smpte::evaluate(), SmpteTC::invertOrientation(), SmpteTC::operator=(), lib::time::anonymous_namespace{timecode.cpp}::setupComponentNormalisation(), SmpteTC::show(), lib::time::anonymous_namespace{timecode.cpp}::wrapFrames(), and lib::time::anonymous_namespace{timecode.cpp}::wrapSeconds().
| SexaDigit frames |
Definition at line 172 of file timecode.hpp.
Referenced by SmpteTC::SmpteTC(), TimeFormats_test::checkSmpte(), SmpteTC::clear(), Smpte::evaluate(), SmpteTC::invertOrientation(), SmpteTC::operator++(), SmpteTC::operator--(), SmpteTC::operator=(), Smpte::rebuild(), lib::time::anonymous_namespace{timecode.cpp}::setupComponentNormalisation(), SmpteTC::show(), and lib::time::anonymous_namespace{timecode.cpp}::wrapFrames().
| Signum sgn |
Definition at line 173 of file timecode.hpp.
Referenced by SmpteTC::SmpteTC(), TimeFormats_test::checkSmpte(), SmpteTC::clear(), Smpte::evaluate(), SmpteTC::invertOrientation(), SmpteTC::operator++(), SmpteTC::operator--(), SmpteTC::operator=(), and SmpteTC::show().
Inheritance diagram for SmpteTC:
Collaboration diagram for SmpteTC: