Olivier Smeesters
/
DtmfKit
A DTMF sequence editor and player for HAM radio equipment command & control.
Diff: SoundWaveGenerator/snd_wave_generator/WaveCombo.h
- Revision:
- 0:1324e7d9d471
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SoundWaveGenerator/snd_wave_generator/WaveCombo.h Mon Mar 07 22:51:19 2011 +0000 @@ -0,0 +1,33 @@ +#ifndef WAVE_COMBO_H_ +#define WAVE_COMBO_H_ + +#include "snd_wave_generator/Wave.h" +#include <vector> + +namespace snd_wave_generator { + +/** + * @brief A class that produces a wave that results of the combination of multiple waves. + * The combined wave does not buffer itself (as it does not know the length of the combined cycle. + * During preparation phase, it invokes the prepare() method of its contained waves. + */ +class WaveCombo : public Wave { +public: + WaveCombo(Wave *wave = NULL) : waves(), numWaves(0) + { + add(wave); + } + + WaveCombo & add(Wave *wave); + + virtual void prepare(std::size_t sampleRate); + virtual float read(std::size_t pos) const; + +private: + std::vector<Wave*> waves; + float numWaves; +}; + +} // snd_wave_generator + +#endif // WAVE_COMBO_H_ \ No newline at end of file