38 void sync(TrackPosition trackPos = TrackPosition(0));
40 void sync(TimePoint tp, TrackPosition pos);
42 void syncSoft(TimePoint tp, TrackPosition pos,
61 TimePoint srcTimePoint;
62 TrackPosition srcPosition = 0;
63 TimePoint dstTimePoint;
64 TrackDuration srcPosOffest = 0;
65 TrackPosition dstPosition = 0;
71 SoftSyncData makeSoftSyncData(
const TimePoint &srcTp,
const TrackPosition &srcPos,
72 const TimePoint &dstTp)
const;
74 TrackPosition positionFromTimeInternal(
const TimePoint &tp)
const;
76 TimePoint timeFromPositionInternal(
const TrackPosition &pos)
const;
78 void scrollTimeTillNow();
80 static SteadyClock::duration toClockDuration(TrackDuration trackDuration,
83 static TrackDuration toTrackDuration(SteadyClock::duration clockDuration,
PlaybackRate rate);
87 bool m_started =
false;
88 bool m_active =
false;
90 TrackPosition m_position = 0;
91 TimePoint m_timePoint;
92 std::optional<SoftSyncData> m_softSyncData;