X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Feditor_mixer.cc;h=28f8f60fa783144264b368e514e92cc665df3128;hb=38e94875647782fa6c28e25be471f0cff6c97d2a;hp=51691136aea6d2848aaa9a216408fb15c3bd46ad;hpb=cc82fc675b096c3dfec76d0c45671b78c85007cf;p=ardour.git diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc index 51691136ae..28f8f60fa7 100644 --- a/gtk2_ardour/editor_mixer.cc +++ b/gtk2_ardour/editor_mixer.cc @@ -39,6 +39,7 @@ #include "editor.h" #include "editor_route_groups.h" #include "editor_regions.h" +#include "enums_convert.h" #include "gui_thread.h" #include "midi_time_axis.h" #include "mixer_strip.h" @@ -145,7 +146,7 @@ Editor::show_editor_mixer (bool yn) if (current_mixer_strip && current_mixer_strip->get_parent() == 0) { global_hpacker.pack_start (*current_mixer_strip, Gtk::PACK_SHRINK ); - global_hpacker.reorder_child (*current_mixer_strip, 0); + global_hpacker.reorder_child (*current_mixer_strip, 0); current_mixer_strip->show (); } @@ -202,36 +203,26 @@ Editor::set_selected_mixer_strip (TimeAxisView& view) // if this is an automation track, then we shold the mixer strip should // show the parent - boost::shared_ptr route; + boost::shared_ptr stripable; AutomationTimeAxisView* atv; if ((atv = dynamic_cast(&view)) != 0) { - AudioTimeAxisView *parent = dynamic_cast(view.get_parent()); - if (parent) { - route = parent->route (); + stripable = parent->stripable (); } - } else { - - AudioTimeAxisView* at = dynamic_cast (&view); - - if (at) { - route = at->route(); - } else { - MidiTimeAxisView* mt = dynamic_cast (&view); - if (mt) { - route = mt->route(); - } + StripableTimeAxisView* stav = dynamic_cast (&view); + if (stav) { + stripable = stav->stripable(); } } /* Typically this is set by changing the TAV selection but if for any - reason we decide to show a different strip for some reason, make - sure that control surfaces can find it. - */ - ARDOUR::ControlProtocol::set_first_selected_stripable (route); + * reason we decide to show a different strip for some reason, make + * sure that control surfaces can find it. + */ + ARDOUR::ControlProtocol::set_first_selected_stripable (stripable); Glib::RefPtr act = ActionManager::get_action (X_("Editor"), X_("show-editor-mixer")); @@ -247,6 +238,7 @@ Editor::set_selected_mixer_strip (TimeAxisView& view) create_editor_mixer (); } + boost::shared_ptr route = boost::dynamic_pointer_cast (stripable); if (current_mixer_strip->route() == route) { return; } @@ -271,7 +263,7 @@ void Editor::maybe_add_mixer_strip_width (XMLNode& node) { if (current_mixer_strip) { - node.add_property ("mixer-width", enum_2_string (editor_mixer_strip_width)); + node.set_property ("mixer-width", editor_mixer_strip_width); } } @@ -284,4 +276,3 @@ Editor::mixer_strip_width_changed () editor_mixer_strip_width = current_mixer_strip->get_width_enum (); } -