Add Pan to Audio Source for stereo panning

This commit is contained in:
Wojtek Figat
2023-04-21 15:58:22 +02:00
parent eb613d3e8a
commit 8457687025
9 changed files with 82 additions and 1 deletions

View File

@@ -45,6 +45,16 @@ void AudioSource::SetPitch(float value)
AudioBackend::Source::PitchChanged(this);
}
void AudioSource::SetPan(float value)
{
value = Math::Clamp(value, -1.0f, 1.0f);
if (Math::NearEqual(_pan, value))
return;
_pan = value;
if (SourceIDs.HasItems())
AudioBackend::Source::PanChanged(this);
}
void AudioSource::SetIsLooping(bool value)
{
if (_loop == value)
@@ -339,6 +349,7 @@ void AudioSource::Serialize(SerializeStream& stream, const void* otherObj)
SERIALIZE(Clip);
SERIALIZE_MEMBER(Volume, _volume);
SERIALIZE_MEMBER(Pitch, _pitch);
SERIALIZE_MEMBER(Pan, _pan);
SERIALIZE_MEMBER(MinDistance, _minDistance);
SERIALIZE_MEMBER(Attenuation, _attenuation);
SERIALIZE_MEMBER(DopplerFactor, _dopplerFactor);
@@ -355,6 +366,7 @@ void AudioSource::Deserialize(DeserializeStream& stream, ISerializeModifier* mod
DESERIALIZE(Clip);
DESERIALIZE_MEMBER(Volume, _volume);
DESERIALIZE_MEMBER(Pitch, _pitch);
DESERIALIZE_MEMBER(Pan, _pan);
DESERIALIZE_MEMBER(MinDistance, _minDistance);
DESERIALIZE_MEMBER(Attenuation, _attenuation);
DESERIALIZE_MEMBER(DopplerFactor, _dopplerFactor);