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_SOUNDBUFFER_HPP
00026 #define SFML_SOUNDBUFFER_HPP
00027
00029
00031 #include <SFML/Config.hpp>
00032 #include <SFML/Audio/SoundBufferImpl.hpp>
00033 #include <SFML/Utilities/SharedPtr.hpp>
00034 #include <string>
00035 #include <vector>
00036
00037
00042 class SFML_API sfSoundBuffer
00043 {
00044 public :
00045
00050 sfSoundBuffer();
00051
00060 bool LoadFromFile(const std::string& Filename);
00061
00074 bool LoadFromMemory(const sfInt16* Samples, std::size_t SamplesCount, unsigned int ChannelsCount, unsigned int Frequency);
00075
00084 bool SaveToFile(const std::string& Filename) const;
00085
00092 bool IsEmpty() const;
00093
00100 const std::vector<sfInt16>& GetSamples() const;
00101
00108 unsigned int GetFrequency() const;
00109
00116 unsigned int GetChannelsCount() const;
00117
00124 float GetDuration() const;
00125
00126 private :
00127
00128 friend class sfSound;
00129 friend class sfSoundStream;
00130
00137 unsigned int GetId() const;
00138
00140
00142 sfSharedPtr<sf_private::sfSoundBufferImpl> myImpl;
00143 std::vector<sfInt16> mySamples;
00144 unsigned int myFrequency;
00145 unsigned int myChannelsCount;
00146 float myDuration;
00147 };
00148
00149
00150 #endif // SFML_SOUNDBUFFER_HPP