summaryrefslogtreecommitdiff
path: root/Source/WebCore/Modules/webaudio/AsyncAudioDecoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/Modules/webaudio/AsyncAudioDecoder.h')
-rw-r--r--Source/WebCore/Modules/webaudio/AsyncAudioDecoder.h20
1 files changed, 6 insertions, 14 deletions
diff --git a/Source/WebCore/Modules/webaudio/AsyncAudioDecoder.h b/Source/WebCore/Modules/webaudio/AsyncAudioDecoder.h
index ff096ecaf..bb5c5e337 100644
--- a/Source/WebCore/Modules/webaudio/AsyncAudioDecoder.h
+++ b/Source/WebCore/Modules/webaudio/AsyncAudioDecoder.h
@@ -22,13 +22,11 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef AsyncAudioDecoder_h
-#define AsyncAudioDecoder_h
+#pragma once
#include <memory>
#include <wtf/Forward.h>
#include <wtf/MessageQueue.h>
-#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/Threading.h>
@@ -51,29 +49,25 @@ public:
~AsyncAudioDecoder();
// Must be called on the main thread.
- void decodeAsync(JSC::ArrayBuffer* audioData, float sampleRate, PassRefPtr<AudioBufferCallback> successCallback, PassRefPtr<AudioBufferCallback> errorCallback);
+ void decodeAsync(Ref<JSC::ArrayBuffer>&& audioData, float sampleRate, RefPtr<AudioBufferCallback>&& successCallback, RefPtr<AudioBufferCallback>&& errorCallback);
private:
class DecodingTask {
WTF_MAKE_NONCOPYABLE(DecodingTask);
public:
- static std::unique_ptr<DecodingTask> create(JSC::ArrayBuffer* audioData, float sampleRate, PassRefPtr<AudioBufferCallback> successCallback, PassRefPtr<AudioBufferCallback> errorCallback);
-
+ DecodingTask(Ref<JSC::ArrayBuffer>&& audioData, float sampleRate, RefPtr<AudioBufferCallback>&& successCallback, RefPtr<AudioBufferCallback>&& errorCallback);
void decode();
private:
- DecodingTask(JSC::ArrayBuffer* audioData, float sampleRate, PassRefPtr<AudioBufferCallback> successCallback, PassRefPtr<AudioBufferCallback> errorCallback);
-
- JSC::ArrayBuffer* audioData() { return m_audioData.get(); }
+ JSC::ArrayBuffer& audioData() { return m_audioData; }
float sampleRate() const { return m_sampleRate; }
AudioBufferCallback* successCallback() { return m_successCallback.get(); }
AudioBufferCallback* errorCallback() { return m_errorCallback.get(); }
AudioBuffer* audioBuffer() { return m_audioBuffer.get(); }
- static void notifyCompleteDispatch(void* userData);
void notifyComplete();
- RefPtr<JSC::ArrayBuffer> m_audioData;
+ Ref<JSC::ArrayBuffer> m_audioData;
float m_sampleRate;
RefPtr<AudioBufferCallback> m_successCallback;
RefPtr<AudioBufferCallback> m_errorCallback;
@@ -84,10 +78,8 @@ private:
void runLoop();
WTF::ThreadIdentifier m_threadID;
- Mutex m_threadCreationMutex;
+ Lock m_threadCreationMutex;
MessageQueue<DecodingTask> m_queue;
};
} // namespace WebCore
-
-#endif // AsyncAudioDecoder_h