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 <cstdlib>
00032 #include <SFML/Audio/AudioResource.hpp>
00033 #include <SFML/System/Vector3.hpp>
00034
00035
00036 namespace sf
00037 {
00038 class SoundBuffer;
00039
00044 class SFML_API Sound : public AudioResource
00045 {
00046 public :
00047
00051 enum Status
00052 {
00053 Stopped,
00054 Paused,
00055 Playing
00056 };
00057
00062 Sound();
00063
00074 Sound(const SoundBuffer& Buffer, bool Loop = false, float Pitch = 1.f, float Volume = 100.f, const Vector3f& Position = Vector3f(0, 0, 0));
00075
00082 Sound(const Sound& Copy);
00083
00088 ~Sound();
00089
00094 void Play();
00095
00100 void Pause();
00101
00106 void Stop();
00107
00114 void SetBuffer(const SoundBuffer& Buffer);
00115
00123 void SetLoop(bool Loop);
00124
00132 void SetPitch(float Pitch);
00133
00141 void SetVolume(float Volume);
00142
00150 void SetPosition(float X, float Y, float Z);
00151
00159 void SetPosition(const Vector3f& Position);
00160
00169 void SetMinDistance(float MinDistance);
00170
00179 void SetAttenuation(float Attenuation);
00180
00187 const SoundBuffer* GetBuffer() const;
00188
00195 bool GetLoop() const;
00196
00203 float GetPitch() const;
00204
00211 float GetVolume() const;
00212
00219 Vector3f GetPosition() const;
00220
00227 float GetMinDistance() const;
00228
00235 float GetAttenuation() const;
00236
00243 Status GetStatus() const;
00244
00251 float GetPlayingOffset() const;
00252
00261 Sound& operator =(const Sound& Other);
00262
00263 private :
00264
00265 friend class SoundStream;
00266
00268
00270 unsigned int mySource;
00271 const SoundBuffer* myBuffer;
00272 };
00273
00274 }
00275
00276
00277 #endif // SFML_SOUND_HPP