Spruce up info bar a bit using Chris' suggestions (#4238).

git-svn-id: svn://localhost/ardour2/branches/3.0@10290 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2011-10-23 00:15:35 +00:00
parent 81808ac866
commit d15d8ec40e
3 changed files with 44 additions and 15 deletions

View file

@ -959,7 +959,7 @@ ARDOUR_UI::every_point_zero_one_seconds ()
void void
ARDOUR_UI::update_sample_rate (framecnt_t) ARDOUR_UI::update_sample_rate (framecnt_t)
{ {
char buf[32]; char buf[64];
ENSURE_GUI_THREAD (*this, &ARDOUR_UI::update_sample_rate, ignored) ENSURE_GUI_THREAD (*this, &ARDOUR_UI::update_sample_rate, ignored)
@ -972,17 +972,17 @@ ARDOUR_UI::update_sample_rate (framecnt_t)
framecnt_t rate = engine->frame_rate(); framecnt_t rate = engine->frame_rate();
if (fmod (rate, 1000.0) != 0.0) { if (fmod (rate, 1000.0) != 0.0) {
snprintf (buf, sizeof (buf), _("%.1f kHz / %4.1f ms"), snprintf (buf, sizeof (buf), _("JACK: <span foreground=\"green\">%.1f kHz / %4.1f ms</span>"),
(float) rate/1000.0f, (float) rate/1000.0f,
(engine->frames_per_cycle() / (float) rate) * 1000.0f); (engine->frames_per_cycle() / (float) rate) * 1000.0f);
} else { } else {
snprintf (buf, sizeof (buf), _("%" PRId64 " kHz / %4.1f ms"), snprintf (buf, sizeof (buf), _("JACK: <span foreground=\"green\">%" PRId64 " kHz / %4.1f ms</span>"),
rate/1000, rate/1000,
(engine->frames_per_cycle() / (float) rate) * 1000.0f); (engine->frames_per_cycle() / (float) rate) * 1000.0f);
} }
} }
sample_rate_label.set_text (buf); sample_rate_label.set_markup (buf);
} }
void void
@ -994,6 +994,7 @@ ARDOUR_UI::update_format ()
} }
stringstream s; stringstream s;
s << "File: <span foreground=\"green\">";
switch (_session->config.get_native_file_header_format ()) { switch (_session->config.get_native_file_header_format ()) {
case BWF: case BWF:
@ -1033,26 +1034,41 @@ ARDOUR_UI::update_format ()
break; break;
} }
format_label.set_text (s.str ()); s << "</span>";
format_label.set_markup (s.str ());
} }
void void
ARDOUR_UI::update_cpu_load () ARDOUR_UI::update_cpu_load ()
{ {
char buf[32]; char buf[64];
snprintf (buf, sizeof (buf), _("DSP: %5.1f%%"), engine->get_cpu_load());
cpu_load_label.set_text (buf); float const c = engine->get_cpu_load ();
snprintf (buf, sizeof (buf), _("DSP: <span foreground=\"%s\">%5.1f%%</span>"), c >= 90 ? X_("red") : X_("green"), c_);
cpu_load_label.set_markup (buf);
} }
void void
ARDOUR_UI::update_buffer_load () ARDOUR_UI::update_buffer_load ()
{ {
char buf[64]; char buf[256];
uint32_t const playback = _session ? _session->playback_load () : 100;
uint32_t const capture = _session ? _session->capture_load () : 100;
if (_session) { if (_session) {
snprintf (buf, sizeof (buf), _("Buffers p:%" PRIu32 "%% c:%" PRIu32 "%%"), snprintf (
_session->playback_load(), _session->capture_load()); buf, sizeof (buf),
buffer_load_label.set_text (buf); _("Buffers: <span foreground=\"green\">p:</span><span foreground=\"%s\">%" PRIu32 "%%</span> "
"<span foreground=\"green\">c:</span><span foreground=\"%s\">%" PRIu32 "%%</span>"),
playback <= 5 ? X_("red") : X_("green"),
playback,
capture <= 5 ? X_("red") : X_("green"),
capture
);
buffer_load_label.set_markup (buf);
} else { } else {
buffer_load_label.set_text (""); buffer_load_label.set_text ("");
} }
@ -1079,7 +1095,7 @@ ARDOUR_UI::update_disk_space()
framecnt_t fr = _session->frame_rate(); framecnt_t fr = _session->frame_rate();
if (frames == max_framecnt) { if (frames == max_framecnt) {
strcpy (buf, _("Disk: 24hrs+")); snprintf (buf, sizeof (buf), _("Disk: <span foreground=\"green\">24hrs+</span>"));
} else { } else {
rec_enabled_streams = 0; rec_enabled_streams = 0;
_session->foreach_route (this, &ARDOUR_UI::count_recenabled_streams); _session->foreach_route (this, &ARDOUR_UI::count_recenabled_streams);
@ -1098,10 +1114,17 @@ ARDOUR_UI::update_disk_space()
frames -= mins * fr * 60; frames -= mins * fr * 60;
secs = frames / fr; secs = frames / fr;
snprintf (buf, sizeof(buf), _("Disk: %02dh:%02dm:%02ds"), hrs, mins, secs); bool const low = (hrs == 0 && mins <= 30);
snprintf (
buf, sizeof(buf),
_("Disk: <span foreground=\"%s\">%02dh:%02dm:%02ds</span>"),
low ? X_("red") : X_("green"),
hrs, mins, secs
);
} }
disk_space_label.set_text (buf); disk_space_label.set_markup (buf);
// An attempt to make the disk space label flash red when space has run out. // An attempt to make the disk space label flash red when space has run out.

View file

@ -241,6 +241,7 @@ ARDOUR_UI::unload_session (bool hide_stuff)
Blink.clear (); Blink.clear ();
delete _session; delete _session;
_session = 0;
update_buffer_load (); update_buffer_load ();

View file

@ -529,22 +529,27 @@ ARDOUR_UI::build_menu_bar ()
disk_space_box.add (disk_space_label); disk_space_box.add (disk_space_label);
disk_space_box.set_name ("WallClock"); disk_space_box.set_name ("WallClock");
disk_space_label.set_name ("WallClock"); disk_space_label.set_name ("WallClock");
disk_space_label.set_use_markup ();
cpu_load_box.add (cpu_load_label); cpu_load_box.add (cpu_load_label);
cpu_load_box.set_name ("CPULoad"); cpu_load_box.set_name ("CPULoad");
cpu_load_label.set_name ("CPULoad"); cpu_load_label.set_name ("CPULoad");
cpu_load_label.set_use_markup ();
buffer_load_box.add (buffer_load_label); buffer_load_box.add (buffer_load_label);
buffer_load_box.set_name ("BufferLoad"); buffer_load_box.set_name ("BufferLoad");
buffer_load_label.set_name ("BufferLoad"); buffer_load_label.set_name ("BufferLoad");
buffer_load_label.set_use_markup ();
sample_rate_box.add (sample_rate_label); sample_rate_box.add (sample_rate_label);
sample_rate_box.set_name ("SampleRate"); sample_rate_box.set_name ("SampleRate");
sample_rate_label.set_name ("SampleRate"); sample_rate_label.set_name ("SampleRate");
sample_rate_label.set_use_markup ();
format_box.add (format_label); format_box.add (format_label);
format_box.set_name ("Format"); format_box.set_name ("Format");
format_label.set_name ("Format"); format_label.set_name ("Format");
format_label.set_use_markup ();
#ifndef TOP_MENUBAR #ifndef TOP_MENUBAR
menu_hbox.pack_start (*menu_bar, false, false); menu_hbox.pack_start (*menu_bar, false, false);