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 <string>
00033 #include <vector>
00034
00035
00036 namespace sf
00037 {
00038 namespace priv
00039 {
00040 class SoundFile;
00041 }
00042
00047 class SFML_API Music : public SoundStream
00048 {
00049 public :
00050
00058 Music(std::size_t BufferSize = 44100);
00059
00064 ~Music();
00065
00074 bool Open(const std::string& Filename);
00075
00082 void SetLoop(bool Loop);
00083
00090 bool GetLoop() const;
00091
00098 float GetDuration() const;
00099
00100 private :
00101
00106 virtual bool OnStart();
00107
00112 virtual bool OnGetData(Chunk& Data);
00113
00115
00117 priv::SoundFile* myFile;
00118 std::string myFilename;
00119 bool myLoop;
00120 float myDuration;
00121 std::vector<Int16> mySamples;
00122 };
00123
00124 }
00125
00126
00127 #endif // SFML_MUSIC_HPP