| Index: Source/modules/webaudio/AudioNode.cpp
|
| diff --git a/Source/modules/webaudio/AudioNode.cpp b/Source/modules/webaudio/AudioNode.cpp
|
| index a2b4a76cfefbb5f28a2b968ab16f72d2207b8f10..4aaecf798847dff9faf97f2ecd25118aa8cf553a 100644
|
| --- a/Source/modules/webaudio/AudioNode.cpp
|
| +++ b/Source/modules/webaudio/AudioNode.cpp
|
| @@ -54,6 +54,7 @@ AudioNode::AudioNode(AudioContext* context, float sampleRate)
|
| , m_lastNonSilentTime(-1)
|
| , m_connectionRefCount(0)
|
| , m_isDisabled(false)
|
| + , m_newChannelCountMode(Max)
|
| , m_channelCount(2)
|
| , m_channelCountMode(Max)
|
| , m_channelInterpretation(AudioBus::Speakers)
|
| @@ -93,6 +94,7 @@ void AudioNode::dispose()
|
| ASSERT(isMainThread());
|
| ASSERT(context()->isGraphOwner());
|
|
|
| + context()->removeChangedChannelCountMode(this);
|
| context()->removeAutomaticPullNode(this);
|
| context()->disposeOutputs(*this);
|
| for (unsigned i = 0; i < m_outputs.size(); ++i)
|
| @@ -309,17 +311,17 @@ void AudioNode::setChannelCountMode(const String& mode, ExceptionState& exceptio
|
| ChannelCountMode oldMode = m_channelCountMode;
|
|
|
| if (mode == "max") {
|
| - m_channelCountMode = Max;
|
| + m_newChannelCountMode = Max;
|
| } else if (mode == "clamped-max") {
|
| - m_channelCountMode = ClampedMax;
|
| + m_newChannelCountMode = ClampedMax;
|
| } else if (mode == "explicit") {
|
| - m_channelCountMode = Explicit;
|
| + m_newChannelCountMode = Explicit;
|
| } else {
|
| ASSERT_NOT_REACHED();
|
| }
|
|
|
| - if (m_channelCountMode != oldMode)
|
| - updateChannelsForInputs();
|
| + if (m_newChannelCountMode != oldMode)
|
| + context()->addChangedChannelCountMode(this);
|
| }
|
|
|
| String AudioNode::channelInterpretation()
|
| @@ -551,6 +553,12 @@ void AudioNode::trace(Visitor* visitor)
|
| EventTargetWithInlineData::trace(visitor);
|
| }
|
|
|
| +void AudioNode::updateChannelCountMode()
|
| +{
|
| + m_channelCountMode = m_newChannelCountMode;
|
| + updateChannelsForInputs();
|
| +}
|
| +
|
| } // namespace blink
|
|
|
| #endif // ENABLE(WEB_AUDIO)
|
|
|