Generate bindings code for EventTarget.addEventListener() / removeEventListener()
[WebKit-https.git] / Source / WebCore / Modules / webaudio / AudioScheduledSourceNode.h
index 4edc3b9..cb4dd3c 100644 (file)
@@ -10,7 +10,7 @@
  * 2.  Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
  *     its contributors may be used to endorse or promote products derived
  *     from this software without specific prior written permission.
  *
 #ifndef AudioScheduledSourceNode_h
 #define AudioScheduledSourceNode_h
 
-#include "AudioSourceNode.h"
+#include "AudioNode.h"
+#include "ExceptionCode.h"
 
 namespace WebCore {
 
 class AudioBus;
 
-class AudioScheduledSourceNode : public AudioSourceNode {
+class AudioScheduledSourceNode : public AudioNode {
 public:
     // These are the possible states an AudioScheduledSourceNode can be in:
     //
@@ -54,11 +55,16 @@ public:
         FINISHED_STATE = 3
     };
     
-    AudioScheduledSourceNode(AudioContext*, float sampleRate);
+    AudioScheduledSourceNode(AudioContext&, float sampleRate);
 
     // Scheduling.
-    void noteOn(double when);
-    void noteOff(double when);
+    void start(double when, ExceptionCode&);
+    void stop(double when, ExceptionCode&);
+
+#if ENABLE(LEGACY_WEB_AUDIO)
+    void noteOn(double when, ExceptionCode&);
+    void noteOff(double when, ExceptionCode&);
+#endif
 
     unsigned short playbackState() const { return static_cast<unsigned short>(m_playbackState); }
     bool isPlayingOrScheduled() const { return m_playbackState == PLAYING_STATE || m_playbackState == SCHEDULED_STATE; }
@@ -78,7 +84,7 @@ protected:
                               size_t& nonSilentFramesToProcess);
 
     // Called when we have no more sound to play or the noteOff() time has been reached.
-    void finish();
+    virtual void finish();
 
     PlaybackState m_playbackState;
 
@@ -90,7 +96,14 @@ protected:
     // has been reached.
     double m_endTime; // in seconds
 
+    bool m_hasEndedListener;
+
     static const double UnknownTime;
+
+private:
+    bool addEventListener(const AtomicString& eventType, Ref<EventListener>&&, bool useCapture) override;
+    bool removeEventListener(const AtomicString& eventType, EventListener&, bool useCapture) override;
+    void removeAllEventListeners() override;
 };
 
 } // namespace WebCore