diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2020-03-23 18:33:45 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2020-03-23 18:33:45 -0600 |
commit | ddf2c60c9a01e9adea39c23be091ae35af289c4c (patch) | |
tree | 1f9bf438cad722a07e4ff9fd95618fd5469901f7 /libs/ardour/mtc_slave.cc | |
parent | 3e35a6892275bbc9db477cb9cd566042efc907a7 (diff) |
improve variable width and precision for MTC slave delta display
Diffstat (limited to 'libs/ardour/mtc_slave.cc')
-rw-r--r-- | libs/ardour/mtc_slave.cc | 12 |
1 files 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<span foreground=\"green\" face=\"monospace\" >%s%s%" PRIi64 "</span>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<span foreground=\"green\" face=\"monospace\" >%s%s%d</span><span face=\"monospace\"> s</span>", + LEADINGZERO(abs(secs)), PLUSMINUS(-secs), abs(secs)); + } else { + snprintf(delta, sizeof(delta), "\u0394<span foreground=\"green\" face=\"monospace\" >%s%s%" PRIi64 "</span><span face=\"monospace\">sm</span>", + LEADINGZERO(abs(_current_delta)), PLUSMINUS(-_current_delta), abs(_current_delta)); + } } return std::string(delta); } |