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/System/Resource.hpp>
00032 #include <SFML/System/Vector3.hpp>
00033 #include <SFML/Audio/AudioResource.hpp>
00034 #include <cstdlib>
00035
00036
00037 namespace sf
00038 {
00039 class SoundBuffer;
00040
00045 class SFML_API Sound : public AudioResource
00046 {
00047 public :
00048
00052 enum Status
00053 {
00054 Stopped,
00055 Paused,
00056 Playing
00057 };
00058
00063 Sound();
00064
00075 Sound(const SoundBuffer& Buffer, bool Loop = false, float Pitch = 1.f, float Volume = 100.f, const Vector3f& Position = Vector3f(0, 0, 0));
00076
00083 Sound(const Sound& Copy);
00084
00089 ~Sound();
00090
00095 void Play();
00096
00101 void Pause();
00102
00107 void Stop();
00108
00115 void SetBuffer(const SoundBuffer& Buffer);
00116
00124 void SetLoop(bool Loop);
00125
00133 void SetPitch(float Pitch);
00134
00142 void SetVolume(float Volume);
00143
00151 void SetPosition(float X, float Y, float Z);
00152
00160 void SetPosition(const Vector3f& Position);
00161
00170 void SetMinDistance(float MinDistance);
00171
00180 void SetAttenuation(float Attenuation);
00181
00188 void SetPlayingOffset(float TimeOffset);
00189
00196 const SoundBuffer* GetBuffer() const;
00197
00204 bool GetLoop() const;
00205
00212 float GetPitch() const;
00213
00220 float GetVolume() const;
00221
00228 Vector3f GetPosition() const;
00229
00236 float GetMinDistance() const;
00237
00244 float GetAttenuation() const;
00245
00252 Status GetStatus() const;
00253
00260 float GetPlayingOffset() const;
00261
00270 Sound& operator =(const Sound& Other);
00271
00272 private :
00273
00274 friend class SoundStream;
00275
00277
00279 unsigned int mySource;
00280 ResourcePtr<SoundBuffer> myBuffer;
00281 };
00282
00283 }
00284
00285
00286 #endif // SFML_SOUND_HPP