diff options
author | Len Ovens <len@ovenwerks.net> | 2020-05-05 19:41:45 -0700 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2020-05-05 19:42:31 -0700 |
commit | deca562108cd8ddca605b9ce50aa2d3ee05b80af (patch) | |
tree | 0f1567fa252ebbf6b75cd7666c2d24c094a33953 /gtk2_ardour | |
parent | 7b5d2c2e7fcdb2af9a07ef24eea128b8b12c3aeb (diff) |
Use sorted list of foldback buses
previous and next would not always allow
getting to all buses which were in an odd order
depending on how they are added
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/foldback_strip.cc | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/gtk2_ardour/foldback_strip.cc b/gtk2_ardour/foldback_strip.cc index adc0439d8d..073b115023 100644 --- a/gtk2_ardour/foldback_strip.cc +++ b/gtk2_ardour/foldback_strip.cc @@ -1180,11 +1180,12 @@ FoldbackStrip::build_route_select_menu () MenuList& items = menu->items (); menu->set_name ("ArdourContextMenu"); - StripableList fb_list; - _session->get_stripables (fb_list, PresentationInfo::FoldbackBus); - for (StripableList::iterator s = fb_list.begin(); s != fb_list.end(); ++s) { + RouteList fb_list; + fb_list = _session->get_routelist (true, PresentationInfo::FoldbackBus); - boost::shared_ptr<Route> route = boost::dynamic_pointer_cast<Route> ((*s)); + for (RouteList::iterator s = fb_list.begin(); s != fb_list.end(); ++s) { + + boost::shared_ptr<Route> route = (*s); if (route == _route) { continue; } @@ -1220,11 +1221,12 @@ void FoldbackStrip::previous_button_clicked () { bool past_current = false; - StripableList slist; boost::shared_ptr<Route> previous = boost::shared_ptr<Route> (); - _session->get_stripables (slist, PresentationInfo::FoldbackBus); - if (slist.size () > 1) { - for (StripableList::iterator s = slist.begin(); s != slist.end(); ++s) { + RouteList fb_list; + fb_list = _session->get_routelist (true, PresentationInfo::FoldbackBus); + + if (fb_list.size () > 1) { + for (RouteList::iterator s = fb_list.begin(); s != fb_list.end(); ++s) { if ((*s) == _route) { past_current = true; } @@ -1246,11 +1248,12 @@ void FoldbackStrip::next_button_clicked () { bool past_current = false; - StripableList slist; boost::shared_ptr<Route> next = boost::shared_ptr<Route> (); - _session->get_stripables (slist, PresentationInfo::FoldbackBus); - if (slist.size () > 1) { - for (StripableList::iterator s = slist.begin(); s != slist.end(); ++s) { + RouteList fb_list; + fb_list = _session->get_routelist (true, PresentationInfo::FoldbackBus); + + if (fb_list.size () > 1) { + for (RouteList::iterator s = fb_list.begin(); s != fb_list.end(); ++s) { if (past_current) { next = boost::dynamic_pointer_cast<Route> (*s); break; @@ -1272,14 +1275,15 @@ FoldbackStrip::next_button_clicked () void FoldbackStrip::prev_next_changed () { - StripableList slist; - _session->get_stripables (slist, PresentationInfo::FoldbackBus); - if ((slist.size() < 2) || (boost::dynamic_pointer_cast<Stripable> (_route) == *(slist.begin()))) { + RouteList fb_list; + fb_list = _session->get_routelist (true, PresentationInfo::FoldbackBus); + + if ((fb_list.size() < 2) || (_route == *(fb_list.begin()))) { _previous_button.set_sensitive (false); } else { _previous_button.set_sensitive (true); } - if ((slist.size () < 2) || boost::dynamic_pointer_cast<Stripable> (_route) == *(--slist.end())) { + if ((fb_list.size () < 2) || _route == *(--fb_list.end())) { _next_button.set_sensitive (false); } else { _next_button.set_sensitive (true); |