Chromium Code Reviews| Index: third_party/WebKit/Source/modules/webaudio/AudioWorkletProcessor.cpp |
| diff --git a/third_party/WebKit/Source/modules/webaudio/AudioWorkletProcessor.cpp b/third_party/WebKit/Source/modules/webaudio/AudioWorkletProcessor.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..b6fccfa390bc4535a7d88ec14d86cc740607f56d |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/modules/webaudio/AudioWorkletProcessor.cpp |
| @@ -0,0 +1,50 @@ |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "modules/webaudio/AudioWorkletProcessor.h" |
| + |
| +#include "modules/webaudio/AudioWorkletGlobalScope.h" |
| + |
| +namespace blink { |
| + |
| +// This static factory should be called implicitly when an instance of |
| +// |AudioWorkletNode| gets created by user-supplied JS code in the main thread. |
| +// This factory must not be called by user in |AudioWorkletGlobalScope|. |
| +AudioWorkletProcessor* AudioWorkletProcessor::create( |
| + AudioWorkletGlobalScope* globalScope, |
| + const String& name) { |
| + DCHECK(!isMainThread()); |
|
nhiroki
2017/03/16 00:21:35
Can we replace DCHECK(!isMainThread) with DCHECK(g
hongchan
2017/03/16 22:11:28
Done.
|
| + return new AudioWorkletProcessor(globalScope, name); |
| +} |
| + |
| +AudioWorkletProcessor::AudioWorkletProcessor( |
| + AudioWorkletGlobalScope* globalScope, |
| + const String& name) |
| + : m_globalScope(globalScope), m_name(name) {} |
| + |
| +AudioWorkletProcessor::~AudioWorkletProcessor() {} |
| + |
| +void AudioWorkletProcessor::setInstance(v8::Isolate* isolate, |
| + v8::Local<v8::Object> instance) { |
| + DCHECK(!isMainThread()); |
| + m_instance.set(isolate, instance); |
| +} |
| + |
| +v8::Local<v8::Object> AudioWorkletProcessor::instanceLocal( |
| + v8::Isolate* isolate) { |
| + DCHECK(!isMainThread()); |
| + return m_instance.newLocal(isolate); |
| +} |
| + |
| +void AudioWorkletProcessor::process(AudioBuffer* inputBuffer, |
| + AudioBuffer* outputBuffer) { |
| + DCHECK(!isMainThread()); |
| + m_globalScope->process(this, inputBuffer, outputBuffer); |
| +} |
| + |
| +DEFINE_TRACE(AudioWorkletProcessor) { |
| + visitor->trace(m_globalScope); |
| +} |
| + |
| +} // namespace blink |