| Index: third_party/WebKit/Source/modules/webaudio/AudioBuffer.cpp
|
| diff --git a/third_party/WebKit/Source/modules/webaudio/AudioBuffer.cpp b/third_party/WebKit/Source/modules/webaudio/AudioBuffer.cpp
|
| index c4cef6671878b06b39468bc4ff3f0b3e0ab72597..7266aed4b2b123dfc6ea0369a93a1dd98bd715b4 100644
|
| --- a/third_party/WebKit/Source/modules/webaudio/AudioBuffer.cpp
|
| +++ b/third_party/WebKit/Source/modules/webaudio/AudioBuffer.cpp
|
| @@ -31,6 +31,7 @@
|
| #include "bindings/core/v8/ExceptionMessages.h"
|
| #include "bindings/core/v8/ExceptionState.h"
|
| #include "core/dom/ExceptionCode.h"
|
| +#include "modules/webaudio/AudioBufferOptions.h"
|
| #include "modules/webaudio/BaseAudioContext.h"
|
| #include "platform/audio/AudioBus.h"
|
| #include "platform/audio/AudioFileReader.h"
|
| @@ -104,6 +105,37 @@ AudioBuffer* AudioBuffer::create(unsigned numberOfChannels, size_t numberOfFrame
|
| return audioBuffer;
|
| }
|
|
|
| +AudioBuffer* AudioBuffer::create(BaseAudioContext* context, const AudioBufferOptions& options, ExceptionState& exceptionState)
|
| +{
|
| + unsigned numberOfChannels;
|
| + size_t numberOfFrames;
|
| + float sampleRate;
|
| +
|
| + if (!options.hasNumberOfChannels()) {
|
| + exceptionState.throwDOMException(
|
| + NotFoundError,
|
| + "AudioBufferOptions: numberOfChannels is required.");
|
| + return nullptr;
|
| + }
|
| +
|
| + if (!options.hasLength()) {
|
| + exceptionState.throwDOMException(
|
| + NotFoundError,
|
| + "AudioBufferOptions: length is required.");
|
| + return nullptr;
|
| + }
|
| +
|
| + numberOfChannels = options.numberOfChannels();
|
| + numberOfFrames = options.length();
|
| +
|
| + if (options.hasSampleRate())
|
| + sampleRate = options.sampleRate();
|
| + else
|
| + sampleRate = context->sampleRate();
|
| +
|
| + return create(numberOfChannels, numberOfFrames, sampleRate, exceptionState);
|
| +}
|
| +
|
| AudioBuffer* AudioBuffer::createFromAudioFileData(const void* data, size_t dataSize, bool mixToMono, float sampleRate)
|
| {
|
| RefPtr<AudioBus> bus = createBusFromInMemoryAudioFile(data, dataSize, mixToMono, sampleRate);
|
|
|