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_SOUND_HPP
00026 #define SFML_SOUND_HPP
00027
00029
00031 #include <SFML/Audio/SoundImpl.hpp>
00032 #include <SFML/Utilities/SharedPtr.hpp>
00033
00034 class sfSoundBuffer;
00035
00036
00043 class SFML_API sfSound
00044 {
00045 public :
00046
00059 sfSound(const sfSoundBuffer* Buffer = NULL, bool Loop = false, float Pitch = 1.f, float Volume = 100.f, float X = 0.f, float Y = 0.f, float Z = 0.f);
00060
00065 void Play();
00066
00071 void Pause();
00072
00077 void Stop();
00078
00085 void SetBuffer(const sfSoundBuffer* Buffer);
00086
00093 void SetLoop(bool Loop);
00094
00101 void SetPitch(float Pitch);
00102
00109 void SetVolume(float Volume);
00110
00119 void SetPosition(float X, float Y, float Z);
00120
00127 const sfSoundBuffer* GetBuffer() const;
00128
00135 bool GetLoop() const;
00136
00143 float GetPitch() const;
00144
00151 float GetVolume() const;
00152
00161 void GetPosition(float& X, float& Y, float& Z) const;
00162
00169 sfSoundStatus GetStatus() const;
00170
00177 float GetPlayingOffset() const;
00178
00179 private :
00180
00186 void CloneIfNotUnique();
00187
00189
00191 sfSharedPtr<sf_private::sfSoundImpl> myImpl;
00192 const sfSoundBuffer* myBuffer;
00193 };
00194
00195
00196 #endif // SFML_SOUND_HPP