summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_clock_slave.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/midi_clock_slave.cc')
-rw-r--r--libs/ardour/midi_clock_slave.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/ardour/midi_clock_slave.cc b/libs/ardour/midi_clock_slave.cc
index 05c0e9e2ac..a54965557a 100644
--- a/libs/ardour/midi_clock_slave.cc
+++ b/libs/ardour/midi_clock_slave.cc
@@ -205,6 +205,7 @@ MIDIClock_Slave::reset ()
_started = true;
// session->request_locate(0, false);
+ current_delta = 0;
}
void
@@ -343,6 +344,7 @@ MIDIClock_Slave::speed_and_position (double& speed, framepos_t& pos)
}
DEBUG_TRACE (DEBUG::MidiClock, string_compose ("speed_and_position: %1 & %2 <-> %3 (transport)\n", speed, pos, session->transport_frame()));
+ current_delta = pos - session->transport_frame();
return true;
}
@@ -354,3 +356,16 @@ MIDIClock_Slave::resolution() const
return (framecnt_t) one_ppqn_in_frames * ppqn;
}
+std::string
+MIDIClock_Slave::approximate_current_delta() const
+{
+ char delta[24];
+ if (last_timestamp == 0 || _starting) {
+ snprintf(delta, sizeof(delta), "\u2012\u2012\u2012\u2012");
+ } else {
+ snprintf(delta, sizeof(delta), "%s%4" PRIi64 " sm",
+ PLUSMINUS(-current_delta), abs(current_delta));
+ }
+ return std::string(delta);
+}
+