Changeset 73174 in webkit
- Timestamp:
- Dec 2, 2010 11:48:39 AM (13 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r73173 r73174 1 2010-12-02 Chris Rogers <crogers@google.com> 2 3 Reviewed by Kenneth Russell. 4 5 AudioContext needs createBuffer() method from ArrayBuffer 6 https://bugs.webkit.org/show_bug.cgi?id=50343 7 8 No new tests since audio API is not yet implemented. 9 10 * webaudio/AudioContext.cpp: 11 (WebCore::AudioContext::createBuffer): 12 * webaudio/AudioContext.h: 13 * webaudio/AudioContext.idl: 14 1 15 2010-12-02 Noel Gordon <noel.gordon@gmail.com> 2 16 -
trunk/WebCore/webaudio/AudioContext.cpp
r72426 r73174 29 29 #include "AudioContext.h" 30 30 31 #include "ArrayBuffer.h" 31 32 #include "AudioBuffer.h" 32 33 #include "AudioBufferSourceNode.h" … … 38 39 #include "AudioNodeOutput.h" 39 40 #include "AudioPannerNode.h" 40 #include "CachedAudio.h"41 41 #include "ConvolverNode.h" 42 42 #include "DelayNode.h" … … 60 60 61 61 namespace WebCore { 62 63 PassRefPtr<CachedAudio> AudioContext::createAudioRequest(const String &url, bool mixToMono)64 {65 lazyInitialize();66 67 // Convert relative URL to absolute68 KURL completedURL = document()->completeURL(url);69 String completedURLString = completedURL.string();70 71 RefPtr<CachedAudio> cachedAudio = CachedAudio::create(completedURLString, this, document(), sampleRate(), mixToMono);72 CachedAudio* c = cachedAudio.get();73 74 m_cachedAudioReferences.append(c);75 76 return cachedAudio;77 }78 62 79 63 PassRefPtr<AudioContext> AudioContext::create(Document* document) … … 202 186 } 203 187 188 PassRefPtr<AudioBuffer> AudioContext::createBuffer(ArrayBuffer* arrayBuffer, bool mixToMono) 189 { 190 ASSERT(arrayBuffer); 191 if (!arrayBuffer) 192 return 0; 193 194 return AudioBuffer::createFromAudioFileData(arrayBuffer->data(), arrayBuffer->byteLength(), mixToMono, sampleRate()); 195 } 196 204 197 PassRefPtr<AudioBufferSourceNode> AudioContext::createBufferSource() 205 198 { -
trunk/WebCore/webaudio/AudioContext.h
r70604 r73174 41 41 namespace WebCore { 42 42 43 class ArrayBuffer; 43 44 class AudioBuffer; 44 45 class AudioBufferSourceNode; … … 48 49 class AudioPannerNode; 49 50 class AudioListener; 50 class CachedAudio;51 51 class DelayNode; 52 52 class Document; … … 82 82 83 83 PassRefPtr<AudioBuffer> createBuffer(unsigned numberOfChannels, size_t numberOfFrames, double sampleRate); 84 85 PassRefPtr<CachedAudio> createAudioRequest(const String &url, bool mixToMono); 84 PassRefPtr<AudioBuffer> createBuffer(ArrayBuffer* arrayBuffer, bool mixToMono); 86 85 87 86 // Keep track of this buffer so we can release memory after the context is shut down... … … 222 221 Vector<AudioNode*> m_nodesToDelete; 223 222 224 Vector<RefPtr<CachedAudio> > m_cachedAudioReferences;225 226 223 // Only accessed when the graph lock is held. 227 224 HashSet<AudioNodeInput*> m_dirtyAudioNodeInputs; -
trunk/WebCore/webaudio/AudioContext.idl
r69094 r73174 43 43 44 44 AudioBuffer createBuffer(in unsigned long numberOfChannels, in unsigned long numberOfFrames, in float sampleRate); 45 AudioBuffer createBuffer(in ArrayBuffer buffer, in boolean mixToMono); 45 46 46 47 // Source … … 60 61 AudioChannelSplitter createChannelSplitter(); 61 62 AudioChannelMerger createChannelMerger(); 62 63 // FIXME: Temporary - to be replaced with XHR.64 CachedAudio createAudioRequest(in DOMString url, in boolean mixToMono);65 63 }; 66 64 }
Note: See TracChangeset
for help on using the changeset viewer.