11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
18PROMEKI_NAMESPACE_BEGIN
41class TimecodeGenerator {
51 TimecodeGenerator() =
default;
58 TimecodeGenerator(
const FrameRate &frameRate,
bool dropFrame =
false);
64 FrameRate frameRate()
const {
return _frameRate; }
70 void setFrameRate(
const FrameRate &frameRate);
76 bool dropFrame()
const {
return _dropFrame; }
89 void setDropFrame(
bool df);
95 Timecode::Mode timecodeMode()
const {
return _mode; }
101 RunMode runMode()
const {
return _runMode; }
107 void setRunMode(RunMode mode) {
116 Timecode timecode()
const {
return _timecode; }
125 void setTimecode(
const Timecode &tc);
135 void jam(
const Timecode &tc);
152 FrameCount frameCount()
const {
return _frameCount; }
162 FrameRate _frameRate;
163 bool _dropFrame =
false;
164 Timecode::Mode _mode;
165 RunMode _runMode = Forward;
167 Timecode _startTimecode;
168 FrameCount _frameCount{0};