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
00035 namespace sf
00036 {
00037 class SoundBuffer;
00038
00043 class SFML_API Sound : public AudioResource
00044 {
00045 public :
00046
00050 enum Status
00051 {
00052 Stopped,
00053 Paused,
00054 Playing
00055 };
00056
00069 Sound(const SoundBuffer* 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);
00070
00077 Sound(const Sound& Copy);
00078
00083 ~Sound();
00084
00089 void Play();
00090
00095 void Pause();
00096
00101 void Stop();
00102
00109 void SetBuffer(const SoundBuffer* Buffer);
00110
00117 void SetLoop(bool Loop);
00118
00125 void SetPitch(float Pitch);
00126
00133 void SetVolume(float Volume);
00134
00143 void SetPosition(float X, float Y, float Z);
00144
00151 const SoundBuffer* GetBuffer() const;
00152
00159 bool GetLoop() const;
00160
00167 float GetPitch() const;
00168
00175 float GetVolume() const;
00176
00185 void GetPosition(float& X, float& Y, float& Z) const;
00186
00193 Status GetStatus() const;
00194
00201 float GetPlayingOffset() const;
00202
00211 Sound& operator =(const Sound& Other);
00212
00213 private :
00214
00215 friend class SoundStream;
00216
00218
00220 unsigned int mySource;
00221 const SoundBuffer* myBuffer;
00222 };
00223
00224 }
00225
00226
00227 #endif // SFML_SOUND_HPP