gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog libmedia/sound_handler.h libmed...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog libmedia/sound_handler.h libmed...
Date: Wed, 12 Dec 2007 18:56:37 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/12/12 18:56:37

Modified files:
        .              : ChangeLog 
        libmedia       : sound_handler.h 
        libmedia/gst   : sound_handler_gst.cpp sound_handler_gst.h 
        libmedia/sdl   : sound_handler_sdl.cpp sound_handler_sdl.h 
        server         : movie_root.cpp 

Log message:
        Reset sound handler on restart

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5146&r2=1.5147
http://cvs.savannah.gnu.org/viewcvs/gnash/libmedia/sound_handler.h?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/libmedia/gst/sound_handler_gst.cpp?cvsroot=gnash&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/gnash/libmedia/gst/sound_handler_gst.h?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/libmedia/sdl/sound_handler_sdl.cpp?cvsroot=gnash&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/gnash/libmedia/sdl/sound_handler_sdl.h?cvsroot=gnash&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gnash/server/movie_root.cpp?cvsroot=gnash&r1=1.136&r2=1.137

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5146
retrieving revision 1.5147
diff -u -b -r1.5146 -r1.5147
--- ChangeLog   12 Dec 2007 18:19:26 -0000      1.5146
+++ ChangeLog   12 Dec 2007 18:56:36 -0000      1.5147
@@ -1,3 +1,10 @@
+2007-12-12 Sandro Santilli <address@hidden>
+
+       * libmedia/sound_handler.h: add a reset() method to put
+         the sound handler in starting conditions (for movie restart).
+       * libmedia/gst/sound_handler_{gst,sdl}.{cpp,h}: implement reset()
+       * server/movie_root.cpp (restart): reset sound handler if any.
+
 2007-12-12 Benjamin Wolsey <address@hidden>
 
        * server/asobj/System.cpp: implement language, hasAudio; find os

Index: libmedia/sound_handler.h
===================================================================
RCS file: /sources/gnash/gnash/libmedia/sound_handler.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- libmedia/sound_handler.h    12 Dec 2007 10:07:00 -0000      1.6
+++ libmedia/sound_handler.h    12 Dec 2007 18:56:36 -0000      1.7
@@ -18,7 +18,7 @@
 // 
 //
 
-/* $Id: sound_handler.h,v 1.6 2007/12/12 10:07:00 zoulunkai Exp $ */
+/* $Id: sound_handler.h,v 1.7 2007/12/12 18:56:36 strk Exp $ */
 
 /// \page sound_handler_intro Sound handler introduction
 ///
@@ -339,6 +339,13 @@
        ///
        virtual void    delete_sound(int sound_handle) = 0;
                
+       /// gnash calls this when restarting playback from scratch
+       //
+       /// The function should stop all sounds and get ready
+       /// for a "parse from scratch" operation.
+       ///
+       virtual void reset() = 0;
+               
        /// gnash calls this to mute audio
        virtual void    mute() = 0;
 

Index: libmedia/gst/sound_handler_gst.cpp
===================================================================
RCS file: /sources/gnash/gnash/libmedia/gst/sound_handler_gst.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- libmedia/gst/sound_handler_gst.cpp  12 Dec 2007 10:23:06 -0000      1.9
+++ libmedia/gst/sound_handler_gst.cpp  12 Dec 2007 18:56:36 -0000      1.10
@@ -20,7 +20,7 @@
 // Based on sound_handler_sdl.cpp by Thatcher Ulrich http://tulrich.com 2003
 // which has been donated to the Public Domain.
 
