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/AudioResource.hpp>
00033 #include <string>
00034 #include <vector>
00035
00036
00041 class SFML_API sfSoundBuffer : public sf_private::sfAudioResource
00042 {
00043 public :
00044
00049 sfSoundBuffer();
00050
00057 sfSoundBuffer(const sfSoundBuffer& Copy);
00058
00063 ~sfSoundBuffer();
00064
00073 bool LoadFromFile(const std::string& Filename);
00074
00087 bool LoadFromMemory(const sfInt16* Samples, std::size_t SamplesCount, unsigned int ChannelsCount, unsigned int SampleRate);
00088
00097 bool SaveToFile(const std::string& Filename) const;
00098
00105 const sfInt16* GetSamples() const;
00106
00113 std::size_t GetSamplesCount() const;
00114
00121 unsigned int GetSampleRate() const;
00122
00129 unsigned int GetChannelsCount() const;
00130
00137 float GetDuration() const;
00138
00147 sfSoundBuffer& operator =(const sfSoundBuffer& Other);
00148
00149 private :
00150
00151 friend class sfSound;
00152
00162 bool Update(unsigned int ChannelsCount, unsigned int SampleRate);
00163
00168 virtual void DestroyAudioResources();
00169
00171
00173 unsigned int myBuffer;
00174 std::vector<sfInt16> mySamples;
00175 float myDuration;
00176 };
00177
00178
00179 #endif // SFML_SOUNDBUFFER_HPP