diff options
author | Robin Gareus <robin@gareus.org> | 2013-07-07 11:58:27 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-07-10 15:27:13 +0200 |
commit | 4a9e79e53f0a8064b6fd593c3db6abae34fe295b (patch) | |
tree | eda7ef40f2187750847ffd0faa2327992f1f28e6 | |
parent | 3a8f5a9770c61a8546bec905301be3ea0b038c86 (diff) |
fix meterbridge metric display switch
-rw-r--r-- | gtk2_ardour/meterbridge.cc | 9 | ||||
-rw-r--r-- | gtk2_ardour/meterbridge.h | 3 | ||||
-rw-r--r-- | libs/ardour/meter.cc | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/gtk2_ardour/meterbridge.cc b/gtk2_ardour/meterbridge.cc index f24f34efc2..6a8819d88e 100644 --- a/gtk2_ardour/meterbridge.cc +++ b/gtk2_ardour/meterbridge.cc @@ -566,7 +566,7 @@ Meterbridge::update_metrics () { bool have_midi = false; for (list<MeterBridgeStrip>::iterator i = strips.begin(); i != strips.end(); ++i) { - if ( (*i).s->has_midi () && (*i).visible) { + if ( (*i).s->has_midi() && (*i).visible) { have_midi = true; break; } @@ -581,13 +581,14 @@ Meterbridge::update_metrics () void Meterbridge::sync_order_keys (RouteSortOrderKey src) { + Glib::Threads::Mutex::Lock lm (_resync_mutex); + MeterOrderRouteSorter sorter; - std::list<MeterBridgeStrip> copy (strips); - copy.sort(sorter); + strips.sort(sorter); int pos = 0; - for (list<MeterBridgeStrip>::iterator i = copy.begin(); i != copy.end(); ++i) { + for (list<MeterBridgeStrip>::iterator i = strips.begin(); i != strips.end(); ++i) { if (! (*i).s->route()->active()) { (*i).s->hide(); diff --git a/gtk2_ardour/meterbridge.h b/gtk2_ardour/meterbridge.h index e8ab97d93b..32ab2c929d 100644 --- a/gtk2_ardour/meterbridge.h +++ b/gtk2_ardour/meterbridge.h @@ -20,6 +20,8 @@ #ifndef __ardour_meterbridge_h__ #define __ardour_meterbridge_h__ +#include <glibmm/thread.h> + #include <gtkmm/box.h> #include <gtkmm/scrolledwindow.h> #include <gtkmm/label.h> @@ -81,6 +83,7 @@ class Meterbridge : void session_going_away (); void sync_order_keys (ARDOUR::RouteSortOrderKey src); void resync_order (); + mutable Glib::Threads::Mutex _resync_mutex; struct MeterBridgeStrip { MeterStrip *s; diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc index 0773ab451a..a3390f9d05 100644 --- a/libs/ardour/meter.cc +++ b/libs/ardour/meter.cc @@ -95,7 +95,7 @@ PeakMeter::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*end_fr // Meter audio in to the rest of the peaks for (uint32_t i = 0; i < n_audio; ++i, ++n) { _peak_signal[n] = compute_peak (bufs.get_audio(i).data(), nframes, _peak_signal[n]); - if (1 /* TODO use separate bit-flags for mixer|meterbridge */ || _meter_type & MeterKrms) { + if (/* TODO use separate bit-flags for mixer,meterbridge,.. */ /* 1 || */ _meter_type & MeterKrms) { _kmeter[i]->process(bufs.get_audio(i).data(), nframes); } } |