diff --git a/libs/ardour/ardour/bundle.h b/libs/ardour/ardour/bundle.h index c6e93edbca..b6cf231708 100644 --- a/libs/ardour/ardour/bundle.h +++ b/libs/ardour/ardour/bundle.h @@ -174,8 +174,18 @@ public: return bundle != other.bundle || channel != other.channel; } + ChanCount nchannels () const { + if (!_nchannels) { + _nchannels = bundle->nchannels (); + } + return _nchannels.value (); + } + std::shared_ptr bundle; int channel; ///< channel index, or -1 for "all" + +private: + mutable std::optional _nchannels; }; }