LibWeb: Implement AudioListener

This exposes BaseAudioContext.listener, which is a container for
parameters related to the configuration of an actual "listener" in 3D
space.
This commit is contained in:
Jelle Raaijmakers 2024-10-17 21:26:01 +02:00
commit 2a98f2a12d
Notes: github-actions[bot] 2024-10-18 07:40:03 +00:00
15 changed files with 228 additions and 1 deletions

View file

@ -0,0 +1,29 @@
<script src="../include.js"></script>
<script>
function dumpAudioParam(param) {
println(`${param} current: ${param.value}, default: ${param.defaultValue}, min: ${param.minValue}, max: ${param.maxValue}, rate: ${param.automationRate}`);
}
function dumpListenerParams(listener) {
dumpAudioParam(listener.positionX);
dumpAudioParam(listener.positionY);
dumpAudioParam(listener.positionZ);
dumpAudioParam(listener.forwardX);
dumpAudioParam(listener.forwardY);
dumpAudioParam(listener.forwardZ);
dumpAudioParam(listener.upX);
dumpAudioParam(listener.upY);
dumpAudioParam(listener.upZ);
}
test(() => {
const audioContext = new OfflineAudioContext(1, 5000, 44100);
dumpListenerParams(audioContext.listener);
// Modify params
audioContext.listener.setPosition(-1, 2.5, -3);
audioContext.listener.setOrientation(4, -5, 6, 7, -8, 9);
dumpListenerParams(audioContext.listener);
});
</script>