1
0
mirror of https://github.com/luanti-org/luanti.git synced 2025-10-21 03:55:21 +02:00

Sounds: Various little improvements (#12486)

Use SimpleSoundSpec where reasonable (OpenAL)
Ensure the sound IDs do not underflow or get overwritten -> loop in u16
Proper use of an enum.
This commit is contained in:
SmallJoker
2022-07-09 22:32:24 +02:00
committed by GitHub
parent 051181fa6e
commit e51f474613
9 changed files with 112 additions and 108 deletions

View File

@@ -51,10 +51,8 @@ public:
// playSound functions return -1 on failure, otherwise a handle to the
// sound. If name=="", call should be ignored without error.
virtual int playSound(const std::string &name, bool loop, float volume,
float fade = 0.0f, float pitch = 1.0f) = 0;
virtual int playSoundAt(const std::string &name, bool loop, float volume, v3f pos,
float pitch = 1.0f) = 0;
virtual int playSound(const SimpleSoundSpec &spec) = 0;
virtual int playSoundAt(const SimpleSoundSpec &spec, const v3f &pos) = 0;
virtual void stopSound(int sound) = 0;
virtual bool soundExists(int sound) = 0;
virtual void updateSoundPosition(int sound, v3f pos) = 0;
@@ -62,15 +60,6 @@ public:
virtual float getSoundGain(int id) = 0;
virtual void step(float dtime) = 0;
virtual void fadeSound(int sound, float step, float gain) = 0;
int playSound(const SimpleSoundSpec &spec)
{
return playSound(spec.name, spec.loop, spec.gain, spec.fade, spec.pitch);
}
int playSoundAt(const SimpleSoundSpec &spec, const v3f &pos)
{
return playSoundAt(spec.name, spec.loop, spec.gain, pos, spec.pitch);
}
};
class DummySoundManager : public ISoundManager
@@ -88,16 +77,9 @@ public:
{
}
void setListenerGain(float gain) {}
int playSound(const std::string &name, bool loop, float volume, float fade,
float pitch)
{
return 0;
}
int playSoundAt(const std::string &name, bool loop, float volume, v3f pos,
float pitch)
{
return 0;
}
int playSound(const SimpleSoundSpec &spec) { return -1; }
int playSoundAt(const SimpleSoundSpec &spec, const v3f &pos) { return -1; }
void stopSound(int sound) {}
bool soundExists(int sound) { return false; }
void updateSoundPosition(int sound, v3f pos) {}