Chromium Code Reviews| Index: third_party/WebKit/Source/modules/webaudio/OfflineAudioDestinationNode.h |
| diff --git a/third_party/WebKit/Source/modules/webaudio/OfflineAudioDestinationNode.h b/third_party/WebKit/Source/modules/webaudio/OfflineAudioDestinationNode.h |
| index 736810419fec638606130531b0f0b04ff8aef2c2..52b0e5258bd9d1eee7ceda49413c5c8ad43120fa 100644 |
| --- a/third_party/WebKit/Source/modules/webaudio/OfflineAudioDestinationNode.h |
| +++ b/third_party/WebKit/Source/modules/webaudio/OfflineAudioDestinationNode.h |
| @@ -27,6 +27,7 @@ |
| #include "modules/webaudio/AudioBuffer.h" |
| #include "modules/webaudio/AudioDestinationNode.h" |
| +#include "modules/webaudio/OfflineAudioContext.h" |
| #include "public/platform/WebThread.h" |
| #include "wtf/PassRefPtr.h" |
| #include "wtf/RefPtr.h" |
| @@ -35,6 +36,7 @@ namespace blink { |
| class AbstractAudioContext; |
| class AudioBus; |
| +class OfflineAudioContext; |
| class OfflineAudioDestinationHandler final : public AudioDestinationHandler { |
| public: |
| @@ -46,20 +48,35 @@ public: |
| void initialize() override; |
| void uninitialize() override; |
| + OfflineAudioContext* context() const final; |
| + |
| // AudioDestinationHandler |
| void startRendering() override; |
| void stopRendering() override; |
| float sampleRate() const override { return m_renderTarget->sampleRate(); } |
| + size_t renderQuantumLength() const; |
| + |
| + WebThread* offlineRenderThread(); |
| + |
| private: |
| OfflineAudioDestinationHandler(AudioNode&, AudioBuffer* renderTarget); |
| - void offlineRender(); |
| - void offlineRenderInternal(); |
| - // For completion callback on main thread. |
| + // Destination's internal methods for start/pause/continue/finish rendering. |
|
Raymond Toy
2015/10/16 23:32:37
Maybe document what these do. Hard to tell from t
hongchan
2015/10/19 20:08:12
Done.
|
| + void startOfflineRendering(); |
| + void suspendOfflineRendering(); |
| + void doOfflineRendering(); |
| + void finishOfflineRendering(); |
| + |
| + // Suspend/completion callbacks for the main thread. |
| + void notifySuspend(); |
| void notifyComplete(); |
| + // The offline version of render() method. virtual/override were not used |
| + // for this method to ensure the optimum performance. |
| + void offlineRender(AudioBus* sourceBus, AudioBus* destinationBus, size_t numberOfFrames); |
| + |
| // This AudioHandler renders into this AudioBuffer. |
| // This Persistent doesn't make a reference cycle including the owner |
| // OfflineAudioDestinationNode. |
| @@ -69,7 +86,13 @@ private: |
| // Rendering thread. |
| OwnPtr<WebThread> m_renderThread; |
| - bool m_startedRendering; |
|
Raymond Toy
2015/10/16 23:32:37
Document what this is for. (You already mentioned
hongchan
2015/10/20 22:03:06
Done.
|
| + |
| + size_t m_framesProcessed; |
| + size_t m_framesToProcess; |
| + |
| + bool m_isRenderingStarted; |
| + |
| + bool m_shouldSuspend; |
| }; |
| class OfflineAudioDestinationNode final : public AudioDestinationNode { |