summaryrefslogtreecommitdiff
path: root/gtk2_ardour/meterbridge.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-06-28 21:00:17 +0200
committerRobin Gareus <robin@gareus.org>2013-07-10 15:27:02 +0200
commitbc2ff6a55422f0be1db68a10cd036ff6882eb131 (patch)
tree6ddef24f6aeb4ba1524150ee2279bdc693ca86ee /gtk2_ardour/meterbridge.cc
parent446aed52f376688633deffef6bef18a074acc756 (diff)
overhaul meterbridge:
* rotate labels, fix size * identical total width for mono + stereo meters * show metric area only every 8th meter * ...
Diffstat (limited to 'gtk2_ardour/meterbridge.cc')
-rw-r--r--gtk2_ardour/meterbridge.cc29
1 files changed, 28 insertions, 1 deletions
diff --git a/gtk2_ardour/meterbridge.cc b/gtk2_ardour/meterbridge.cc
index 47f12b331f..70f0c80dba 100644
--- a/gtk2_ardour/meterbridge.cc
+++ b/gtk2_ardour/meterbridge.cc
@@ -38,6 +38,9 @@
#include "ardour/route_group.h"
#include "ardour/session.h"
+#include "ardour/audio_track.h"
+#include "ardour/midi_track.h"
+
#include "meterbridge.h"
#include "monitor_section.h"
@@ -137,7 +140,7 @@ Meterbridge::Meterbridge ()
MeterStrip::CatchDeletion.connect (*this, invalidator (*this), boost::bind (&Meterbridge::remove_strip, this, _1), gui_context());
- global_hpacker.set_spacing(1);
+ global_hpacker.set_spacing(3);
scroller.add (global_hpacker);
scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_NEVER);
global_vpacker.pack_start (scroller, true, true);
@@ -405,6 +408,17 @@ Meterbridge::add_strips (RouteList& routes)
continue;
}
+ if (route->is_master()) {
+ /* always show master */
+ }
+ else
+ if (boost::dynamic_pointer_cast<AudioTrack>(route) == 0
+ && boost::dynamic_pointer_cast<MidiTrack>(route) == 0
+ ) {
+ // non-master bus
+ if (0) continue; // TODO allow to skip busses
+ }
+
strip = new MeterStrip (*this, _session, route);
strips.push_back (strip);
@@ -437,6 +451,19 @@ Meterbridge::sync_order_keys (RouteSortOrderKey src)
int pos = 0;
for (list<MeterStrip *>::iterator i = copy.begin(); i != copy.end(); ++i) {
+#if 0 // TODO subscribe to route active,inactive changes
+ if (! (*i)->route()->active()) {
+ (*i)->hide();
+ } else {
+ (*i)->show();
+ }
+#endif
+
+ if (pos%8 == 0) {
+ (*i)->display_metrics(true);
+ } else {
+ (*i)->display_metrics(false);
+ }
global_hpacker.reorder_child(*(*i), pos++);
}
}