summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_ui.cc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2019-01-18 10:22:54 -0800
committerLen Ovens <len@ovenwerks.net>2019-08-26 17:48:22 -0700
commit4f22bcea24345f6a90fd0d417bcd33daa43e9812 (patch)
tree9e516994ee3ffa09bd4df45510db6a7564677fc3 /gtk2_ardour/mixer_ui.cc
parentb01f6ead8b71999a6fe9065e4cc3b6a654c9f536 (diff)
Add strip GUI first try for foldback bus
Diffstat (limited to 'gtk2_ardour/mixer_ui.cc')
-rw-r--r--gtk2_ardour/mixer_ui.cc35
1 files changed, 35 insertions, 0 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index db904ddf97..22e69d3455 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -64,6 +64,7 @@
#include "widgets/tearoff.h"
+#include "foldback_strip.h"
#include "keyboard.h"
#include "mixer_ui.h"
#include "mixer_strip.h"
@@ -113,6 +114,7 @@ Mixer_UI::Mixer_UI ()
, in_group_row_change (false)
, track_menu (0)
, _plugin_selector (0)
+ , foldback_strip (0)
, _strip_width (UIConfiguration::instance().get_default_narrow_ms() ? Narrow : Wide)
, _spill_scroll_position (0)
, ignore_reorder (false)
@@ -383,6 +385,14 @@ Mixer_UI::~Mixer_UI ()
{
monitor_section_detached ();
+ StripableList fb;
+ _session->get_stripables (fb, PresentationInfo::FoldbackBus);
+ if (fb.size()) {
+ if (foldback_strip) {
+ delete foldback_strip;
+ foldback_strip = 0;
+ }
+ }
delete _plugin_selector;
delete track_menu;
}
@@ -599,6 +609,17 @@ Mixer_UI::add_stripables (StripableList& slist)
continue;
}
+ if (route->is_foldbackbus ()) {
+ if (foldback_strip) {
+ foldback_strip->set_route (route);
+ } else {
+ foldback_strip = new FoldbackStrip (*this, _session, route);
+ out_packer.pack_end (*foldback_strip, false, false);
+ foldback_strip->set_packed (true);
+ }
+ continue;
+
+ }
strip = new MixerStrip (*this, _session, route);
strips.push_back (strip);
@@ -1110,6 +1131,14 @@ Mixer_UI::session_going_away ()
}
_monitor_section.tearoff().hide_visible ();
+ StripableList fb;
+ _session->get_stripables (fb, PresentationInfo::FoldbackBus);
+ if (fb.size()) {
+ if (foldback_strip) {
+ delete foldback_strip;
+ foldback_strip = 0;
+ }
+ }
monitor_section_detached ();
@@ -1605,7 +1634,13 @@ void
Mixer_UI::initial_track_display ()
{
StripableList sl;
+ StripableList fb;
_session->get_stripables (sl);
+ _session->get_stripables (fb, PresentationInfo::FoldbackBus);
+ if (fb.size()) {
+ boost::shared_ptr<ARDOUR::Stripable> _current_foldback = *(fb.begin());
+ sl.push_back (_current_foldback);
+ }
sl.sort (PresentationInfoMixerSorter());