WebAudio task shouldn't be running on suspend to reduce usage of CPU.
[framework/web/webkit-efl.git] / Source / WebCore / Modules / webaudio / AudioContext.h
index 215f1c6..34f2390 100644 (file)
@@ -83,7 +83,7 @@ public:
     virtual ~AudioContext();
 
     bool isInitialized() const;
-    
+
     bool isOfflineContext() { return m_isOfflineContext; }
 
     // Returns true when initialize() was called AND all asynchronous initialization has completed.
@@ -91,7 +91,9 @@ public:
 
     // Document notification
     virtual void stop();
-
+#if ENABLE(TIZEN_WEB_AUDIO)
+    void pause();
+#endif
     Document* document() const; // ASSERTs if document no longer exists.
     bool hasDocument();
 
@@ -100,10 +102,15 @@ public:
     double currentTime() const { return m_destinationNode->currentTime(); }
     float sampleRate() const { return m_destinationNode->sampleRate(); }
     unsigned long activeSourceCount() const { return static_cast<unsigned long>(m_activeSourceCount); }
-
+#if ENABLE(TIZEN_WEB_AUDIO)
+    unsigned long activeScriptProcessorCount() const { return static_cast<unsigned long>(m_activeScriptProcessorCount); }
+#endif
     void incrementActiveSourceCount();
     void decrementActiveSourceCount();
-    
+#if ENABLE(TIZEN_WEB_AUDIO)
+    void incrementActiveScriptProcessorCount();
+    void decrementActiveScriptProcessorCount();
+#endif
     PassRefPtr<AudioBuffer> createBuffer(unsigned numberOfChannels, size_t numberOfFrames, float sampleRate, ExceptionCode&);
     PassRefPtr<AudioBuffer> createBuffer(ArrayBuffer*, bool mixToMono, ExceptionCode&);
 
@@ -264,6 +271,9 @@ private:
     // We'd like to schedule only one stop action for them.
     bool m_isStopScheduled;
     static void uninitializeDispatch(void* userData);
+#if ENABLE(TIZEN_WEB_AUDIO)
+    static void pauseDispatch(void* userData);
+#endif
     void clear();
 
     void scheduleNodeDeletion();
@@ -348,6 +358,9 @@ private:
 
     // Number of AudioBufferSourceNodes that are active (playing).
     int m_activeSourceCount;
+#if ENABLE(TIZEN_WEB_AUDIO)
+    int m_activeScriptProcessorCount;
+#endif
 };
 
 } // WebCore