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

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

Issue 1952793002: Move the exception logic to the AudioNode creator (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 4 years, 7 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
Index: third_party/WebKit/Source/modules/webaudio/BiquadFilterNode.cpp
diff --git a/third_party/WebKit/Source/modules/webaudio/BiquadFilterNode.cpp b/third_party/WebKit/Source/modules/webaudio/BiquadFilterNode.cpp
index 9d6fda8af8499eea982ab6358dd81ddedece67a7..f534842b8b90013c45f7b1631aa74ea23f0da936 100644
--- a/third_party/WebKit/Source/modules/webaudio/BiquadFilterNode.cpp
+++ b/third_party/WebKit/Source/modules/webaudio/BiquadFilterNode.cpp
@@ -27,20 +27,42 @@
namespace blink {
-BiquadFilterNode::BiquadFilterNode(AbstractAudioContext& context, float sampleRate)
+BiquadFilterNode::BiquadFilterNode(AbstractAudioContext& context)
: AudioNode(context)
- , m_frequency(AudioParam::create(context, ParamTypeBiquadFilterFrequency, 350.0, 0, sampleRate / 2))
+ , m_frequency(AudioParam::create(context, ParamTypeBiquadFilterFrequency, 350.0, 0, context.sampleRate() / 2))
, m_q(AudioParam::create(context, ParamTypeBiquadFilterQ, 1.0))
, m_gain(AudioParam::create(context, ParamTypeBiquadFilterGain, 0.0))
, m_detune(AudioParam::create(context, ParamTypeBiquadFilterDetune, 0.0))
{
- setHandler(AudioBasicProcessorHandler::create(AudioHandler::NodeTypeBiquadFilter, *this, sampleRate, adoptPtr(new BiquadProcessor(sampleRate, 1, m_frequency->handler(), m_q->handler(), m_gain->handler(), m_detune->handler()))));
+ setHandler(AudioBasicProcessorHandler::create(
+ AudioHandler::NodeTypeBiquadFilter,
+ *this,
+ context.sampleRate(),
+ adoptPtr(new BiquadProcessor(
+ context.sampleRate(),
+ 1,
+ m_frequency->handler(),
+ m_q->handler(),
+ m_gain->handler(),
+ m_detune->handler()))));
// Explicitly set the filter type so that any histograms get updated with the default value.
// Otherwise, the histogram won't ever show it.
setType("lowpass");
}
+BiquadFilterNode* BiquadFilterNode::create(AbstractAudioContext& context, ExceptionState& exceptionState)
+{
+ DCHECK(isMainThread());
+
+ if (context.isContextClosed()) {
+ context.throwExceptionForClosedState(exceptionState);
+ return nullptr;
+ }
+
+ return new BiquadFilterNode(context);
+}
+
DEFINE_TRACE(BiquadFilterNode)
{
visitor->trace(m_frequency);

Powered by Google App Engine
This is Rietveld 408576698