servo/components/script/dom/webidls/PannerNode.webidl
2019-10-02 21:45:30 +09:00

56 lines
1.7 KiB
Text

/* 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;
void setPosition (float x, float y, float z);
void setOrientation (float x, float y, float z);
};