Chromium Code Reviews| Index: third_party/WebKit/Source/modules/webaudio/ChannelMergerNode.cpp |
| diff --git a/third_party/WebKit/Source/modules/webaudio/ChannelMergerNode.cpp b/third_party/WebKit/Source/modules/webaudio/ChannelMergerNode.cpp |
| index b2f54cefc4b5ea1c6800d20057155562928d7221..a09f6e0232f7776aef75ddbf0fc97299c9a5df4a 100644 |
| --- a/third_party/WebKit/Source/modules/webaudio/ChannelMergerNode.cpp |
| +++ b/third_party/WebKit/Source/modules/webaudio/ChannelMergerNode.cpp |
| @@ -119,17 +119,43 @@ void ChannelMergerHandler::setChannelCountMode(const String& mode, ExceptionStat |
| // ---------------------------------------------------------------- |
| -ChannelMergerNode::ChannelMergerNode(AbstractAudioContext& context, float sampleRate, unsigned numberOfInputs) |
| +ChannelMergerNode::ChannelMergerNode(AbstractAudioContext& context, unsigned numberOfInputs) |
| : AudioNode(context) |
| { |
| - setHandler(ChannelMergerHandler::create(*this, sampleRate, numberOfInputs)); |
| + setHandler(ChannelMergerHandler::create(*this, context.sampleRate(), numberOfInputs)); |
| } |
| -ChannelMergerNode* ChannelMergerNode::create(AbstractAudioContext& context, float sampleRate, unsigned numberOfInputs) |
| +ChannelMergerNode* ChannelMergerNode::create(AbstractAudioContext& context, ExceptionState& exceptionState) |
| { |
| - if (!numberOfInputs || numberOfInputs > AbstractAudioContext::maxNumberOfChannels()) |
| + ASSERT(isMainThread()); |
|
hongchan
2016/05/13 01:20:11
DCHECK?
Raymond Toy
2016/05/20 23:12:00
Done.
|
| + |
| + const unsigned ChannelMergerDefaultNumberOfInputs = 6; |
|
hongchan
2016/05/13 01:20:11
Can we add TODO here? - "Create a global config fi
Raymond Toy
2016/05/13 15:59:51
Having a global for a constant that is used in exa
|
| + return create(context, ChannelMergerDefaultNumberOfInputs, exceptionState); |
| +} |
| + |
| +ChannelMergerNode* ChannelMergerNode::create(AbstractAudioContext& context, unsigned numberOfInputs, ExceptionState& exceptionState) |
| +{ |
| + ASSERT(isMainThread()); |
|
hongchan
2016/05/13 01:20:11
Ditto.
Raymond Toy
2016/05/20 23:12:00
Done.
|
| + |
| + if (context.isContextClosed()) { |
| + context.throwExceptionForClosedState(exceptionState); |
| return nullptr; |
| - return new ChannelMergerNode(context, sampleRate, numberOfInputs); |
| + } |
| + |
| + if (!numberOfInputs || numberOfInputs > AbstractAudioContext::maxNumberOfChannels()) { |
| + exceptionState.throwDOMException( |
| + IndexSizeError, |
| + ExceptionMessages::indexOutsideRange<size_t>( |
| + "number of inputs", |
| + numberOfInputs, |
| + 1, |
| + ExceptionMessages::InclusiveBound, |
| + AbstractAudioContext::maxNumberOfChannels(), |
| + ExceptionMessages::InclusiveBound)); |
| + return nullptr; |
| + } |
| + |
| + return new ChannelMergerNode(context, numberOfInputs); |
| } |
| } // namespace blink |