diff options
author | Robin Gareus <robin@gareus.org> | 2013-06-28 21:00:17 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-07-10 15:27:02 +0200 |
commit | bc2ff6a55422f0be1db68a10cd036ff6882eb131 (patch) | |
tree | 6ddef24f6aeb4ba1524150ee2279bdc693ca86ee /gtk2_ardour/meterbridge.cc | |
parent | 446aed52f376688633deffef6bef18a074acc756 (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.cc | 29 |
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++); } } |