gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/trunk r9504: pause/unpause sound handler,


From: Sandro Santilli
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r9504: pause/unpause sound handler, cairo build fix
Date: Sun, 20 Jul 2008 08:27:04 +0200
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9504
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Sun 2008-07-20 08:27:04 +0200
message:
  pause/unpause sound handler, cairo build fix
modified:
  backend/render_handler_cairo.cpp
  gui/gui.cpp
  libmedia/ffmpeg/sound_handler_sdl.cpp
  libmedia/sound_handler.h
    ------------------------------------------------------------
    revno: 9502.2.1
    committer: Sandro Santilli <address@hidden>
    branch nick: mybranch
    timestamp: Sat 2008-07-19 13:13:08 +0200
    message:
      Add pause/unpause/isPaused methods to sound_handler
    modified:
      gui/gui.cpp
      libmedia/ffmpeg/sound_handler_sdl.cpp
      libmedia/sound_handler.h
    ------------------------------------------------------------
    revno: 9502.2.2
    committer: Sandro Santilli <address@hidden>
    branch nick: mybranch
    timestamp: Sun 2008-07-20 08:24:37 +0200
    message:
      Fix cairo build
    modified:
      backend/render_handler_cairo.cpp
=== modified file 'backend/render_handler_cairo.cpp'
--- a/backend/render_handler_cairo.cpp  2008-07-08 09:36:41 +0000
+++ b/backend/render_handler_cairo.cpp  2008-07-20 06:24:37 +0000
@@ -578,7 +578,7 @@
 
     for (size_t rno=0; rno < _invalidated_ranges.size(); rno++) {
     
-      const Range2d<float>& range = _invalidated_ranges.getRange(rno);
+      const geometry::Range2d<float>& range = 
_invalidated_ranges.getRange(rno);
       if (range.isNull()) {
         continue;
       }

=== modified file 'gui/gui.cpp'
--- a/gui/gui.cpp       2008-07-15 08:28:11 +0000
+++ b/gui/gui.cpp       2008-07-19 11:13:08 +0000
@@ -855,6 +855,11 @@
 
     _stopped = false;
     if ( ! _started ) start();
+    else
+    {
+        media::sound_handler* s = get_sound_handler();
+        s->unpause();
+    }
 
     playHook ();
 }
@@ -867,6 +872,9 @@
 
     _stopped = true;
 
+    media::sound_handler* s = get_sound_handler();
+    s->pause();
+
     stopHook();
 }
 
@@ -877,7 +885,12 @@
     {
         play();
     }
-    else _stopped = true;
+    else
+    {
+       media::sound_handler* s = get_sound_handler();
+       s->pause();
+        _stopped = true;
+    }
 }
 
 void
@@ -899,6 +912,8 @@
     bool background = true; // ??
     _stage->set_background_alpha(background ? 1.0f : 0.05f);
 
+    media::sound_handler* s = get_sound_handler();
+    s->unpause();
     _started = true;
 }
 

=== modified file 'libmedia/ffmpeg/sound_handler_sdl.cpp'
--- a/libmedia/ffmpeg/sound_handler_sdl.cpp     2008-07-06 20:56:59 +0000
+++ b/libmedia/ffmpeg/sound_handler_sdl.cpp     2008-07-19 11:13:08 +0000
@@ -777,7 +777,9 @@
 
        boost::mutex::scoped_lock lock(handler->_mutex);
 
-  int finalVolume = int(128*handler->getFinalVolume()/100.0);
+       if ( handler->isPaused() ) return;
+
+       int finalVolume = int(128*handler->getFinalVolume()/100.0);
 
        // If nothing to play there is no reason to play
        // Is this a potential deadlock problem?

=== modified file 'libmedia/sound_handler.h'
--- a/libmedia/sound_handler.h  2008-06-17 13:12:22 +0000
+++ b/libmedia/sound_handler.h  2008-07-19 11:13:08 +0000
@@ -256,6 +256,15 @@
        ///
        virtual bool    is_muted() = 0;
 
+       /// gnash calls this to pause audio
+       virtual void pause() { _paused=true; }
+
+       /// gnash calls this to unpause audio
+       virtual void unpause() { _paused=false; }
+
+       /// gnash calls this to unpause audio
+       bool isPaused() const { return _paused; }
+
 #ifdef USE_FFMPEG
        /// This is called by AS classes NetStream or Sound to attach callback, 
so
        /// that audio from the classes will be played through the soundhandler.
@@ -327,6 +336,7 @@
                :
                _soundsStarted(0),
                _soundsStopped(0),
+               _paused(false),
                _volume(100)
        {}
 
@@ -336,10 +346,14 @@
        /// Special test-member. Stores count of stopped sounds.
        size_t _soundsStopped;
 
+       /// True if sound is paused
+       bool _paused;
+
 private:
 
        /// Final output volume
        int _volume;
+
 };
 
 // TODO: move to appropriate specific sound handlers


reply via email to

[Prev in Thread] Current Thread [Next in Thread]