summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/ardour/auditioner.h2
-rw-r--r--libs/ardour/ardour/route.h2
-rw-r--r--libs/ardour/auditioner.cc14
3 files changed, 17 insertions, 1 deletions
diff --git a/libs/ardour/ardour/auditioner.h b/libs/ardour/ardour/auditioner.h
index 25a7b91158..a0047e225f 100644
--- a/libs/ardour/ardour/auditioner.h
+++ b/libs/ardour/ardour/auditioner.h
@@ -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;
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index f90ec77b7e..3c0e393e5e 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -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);
diff --git a/libs/ardour/auditioner.cc b/libs/ardour/auditioner.cc
index 209d26dc30..a5db9a21dd 100644
--- a/libs/ardour/auditioner.cc
+++ b/libs/ardour/auditioner.cc
@@ -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 ();
+}