Tweak status-bar layout & design
* remove color: increase contrast, do not use red/green foreground because it does no work with various themes * do use red background to alert users * use italics for labels heading * increase spacing between elements * use mono-space font with DSP load (fixed with) up to 99% * Fix translations, use compose strings
This commit is contained in:
parent
2cb075bf49
commit
9076cc60a4
@ -1180,35 +1180,38 @@ ARDOUR_UI::set_fps_timeout_connection ()
|
||||
void
|
||||
ARDOUR_UI::update_sample_rate (samplecnt_t)
|
||||
{
|
||||
char buf[64];
|
||||
std::string heading = string_compose (X_("<i>%1</i>: "), _("Audio"));
|
||||
|
||||
ENSURE_GUI_THREAD (*this, &ARDOUR_UI::update_sample_rate, ignored)
|
||||
|
||||
if (!AudioEngine::instance()->running()) {
|
||||
|
||||
snprintf (buf, sizeof (buf), "%s", _("Audio: <span foreground=\"red\">none</span>"));
|
||||
sample_rate_label.set_markup (heading + _("none"));
|
||||
|
||||
} else {
|
||||
|
||||
samplecnt_t rate = AudioEngine::instance()->sample_rate();
|
||||
|
||||
if (rate == 0) {
|
||||
|
||||
/* no sample rate available */
|
||||
snprintf (buf, sizeof (buf), "%s", _("Audio: <span foreground=\"red\">none</span>"));
|
||||
sample_rate_label.set_markup (heading + _("none"));
|
||||
|
||||
} else {
|
||||
char buf[64];
|
||||
|
||||
if (fmod (rate, 1000.0) != 0.0) {
|
||||
snprintf (buf, sizeof (buf), _("Audio: <span foreground=\"green\">%.1f kHz / %4.1f ms</span>"),
|
||||
(float) rate / 1000.0f,
|
||||
(AudioEngine::instance()->usecs_per_cycle() / 1000.0f));
|
||||
snprintf (buf, sizeof (buf), "%.1f %s / %4.1f %s",
|
||||
(float) rate / 1000.0f, _("kHz"),
|
||||
(AudioEngine::instance()->usecs_per_cycle() / 1000.0f), _("ms"));
|
||||
} else {
|
||||
snprintf (buf, sizeof (buf), _("Audio: <span foreground=\"green\">%" PRId64 " kHz / %4.1f ms</span>"),
|
||||
rate/1000,
|
||||
(AudioEngine::instance()->usecs_per_cycle() / 1000.0f));
|
||||
snprintf (buf, sizeof (buf), "%" PRId64 " %s / %4.1f %s",
|
||||
rate / 1000, _("kHz"),
|
||||
(AudioEngine::instance()->usecs_per_cycle() / 1000.0f), _("ms"));
|
||||
}
|
||||
sample_rate_label.set_markup (heading + buf);
|
||||
}
|
||||
}
|
||||
sample_rate_label.set_markup (buf);
|
||||
}
|
||||
|
||||
void
|
||||
@ -1220,7 +1223,7 @@ ARDOUR_UI::update_format ()
|
||||
}
|
||||
|
||||
stringstream s;
|
||||
s << _("File:") << X_(" <span foreground=\"green\">");
|
||||
s << X_("<i>") << _("File") << X_("</i>: ");
|
||||
|
||||
switch (_session->config.get_native_file_header_format ()) {
|
||||
case BWF:
|
||||
@ -1269,8 +1272,6 @@ ARDOUR_UI::update_format ()
|
||||
break;
|
||||
}
|
||||
|
||||
s << X_("</span>");
|
||||
|
||||
format_label.set_markup (s.str ());
|
||||
}
|
||||
|
||||
@ -1280,28 +1281,29 @@ ARDOUR_UI::update_cpu_load ()
|
||||
const unsigned int x = _session ? _session->get_xrun_count () : 0;
|
||||
double const c = AudioEngine::instance()->get_dsp_load ();
|
||||
|
||||
std::string heading = string_compose (X_("<i>%1</i>: "), _("DSP"));
|
||||
const char* const bg = c > 90 ? " background=\"red\"" : "";
|
||||
|
||||
char buf[64];
|
||||
if (x > 9999) {
|
||||
snprintf (buf, sizeof (buf), "DSP: <span%s>%.0f%%</span> (>10k)", bg, c);
|
||||
snprintf (buf, sizeof (buf), "<span face=\"monospace\"%s>%2.0f%%</span> (>10k)", bg, c);
|
||||
} else if (x > 0) {
|
||||
snprintf (buf, sizeof (buf), "DSP: <span%s>%.0f%%</span> (%d)", bg, c, x);
|
||||
snprintf (buf, sizeof (buf), "<span face=\"monospace\"%s>%2.0f%%</span> (%d)", bg, c, x);
|
||||
} else {
|
||||
snprintf (buf, sizeof (buf), "DSP: <span%s>%.0f%%</span>", bg, c);
|
||||
snprintf (buf, sizeof (buf), "<span face=\"monospace\"%s>%2.0f%%</span>", bg, c);
|
||||
}
|
||||
|
||||
dsp_load_label.set_markup (buf);
|
||||
dsp_load_label.set_markup (heading + buf);
|
||||
|
||||
if (x > 9999) {
|
||||
snprintf (buf, sizeof (buf), _("DSP: %.1f%% X: >10k\n%s"), c, _("Shift+Click to clear xruns."));
|
||||
snprintf (buf, sizeof (buf), "%.1f%% X: >10k\n%s", c, _("Shift+Click to clear xruns."));
|
||||
} else if (x > 0) {
|
||||
snprintf (buf, sizeof (buf), _("DSP: %.1f%% X: %u\n%s"), c, x, _("Shift+Click to clear xruns."));
|
||||
snprintf (buf, sizeof (buf), "%.1f%% X: %u\n%s", c, x, _("Shift+Click to clear xruns."));
|
||||
} else {
|
||||
snprintf (buf, sizeof (buf), _("DSP: %.1f%%"), c);
|
||||
snprintf (buf, sizeof (buf), "%.1f%%", c);
|
||||
}
|
||||
|
||||
ArdourWidgets::set_tooltip (dsp_load_label, buf);
|
||||
ArdourWidgets::set_tooltip (dsp_load_label, heading + buf);
|
||||
}
|
||||
|
||||
void
|
||||
@ -1310,8 +1312,10 @@ ARDOUR_UI::update_peak_thread_work ()
|
||||
char buf[64];
|
||||
const int c = SourceFactory::peak_work_queue_length ();
|
||||
if (c > 0) {
|
||||
snprintf (buf, sizeof (buf), _("PkBld: <span foreground=\"%s\">%d</span>"), c >= 2 ? X_("red") : X_("green"), c);
|
||||
peak_thread_work_label.set_markup (buf);
|
||||
std::string heading = string_compose (X_("<i>%1</i>: "), _("PkBld"));
|
||||
const char* const bg = c > 2 ? " background=\"red\"" : "";
|
||||
snprintf (buf, sizeof (buf), "<span %s>%d</span>", bg, c);
|
||||
peak_thread_work_label.set_markup (heading + buf);
|
||||
} else {
|
||||
peak_thread_work_label.set_markup (X_(""));
|
||||
}
|
||||
@ -1344,17 +1348,21 @@ ARDOUR_UI::format_disk_space_label (float remain_sec)
|
||||
snprintf (buf, sizeof(buf), _("%02dh:%02dm:%02ds"), hrs, mins, secs);
|
||||
ArdourWidgets::set_tooltip (disk_space_label, buf);
|
||||
|
||||
std::string heading = string_compose (X_("<i>%1</i>: "), _("Rec"));
|
||||
|
||||
if (remain_sec > 86400) {
|
||||
disk_space_label.set_text (_("Rec: >24h"));
|
||||
return;
|
||||
disk_space_label.set_markup (_(">24h"));
|
||||
disk_space_label.set_markup (heading + buf);
|
||||
} else if (remain_sec > 32400 /* 9 hours */) {
|
||||
snprintf (buf, sizeof (buf), "Rec: %.0fh", remain_sec / 3600.f);
|
||||
snprintf (buf, sizeof (buf), "%.0f", remain_sec / 3600.f);
|
||||
disk_space_label.set_markup (heading + buf + S_("hours|h"));
|
||||
} else if (remain_sec > 5940 /* 99 mins */) {
|
||||
snprintf (buf, sizeof (buf), "Rec: %.1fh", remain_sec / 3600.f);
|
||||
snprintf (buf, sizeof (buf), "%.1f", remain_sec / 3600.f);
|
||||
disk_space_label.set_markup (heading + buf + S_("hours|h"));
|
||||
} else {
|
||||
snprintf (buf, sizeof (buf), "Rec: %.0fm", remain_sec / 60.f);
|
||||
snprintf (buf, sizeof (buf), "%.0f", remain_sec / 60.f);
|
||||
disk_space_label.set_markup (heading + buf + S_("minutes|m"));
|
||||
}
|
||||
disk_space_label.set_text (buf);
|
||||
|
||||
}
|
||||
|
||||
@ -1399,6 +1407,7 @@ void
|
||||
ARDOUR_UI::update_timecode_format ()
|
||||
{
|
||||
char buf[64];
|
||||
std::string heading = string_compose (X_("<i>%1</i>: "), S_("Timecode|TC"));
|
||||
|
||||
if (_session) {
|
||||
bool matching;
|
||||
@ -1411,15 +1420,16 @@ ARDOUR_UI::update_timecode_format ()
|
||||
matching = true;
|
||||
}
|
||||
|
||||
const char* const bg = matching ? "" : " background=\"red\"";
|
||||
|
||||
snprintf (buf, sizeof (buf), S_("Timecode|TC: <span foreground=\"%s\">%s</span>"),
|
||||
matching ? X_("green") : X_("red"),
|
||||
Timecode::timecode_format_name (_session->config.get_timecode_format()).c_str());
|
||||
snprintf (buf, sizeof (buf), _("<span%s>%s</span>"), bg,
|
||||
Timecode::timecode_format_name (_session->config.get_timecode_format()).c_str());
|
||||
|
||||
timecode_format_label.set_markup (heading + buf);
|
||||
} else {
|
||||
snprintf (buf, sizeof (buf), "TC: n/a");
|
||||
timecode_format_label.set_markup (heading + _("n/a"));
|
||||
}
|
||||
|
||||
timecode_format_label.set_markup (buf);
|
||||
}
|
||||
|
||||
gint
|
||||
|
@ -740,12 +740,13 @@ ARDOUR_UI::build_menu_bar ()
|
||||
|
||||
hbox->pack_end (error_alert_button, false, false, 2);
|
||||
hbox->pack_end (wall_clock_label, false, false, 2);
|
||||
hbox->pack_end (dsp_load_label, false, false, 4);
|
||||
hbox->pack_end (disk_space_label, false, false, 4);
|
||||
hbox->pack_end (sample_rate_label, false, false, 4);
|
||||
hbox->pack_end (timecode_format_label, false, false, 4);
|
||||
hbox->pack_end (format_label, false, false, 4);
|
||||
hbox->pack_end (peak_thread_work_label, false, false, 4);
|
||||
|
||||
hbox->pack_end (dsp_load_label, false, false, 6);
|
||||
hbox->pack_end (disk_space_label, false, false, 6);
|
||||
hbox->pack_end (sample_rate_label, false, false, 6);
|
||||
hbox->pack_end (timecode_format_label, false, false, 6);
|
||||
hbox->pack_end (format_label, false, false, 6);
|
||||
hbox->pack_end (peak_thread_work_label, false, false, 6);
|
||||
|
||||
menu_hbox.pack_end (*ev, true, true, 2);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user