16class AtomicPositionQmlAdapter :
public QObject
19 Q_PROPERTY (
double ticks READ ticks WRITE setTicks NOTIFY positionChanged)
21 double seconds READ seconds WRITE setSeconds NOTIFY positionChanged)
23 qint64 samples READ samples WRITE setSamples NOTIFY positionChanged)
24 Q_PROPERTY (TimeFormat mode READ mode WRITE setMode NOTIFY positionChanged)
29 using ConstraintFunction =
30 std::function<units::precise_tick_t (units::precise_tick_t)>;
35 explicit AtomicPositionQmlAdapter (
37 std::optional<ConstraintFunction> constraints = std::nullopt,
38 QObject * parent =
nullptr);
40 double ticks ()
const;
41 void setTicks (
double ticks);
42 Q_INVOKABLE
void addTicks (
double ticks_to_add)
44 setTicks (ticks () + ticks_to_add);
47 double seconds ()
const;
48 void setSeconds (
double seconds);
49 Q_INVOKABLE
void addSeconds (
double seconds_to_add)
51 setSeconds (seconds () + seconds_to_add);
54 qint64 samples ()
const;
55 void setSamples (
double samples);
57 TimeFormat mode ()
const;
58 void setMode (TimeFormat format);
65 void positionChanged ();
82 std::optional<ConstraintFunction> constraints_;