diff options
-rw-r--r-- | libs/ardour/ardour/auditioner.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/route.h | 2 | ||||
-rw-r--r-- | libs/ardour/auditioner.cc | 14 |
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 (); +} |