dungeon_crawler

annotate prototype/src/audio/stream.h @ 54:995191474cc0

writting the stream audio player
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 19 Sep 2012 05:22:43 +0300
parents 1ea56011c1ff
children 4c427e28ca00
rev   line source
nuclear@53 1 #ifndef AUDIO_STREAM_H_
nuclear@53 2 #define AUDIO_STREAM_H_
nuclear@53 3
nuclear@53 4 #include <thread>
nuclear@53 5
nuclear@54 6 struct AudioStreamBuffer {
nuclear@54 7 void *samples;
nuclear@54 8 int num_samples;
nuclear@54 9 int channels;
nuclear@54 10 int sample_rate;
nuclear@54 11 };
nuclear@54 12
nuclear@53 13 class AudioStream {
nuclear@53 14 private:
nuclear@53 15 std::thread play_thread;
nuclear@54 16 bool done, loop;
nuclear@54 17 unsigned int poll_interval;
nuclear@54 18 unsigned int alsrc;
nuclear@53 19
nuclear@54 20 virtual bool more_samples(AudioStreamBuffer *buf) = 0;
nuclear@54 21
nuclear@54 22 void poll_loop();
nuclear@53 23
nuclear@53 24 public:
nuclear@54 25 AudioStream();
nuclear@53 26 virtual ~AudioStream();
nuclear@53 27
nuclear@54 28 void play(bool loop = false);
nuclear@53 29 void stop();
nuclear@54 30
nuclear@54 31 virtual void rewind() = 0;
nuclear@53 32 };
nuclear@53 33
nuclear@53 34 #endif // AUDIO_STREAM_H_