fix auditioner by virtualizing Route::input_streams(), since the auditioner never...
authorPaul Davis <paul@linuxaudiosystems.com>
Sat, 29 Jan 2011 17:49:27 +0000 (17:49 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sat, 29 Jan 2011 17:49:27 +0000 (17:49 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8610 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/auditioner.h
libs/ardour/ardour/route.h
libs/ardour/auditioner.cc

index 25a7b91158cabc119340a3b2dda6f8a1ca059861..a0047e225fbccde28a7dcda5264fdf7a57f729b9 100644 (file)
@@ -55,6 +55,8 @@ class Auditioner : public AudioTrack
        bool auditioning() const { return g_atomic_int_get (&_auditioning); }
         bool needs_monitor() const { return via_monitor; }
 
+        virtual ChanCount input_streams () const;
+
   private:
        boost::shared_ptr<AudioRegion> the_region;
        framepos_t current_frame;
index f90ec77b7ee593a2cbfe6d733494ff57b2be35b1..3c0e393e5efc4cb893eddb6de87e2b4656feb774 100644 (file)
@@ -454,7 +454,7 @@ class Route : public SessionObject, public Automatable, public RouteGroupMember,
        DataType       _default_type;
         FedBy          _fed_by;
 
-        ChanCount input_streams () const;
+        virtual ChanCount input_streams () const;
 
   protected:
        virtual XMLNode& state(bool);
index 209d26dc3075fef45bbd6b0907b7100623a0f584..a5db9a21ddcb678ba7a2dad172053c1c5b26f71a 100644 (file)
@@ -275,3 +275,17 @@ Auditioner::output_changed (IOChange change, void* /*src*/)
                }
        }
 }
+
+ChanCount 
+Auditioner::input_streams () const
+{
+        /* auditioner never has any inputs - its channel configuration
+           depends solely on the region we are auditioning.
+        */
+
+        if (audio_diskstream()) {
+                return audio_diskstream()->n_channels();
+        } 
+
+        return ChanCount ();
+}