From 9fe534ede838922e925cc5edb3c0d32c34ce93cf Mon Sep 17 00:00:00 2001 From: Ben Loftis Date: Fri, 16 Feb 2018 15:09:28 -0600 Subject: Shuffle order of items in status bar; change behavior per oofus on irc. ( note: this essentially reverts ed459a ) --- gtk2_ardour/ardour_ui.cc | 3 +-- gtk2_ardour/ardour_ui_ed.cc | 12 ++++++------ gtk2_ardour/disk_io_gauge.cc | 32 ++++++++++++++++++++++---------- gtk2_ardour/disk_io_gauge.h | 5 +++-- gtk2_ardour/disk_space_gauge.cc | 8 ++++---- gtk2_ardour/dsp_load_gauge.cc | 4 ++-- 6 files changed, 38 insertions(+), 26 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 9e6fd093b4..8ad04119e6 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1719,8 +1719,7 @@ ARDOUR_UI::update_buffer_load () { uint32_t const playback = _session ? _session->playback_load () : 100; uint32_t const capture = _session ? _session->capture_load () : 100; - uint32_t max_load = std::min ( playback, capture ); - disk_io_gauge.set_disk_io(max_load); + disk_io_gauge.set_disk_io(playback, capture); } void diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 67a3f0b589..f9c10a777e 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -713,15 +713,15 @@ ARDOUR_UI::build_menu_bar () #ifndef __APPLE__ // OSX provides its own wallclock, thank you very much - _status_bar_visibility.add (&wall_clock_label, X_("WallClock"), _("Wall Clock"), true); + _status_bar_visibility.add (&wall_clock_label, X_("WallClock"), _("Wall Clock"), false); #endif - _status_bar_visibility.add (&disk_space_gauge, X_("Disk"), _("Disk Space"), !Profile->get_small_screen()); - _status_bar_visibility.add (&dsp_load_gauge, X_("DSP"), _("DSP"), true); _status_bar_visibility.add (&peak_thread_work_label,X_("Peakfile"), _("Active Peak-file Work"), false); - _status_bar_visibility.add (&disk_io_gauge, X_("Buffers"), _("Buffers"), true); + _status_bar_visibility.add (&format_label, X_("Format"), _("File Format"), false); + _status_bar_visibility.add (&timecode_format_label, X_("TCFormat"), _("Timecode Format"), false); _status_bar_visibility.add (&sample_rate_label, X_("Audio"), _("Audio"), true); - _status_bar_visibility.add (&timecode_format_label, X_("TCFormat"), _("Timecode Format"), true); - _status_bar_visibility.add (&format_label, X_("Format"), _("File Format"), true); + _status_bar_visibility.add (&disk_io_gauge, X_("Buffers"), _("Buffers"), true); + _status_bar_visibility.add (&disk_space_gauge, X_("Disk"), _("Disk Space"), !Profile->get_small_screen()); + _status_bar_visibility.add (&dsp_load_gauge, X_("DSP"), _("DSP"), true); ev->signal_button_press_event().connect (sigc::mem_fun (_status_bar_visibility, &VisibilityGroup::button_press_event)); ev->signal_button_release_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::xrun_button_release)); diff --git a/gtk2_ardour/disk_io_gauge.cc b/gtk2_ardour/disk_io_gauge.cc index 79ccccd9f7..7cced28cca 100644 --- a/gtk2_ardour/disk_io_gauge.cc +++ b/gtk2_ardour/disk_io_gauge.cc @@ -27,26 +27,36 @@ DiskIoGauge::DiskIoGauge () : ArdourGauge ("00.0%") - , _disk_io (0) + , _disk_play (0) + , _disk_capture (0) { } void -DiskIoGauge::set_disk_io (const double load) +DiskIoGauge::set_disk_io (const double play, const double capture) { - if (load == _disk_io) { + if (play == _disk_play && capture == _disk_capture) { return; } - _disk_io = load; + _disk_play = 100.0-play; + _disk_capture = 100.0-capture; char buf[64]; - snprintf (buf, sizeof (buf), "Dsk: %.1f%%", _disk_io); + if ( _disk_play > 1.0 && _disk_play < 10.0 && _disk_capture < 2.0 ) { + snprintf (buf, sizeof (buf), "Disk: %.0f%% / 0%%", _disk_play); + } else if ( _disk_play > 1.0 && _disk_capture < 2.0 ) { + snprintf (buf, sizeof (buf), "Disk: %.0f%% / 0%%", _disk_play); + } else if ( _disk_play > 1.0 && _disk_capture > 1.0 ) { + snprintf (buf, sizeof (buf), "Disk: %.0f%% / %.0f%%", _disk_play, _disk_capture); + } else { + snprintf (buf, sizeof (buf), " "); + } update (std::string (buf)); } float DiskIoGauge::level () const { - return (_disk_io / 100.f); + return min ( _disk_play / 100.f, _disk_capture / 100.f); } bool @@ -58,9 +68,11 @@ DiskIoGauge::alert () const ArdourGauge::Status DiskIoGauge::indicator () const { - if (_disk_io < 50) { + float lvl = level(); + + if (lvl > 0.6) { return ArdourGauge::Level_CRIT; - } else if (_disk_io < 75) { + } else if (lvl > 0.4) { return ArdourGauge::Level_WARN; } else { return ArdourGauge::Level_OK; @@ -70,9 +82,9 @@ DiskIoGauge::indicator () const std::string DiskIoGauge::tooltip_text () { - char buf[64]; + char buf[128]; - snprintf (buf, sizeof (buf), _("Disk I/O cache: %.1f"), _disk_io); + snprintf (buf, sizeof (buf), "Disk Play/Record cache: %.0f%% / %.0f%%", _disk_play, _disk_capture); return buf; } diff --git a/gtk2_ardour/disk_io_gauge.h b/gtk2_ardour/disk_io_gauge.h index f06f610097..ba96833cc8 100644 --- a/gtk2_ardour/disk_io_gauge.h +++ b/gtk2_ardour/disk_io_gauge.h @@ -28,7 +28,7 @@ class DiskIoGauge : public ArdourGauge public: DiskIoGauge (); - void set_disk_io (const double load); + void set_disk_io (const double playback, const double capture); protected: bool alert () const; @@ -38,7 +38,8 @@ protected: private: - float _disk_io; + float _disk_play; + float _disk_capture; }; #endif diff --git a/gtk2_ardour/disk_space_gauge.cc b/gtk2_ardour/disk_space_gauge.cc index 9c5d735b8d..650eebd2c8 100644 --- a/gtk2_ardour/disk_space_gauge.cc +++ b/gtk2_ardour/disk_space_gauge.cc @@ -58,10 +58,10 @@ DiskSpaceGauge::set_available_disk_sec (float sec) float DiskSpaceGauge::level () const { - static const float lm = 6.f * 3600.f; - if (_sec < 0) return 0; - if (_sec > lm) return 1.0; - return _sec / lm; + static const float six_hours = 6.f * 3600.f; + if (_sec < 0) return 1.0; + if (_sec > six_hours) return 0.0; + return (1.0 - (_sec / six_hours)); } bool diff --git a/gtk2_ardour/dsp_load_gauge.cc b/gtk2_ardour/dsp_load_gauge.cc index 46ff15400b..6e3b0d382a 100644 --- a/gtk2_ardour/dsp_load_gauge.cc +++ b/gtk2_ardour/dsp_load_gauge.cc @@ -62,7 +62,7 @@ DspLoadGauge::set_dsp_load (const double load) float DspLoadGauge::level () const { - return (100.0-_dsp_load) / 100.f; + return (_dsp_load / 100.f); } bool @@ -84,7 +84,7 @@ DspLoadGauge::indicator () const { if (_dsp_load > 90) { return ArdourGauge::Level_CRIT; - } else if (_dsp_load > 80) { + } else if (_dsp_load > 75) { return ArdourGauge::Level_WARN; } else { return ArdourGauge::Level_OK; -- cgit v1.2.3