summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/src/AudioDestinationChromium.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/chromium/src/AudioDestinationChromium.cpp')
-rw-r--r--Source/WebKit/chromium/src/AudioDestinationChromium.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/Source/WebKit/chromium/src/AudioDestinationChromium.cpp b/Source/WebKit/chromium/src/AudioDestinationChromium.cpp
index cadb2e3a9..646e9ef0d 100644
--- a/Source/WebKit/chromium/src/AudioDestinationChromium.cpp
+++ b/Source/WebKit/chromium/src/AudioDestinationChromium.cpp
@@ -52,13 +52,14 @@ const size_t fifoSize = 8192;
const unsigned numberOfChannels = 2;
// Factory method: Chromium-implementation
-PassOwnPtr<AudioDestination> AudioDestination::create(AudioSourceProvider& provider, float sampleRate)
+PassOwnPtr<AudioDestination> AudioDestination::create(AudioIOCallback& callback, float sampleRate)
{
- return adoptPtr(new AudioDestinationChromium(provider, sampleRate));
+ return adoptPtr(new AudioDestinationChromium(callback, sampleRate));
}
-AudioDestinationChromium::AudioDestinationChromium(AudioSourceProvider& provider, float sampleRate)
- : m_renderBus(numberOfChannels, renderBufferSize, false)
+AudioDestinationChromium::AudioDestinationChromium(AudioIOCallback& callback, float sampleRate)
+ : m_callback(callback)
+ , m_renderBus(numberOfChannels, renderBufferSize, false)
, m_sampleRate(sampleRate)
, m_isPlaying(false)
{
@@ -78,7 +79,7 @@ AudioDestinationChromium::AudioDestinationChromium(AudioSourceProvider& provider
// contains enough data, the data will be provided directly.
// Otherwise, the FIFO will call the provider enough times to
// satisfy the request for data.
- m_fifo = adoptPtr(new AudioPullFIFO(provider, numberOfChannels, fifoSize, renderBufferSize));
+ m_fifo = adoptPtr(new AudioPullFIFO(*this, numberOfChannels, fifoSize, renderBufferSize));
}
AudioDestinationChromium::~AudioDestinationChromium()
@@ -127,6 +128,12 @@ void AudioDestinationChromium::render(const WebVector<float*>& audioData, size_t
m_fifo->consume(&m_renderBus, numberOfFrames);
}
+void AudioDestinationChromium::provideInput(AudioBus* bus, size_t framesToProcess)
+{
+ // FIXME: Add support for local/live audio input.
+ m_callback.render(0, bus, framesToProcess);
+}
+
} // namespace WebCore
#endif // ENABLE(WEB_AUDIO)