OSDN Git Service

Merge WebKit at r84325: Initial merge by git.
[android-x86/external-webkit.git] / Source / WebCore / webaudio / AudioDestinationNode.h
index 4c21bb8..5913205 100644 (file)
 #ifndef AudioDestinationNode_h
 #define AudioDestinationNode_h
 
-#include "AudioDestination.h"
+#include "AudioBuffer.h"
 #include "AudioNode.h"
 #include "AudioSourceProvider.h"
-#include <wtf/OwnPtr.h>
-#include <wtf/PassRefPtr.h>
 
 namespace WebCore {
 
@@ -38,32 +36,25 @@ class AudioContext;
     
 class AudioDestinationNode : public AudioNode, public AudioSourceProvider {
 public:
-    static PassRefPtr<AudioDestinationNode> create(AudioContext* context)
-    {
-        return adoptRef(new AudioDestinationNode(context));        
-    }
-
+    AudioDestinationNode(AudioContext*, double sampleRate);
     virtual ~AudioDestinationNode();
     
     // AudioNode   
     virtual void process(size_t) { }; // we're pulled by hardware so this is never called
     virtual void reset() { m_currentTime = 0.0; };
-    virtual void initialize();
-    virtual void uninitialize();
     
     // The audio hardware calls here periodically to gets its input stream.
     virtual void provideInput(AudioBus*, size_t numberOfFrames);
 
     double currentTime() { return m_currentTime; }
 
-    double sampleRate() const { return m_destination->sampleRate(); }
+    virtual double sampleRate() const = 0;
 
-    unsigned numberOfChannels() const { return 2; } // FIXME: update when multi-channel (more than stereo) is supported
-    
-private:
-    AudioDestinationNode(AudioContext*);
+    virtual unsigned numberOfChannels() const { return 2; } // FIXME: update when multi-channel (more than stereo) is supported
 
-    OwnPtr<AudioDestination> m_destination;
+    virtual void startRendering() = 0;
+    
+protected:
     double m_currentTime;
 };