/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ /* * The origin of this IDL file is * https://webaudio.github.io/web-audio-api/#pannernode */ dictionary PannerOptions : AudioNodeOptions { PanningModelType panningModel = "equalpower"; DistanceModelType distanceModel = "inverse"; float positionX = 0; float positionY = 0; float positionZ = 0; float orientationX = 1; float orientationY = 0; float orientationZ = 0; double refDistance = 1; double maxDistance = 10000; double rolloffFactor = 1; double coneInnerAngle = 360; double coneOuterAngle = 360; double coneOuterGain = 0; }; enum DistanceModelType { "linear", "inverse", "exponential" }; enum PanningModelType { "equalpower", "HRTF" }; [Exposed=Window] interface PannerNode : AudioNode { [Throws] constructor(BaseAudioContext context, optional PannerOptions options = {}); attribute PanningModelType panningModel; readonly attribute AudioParam positionX; readonly attribute AudioParam positionY; readonly attribute AudioParam positionZ; readonly attribute AudioParam orientationX; readonly attribute AudioParam orientationY; readonly attribute AudioParam orientationZ; attribute DistanceModelType distanceModel; [SetterThrows] attribute double refDistance; [SetterThrows] attribute double maxDistance; [SetterThrows] attribute double rolloffFactor; attribute double coneInnerAngle; attribute double coneOuterAngle; [SetterThrows] attribute double coneOuterGain; undefined setPosition (float x, float y, float z); undefined setOrientation (float x, float y, float z); };