2010-12-02 Chris Rogers <crogers@google.com>
authorcrogers@google.com <crogers@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 2 Dec 2010 21:35:25 +0000 (21:35 +0000)
committercrogers@google.com <crogers@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 2 Dec 2010 21:35:25 +0000 (21:35 +0000)
        Reviewed by Darin Fisher.

        Fine-tune chromium WebKit API for loading audio resources
        https://bugs.webkit.org/show_bug.cgi?id=50406

        * public/WebAudioBus.h:
        (WebKit::WebAudioBus::~WebAudioBus):
        * public/WebKitClient.h:
        (WebKit::WebKitClient::loadAudioResource):
        * src/ChromiumBridge.cpp:
        (WebCore::ChromiumBridge::decodeAudioFileData):
        * src/WebAudioBus.cpp:
        (WebKit::WebAudioBus::reset):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@73193 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/chromium/ChangeLog
WebKit/chromium/public/WebAudioBus.h
WebKit/chromium/public/WebKitClient.h
WebKit/chromium/src/ChromiumBridge.cpp
WebKit/chromium/src/WebAudioBus.cpp

index 09914f6..614b4c6 100644 (file)
@@ -1,3 +1,19 @@
+2010-12-02  Chris Rogers  <crogers@google.com>
+
+        Reviewed by Darin Fisher.
+
+        Fine-tune chromium WebKit API for loading audio resources
+        https://bugs.webkit.org/show_bug.cgi?id=50406
+
+        * public/WebAudioBus.h:
+        (WebKit::WebAudioBus::~WebAudioBus):
+        * public/WebKitClient.h:
+        (WebKit::WebKitClient::loadAudioResource):
+        * src/ChromiumBridge.cpp:
+        (WebCore::ChromiumBridge::decodeAudioFileData):
+        * src/WebAudioBus.cpp:
+        (WebKit::WebAudioBus::reset):
+
 2010-12-02  Darin Fisher  <darin@chromium.org>
 
         Fix the Windows multi-dll build.  Do not export functions that are
index 94ef74d..b7f8d74 100644 (file)
@@ -27,8 +27,9 @@
 
 #include "WebCommon.h"
 
-#if WEBKIT_IMPLEMENTATION
 namespace WebCore { class AudioBus; }
+
+#if WEBKIT_IMPLEMENTATION
 namespace WTF { template <typename T> class PassOwnPtr; }
 #endif
 
@@ -43,11 +44,14 @@ class WebAudioBusPrivate;
 class WebAudioBus {
 public:
     WebAudioBus() : m_private(0) { }
-    ~WebAudioBus();
+    ~WebAudioBus() { reset(); }
     
     // initialize() allocates memory of the given length for the given number of channels.
-    void initialize(unsigned numberOfChannels, size_t length, double sampleRate);
+    WEBKIT_API void initialize(unsigned numberOfChannels, size_t length, double sampleRate);
 
+    // reset() releases the memory allocated from initialize().
+    WEBKIT_API void reset();
+    
     WEBKIT_API unsigned numberOfChannels() const;
     WEBKIT_API size_t length() const;
     WEBKIT_API double sampleRate() const;
@@ -59,9 +63,11 @@ public:
 #endif
 
 private:
-    // Noncopyable
-    WebAudioBus(const WebAudioBus& d) : m_private(0) { }
-    WebAudioBusPrivate* m_private;
+    // Disallow copy and assign.
+    WebAudioBus(const WebAudioBus&);
+    void operator=(const WebAudioBus&);
+
+    WebCore::AudioBus* m_private;
 };
 
 } // namespace WebKit
index d168d32..bf9a97b 100644 (file)
@@ -225,7 +225,7 @@ public:
     // Decodes the in-memory audio file data and returns the linear PCM audio data in the destinationBus.
     // A sample-rate conversion to sampleRate will occur if the file data is at a different sample-rate.
     // Returns true on success.
-    virtual bool decodeAudioFileData(WebAudioBus* destinationBus, const char* audioFileData, size_t dataSize, double sampleRate) { return false; }
+    virtual bool loadAudioResource(WebAudioBus* destinationBus, const char* audioFileData, size_t dataSize, double sampleRate) { return false; }
 
     // Returns a localized string resource (with substitution parameters).
     virtual WebString queryLocalizedString(WebLocalizedString::Name) { return WebString(); }
index 70ff702..e94a04f 100644 (file)
@@ -636,7 +636,7 @@ PassOwnPtr<AudioBus> ChromiumBridge::loadPlatformAudioResource(const char* name,
 PassOwnPtr<AudioBus> ChromiumBridge::decodeAudioFileData(const char* data, size_t size, double sampleRate)
 {
     WebAudioBus webAudioBus;
-    if (webKitClient()->decodeAudioFileData(&webAudioBus, data, size, sampleRate))
+    if (webKitClient()->loadAudioResource(&webAudioBus, data, size, sampleRate))
         return webAudioBus.release();
     return 0;
 }
index ceccafc..9d4590e 100644 (file)
@@ -44,14 +44,6 @@ namespace WebKit {
 class WebAudioBusPrivate : public AudioBus {
 };
 
-WebAudioBus::~WebAudioBus()
-{
-#if ENABLE(WEB_AUDIO)
-    delete m_private;
-    m_private = 0;
-#endif
-}
-
 void WebAudioBus::initialize(unsigned numberOfChannels, size_t length, double sampleRate)
 {        
 #if ENABLE(WEB_AUDIO)
@@ -66,6 +58,16 @@ void WebAudioBus::initialize(unsigned numberOfChannels, size_t length, double sa
 #endif
 }
 
+void WebAudioBus::reset()
+{
+#if ENABLE(WEB_AUDIO)
+    delete m_private;
+    m_private = 0;
+#else
+    ASSERT_NOT_REACHED();
+#endif
+}
+
 unsigned WebAudioBus::numberOfChannels() const
 {
 #if ENABLE(WEB_AUDIO)