dungeon_crawler
diff 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 |
line diff
1.1 --- a/prototype/src/audio/stream.h Wed Sep 19 01:08:41 2012 +0300 1.2 +++ b/prototype/src/audio/stream.h Wed Sep 19 05:22:43 2012 +0300 1.3 @@ -3,17 +3,32 @@ 1.4 1.5 #include <thread> 1.6 1.7 +struct AudioStreamBuffer { 1.8 + void *samples; 1.9 + int num_samples; 1.10 + int channels; 1.11 + int sample_rate; 1.12 +}; 1.13 + 1.14 class AudioStream { 1.15 private: 1.16 std::thread play_thread; 1.17 + bool done, loop; 1.18 + unsigned int poll_interval; 1.19 + unsigned int alsrc; 1.20 1.21 - virtual bool more_samples() = 0; 1.22 + virtual bool more_samples(AudioStreamBuffer *buf) = 0; 1.23 + 1.24 + void poll_loop(); 1.25 1.26 public: 1.27 + AudioStream(); 1.28 virtual ~AudioStream(); 1.29 1.30 - void play(); 1.31 + void play(bool loop = false); 1.32 void stop(); 1.33 + 1.34 + virtual void rewind() = 0; 1.35 }; 1.36 1.37 #endif // AUDIO_STREAM_H_