00001 #ifndef STREAM_HPP 00002 #define STREAM_HPP 00003 00004 00005 #include "audiere.h" 00006 #include "input.hpp" 00007 #include "repeatable.hpp" 00008 #include "threads.hpp" 00009 00010 00011 class Context; 00012 class IOutputStream; 00013 00014 00015 class Stream 00016 { 00017 private: 00018 Stream(); 00019 bool Initialize(Context* context, const char* filename); 00020 void Destructor(); 00021 00022 public: 00023 ~Stream(); 00024 00025 void Play(); 00026 void Pause(); 00027 void Reset(); 00028 bool IsPlaying(); 00029 void SetRepeat(bool repeat); 00030 bool IsRepeating(); 00031 void SetVolume(int volume); 00032 int GetVolume(); 00033 00034 private: 00035 Context* m_context; 00036 00037 RepeatableStream* m_input_stream; 00038 IOutputStream* m_output_stream; 00039 00040 friend class Context; 00041 }; 00042 00043 00044 #endif