diff options
author | André Nusser <andre.nusser@googlemail.com> | 2016-04-21 21:05:43 +0200 |
---|---|---|
committer | André Nusser <andre.nusser@googlemail.com> | 2016-04-21 21:35:30 +0200 |
commit | f8be5a6d8d0be47596e1d9e6050e6e134f1e4167 (patch) | |
tree | ad0f01c5c3d2232386cd939e72bbee644ccd7142 | |
parent | 02b46fa70addd49ce1b7c0a04e56c33963f0e1c2 (diff) |
A little refactoring for drumgizmo.cc.
Range based loops, static const member variables instead of #define, c++11 convert from and to strings.
-rw-r--r-- | src/drumgizmo.cc | 46 | ||||
-rw-r--r-- | src/drumgizmo.h | 9 |
2 files changed, 18 insertions, 37 deletions
diff --git a/src/drumgizmo.cc b/src/drumgizmo.cc index aa6be23..46250f0 100644 --- a/src/drumgizmo.cc +++ b/src/drumgizmo.cc @@ -107,9 +107,9 @@ bool DrumGizmo::loadkit(std::string file) loader.loadKit(&kit); #ifdef WITH_RESAMPLER - for(int i = 0; i < MAX_NUM_CHANNELS; ++i) + for(auto& chresampler: resampler) { - resampler[i].setup(kit.getSamplerate(), settings.samplerate.load()); + chresampler.setup(kit.getSamplerate(), settings.samplerate.load()); } #endif/*WITH_RESAMPLER*/ @@ -602,9 +602,9 @@ void DrumGizmo::setSamplerate(int samplerate) DEBUG(dgeditor, "%s samplerate: %d\n", __PRETTY_FUNCTION__, samplerate); settings.samplerate.store(samplerate); #ifdef WITH_RESAMPLER - for(int i = 0; i < MAX_NUM_CHANNELS; ++i) + for(auto& chresampler: resampler) { - resampler[i].setup(kit.getSamplerate(), settings.samplerate.load()); + chresampler.setup(kit.getSamplerate(), settings.samplerate.load()); } if(resampler[0].getRatio() != 1) { @@ -613,28 +613,6 @@ void DrumGizmo::setSamplerate(int samplerate) #endif/*WITH_RESAMPLER*/ } -std::string float2str(float a) -{ - char buf[256]; - snprintf_nol(buf, sizeof(buf) - 1, "%f", a); - return buf; -} - -std::string bool2str(bool a) -{ - return a?"true":"false"; -} - -float str2float(std::string a) -{ - if(a == "") - { - return 0.0; - } - - return atof_nol(a.c_str()); -} - std::string DrumGizmo::configString() { std::string mmapfile; @@ -649,15 +627,15 @@ std::string DrumGizmo::configString() " <value name=\"drumkitfile\">" + kit.getFile() + "</value>\n" " <value name=\"midimapfile\">" + mmapfile + "</value>\n" " <value name=\"enable_velocity_modifier\">" + - bool2str(settings.enable_velocity_modifier.load()) + "</value>\n" + std::to_string(settings.enable_velocity_modifier.load()) + "</value>\n" " <value name=\"velocity_modifier_falloff\">" + - float2str(settings.velocity_modifier_falloff.load()) + "</value>\n" + std::to_string(settings.velocity_modifier_falloff.load()) + "</value>\n" " <value name=\"velocity_modifier_weight\">" + - float2str(settings.velocity_modifier_weight.load()) + "</value>\n" + std::to_string(settings.velocity_modifier_weight.load()) + "</value>\n" " <value name=\"enable_velocity_randomiser\">" + - bool2str(settings.enable_velocity_randomiser.load()) + "</value>\n" + std::to_string(settings.enable_velocity_randomiser.load()) + "</value>\n" " <value name=\"velocity_randomiser_weight\">" + - float2str(settings.velocity_randomiser_weight.load()) + "</value>\n" + std::to_string(settings.velocity_randomiser_weight.load()) + "</value>\n" "</config>"; } @@ -680,12 +658,12 @@ bool DrumGizmo::setConfigString(std::string cfg) if(p.value("velocity_modifier_falloff") != "") { - settings.velocity_modifier_falloff.store(str2float(p.value("velocity_modifier_falloff"))); + settings.velocity_modifier_falloff.store(std::stof(p.value("velocity_modifier_falloff"))); } if(p.value("velocity_modifier_weight") != "") { - settings.velocity_modifier_weight.store(str2float(p.value("velocity_modifier_weight"))); + settings.velocity_modifier_weight.store(std::stof(p.value("velocity_modifier_weight"))); } if(p.value("enable_velocity_randomiser") != "") @@ -695,7 +673,7 @@ bool DrumGizmo::setConfigString(std::string cfg) if(p.value("velocity_randomiser_weight") != "") { - settings.velocity_randomiser_weight.store(str2float(p.value("velocity_randomiser_weight"))); + settings.velocity_randomiser_weight.store(std::stof(p.value("velocity_randomiser_weight"))); } if(p.value("enable_resampling") != "") diff --git a/src/drumgizmo.h b/src/drumgizmo.h index 7af5dbb..13c657d 100644 --- a/src/drumgizmo.h +++ b/src/drumgizmo.h @@ -42,9 +42,7 @@ #include "configfile.h" #include "settings.h" -#define MAX_NUM_CHANNELS 64 #define REFSFILE "refs.conf" -#define RESAMPLER_INPUT_BUFFER 64 class DrumGizmo { @@ -73,6 +71,11 @@ public: void setFreeWheel(bool freewheel); +private: + static const int MAX_NUM_CHANNELS = 64; + static const int RESAMPLER_OUTPUT_BUFFER = 4096; + static const int RESAMPLER_INPUT_BUFFER = 64; + protected: DrumKitLoader loader; @@ -85,7 +88,7 @@ protected: std::list< Event* > activeevents[MAX_NUM_CHANNELS]; CHResampler resampler[MAX_NUM_CHANNELS]; - sample_t resampler_output_buffer[MAX_NUM_CHANNELS][4096]; + sample_t resampler_output_buffer[MAX_NUM_CHANNELS][RESAMPLER_OUTPUT_BUFFER]; sample_t resampler_input_buffer[MAX_NUM_CHANNELS][RESAMPLER_INPUT_BUFFER]; std::map<std::string, AudioFile *> audiofiles; |