summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/modules/webaudio/ConvolverNode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/webaudio/ConvolverNode.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/modules/webaudio/ConvolverNode.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/chromium/third_party/WebKit/Source/modules/webaudio/ConvolverNode.cpp b/chromium/third_party/WebKit/Source/modules/webaudio/ConvolverNode.cpp
index cef9bca9c78..a0eac4de379 100644
--- a/chromium/third_party/WebKit/Source/modules/webaudio/ConvolverNode.cpp
+++ b/chromium/third_party/WebKit/Source/modules/webaudio/ConvolverNode.cpp
@@ -28,6 +28,8 @@
#include "modules/webaudio/ConvolverNode.h"
+#include "bindings/v8/ExceptionState.h"
+#include "core/dom/ExceptionCode.h"
#include "platform/audio/Reverb.h"
#include "modules/webaudio/AudioBuffer.h"
#include "modules/webaudio/AudioContext.h"
@@ -90,13 +92,6 @@ void ConvolverNode::process(size_t framesToProcess)
}
}
-void ConvolverNode::reset()
-{
- MutexLocker locker(m_processLock);
- if (m_reverb.get())
- m_reverb->reset();
-}
-
void ConvolverNode::initialize()
{
if (isInitialized())
@@ -114,13 +109,21 @@ void ConvolverNode::uninitialize()
AudioNode::uninitialize();
}
-void ConvolverNode::setBuffer(AudioBuffer* buffer)
+void ConvolverNode::setBuffer(AudioBuffer* buffer, ExceptionState& exceptionState)
{
ASSERT(isMainThread());
if (!buffer)
return;
+ if (buffer->sampleRate() != context()->sampleRate()) {
+ exceptionState.throwDOMException(
+ NotSupportedError,
+ "The buffer sample rate of " + String::number(buffer->sampleRate())
+ + " does not match the context rate of " + String::number(context()->sampleRate())
+ + " Hz.");
+ }
+
unsigned numberOfChannels = buffer->numberOfChannels();
size_t bufferLength = buffer->length();
@@ -176,6 +179,12 @@ double ConvolverNode::latencyTime() const
return std::numeric_limits<double>::infinity();
}
+void ConvolverNode::trace(Visitor* visitor)
+{
+ visitor->trace(m_buffer);
+ AudioNode::trace(visitor);
+}
+
} // namespace WebCore
#endif // ENABLE(WEB_AUDIO)