diff options
-rw-r--r-- | src/drumkit.cc | 14 | ||||
-rw-r--r-- | src/drumkit.h | 7 | ||||
-rw-r--r-- | src/instrument.cc | 7 | ||||
-rw-r--r-- | src/instrument.h | 3 |
4 files changed, 28 insertions, 3 deletions
diff --git a/src/drumkit.cc b/src/drumkit.cc index 1dadf04..abef1b8 100644 --- a/src/drumkit.cc +++ b/src/drumkit.cc @@ -68,7 +68,19 @@ std::string DrumKit::getDescription() const return _description; } -size_t DrumKit::getSamplerate() const +std::size_t DrumKit::getSamplerate() const { return _samplerate; } + +std::size_t DrumKit::getNumberOfFiles() const +{ + std::size_t number_of_files = 0; + + for(const auto & instrument : instruments) + { + number_of_files += instrument->getNumberOfFiles(); + } + + return number_of_files; +} diff --git a/src/drumkit.h b/src/drumkit.h index e3ae783..f646b22 100644 --- a/src/drumkit.h +++ b/src/drumkit.h @@ -52,7 +52,10 @@ public: bool isValid() const; - size_t getSamplerate() const; + std::size_t getSamplerate() const; + + //! Get the number of audio files (as in single channel) in this drumkit. + std::size_t getNumberOfFiles() const; private: void* magic{nullptr}; @@ -61,7 +64,7 @@ private: std::string _name; std::string _description; - size_t _samplerate{0}; + std::size_t _samplerate{0}; VersionStr _version; }; diff --git a/src/instrument.cc b/src/instrument.cc index 5c96c6d..466acc1 100644 --- a/src/instrument.cc +++ b/src/instrument.cc @@ -117,3 +117,10 @@ void Instrument::setGroup(const std::string& g) { _group = g; } + +std::size_t Instrument::getNumberOfFiles() const +{ + // Note: Each AudioFile instance contains just a single channel even for + // multi-channel files. + return audiofiles.size(); +} diff --git a/src/instrument.h b/src/instrument.h index e61d446..41fe886 100644 --- a/src/instrument.h +++ b/src/instrument.h @@ -60,6 +60,9 @@ public: bool isValid() const; + //! Get the number of audio files (as in single channel) in this instrument. + std::size_t getNumberOfFiles() const; + private: void* magic; |