The Auditioner is not in the Session's RouteList
authorRobin Gareus <robin@gareus.org>
Tue, 15 Aug 2017 21:24:32 +0000 (23:24 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 15 Aug 2017 22:51:20 +0000 (00:51 +0200)
Remove various checks, add assert() for now (perhaps some old sessions?)
This fixes an off-by one issue when adding tracks (presentation
info order in add_routes_inner)

libs/ardour/ardour/session.h
libs/ardour/session.cc

index 2cc86939d1b3fe90b410239ef230ac775b63e607..f1cb739673318590a1b6e0d6cced42eb3f0ae5b0 100644 (file)
@@ -305,7 +305,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        boost::shared_ptr<RouteList> get_routes_with_internal_returns() const;
        boost::shared_ptr<RouteList> get_routes_with_regions_at (framepos_t const) const;
 
-       uint32_t nstripables (bool with_auditioner_and_monitor = false) const;
+       uint32_t nstripables (bool with_monitor = false) const;
        uint32_t nroutes() const { return routes.reader()->size(); }
        uint32_t ntracks () const;
        uint32_t nbusses () const;
index 37d987d54725b1996f537ffc845e891c67c5fefb..de236f61201199b3ee978804d54f7548c735b52c 100644 (file)
@@ -2553,11 +2553,13 @@ Session::count_existing_track_channels (ChanCount& in, ChanCount& out)
        boost::shared_ptr<RouteList> r = routes.reader ();
 
        for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
-                boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
-               if (tr && !tr->is_auditioner()) {
-                       in  += tr->n_inputs();
-                       out += tr->n_outputs();
+               boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
+               if (!tr) {
+                       continue;
                }
+               assert (!tr->is_auditioner()); // XXX remove me
+               in  += tr->n_inputs();
+               out += tr->n_outputs();
        }
 }
 
@@ -3120,7 +3122,8 @@ Session::ensure_stripable_sort_order ()
 
        for (StripableList::iterator si = sl.begin(); si != sl.end(); ++si) {
                boost::shared_ptr<Stripable> s (*si);
-               if (s->is_monitor () || s->is_auditioner ()) {
+               assert (!s->is_auditioner ()); // XXX remove me
+               if (s->is_monitor ()) {
                        continue;
                }
                if (order != s->presentation_info().order()) {
@@ -3612,11 +3615,7 @@ Session::add_routes_inner (RouteList& new_routes, bool input_auto_connect, bool
                }
        }
 
-       /* auditioner and monitor routes are not part of the order */
-       if (auditioner) {
-               assert (n_routes > 0);
-               --n_routes;
-       }
+       /* monitor is not part of the order */
        if (_monitor_out) {
                assert (n_routes > 0);
                --n_routes;
@@ -4294,7 +4293,8 @@ Session::muted () const
        StripableList all;
        get_stripables (all);
        for (StripableList::const_iterator i = all.begin(); i != all.end(); ++i) {
-               if ((*i)->is_auditioner() || (*i)->is_monitor()) {
+               assert (!(*i)->is_auditioner()); // XXX remove me
+               if ((*i)->is_monitor()) {
                        continue;
                }
                boost::shared_ptr<Route> r = boost::dynamic_pointer_cast<Route>(*i);
@@ -4318,7 +4318,8 @@ Session::cancel_all_mute ()
        std::vector<boost::weak_ptr<AutomationControl> > muted;
        boost::shared_ptr<ControlList> cl (new ControlList);
        for (StripableList::const_iterator i = all.begin(); i != all.end(); ++i) {
-               if ((*i)->is_auditioner() || (*i)->is_monitor()) {
+               assert (!(*i)->is_auditioner());
+               if ((*i)->is_monitor()) {
                        continue;
                }
                boost::shared_ptr<Route> r = boost::dynamic_pointer_cast<Route> (*i);
@@ -4629,10 +4630,11 @@ Session::reassign_track_numbers ()
        StateProtector sp (this);
 
        for (RouteList::iterator i = r.begin(); i != r.end(); ++i) {
+               assert (!(*i)->is_auditioner());
                if (boost::dynamic_pointer_cast<Track> (*i)) {
                        (*i)->set_track_number(++tn);
                }
-               else if (!(*i)->is_master() && !(*i)->is_monitor() && !(*i)->is_auditioner()) {
+               else if (!(*i)->is_master() && !(*i)->is_monitor()) {
                        (*i)->set_track_number(--bn);
                }
        }
@@ -6447,19 +6449,15 @@ Session::nbusses () const
 }
 
 uint32_t
-Session::nstripables (bool with_auditioner_and_monitor) const
+Session::nstripables (bool with_monitor) const
 {
        uint32_t rv = routes.reader()->size ();
        rv += _vca_manager->vcas ().size ();
 
-       if (with_auditioner_and_monitor) {
+       if (with_monitor) {
                return rv;
        }
 
-       if (auditioner) {
-               assert (rv > 0);
-               --rv;
-       }
        if (_monitor_out) {
                assert (rv > 0);
                --rv;
@@ -6590,9 +6588,8 @@ Session::get_tracks () const
 
        for (RouteList::const_iterator r = rl->begin(); r != rl->end(); ++r) {
                if (boost::dynamic_pointer_cast<Track> (*r)) {
-                       if (!(*r)->is_auditioner()) {
-                               tl->push_back (*r);
-                       }
+                       assert (!(*r)->is_auditioner()); // XXX remove me
+                       tl->push_back (*r);
                }
        }
        return tl;
@@ -6936,7 +6933,8 @@ Session::post_playback_latency ()
        boost::shared_ptr<RouteList> r = routes.reader ();
 
        for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
-               if (!(*i)->is_auditioner() && ((*i)->active())) {
+               assert (!(*i)->is_auditioner()); // XXX remove me
+               if ((*i)->active()) {
                        _worst_track_latency = max (_worst_track_latency, (*i)->update_signal_latency ());
                }
        }
@@ -7042,7 +7040,8 @@ Session::update_latency_compensation (bool force_whole_graph)
        boost::shared_ptr<RouteList> r = routes.reader ();
 
        for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
-               if (!(*i)->is_auditioner() && ((*i)->active())) {
+               assert (!(*i)->is_auditioner()); // XXX remove me
+               if ((*i)->active()) {
                        framecnt_t tl;
                        if ((*i)->signal_latency () != (tl = (*i)->update_signal_latency ())) {
                                some_track_latency_changed = true;