Bug 1265394 - Add new PannerNode AudioParams to webidl; r=smaug
MozReview-Commit-ID: I09QSCU9pIr
--- a/dom/media/webaudio/PannerNode.h
+++ b/dom/media/webaudio/PannerNode.h
@@ -180,16 +180,47 @@ public:
{
if (WebAudioUtils::FuzzyEqual(mConeOuterGain, aConeOuterGain)) {
return;
}
mConeOuterGain = aConeOuterGain;
SendDoubleParameterToStream(CONE_OUTER_GAIN, mConeOuterGain);
}
+ AudioParam* PositionX()
+ {
+ return mPositionX;
+ }
+
+ AudioParam* PositionY()
+ {
+ return mPositionY;
+ }
+
+ AudioParam* PositionZ()
+ {
+ return mPositionZ;
+ }
+
+ AudioParam* OrientationX()
+ {
+ return mOrientationX;
+ }
+
+ AudioParam* OrientationY()
+ {
+ return mOrientationY;
+ }
+
+ AudioParam* OrientationZ()
+ {
+ return mOrientationZ;
+ }
+
+
float ComputeDopplerShift();
void SendDopplerToSourcesIfNeeded();
void FindConnectedSources();
void FindConnectedSources(AudioNode* aNode, nsTArray<AudioBufferSourceNode*>& aSources, std::set<AudioNode*>& aSeenNodes);
const char* NodeType() const override
{
return "PannerNode";
@@ -225,16 +256,23 @@ private:
};
private:
PanningModelType mPanningModel;
DistanceModelType mDistanceModel;
ThreeDPoint mPosition;
ThreeDPoint mOrientation;
ThreeDPoint mVelocity;
+ RefPtr<AudioParam> mPositionX;
+ RefPtr<AudioParam> mPositionY;
+ RefPtr<AudioParam> mPositionZ;
+ RefPtr<AudioParam> mOrientationX;
+ RefPtr<AudioParam> mOrientationY;
+ RefPtr<AudioParam> mOrientationZ;
+
double mRefDistance;
double mMaxDistance;
double mRolloffFactor;
double mConeInnerAngle;
double mConeOuterAngle;
double mConeOuterGain;
// An array of all the AudioBufferSourceNode connected directly or indirectly
--- a/dom/webidl/PannerNode.webidl
+++ b/dom/webidl/PannerNode.webidl
@@ -27,16 +27,26 @@ interface PannerNode : AudioNode {
attribute PanningModelType panningModel;
// Uses a 3D cartesian coordinate system
void setPosition(double x, double y, double z);
void setOrientation(double x, double y, double z);
[Deprecated="PannerNodeDoppler"]
void setVelocity(double x, double y, double z);
+ // Cartesian coordinate for position
+ readonly attribute AudioParam positionX;
+ readonly attribute AudioParam positionY;
+ readonly attribute AudioParam positionZ;
+
+ // Cartesian coordinate for orientation
+ readonly attribute AudioParam orientationX;
+ readonly attribute AudioParam orientationY;
+ readonly attribute AudioParam orientationZ;
+
// Distance model and attributes
attribute DistanceModelType distanceModel;
attribute double refDistance;
attribute double maxDistance;
attribute double rolloffFactor;
// Directional sound cone
attribute double coneInnerAngle;