diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/drumkit.cc | 5 | ||||
-rw-r--r-- | src/drumkit.h | 1 | ||||
-rw-r--r-- | src/drumkitloader.cc | 8 | ||||
-rw-r--r-- | src/settings.h | 25 |
4 files changed, 38 insertions, 1 deletions
diff --git a/src/drumkit.cc b/src/drumkit.cc index abef1b8..e557de1 100644 --- a/src/drumkit.cc +++ b/src/drumkit.cc @@ -68,6 +68,11 @@ std::string DrumKit::getDescription() const return _description; } +VersionStr DrumKit::getVersion() const +{ + return _version; +} + std::size_t DrumKit::getSamplerate() const { return _samplerate; diff --git a/src/drumkit.h b/src/drumkit.h index f646b22..682dbff 100644 --- a/src/drumkit.h +++ b/src/drumkit.h @@ -44,6 +44,7 @@ public: std::string getName() const; std::string getDescription() const; + VersionStr getVersion() const; Instruments instruments; Channels channels; diff --git a/src/drumkitloader.cc b/src/drumkitloader.cc index e4d34f2..eed5a33 100644 --- a/src/drumkitloader.cc +++ b/src/drumkitloader.cc @@ -125,12 +125,18 @@ bool DrumKitLoader::loadkit(const std::string& file) "Trying to load it anyway...\n"); } + // Put some information about the kit into the settings + settings.drumkit_name = kit.getName(); + settings.drumkit_description = kit.getDescription(); + settings.drumkit_version = kit.getVersion(); + settings.drumkit_samplerate = kit.getSamplerate(); + loadKit(&kit); #ifdef WITH_RESAMPLER resamplers.setup(kit.getSamplerate(), settings.samplerate.load()); #endif/*WITH_RESAMPLER*/ - + settings.resampling_active.store(resamplers.isActive()); DEBUG(loadkit, "loadkit: Success\n"); diff --git a/src/settings.h b/src/settings.h index 3f9f9ae..61f92e7 100644 --- a/src/settings.h +++ b/src/settings.h @@ -48,6 +48,10 @@ struct Settings { Atomic<std::string> drumkit_file{""}; Atomic<LoadStatus> drumkit_load_status{LoadStatus::Idle}; + Atomic<std::string> drumkit_name{""}; + Atomic<std::string> drumkit_description{""}; + Atomic<std::string> drumkit_version{""}; + Atomic<std::size_t> drumkit_samplerate{0}; //! The maximum amount of memory in bytes that the AudioCache //! is allowed to use for preloading. Default is 1GB. @@ -76,6 +80,7 @@ struct Settings Atomic<double> samplerate{44100.0}; Atomic<bool> enable_resampling{true}; + Atomic<bool> resampling_active{false}; Atomic<std::size_t> number_of_files{0}; Atomic<std::size_t> number_of_files_loaded{0}; @@ -87,6 +92,10 @@ struct SettingsGetter { SettingRef<std::string> drumkit_file; SettingRef<LoadStatus> drumkit_load_status; + SettingRef<std::string> drumkit_name; + SettingRef<std::string> drumkit_description; + SettingRef<std::string> drumkit_version; + SettingRef<std::size_t> drumkit_samplerate; SettingRef<std::size_t> disk_cache_upper_limit; SettingRef<std::size_t> disk_cache_chunk_size; @@ -107,6 +116,7 @@ struct SettingsGetter SettingRef<double> samplerate; SettingRef<bool> enable_resampling; + SettingRef<bool> resampling_active; SettingRef<std::size_t> number_of_files; SettingRef<std::size_t> number_of_files_loaded; @@ -115,6 +125,10 @@ struct SettingsGetter SettingsGetter(Settings& settings) : drumkit_file(settings.drumkit_file) , drumkit_load_status(settings.drumkit_load_status) + , drumkit_name(settings.drumkit_name) + , drumkit_description(settings.drumkit_description) + , drumkit_version(settings.drumkit_version) + , drumkit_samplerate(settings.drumkit_samplerate) , disk_cache_upper_limit(settings.disk_cache_upper_limit) , disk_cache_chunk_size(settings.disk_cache_chunk_size) , disk_cache_enable(settings.disk_cache_enable) @@ -129,6 +143,7 @@ struct SettingsGetter , velocity_randomiser_weight{settings.velocity_randomiser_weight} , samplerate{settings.samplerate} , enable_resampling{settings.enable_resampling} + , resampling_active{settings.resampling_active} , number_of_files{settings.number_of_files} , number_of_files_loaded{settings.number_of_files_loaded} , current_file{settings.current_file} @@ -142,6 +157,10 @@ class SettingsNotifier public: Notifier<std::string> drumkit_file; Notifier<LoadStatus> drumkit_load_status; + Notifier<std::string> drumkit_name; + Notifier<std::string> drumkit_description; + Notifier<std::string> drumkit_version; + Notifier<std::size_t> drumkit_samplerate; Notifier<std::size_t> disk_cache_upper_limit; Notifier<std::size_t> disk_cache_chunk_size; @@ -162,6 +181,7 @@ public: Notifier<double> samplerate; Notifier<bool> enable_resampling; + Notifier<bool> resampling_active; Notifier<std::size_t> number_of_files; Notifier<std::size_t> number_of_files_loaded; @@ -173,6 +193,10 @@ public: EVAL(drumkit_file); EVAL(drumkit_load_status); + EVAL(drumkit_name); + EVAL(drumkit_description); + EVAL(drumkit_version); + EVAL(drumkit_samplerate); EVAL(disk_cache_upper_limit); EVAL(disk_cache_chunk_size); @@ -193,6 +217,7 @@ public: EVAL(samplerate); EVAL(enable_resampling); + EVAL(resampling_active); EVAL(number_of_files); EVAL(number_of_files_loaded); |