summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-11-16 05:24:01 +0100
committerRobin Gareus <robin@gareus.org>2016-11-16 05:24:01 +0100
commit5ab33bdb63fa284e6148abbc66c935f97a37f035 (patch)
tree33b59d2e61be07a4d635a83f046b524a5c925f45 /gtk2_ardour
parentdcc16b74407bd1bc334bc69e21c5a3dc1b8127bb (diff)
Fix crash when fanning out from editor mixer
when creating a new track or bus editor-selection changes and the editor-mixer's _route changes.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/route_ui.cc17
1 files changed, 9 insertions, 8 deletions
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index cceb71dd5f..bfa8ecc95a 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -2341,19 +2341,20 @@ void
RouteUI::fan_out (bool to_busses, bool group)
{
DisplaySuspender ds;
- boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (_route->the_instrument ());
+ boost::shared_ptr<ARDOUR::Route> route = _route;
+ boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (route->the_instrument ());
assert (pi);
const uint32_t n_outputs = pi->output_streams ().n_audio ();
- if (_route->n_outputs ().n_audio () != n_outputs) {
+ if (route->n_outputs ().n_audio () != n_outputs) {
MessageDialog msg (string_compose (
_("The Plugin's number of audio outputs ports (%1) does not match the Tracks's number of audio outputs (%2). Cannot fan out."),
- n_outputs, _route->n_outputs ().n_audio ()));
+ n_outputs, route->n_outputs ().n_audio ()));
msg.run ();
return;
}
-#define BUSNAME pd.group_name + "(" + _route->name () + ")"
+#define BUSNAME pd.group_name + "(" + route->name () + ")"
/* count busses and channels/bus */
boost::shared_ptr<Plugin> plugin = pi->plugin ();
@@ -2375,8 +2376,8 @@ RouteUI::fan_out (bool to_busses, bool group)
outputs = std::max (outputs, _session->master_out ()->n_inputs ().n_audio ());
}
- _route->output ()->disconnect (this);
- _route->panner_shell ()->set_bypassed (true);
+ route->output ()->disconnect (this);
+ route->panner_shell ()->set_bypassed (true);
RouteList to_group;
for (uint32_t p = 0; p < n_outputs; ++p) {
@@ -2401,7 +2402,7 @@ RouteUI::fan_out (bool to_busses, bool group)
r->input ()->disconnect (this);
}
to_group.push_back (r);
- _route->output ()->audio (p)->connect (r->input ()->audio (pd.group_channel).get());
+ route->output ()->audio (p)->connect (r->input ()->audio (pd.group_channel).get());
}
#undef BUSNAME
@@ -2420,7 +2421,7 @@ RouteUI::fan_out (bool to_busses, bool group)
rg->set_gain (false);
}
- GroupTabs::set_group_color (rg, _route->presentation_info().color());
+ GroupTabs::set_group_color (rg, route->presentation_info().color());
for (RouteList::const_iterator i = to_group.begin(); i != to_group.end(); ++i) {
rg->add (*i);
}