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_