22 #ifndef AUDIO_SOFTSYNTH_PCSPK_H 23 #define AUDIO_SOFTSYNTH_PCSPK_H 25 #include "audio/audiostream.h" 26 #include "audio/mixer.h" 27 #include "common/mutex.h" 28 #include "common/queue.h" 32 class PCSpeakerStream;
55 void play(WaveForm wave,
int freq, int32 length);
77 void playQueue(WaveForm wave,
float freq, uint32 lengthus);
79 void stop(int32 delay = 0);
81 bool isPlaying()
const;
93 PCSpeaker::WaveForm waveForm;
97 Command(PCSpeaker::WaveForm waveForm,
float frequency, uint32 length);
108 void play(PCSpeaker::WaveForm wave,
int freq, int32 length);
129 void playQueue(PCSpeaker::WaveForm wave,
float freq, uint32 lengthus);
131 void stop(int32 delay = 0);
133 void setVolume(byte volume);
135 bool isPlaying()
const;
137 int readBuffer(int16 *buffer,
const int numSamples);
148 PCSpeaker::WaveForm _wave;
152 uint32 _remainingSamples;
153 uint32 _mixedSamples;
163 typedef int8 (*generatorFunc)(uint32, uint32);
164 static const generatorFunc generateWave[];
166 static int8 generateSquare(uint32 x, uint32 oscLength);
167 static int8 generateSine(uint32 x, uint32 oscLength);
168 static int8 generateSaw(uint32 x, uint32 oscLength);
169 static int8 generateTriangle(uint32 x, uint32 oscLength);
170 static int8 generateSilence(uint32 x, uint32 oscLength);
175 #endif // AUDIO_SOFTSYNTH_PCSPEAKER_H void playQueue(WaveForm wave, float freq, uint32 lengthus)
bool isStereo() const
Definition: pcspk.h:139
void play(WaveForm wave, int freq, int32 length)
int getRate() const
Definition: pcspk.h:142
Definition: audiostream.h:50
bool endOfData() const
Definition: pcspk.h:140
bool endOfStream() const
Definition: pcspk.h:141