-/* $Id: sound_handler_gst.cpp,v 1.9 2007/12/12 10:23:06 zoulunkai Exp $ */
+/* $Id: sound_handler_gst.cpp,v 1.10 2007/12/12 18:56:36 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -61,13 +61,19 @@
        gst_init(NULL, NULL);
 }
 
-GST_sound_handler::~GST_sound_handler()
+void
+GST_sound_handler::delete_all_sounds()
 {
-
        for (size_t i=0, e=m_sound_data.size(); i < e; ++i)  {
                stop_sound(i);
                delete_sound(i);
        }
+       m_sound_data.clear();
+}
+
+GST_sound_handler::~GST_sound_handler()
+{
+       delete_all_sounds();
 }
 
 
@@ -534,6 +540,12 @@
                stop_sound(i);
 }
 
+void
+GST_sound_handler::reset()
+{
+       stop_all_sounds();
+}
+
 
 //     returns the sound volume level as an integer from 0 to 100,
 //     where 0 is off and 100 is full volume. The default setting is 100.

Index: libmedia/gst/sound_handler_gst.h
===================================================================
RCS file: /sources/gnash/gnash/libmedia/gst/sound_handler_gst.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- libmedia/gst/sound_handler_gst.h    12 Dec 2007 10:23:06 -0000      1.7
+++ libmedia/gst/sound_handler_gst.h    12 Dec 2007 18:56:37 -0000      1.8
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-// $Id: sound_handler_gst.h,v 1.7 2007/12/12 10:23:06 zoulunkai Exp $
+// $Id: sound_handler_gst.h,v 1.8 2007/12/12 18:56:37 strk Exp $
 
 #ifndef SOUND_HANDLER_GST_H
 #define SOUND_HANDLER_GST_H
@@ -155,6 +155,9 @@
        /// Mutex for making sure threads doesn't mess things up
        boost::try_mutex _mutex;
 
+       /// stop and delete all sounds
+       void delete_all_sounds();
+
 public:
 
        /// Gstreamer callback function
@@ -187,6 +190,9 @@
        /// This will stop all sounds playing.
        virtual void    stop_all_sounds();
 
+       // See dox in sound_handler.h
+       virtual void reset();
+
        /// Returns the sound volume level as an integer from 0 to 100. 
AS-script only.
        virtual int     get_volume(int sound_handle);
 

Index: libmedia/sdl/sound_handler_sdl.cpp
===================================================================
RCS file: /sources/gnash/gnash/libmedia/sdl/sound_handler_sdl.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- libmedia/sdl/sound_handler_sdl.cpp  12 Dec 2007 10:23:07 -0000      1.9
+++ libmedia/sdl/sound_handler_sdl.cpp  12 Dec 2007 18:56:37 -0000      1.10
@@ -20,7 +20,7 @@
 // Based on sound_handler_sdl.cpp by Thatcher Ulrich http://tulrich.com 2003
 // which has been donated to the Public Domain.
 
-// $Id: sound_handler_sdl.cpp,v 1.9 2007/12/12 10:23:07 zoulunkai Exp $
+// $Id: sound_handler_sdl.cpp,v 1.10 2007/12/12 18:56:37 strk Exp $
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -62,13 +62,28 @@
        audioSpec.samples = 2048;               //512 - not enough for  
videostream
 }
 
-SDL_sound_handler::~SDL_sound_handler()
+void
+SDL_sound_handler::reset()
+{
+       //delete_all_sounds();
+       stop_all_sounds();
+}
+
+void
+SDL_sound_handler::delete_all_sounds()
 {
+       stop_all_sounds();
        for (size_t i=0, e=m_sound_data.size(); i < e; ++i)
        {
                stop_sound(i);
                delete_sound(i);
        }
+       m_sound_data.clear();
+}
+
+SDL_sound_handler::~SDL_sound_handler()
+{
+       delete_all_sounds();
        if (soundOpened) SDL_CloseAudio();
 }
 

Index: libmedia/sdl/sound_handler_sdl.h
===================================================================
RCS file: /sources/gnash/gnash/libmedia/sdl/sound_handler_sdl.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- libmedia/sdl/sound_handler_sdl.h    12 Dec 2007 10:23:07 -0000      1.8
+++ libmedia/sdl/sound_handler_sdl.h    12 Dec 2007 18:56:37 -0000      1.9
@@ -16,7 +16,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-// $Id: sound_handler_sdl.h,v 1.8 2007/12/12 10:23:07 zoulunkai Exp $
+// $Id: sound_handler_sdl.h,v 1.9 2007/12/12 18:56:37 strk Exp $
 
 #ifndef SOUND_HANDLER_SDL_H
 #define SOUND_HANDLER_SDL_H
@@ -309,6 +309,9 @@
        /// Mutex for making sure threads doesn't mess things up
        boost::mutex _mutex;
 
+       // stop and delete all sounds
+       void delete_all_sounds();
+
 public:
        SDL_sound_handler();
        virtual ~SDL_sound_handler();
@@ -330,6 +333,9 @@
        /// This gets called when it's done with a sample.
        virtual void    delete_sound(int sound_handle);
 
+       // See dox in sound_handler.h
+       virtual void reset();
+
        /// This will stop all sounds playing.
        virtual void    stop_all_sounds();
 

Index: server/movie_root.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/movie_root.cpp,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -b -r1.136 -r1.137
--- server/movie_root.cpp       12 Dec 2007 10:07:01 -0000      1.136
+++ server/movie_root.cpp       12 Dec 2007 18:56:37 -0000      1.137
@@ -33,6 +33,7 @@
 #include "URL.h"
 #include "namedStrings.h"
 #include "GnashException.h"
+#include "sound_handler.h"
 
 #include <iostream>
 #include <string>
@@ -336,6 +337,8 @@
 void
 movie_root::reset()
 {
+       media::sound_handler* sh = get_sound_handler();
+       if ( sh ) sh->reset();
        clear();
        _disableScripts = false;
 }




reply via email to

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