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 OpenFromFile(const std::string& Filename);
00075
00085 bool OpenFromMemory(const char* Data, std::size_t SizeInBytes);
00086
00094 void SetLoop(bool Loop);
00095
00102 bool GetLoop() const;
00103
00110 float GetDuration() const;
00111
00112 private :
00113
00118 virtual bool OnStart();
00119
00124 virtual bool OnGetData(Chunk& Data);
00125
00127
00129 priv::SoundFile* myFile;
00130 bool myLoop;
00131 float myDuration;
00132 std::vector<Int16> mySamples;
00133 };
00134
00135 }
00136
00137
00138 #endif // SFML_MUSIC_HPP