39 void sync(TrackPosition trackPos = TrackPosition(0));
41 void sync(TimePoint tp, TrackPosition pos);
43 void syncSoft(TimePoint tp, TrackPosition pos,
62 TimePoint srcTimePoint;
63 TrackPosition srcPosition = 0;
64 TimePoint dstTimePoint;
65 TrackDuration srcPosOffest = 0;
66 TrackPosition dstPosition = 0;
72 SoftSyncData makeSoftSyncData(
const TimePoint &srcTp,
const TrackPosition &srcPos,
73 const TimePoint &dstTp)
const;
75 TrackPosition positionFromTimeInternal(
const TimePoint &tp)
const;
77 TimePoint timeFromPositionInternal(
const TrackPosition &pos)
const;
79 void scrollTimeTillNow();
81 static SteadyClock::duration toClockDuration(TrackDuration trackDuration,
84 static TrackDuration toTrackDuration(SteadyClock::duration clockDuration,
PlaybackRate rate);
88 bool m_started =
false;
89 bool m_active =
false;
91 TrackPosition m_position = 0;
92 TimePoint m_timePoint;
93 std::optional<SoftSyncData> m_softSyncData;