diff options
author | Christian Glöckner <cgloeckner@freenet.de> | 2016-03-29 17:37:49 +0200 |
---|---|---|
committer | André Nusser <andre.nusser@googlemail.com> | 2016-03-31 17:48:37 +0200 |
commit | cf9874dfa5b528c0d6184aa5bb04b908272f2dcb (patch) | |
tree | 6d96fb0a487fd3ae86c1be8efa13e693da14651c /src | |
parent | 852b31481189d6ff9e490533a598ee5154a044f5 (diff) |
API Refactoring for class Sample
Diffstat (limited to 'src')
-rw-r--r-- | src/sample.cc | 47 | ||||
-rw-r--r-- | src/sample.h | 28 |
2 files changed, 39 insertions, 36 deletions
diff --git a/src/sample.cc b/src/sample.cc index 27382af..66fe3c5 100644 --- a/src/sample.cc +++ b/src/sample.cc @@ -31,42 +31,45 @@ #include <sndfile.h> -Sample::Sample(std::string name, float power) +Sample::Sample(const std::string& name, float power) + : name{name} + , power{power} + , audiofiles{} { - this->name = name; - this->power = power; } Sample::~Sample() { } -void Sample::addAudioFile(Channel *c, AudioFile *a) +void Sample::addAudioFile(Channel* c, AudioFile* a) { - audiofiles[c] = a; + audiofiles[c] = a; } -AudioFile *Sample::getAudioFile(Channel *c) +AudioFile* Sample::getAudioFile(Channel* c) { - /* - if(audiofiles.find(c) == audiofiles.end()) return NULL; - return audiofiles[c]; - */ + /* + if(audiofiles.find(c) == audiofiles.end()) return nullptr; + return audiofiles[c]; + */ - AudioFiles::iterator i = audiofiles.begin(); - while(i != audiofiles.end()) { - Channel *ch = i->first; - if(c->num == ch->num) return i->second; - i++; - } + // todo: std::find_if ?? + for (auto& pair: audiofiles) + { + if (pair.first->num == c->num) + { + return pair.second; + } + } - return NULL; + return nullptr; } #ifdef TEST_SAMPLE -//deps: channel.cc audiofile.cc -//cflags: $(SNDFILE_CFLAGS) -//libs: $(SNDFILE_LIBS) +// deps: channel.cc audiofile.cc +// cflags: $(SNDFILE_CFLAGS) +// libs: $(SNDFILE_LIBS) #include "test.h" TEST_BEGIN; @@ -78,8 +81,8 @@ AudioFile a("test"); s.addAudioFile(&c, &a); TEST_EQUAL(s.getAudioFile(&c), &a, "?"); -TEST_EQUAL(s.getAudioFile(&c2), NULL, "?"); +TEST_EQUAL(s.getAudioFile(&c2), nullptr, "?"); TEST_END; -#endif/*TEST_SAMPLE*/ +#endif /*TEST_SAMPLE*/ diff --git a/src/sample.h b/src/sample.h index 26c7be2..5b4f3b5 100644 --- a/src/sample.h +++ b/src/sample.h @@ -24,8 +24,7 @@ * along with DrumGizmo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifndef __DRUMGIZMO_SAMPLE_H__ -#define __DRUMGIZMO_SAMPLE_H__ +#pragma once #include <map> #include <string> @@ -33,24 +32,26 @@ #include "channel.h" #include "audiofile.h" -typedef std::map< Channel*, AudioFile* > AudioFiles; +typedef std::map<Channel*, AudioFile*> AudioFiles; class InstrumentParser; -class Sample { - friend class InstrumentParser; - friend class PowerList; +class Sample +{ + friend class InstrumentParser; + friend class PowerList; + public: - Sample(std::string name, float power); - ~Sample(); + Sample(const std::string& name, float power); + ~Sample(); - AudioFile *getAudioFile(InstrumentChannel *c); + AudioFile* getAudioFile(InstrumentChannel* c); private: - void addAudioFile(InstrumentChannel *c, AudioFile *a); + void addAudioFile(InstrumentChannel* c, AudioFile* a); - std::string name; - float power; - AudioFiles audiofiles; + std::string name; + float power; + AudioFiles audiofiles; }; /* @@ -62,4 +63,3 @@ private: * <audiofile channel="Kick R-3" file="samples/1-kick-r-Kick R-3.wav"/> * </sample> */ -#endif/*__DRUMGIZMO_SAMPLE_H__*/ |