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
00034 class sfSoundBuffer;
00035
00036
00041 class SFML_API sfSound : public sf_private::sfAudioResource
00042 {
00043 public :
00044
00048 enum Status
00049 {
00050 Stopped,
00051 Paused,
00052 Playing
00053 };
00054
00067 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);
00068
00075 sfSound(const sfSound& Copy);
00076
00081 ~sfSound();
00082
00087 void Play();
00088
00093 void Pause();
00094
00099 void Stop();
00100
00107 void SetBuffer(const sfSoundBuffer* Buffer);
00108
00115 void SetLoop(bool Loop);
00116
00123 void SetPitch(float Pitch);
00124
00131 void SetVolume(float Volume);
00132
00141 void SetPosition(float X, float Y, float Z);
00142
00149 const sfSoundBuffer* GetBuffer() const;
00150
00157 bool GetLoop() const;
00158
00165 float GetPitch() const;
00166
00173 float GetVolume() const;
00174
00183 void GetPosition(float& X, float& Y, float& Z) const;
00184
00191 Status GetStatus() const;
00192
00199 float GetPlayingOffset() const;
00200
00209 sfSound& operator =(const sfSound& Other);
00210
00211 private :
00212
00213 friend class sfSoundStream;
00214
00219 virtual void DestroyAudioResources();
00220
00222
00224 unsigned int mySource;
00225 const sfSoundBuffer* myBuffer;
00226 };
00227
00228
00229 #endif // SFML_SOUND_HPP