| OLD | NEW |
| 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" | 8 #include "bindings/core/v8/ScriptValue.h" |
| 9 #include "core/dom/ExecutionContext.h" | 9 #include "core/dom/ExecutionContext.h" |
| 10 #include "core/workers/ThreadedWorkletGlobalScope.h" | 10 #include "core/workers/ThreadedWorkletGlobalScope.h" |
| 11 #include "modules/ModulesExport.h" | 11 #include "modules/ModulesExport.h" |
| 12 #include "platform/bindings/ScriptWrappable.h" | 12 #include "platform/bindings/ScriptWrappable.h" |
| 13 #include "platform/audio/AudioArray.h" |
| 13 | 14 |
| 14 namespace blink { | 15 namespace blink { |
| 15 | 16 |
| 16 class AudioBuffer; | 17 class AudioBuffer; |
| 17 class AudioWorkletProcessor; | 18 class AudioWorkletProcessor; |
| 18 class AudioWorkletProcessorDefinition; | 19 class AudioWorkletProcessorDefinition; |
| 19 class ExceptionState; | 20 class ExceptionState; |
| 20 | 21 |
| 21 // This is constructed and destroyed on a worker thread, and all methods also | 22 // This is constructed and destroyed on a worker thread, and all methods also |
| 22 // must be called on the worker thread. | 23 // must be called on the worker thread. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 39 | 40 |
| 40 // Creates an instance of AudioWorkletProcessor from a registered name. This | 41 // Creates an instance of AudioWorkletProcessor from a registered name. This |
| 41 // function may return nullptr when 1) a definition cannot be found or 2) a | 42 // function may return nullptr when 1) a definition cannot be found or 2) a |
| 42 // new V8 object cannot be constructed for some reason. | 43 // new V8 object cannot be constructed for some reason. |
| 43 AudioWorkletProcessor* CreateInstance(const String& name); | 44 AudioWorkletProcessor* CreateInstance(const String& name); |
| 44 | 45 |
| 45 // Invokes the JS audio processing function from an instance of | 46 // Invokes the JS audio processing function from an instance of |
| 46 // AudioWorkletProcessor, along with given AudioBuffer from the audio graph. | 47 // AudioWorkletProcessor, along with given AudioBuffer from the audio graph. |
| 47 bool Process(AudioWorkletProcessor*, | 48 bool Process(AudioWorkletProcessor*, |
| 48 AudioBuffer* input_buffer, | 49 AudioBuffer* input_buffer, |
| 49 AudioBuffer* output_buffer); | 50 AudioBuffer* output_buffer, |
| 51 HashMap<String, AudioFloatArray*> audio_param_data_map); |
| 50 | 52 |
| 51 AudioWorkletProcessorDefinition* FindDefinition(const String& name); | 53 AudioWorkletProcessorDefinition* FindDefinition(const String& name); |
| 52 | 54 |
| 53 DECLARE_TRACE(); | 55 DECLARE_TRACE(); |
| 54 DECLARE_TRACE_WRAPPERS(); | 56 DECLARE_TRACE_WRAPPERS(); |
| 55 | 57 |
| 56 private: | 58 private: |
| 57 AudioWorkletGlobalScope(const KURL&, | 59 AudioWorkletGlobalScope(const KURL&, |
| 58 const String& user_agent, | 60 const String& user_agent, |
| 59 PassRefPtr<SecurityOrigin>, | 61 PassRefPtr<SecurityOrigin>, |
| 60 v8::Isolate*, | 62 v8::Isolate*, |
| 61 WorkerThread*, | 63 WorkerThread*, |
| 62 WorkerClients*); | 64 WorkerClients*); |
| 63 | 65 |
| 64 typedef HeapHashMap<String, | 66 typedef HeapHashMap<String, |
| 65 TraceWrapperMember<AudioWorkletProcessorDefinition>> | 67 TraceWrapperMember<AudioWorkletProcessorDefinition>> |
| 66 ProcessorDefinitionMap; | 68 ProcessorDefinitionMap; |
| 67 typedef HeapVector<TraceWrapperMember<AudioWorkletProcessor>> | 69 typedef HeapVector<TraceWrapperMember<AudioWorkletProcessor>> |
| 68 ProcessorInstances; | 70 ProcessorInstances; |
| 69 | 71 |
| 70 ProcessorDefinitionMap processor_definition_map_; | 72 ProcessorDefinitionMap processor_definition_map_; |
| 71 ProcessorInstances processor_instances_; | 73 ProcessorInstances processor_instances_; |
| 72 }; | 74 }; |
| 73 | 75 |
| 76 DEFINE_TYPE_CASTS(AudioWorkletGlobalScope, |
| 77 ExecutionContext, |
| 78 context, |
| 79 context->IsAudioWorkletGlobalScope(), |
| 80 context.IsAudioWorkletGlobalScope()); |
| 81 |
| 74 } // namespace blink | 82 } // namespace blink |
| 75 | 83 |
| 76 #endif // AudioWorkletGlobalScope_h | 84 #endif // AudioWorkletGlobalScope_h |
| OLD | NEW |