Documentation of SFML 2.6.1

Loading...
Searching...
No Matches
SoundSource.hpp
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2023 Laurent Gomila (laurent@sfml-dev.org)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef SFML_SOUNDSOURCE_HPP
26#define SFML_SOUNDSOURCE_HPP
27
29// Headers
31#include <SFML/Audio/Export.hpp>
32#include <SFML/Audio/AlResource.hpp>
33#include <SFML/System/Vector3.hpp>
34
35
36namespace sf
37{
42class SFML_AUDIO_API SoundSource : AlResource
43{
44public:
45
50 enum Status
51 {
54 Playing
55 };
56
64
69 virtual ~SoundSource();
70
85 void setPitch(float pitch);
86
98 void setVolume(float volume);
99
114 void setPosition(float x, float y, float z);
115
128 void setPosition(const Vector3f& position);
129
144 void setRelativeToListener(bool relative);
145
161 void setMinDistance(float distance);
162
180 void setAttenuation(float attenuation);
181
190 float getPitch() const;
191
200 float getVolume() const;
201
211
222
231 float getMinDistance() const;
232
241 float getAttenuation() const;
242
251 SoundSource& operator =(const SoundSource& right);
252
263 virtual void play() = 0;
264
274 virtual void pause() = 0;
275
286 virtual void stop() = 0;
287
294 virtual Status getStatus() const;
295
296protected:
297
305
307 // Member data
309 unsigned int m_source;
310};
311
312} // namespace sf
313
314
315#endif // SFML_SOUNDSOURCE_HPP
316
317
Base class for classes that require an OpenAL context.
Base class defining a sound's properties.
unsigned int m_source
OpenAL source identifier.
float getVolume() const
Get the volume of the sound.
void setPosition(float x, float y, float z)
Set the 3D position of the sound in the audio scene.
virtual void stop()=0
Stop playing the sound source.
void setPosition(const Vector3f &position)
Set the 3D position of the sound in the audio scene.
virtual void pause()=0
Pause the sound source.
void setVolume(float volume)
Set the volume of the sound.
float getPitch() const
Get the pitch of the sound.
float getMinDistance() const
Get the minimum distance of the sound.
virtual void play()=0
Start or resume playing the sound source.
void setPitch(float pitch)
Set the pitch of the sound.
void setMinDistance(float distance)
Set the minimum distance of the sound.
virtual ~SoundSource()
Destructor.
float getAttenuation() const
Get the attenuation factor of the sound.
Vector3f getPosition() const
Get the 3D position of the sound in the audio scene.
void setAttenuation(float attenuation)
Set the attenuation factor of the sound.
virtual Status getStatus() const
Get the current status of the sound (stopped, paused, playing)
Status
Enumeration of the sound source states.
@ Paused
Sound is paused.
@ Stopped
Sound is not playing.
void setRelativeToListener(bool relative)
Make the sound's position relative to the listener or absolute.
bool isRelativeToListener() const
Tell whether the sound's position is relative to the listener or is absolute.
SoundSource(const SoundSource &copy)
Copy constructor.
SoundSource()
Default constructor.
Utility template class for manipulating 3-dimensional vectors.
Definition Vector3.hpp:38