summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/velocity.cc51
-rw-r--r--src/velocity.h24
2 files changed, 40 insertions, 35 deletions
diff --git a/src/velocity.cc b/src/velocity.cc
index 0ee00df..e08ab9b 100644
--- a/src/velocity.cc
+++ b/src/velocity.cc
@@ -29,33 +29,40 @@
#include <stdlib.h>
Velocity::Velocity(unsigned int lower, unsigned int upper)
+ : lower{lower}
+ , upper{upper}
+ , samples{}
{
- this->lower = lower;
- this->upper = upper;
}
-void Velocity::addSample(Sample *sample, float probability)
+void Velocity::addSample(Sample* sample, float probability)
{
- if(samples.find(sample) != samples.end()) {
- samples[sample] += probability;
- } else {
- samples[sample] = probability;
- }
+ if(samples.find(sample) != samples.end())
+ {
+ samples[sample] += probability;
+ }
+ else
+ {
+ samples[sample] = probability;
+ }
}
-Sample *Velocity::getSample()
+Sample* Velocity::getSample() const
{
- Sample *sample = NULL;
-
- float x = rand.floatInRange(0, 1);
- float sum = 0.0;
-
- Samples::iterator i = samples.begin();
- while(i != samples.end() && x > sum) {
- sum += i->second;
- sample = i->first;
- i++;
- }
-
- return sample;
+ Sample* sample{nullptr};
+
+ float x = rand.floatInRange(0, 1);
+ float sum = 0.0;
+
+ for (auto const & pair: samples)
+ {
+ if (x > sum)
+ {
+ break;
+ }
+ sum += pair.second;
+ sample = pair.first;
+ }
+
+ return sample;
}
diff --git a/src/velocity.h b/src/velocity.h
index c62ddad..41622d3 100644
--- a/src/velocity.h
+++ b/src/velocity.h
@@ -24,29 +24,27 @@
* along with DrumGizmo; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-#ifndef __DRUMGIZMO_VELOCITY_H__
-#define __DRUMGIZMO_VELOCITY_H__
+#pragma once
#include <map>
#include "sample.h"
#include "random.h"
-class Velocity {
+class Velocity
+{
public:
- Velocity(unsigned int lower, unsigned int upper);
+ Velocity(unsigned int lower, unsigned int upper);
- void addSample(Sample *sample, float probability);
- Sample *getSample();
+ void addSample(Sample* sample, float probability);
+ Sample* getSample() const;
- unsigned int lower;
- unsigned int upper;
+ unsigned int lower;
+ unsigned int upper;
private:
- typedef std::map< Sample *, float > Samples;
- Samples samples;
+ typedef std::map<Sample*, float> Samples;
+ Samples samples;
- Random rand;
+ Random rand;
};
-
-#endif/*__DRUMGIZMO_VELOCITY_H__*/