diff options
Diffstat (limited to 'Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp')
-rw-r--r-- | Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp b/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp index 3bece3019..ba5e49fae 100644 --- a/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp +++ b/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp @@ -29,38 +29,24 @@ #include "OfflineAudioContext.h" #include "Document.h" -#include "ExceptionCode.h" -#include "ScriptExecutionContext.h" namespace WebCore { -PassRefPtr<OfflineAudioContext> OfflineAudioContext::create(ScriptExecutionContext& context, unsigned numberOfChannels, size_t numberOfFrames, float sampleRate, ExceptionCode& ec) -{ - // FIXME: add support for workers. - if (!context.isDocument()) { - ec = NOT_SUPPORTED_ERR; - return nullptr; - } - - Document& document = toDocument(context); - - if (numberOfChannels > 10 || !isSampleRateRangeGood(sampleRate)) { - ec = SYNTAX_ERR; - return nullptr; - } - - RefPtr<OfflineAudioContext> audioContext(adoptRef(new OfflineAudioContext(document, numberOfChannels, numberOfFrames, sampleRate))); - audioContext->suspendIfNeeded(); - return audioContext.release(); -} - -OfflineAudioContext::OfflineAudioContext(Document& document, unsigned numberOfChannels, size_t numberOfFrames, float sampleRate) +inline OfflineAudioContext::OfflineAudioContext(Document& document, unsigned numberOfChannels, size_t numberOfFrames, float sampleRate) : AudioContext(document, numberOfChannels, numberOfFrames, sampleRate) { } -OfflineAudioContext::~OfflineAudioContext() +ExceptionOr<Ref<OfflineAudioContext>> OfflineAudioContext::create(ScriptExecutionContext& context, unsigned numberOfChannels, size_t numberOfFrames, float sampleRate) { + // FIXME: Add support for workers. + if (!is<Document>(context)) + return Exception { NOT_SUPPORTED_ERR }; + if (!numberOfChannels || numberOfChannels > 10 || !numberOfFrames || !isSampleRateRangeGood(sampleRate)) + return Exception { SYNTAX_ERR }; + auto audioContext = adoptRef(*new OfflineAudioContext(downcast<Document>(context), numberOfChannels, numberOfFrames, sampleRate)); + audioContext->suspendIfNeeded(); + return WTFMove(audioContext); } } // namespace WebCore |