00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_MUSIC_HPP
00026 #define SFML_MUSIC_HPP
00027
00029
00031 #include <SFML/Audio/SoundStream.hpp>
00032 #include <SFML/System/Mutex.hpp>
00033 #include <string>
00034 #include <vector>
00035
00036
00037 namespace sf
00038 {
00039 namespace priv
00040 {
00041 class SoundFile;
00042 }
00043
00044 class InputStream;
00045
00050 class SFML_API Music : public SoundStream
00051 {
00052 public :
00053
00058 Music();
00059
00064 ~Music();
00065
00082 bool OpenFromFile(const std::string& filename);
00083
00101 bool OpenFromMemory(const void* data, std::size_t sizeInBytes);
00102
00119 bool OpenFromStream(InputStream& stream);
00120
00127 Uint32 GetDuration() const;
00128
00129 protected :
00130
00142 virtual bool OnGetData(Chunk& data);
00143
00150 virtual void OnSeek(Uint32 timeOffset);
00151
00152 private :
00153
00158 void Initialize();
00159
00161
00163 priv::SoundFile* myFile;
00164 Uint32 myDuration;
00165 std::vector<Int16> mySamples;
00166 Mutex myMutex;
00167 };
00168
00169 }
00170
00171
00172 #endif // SFML_MUSIC_HPP
00173
00174