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

Side by Side Diff: third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScope.h

Issue 2727733002: Implement AudioWorkletProcessor interface (Closed)
Patch Set: Added more unit test for parsing Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef AudioWorkletGlobalScope_h 5 #ifndef AudioWorkletGlobalScope_h
6 #define AudioWorkletGlobalScope_h 6 #define AudioWorkletGlobalScope_h
7 7
8 #include "bindings/core/v8/ScriptValue.h"
9 #include "core/dom/ExecutionContext.h"
8 #include "core/workers/ThreadedWorkletGlobalScope.h" 10 #include "core/workers/ThreadedWorkletGlobalScope.h"
11 #include "modules/ModulesExport.h"
9 12
10 namespace blink { 13 namespace blink {
11 14
12 class AudioWorkletGlobalScope final : public ThreadedWorkletGlobalScope { 15 class AudioBuffer;
16 class AudioWorkletProcessor;
17 class AudioWorkletProcessorDefinition;
18 class ExceptionState;
19
20 // This is constructed and destroyed on a worker thread, and all methods also
21 // must be called on the worker thread.
22 class MODULES_EXPORT AudioWorkletGlobalScope final
23 : public ThreadedWorkletGlobalScope {
13 DEFINE_WRAPPERTYPEINFO(); 24 DEFINE_WRAPPERTYPEINFO();
14 25
15 public: 26 public:
16 static AudioWorkletGlobalScope* create(const KURL&, 27 static AudioWorkletGlobalScope* create(const KURL&,
17 const String& userAgent, 28 const String& userAgent,
18 PassRefPtr<SecurityOrigin>, 29 PassRefPtr<SecurityOrigin>,
19 v8::Isolate*, 30 v8::Isolate*,
20 WorkerThread*); 31 WorkerThread*);
21 ~AudioWorkletGlobalScope() override; 32 ~AudioWorkletGlobalScope() override;
33 void dispose() final;
34 bool isAudioWorkletGlobalScope() const final { return true; }
35 void registerProcessor(const String& name,
36 const ScriptValue& classDefinition,
37 ExceptionState&);
38
39 // Creates an instance of AudioWorkletProcessor from a registered name. This
40 // function may return nullptr when 1) a definition cannot be found or 2) a
41 // new V8 object cannot be constructed for some reason.
42 AudioWorkletProcessor* createInstance(const String& name);
43
44 bool process(AudioWorkletProcessor*,
Raymond Toy 2017/03/17 16:45:32 Document this.
hongchan 2017/03/20 17:03:32 Done.
45 AudioBuffer* inputBuffer,
46 AudioBuffer* outputBuffer);
47
48 AudioWorkletProcessorDefinition* findDefinition(const String& name);
49
50 DECLARE_TRACE();
22 51
23 private: 52 private:
24 AudioWorkletGlobalScope(const KURL&, 53 AudioWorkletGlobalScope(const KURL&,
25 const String& userAgent, 54 const String& userAgent,
26 PassRefPtr<SecurityOrigin>, 55 PassRefPtr<SecurityOrigin>,
27 v8::Isolate*, 56 v8::Isolate*,
28 WorkerThread*); 57 WorkerThread*);
58
59 typedef HeapHashMap<String, Member<AudioWorkletProcessorDefinition>>
60 ProcessorDefinitionMap;
61 typedef HeapVector<Member<AudioWorkletProcessor>> ProcessorInstances;
62
63 ProcessorDefinitionMap m_processorDefinitionMap;
64 ProcessorInstances m_processorInstances;
29 }; 65 };
30 66
31 } // namespace blink 67 } // namespace blink
32 68
33 #endif // AudioWorkletGlobalScope_h 69 #endif // AudioWorkletGlobalScope_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698