Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
SoundWaveGenerator.h
00001 #ifndef SOUND_WAVE_GENERATOR_H_ 00002 #define SOUND_WAVE_GENERATOR_H_ 00003 00004 #include "snd_wave_generator/Wave.h" 00005 #include "mbed.h" 00006 00007 namespace snd_wave_generator { 00008 00009 /** 00010 * @brief A class to handle computed sound wave generation. 00011 * The generator is bound to an AnalogOut pin (p18 on LPC1768). 00012 * It has a fixed sample rate. 00013 */ 00014 class SoundWaveGenerator { 00015 public: 00016 SoundWaveGenerator(std::size_t sampleRate, PinName pin = p18) : 00017 sampleRate(sampleRate), wave(NULL), pos(0), output(pin), ticker() 00018 { } 00019 00020 /** 00021 * @brief Starts playing a given wave. 00022 * The wave will be prepared for the generator's sample rate and then played back 00023 * on the bound analog output. 00024 */ 00025 void play(Wave *wave); 00026 00027 /** 00028 * @brief Stops playing. 00029 */ 00030 void stop(); 00031 00032 private: 00033 void tickerHandler(); 00034 00035 std::size_t sampleRate; 00036 00037 Wave *wave; 00038 std::size_t pos; 00039 AnalogOut output; 00040 Ticker ticker; 00041 }; 00042 00043 } // snd_wave_generator 00044 00045 #endif // SOUND_WAVE_GENERATOR_H_
Generated on Wed Jul 13 2022 16:23:43 by
 1.7.2