diff --git a/src/lime/_internal/backend/native/NativeAudioSource.hx b/src/lime/_internal/backend/native/NativeAudioSource.hx index 693625cab..0baa34071 100644 --- a/src/lime/_internal/backend/native/NativeAudioSource.hx +++ b/src/lime/_internal/backend/native/NativeAudioSource.hx @@ -505,6 +505,18 @@ class NativeAudioSource return loops = value; } + public function getPitch():Float + { + return AL.getSourcef(handle, AL.PITCH); + } + + public function setPitch(value:Float):Float + { + AL.sourcef(handle, AL.PITCH, value); + + return getPitch(); + } + public function getPosition():Vector4 { if (handle != null) diff --git a/src/lime/media/AudioSource.hx b/src/lime/media/AudioSource.hx index 1bbdedac7..3a34cb71c 100644 --- a/src/lime/media/AudioSource.hx +++ b/src/lime/media/AudioSource.hx @@ -17,6 +17,7 @@ class AudioSource public var gain(get, set):Float; public var length(get, set):Int; public var loops(get, set):Int; + public var pitch(get, set):Float; public var offset:Int; public var position(get, set):Vector4; @@ -36,6 +37,8 @@ class AudioSource this.loops = loops; + pitch = 1; + if (buffer != null) { init(); @@ -108,6 +111,16 @@ class AudioSource return __backend.setLoops(value); } + private function get_pitch():Float + { + return __backend.getPitch(); + } + + private function set_pitch(value:Float):Float + { + return __backend.setPitch(value); + } + @:noCompletion private function get_position():Vector4 { return __backend.getPosition();