Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Unified Diff: third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp

Issue 2276973002: Revert CL 2242573002 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/modules/webaudio/ScriptProcessorNode.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp
diff --git a/third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp b/third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp
index b4edd857d1efbbb4c671d5be17d46198f1c38889..82ae762e55c6422e83b4455b56d8b08b24ef384a 100644
--- a/third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp
+++ b/third_party/WebKit/Source/modules/webaudio/StereoPannerNode.cpp
@@ -26,8 +26,8 @@ StereoPannerHandler::StereoPannerHandler(AudioNode& node, float sampleRate, Audi
// The node-specific default mixing rules declare that StereoPannerNode
// can handle mono to stereo and stereo to stereo conversion.
m_channelCount = 2;
- setInternalChannelCountMode(ClampedMax);
- setInternalChannelInterpretation(AudioBus::Speakers);
+ m_channelCountMode = ClampedMax;
+ m_channelInterpretation = AudioBus::Speakers;
initialize();
}
@@ -89,7 +89,7 @@ void StereoPannerHandler::setChannelCount(unsigned long channelCount, ExceptionS
if (channelCount > 0 && channelCount <= 2) {
if (m_channelCount != channelCount) {
m_channelCount = channelCount;
- if (internalChannelCountMode() != Max)
+ if (m_channelCountMode != Max)
updateChannelsForInputs();
}
} else {
@@ -110,17 +110,26 @@ void StereoPannerHandler::setChannelCountMode(const String& mode, ExceptionState
DCHECK(isMainThread());
BaseAudioContext::AutoLocker locker(context());
+ ChannelCountMode oldMode = m_channelCountMode;
+
if (mode == "clamped-max") {
- setInternalChannelCountMode(ClampedMax);
+ m_newChannelCountMode = ClampedMax;
} else if (mode == "explicit") {
- setInternalChannelCountMode(Explicit);
+ m_newChannelCountMode = Explicit;
} else if (mode == "max") {
// This is not supported for a StereoPannerNode, which can only handle
// 1 or 2 channels.
exceptionState.throwDOMException(
NotSupportedError,
"StereoPanner: 'max' is not allowed");
+ m_newChannelCountMode = oldMode;
+ } else {
+ // Do nothing for other invalid values.
+ m_newChannelCountMode = oldMode;
}
+
+ if (m_newChannelCountMode != oldMode)
+ context()->deferredTaskHandler().addChangedChannelCountMode(this);
}
// ----------------------------------------------------------------
« no previous file with comments | « third_party/WebKit/Source/modules/webaudio/ScriptProcessorNode.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698