From ddf2c60c9a01e9adea39c23be091ae35af289c4c Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 23 Mar 2020 18:33:45 -0600 Subject: [PATCH] improve variable width and precision for MTC slave delta display --- libs/ardour/mtc_slave.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libs/ardour/mtc_slave.cc b/libs/ardour/mtc_slave.cc index 62c1b77af1..b73742d7f9 100644 --- a/libs/ardour/mtc_slave.cc +++ b/libs/ardour/mtc_slave.cc @@ -571,7 +571,7 @@ MTC_TransportMaster::position_string() const std::string MTC_TransportMaster::delta_string () const { - char delta[80]; + char delta[128]; SafeTime last; current.safe_read (last); @@ -580,8 +580,14 @@ MTC_TransportMaster::delta_string () const if (last.timestamp == 0 || reset_pending) { snprintf(delta, sizeof(delta), "\u2012\u2012\u2012\u2012"); } else { - snprintf(delta, sizeof(delta), "\u0394%s%s%" PRIi64 "sm", - LEADINGZERO(abs(_current_delta)), PLUSMINUS(-_current_delta), abs(_current_delta)); + if (abs (_current_delta) > _session->sample_rate()) { + int secs = rint ((double) _current_delta / _session->sample_rate()); + snprintf(delta, sizeof(delta), "\u0394%s%s%d s", + LEADINGZERO(abs(secs)), PLUSMINUS(-secs), abs(secs)); + } else { + snprintf(delta, sizeof(delta), "\u0394%s%s%" PRIi64 "sm", + LEADINGZERO(abs(_current_delta)), PLUSMINUS(-_current_delta), abs(_current_delta)); + } } return std::string(delta); }