diff --git a/gtk2_ardour/compact_meter_bridge.cc b/gtk2_ardour/compact_meter_bridge.cc index d14d1c8374..aad96210e0 100644 --- a/gtk2_ardour/compact_meter_bridge.cc +++ b/gtk2_ardour/compact_meter_bridge.cc @@ -67,12 +67,12 @@ using PBD::atoi; struct SignalOrderRouteSorter { bool operator() (boost::shared_ptr a, boost::shared_ptr b) { - if (a->is_master() || a->is_monitor()) { + if (a->is_master() || a->is_monitor() || !boost::dynamic_pointer_cast(a)) { /* "a" is a special route (master, monitor, etc), and comes * last in the mixer ordering */ return false; - } else if (b->is_master() || b->is_monitor()) { + } else if (b->is_master() || b->is_monitor() || !boost::dynamic_pointer_cast(b)) { /* everything comes before b */ return true; } @@ -170,7 +170,8 @@ CompactMeterbridge::add_strips (RouteList& routes) // Now create the strips for newly added routes for (RouteList::iterator x = routes.begin(); x != routes.end(); ++x) { boost::shared_ptr route = (*x); - if (route->is_auditioner() || route->is_monitor() || route->is_master()) { + if (route->is_auditioner() || route->is_monitor() || route->is_master() + || !boost::dynamic_pointer_cast (route)) { continue; } @@ -188,7 +189,8 @@ CompactMeterbridge::add_strips (RouteList& routes) size_t serial_number = 0; for (RouteList::iterator x = copy.begin(); x != copy.end(); ++x) { boost::shared_ptr route = (*x); - if (route->is_auditioner() || route->is_monitor() || route->is_master()) { + if (route->is_auditioner() || route->is_monitor() || route->is_master() || + !boost::dynamic_pointer_cast(route)) { continue; } std::map , CompactMeterStrip*>::iterator i = _strips.find (route); @@ -237,7 +239,8 @@ CompactMeterbridge::sync_order_keys () size_t serial_number = 0; for (RouteList::iterator x = copy.begin(); x != copy.end(); ++x) { boost::shared_ptr route = (*x); - if (route->is_auditioner() || route->is_monitor() || route->is_master()) { + if (route->is_auditioner() || route->is_monitor() || route->is_master() || + !boost::dynamic_pointer_cast (route)) { continue; } std::map , CompactMeterStrip*>::iterator i = _strips.find (route); diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index aae20d876d..4e92d2fed7 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -5078,7 +5078,8 @@ Editor::add_routes (RouteList& routes) for (RouteList::iterator x = routes.begin(); x != routes.end(); ++x) { boost::shared_ptr route = (*x); - if (route->is_auditioner() || route->is_monitor()) { + if (route->is_auditioner() || route->is_monitor() || + !boost::dynamic_pointer_cast (route)) { continue; } diff --git a/gtk2_ardour/mixer_bridge_view.cc b/gtk2_ardour/mixer_bridge_view.cc index b5e3b5d2bd..7aa7843515 100644 --- a/gtk2_ardour/mixer_bridge_view.cc +++ b/gtk2_ardour/mixer_bridge_view.cc @@ -67,12 +67,12 @@ using PBD::atoi; struct SignalOrderRouteSorter { bool operator() (boost::shared_ptr a, boost::shared_ptr b) { - if (a->is_master() || a->is_monitor()) { + if (a->is_master() || a->is_monitor() || !boost::dynamic_pointer_cast(a)) { /* "a" is a special route (master, monitor, etc), and comes * last in the mixer ordering */ return false; - } else if (b->is_master() || b->is_monitor()) { + } else if (b->is_master() || b->is_monitor() || !boost::dynamic_pointer_cast(b)) { /* everything comes before b */ return true; } @@ -173,7 +173,8 @@ MixerBridgeView::add_strips (RouteList& routes) // Now create the strips for newly added routes for (RouteList::iterator x = routes.begin(); x != routes.end(); ++x) { boost::shared_ptr route = (*x); - if (route->is_auditioner() || route->is_monitor() || route->is_master()) { + if (route->is_auditioner() || route->is_monitor() || route->is_master() || + !boost::dynamic_pointer_cast (route)) { continue; } @@ -190,7 +191,8 @@ MixerBridgeView::add_strips (RouteList& routes) for (RouteList::iterator x = copy.begin(); x != copy.end(); ++x) { boost::shared_ptr route = (*x); - if (route->is_auditioner() || route->is_monitor() || route->is_master()) { + if (route->is_auditioner() || route->is_monitor() || route->is_master() || + !boost::dynamic_pointer_cast (route)) { continue; } std::map , MixerStrip*>::iterator i = _strips.find (route); @@ -236,7 +238,8 @@ MixerBridgeView::sync_order_keys () for (RouteList::iterator x = copy.begin(); x != copy.end(); ++x) { boost::shared_ptr route = (*x); - if (route->is_auditioner() || route->is_monitor() || route->is_master()) { + if (route->is_auditioner() || route->is_monitor() || route->is_master() || + !boost::dynamic_pointer_cast (route)) { continue; } std::map , MixerStrip*>::iterator i = _strips.find (route);