| Index: third_party/WebKit/Source/modules/webaudio/PannerNode.cpp
|
| diff --git a/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp b/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp
|
| index ce21afd7e6b0ca8c0f27e12a17ee87462540c536..a9d54598e0b1bc6dd2d1b0f43eecffbe762bac91 100644
|
| --- a/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp
|
| +++ b/third_party/WebKit/Source/modules/webaudio/PannerNode.cpp
|
| @@ -31,6 +31,7 @@
|
| #include "modules/webaudio/AudioNodeInput.h"
|
| #include "modules/webaudio/AudioNodeOutput.h"
|
| #include "modules/webaudio/BaseAudioContext.h"
|
| +#include "modules/webaudio/PannerOptions.h"
|
| #include "platform/Histogram.h"
|
| #include "platform/audio/HRTFPanner.h"
|
| #include "wtf/MathExtras.h"
|
| @@ -668,6 +669,50 @@ PannerNode* PannerNode::create(BaseAudioContext& context, ExceptionState& except
|
| return new PannerNode(context);
|
| }
|
|
|
| +PannerNode* PannerNode::create(BaseAudioContext* context, const PannerOptions& options, ExceptionState& exceptionState)
|
| +{
|
| + PannerNode* node = create(*context, exceptionState);
|
| +
|
| + if (!node)
|
| + return node;
|
| +
|
| + node->handleChannelOptions(options, exceptionState);
|
| +
|
| + if (options.hasPanningModel())
|
| + node->setPanningModel(options.panningModel());
|
| + if (options.hasDistanceModel())
|
| + node->setDistanceModel(options.distanceModel());
|
| +
|
| + if (options.hasPositionX())
|
| + node->positionX()->setValue(options.positionX());
|
| + if (options.hasPositionY())
|
| + node->positionY()->setValue(options.positionY());
|
| + if (options.hasPositionZ())
|
| + node->positionZ()->setValue(options.positionZ());
|
| +
|
| + if (options.hasOrientationX())
|
| + node->orientationX()->setValue(options.orientationX());
|
| + if (options.hasOrientationY())
|
| + node->orientationY()->setValue(options.orientationY());
|
| + if (options.hasOrientationZ())
|
| + node->orientationZ()->setValue(options.orientationZ());
|
| +
|
| + if (options.hasRefDistance())
|
| + node->setRefDistance(options.refDistance());
|
| + if (options.hasMaxDistance())
|
| + node->setMaxDistance(options.maxDistance());
|
| + if (options.hasRolloffFactor())
|
| + node->setRolloffFactor(options.rolloffFactor());
|
| + if (options.hasConeInnerAngle())
|
| + node->setConeInnerAngle(options.coneInnerAngle());
|
| + if (options.hasConeOuterAngle())
|
| + node->setConeOuterAngle(options.coneOuterAngle());
|
| + if (options.hasConeOuterGain())
|
| + node->setConeOuterGain(options.coneOuterGain());
|
| +
|
| + return node;
|
| +}
|
| +
|
| PannerHandler& PannerNode::pannerHandler() const
|
| {
|
| return static_cast<PannerHandler&>(handler());
|
|
|