TMM: fix last message + age display

This commit is contained in:
Robin Gareus 2020-05-13 23:57:40 +02:00
parent 8ac4cac07d
commit 6622c55912
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
2 changed files with 8 additions and 6 deletions

View file

@ -322,6 +322,7 @@ TransportMastersWidget::Row::Row (TransportMastersWidget& p)
, request_option_menu (0) , request_option_menu (0)
, name_editor (0) , name_editor (0)
, save_when (0) , save_when (0)
, save_last (" --:--:--:--")
{ {
remove_button.set_icon (ArdourIcon::CloseCross); remove_button.set_icon (ArdourIcon::CloseCross);
format.modify_font (UIConfiguration::instance().get_BigMonospaceFont()); format.modify_font (UIConfiguration::instance().get_BigMonospaceFont());
@ -338,6 +339,7 @@ TransportMastersWidget::Row::Row (TransportMastersWidget& p)
last_box.modify_bg (Gtk::STATE_NORMAL, bg_color); last_box.modify_bg (Gtk::STATE_NORMAL, bg_color);
last.modify_fg (Gtk::STATE_NORMAL, fg_color); last.modify_fg (Gtk::STATE_NORMAL, fg_color);
} }
TransportMastersWidget::Row::~Row () TransportMastersWidget::Row::~Row ()
@ -608,10 +610,9 @@ TransportMastersWidget::Row::update (Session* s, samplepos_t now)
static const char *disp_fmt = "<span font_family=\"monospace\" foreground=\"gray\" background=\"black\" size=\"larger\" > %1 </span>"; static const char *disp_fmt = "<span font_family=\"monospace\" foreground=\"gray\" background=\"black\" size=\"larger\" > %1 </span>";
string last_str (" --:--:--:--");
string current_str (" --:--:--:--"); string current_str (" --:--:--:--");
string delta_str ("\u0394 ---- "); string delta_str ("\u0394 ---- ");
string gap_str (" "); string age_str (" ");
if (tm->speed_and_position (speed, pos, most_recent, when, now)) { if (tm->speed_and_position (speed, pos, most_recent, when, now)) {
@ -622,7 +623,6 @@ TransportMastersWidget::Row::update (Session* s, samplepos_t now)
if ((ttm = boost::dynamic_pointer_cast<TimecodeTransportMaster> (tm))) { if ((ttm = boost::dynamic_pointer_cast<TimecodeTransportMaster> (tm))) {
format.set_text (timecode_format_name (ttm->apparent_timecode_format())); format.set_text (timecode_format_name (ttm->apparent_timecode_format()));
last_str = Timecode::timecode_format_time (l);
} else if ((mtm = boost::dynamic_pointer_cast<MIDIClock_TransportMaster> (tm))) { } else if ((mtm = boost::dynamic_pointer_cast<MIDIClock_TransportMaster> (tm))) {
char buf[8]; char buf[8];
snprintf (buf, sizeof (buf), "%.1fBPM", mtm->bpm()); snprintf (buf, sizeof (buf), "%.1fBPM", mtm->bpm());
@ -631,13 +631,14 @@ TransportMastersWidget::Row::update (Session* s, samplepos_t now)
delta_str = tm->delta_string (); delta_str = tm->delta_string ();
save_when = when; save_when = when;
save_last = current_str;
} else { } else {
format.set_text (" ? "); format.set_text (" ? ");
} }
if (save_when) { if (save_when) {
char gap[32]; char gap[32];
float seconds = (now - when) / (float) AudioEngine::instance()->sample_rate(); float seconds = (now - save_when) / (float) AudioEngine::instance()->sample_rate();
if (seconds < 0) { if (seconds < 0) {
seconds = 0; seconds = 0;
} }
@ -651,10 +652,10 @@ TransportMastersWidget::Row::update (Session* s, samplepos_t now)
snprintf (gap, sizeof (gap), "%3.0fh ago", seconds/3600.f); snprintf (gap, sizeof (gap), "%3.0fh ago", seconds/3600.f);
} }
gap[31] = '\0'; gap[31] = '\0';
gap_str = gap; age_str = gap;
} }
last.set_text (string_compose (_("%1 %2"), last_str, gap_str)); last.set_text (string_compose (_("%1 %2"), save_last, age_str));
current.set_text (string_compose ("%1 %2", current_str, delta_str)); current.set_text (string_compose ("%1 %2", current_str, delta_str));
} }

View file

@ -93,6 +93,7 @@ class TransportMastersWidget : public Gtk::VBox, public ARDOUR::SessionHandlePtr
ArdourWidgets::ArdourButton remove_button; ArdourWidgets::ArdourButton remove_button;
FloatingTextEntry* name_editor; FloatingTextEntry* name_editor;
samplepos_t save_when; samplepos_t save_when;
std::string save_last;
void build_request_options(); void build_request_options();
void mod_request_type (ARDOUR::TransportRequestType); void mod_request_type (ARDOUR::TransportRequestType);