gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog backend/Makefile.am server/butt... [relea


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog backend/Makefile.am server/butt... [release_0_8_2_rc1]
Date: Thu, 03 Apr 2008 23:14:06 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Branch:         release_0_8_2_rc1
Changes by:     Sandro Santilli <strk>  08/04/03 23:14:06

Modified files:
        .              : ChangeLog 
        backend        : Makefile.am 
        server         : button_character_instance.cpp dlist.cpp 
                         sprite_instance.cpp sprite_instance.h 
        server/parser  : sound_definition.cpp 
        server/vm      : ASHandlers.cpp 

Log message:
                * backend/Makefile.am: distribute ogl backend
                * server/button_character_instance.cpp: provide a _name property
                * server/dlist.cpp: fix invalidated bounds bug
                * server/sprite_instance.{cpp,h}, 
server/parser/sound_definition.cpp,
                  server/vm/ASHandlers.cpp: always stop any streaming sound 
when the
                  sprite is stopped or unloaded.
        
        See http://wiki.gnashdev.org/wiki/index.php/Release_0_8_2_1

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5711.2.54&r2=1.5711.2.55
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/Makefile.am?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.68&r2=1.68.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/server/button_character_instance.cpp?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.81&r2=1.81.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/server/dlist.cpp?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.114&r2=1.114.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.480.2.2&r2=1.480.2.3
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.171&r2=1.171.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sound_definition.cpp?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.10&r2=1.10.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.199.2.1&r2=1.199.2.2

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5711.2.54
retrieving revision 1.5711.2.55
diff -u -b -r1.5711.2.54 -r1.5711.2.55
--- ChangeLog   4 Mar 2008 18:21:55 -0000       1.5711.2.54
+++ ChangeLog   3 Apr 2008 23:14:02 -0000       1.5711.2.55
@@ -1,3 +1,12 @@
+2008-04-04 Sandro Santilli <address@hidden>
+
+       * backend/Makefile.am: distribute ogl backend
+       * server/button_character_instance.cpp: provide a _name property
+       * server/dlist.cpp: fix invalidated bounds bug
+       * server/sprite_instance.{cpp,h}, server/parser/sound_definition.cpp,
+         server/vm/ASHandlers.cpp: always stop any streaming sound when the
+         sprite is stopped or unloaded.
+
 2008-03-04 Sandro Santilli <address@hidden>
 
        * doc/C/Makefile.am: remove generated dox on 'make clean'

Index: backend/Makefile.am
===================================================================
RCS file: /sources/gnash/gnash/backend/Makefile.am,v
retrieving revision 1.68
retrieving revision 1.68.2.1
diff -u -b -r1.68 -r1.68.2.1
--- backend/Makefile.am 21 Jan 2008 20:56:04 -0000      1.68
+++ backend/Makefile.am 3 Apr 2008 23:14:03 -0000       1.68.2.1
@@ -16,7 +16,7 @@
 #   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #
 
-# $Id: Makefile.am,v 1.68 2008/01/21 20:56:04 rsavoye Exp $
+# $Id: Makefile.am,v 1.68.2.1 2008/04/03 23:14:03 strk Exp $
 
 ## Process this file with automake to generate Makefile.in
 
@@ -59,7 +59,8 @@
        render_handler_agg_bitmap.h \
        render_handler_agg_compat.h \
        render_handler_agg_style.h \
-       render_handler_cairo.h
+       render_handler_cairo.h \
+       render_handler_ogl.h
 
 # bin_PROGRAMS = gnash
 

Index: server/button_character_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/button_character_instance.cpp,v
retrieving revision 1.81
retrieving revision 1.81.2.1
diff -u -b -r1.81 -r1.81.2.1
--- server/button_character_instance.cpp        11 Feb 2008 12:55:21 -0000      
1.81
+++ server/button_character_instance.cpp        3 Apr 2008 23:14:03 -0000       
1.81.2.1
@@ -226,6 +226,9 @@
        gettersetter = new builtin_function(&character::target_getset, NULL);
        o.init_property("_target", *gettersetter, *gettersetter);
        
+       gettersetter = new builtin_function(&character::name_getset, NULL);
+       o.init_property("_name", *gettersetter, *gettersetter);
+       
 
 #if 0
        gettersetter = new builtin_function(&character::onrollover_getset, 
NULL);

Index: server/dlist.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/dlist.cpp,v
retrieving revision 1.114
retrieving revision 1.114.2.1
diff -u -b -r1.114 -r1.114.2.1
--- server/dlist.cpp    19 Feb 2008 19:20:53 -0000      1.114
+++ server/dlist.cpp    3 Apr 2008 23:14:04 -0000       1.114.2.1
@@ -657,11 +657,15 @@
             
             if (mask->boundsInClippingArea())
               mask->display();
+            else
+              mask->clear_invalidated();  // avoid stale flag
               
             render::end_submit_mask();
             
             if (ch->boundsInClippingArea())
               ch->display();
+            else
+              ch->clear_invalidated();  // avoid stale flag
               
             render::disable_mask();
             
@@ -715,6 +719,8 @@
         
         if (ch->boundsInClippingArea())
           ch->display();
+        else 
+          ch->clear_invalidated();  // avoid stale flag
         
         // Notify the renderer that mask drawing has finished.
         if (ch->isMaskLayer())

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.480.2.2
retrieving revision 1.480.2.3
diff -u -b -r1.480.2.2 -r1.480.2.3
--- server/sprite_instance.cpp  4 Mar 2008 11:03:59 -0000       1.480.2.2
+++ server/sprite_instance.cpp  3 Apr 2008 23:14:04 -0000       1.480.2.3
@@ -180,16 +180,6 @@
 
   sprite->set_play_state(sprite_instance::STOP);
 
-  // Stop sound stream as well, if such exist
-  int stream_id = sprite->get_sound_stream_id();
-  if (sprite->get_sound_stream_id() != -1) {
-    media::sound_handler* sh = get_sound_handler();
-    if (sh != NULL) sh->stop_sound(stream_id);
-    sprite->set_sound_stream_id(-1);
-  }
-
-/*  media::sound_handler* sh = get_sound_handler();
-  if (sh != NULL) sh->stop_all_sounds();*/
   return as_value();
 }
 
@@ -2247,6 +2237,8 @@
 
 sprite_instance::~sprite_instance()
 {
+  stopStreamSound();
+
   // We might have been deleted by Quit... 
   //assert(isDestroyed());
 
@@ -2431,10 +2423,12 @@
     return;
   }
 
+#if 0 // why would we want to do this ?
   // Set the current sound_stream_id to -1, meaning that no stream are
   // active. If there are an active stream it will be updated while
   // executing the ControlTags.
   set_sound_stream_id(-1);
+#endif
 
   // Execute the ControlTag actions
   // We set _callingFrameActions to true so that add_action_buffer
@@ -3049,12 +3043,9 @@
   }
 
   // Unless the target frame is the next one, stop playback of soundstream
-  int stream_id = get_sound_stream_id();
-  if (target_frame_number != m_current_frame+1 && stream_id != -1) 
+  if (target_frame_number != m_current_frame+1 )
   {
-    media::sound_handler* sh = get_sound_handler();
-    if (sh != NULL) sh->stop_sound(stream_id);
-    set_sound_stream_id(-1);
+       stopStreamSound();
   }
 
   size_t loaded_frames = get_loaded_frames();
@@ -3817,9 +3808,8 @@
 // It shouldn't happen anyway.
 // TODO: drop this function.
 
-  // Stop all sounds
-  media::sound_handler* sh = get_sound_handler();
-  if (sh != NULL) sh->stop_all_sounds();
+  // Stop any streaming sound associated with us
+  stopStreamSound();
 
   if( ! isUnloaded() )
   {
@@ -4158,6 +4148,9 @@
   log_debug(_("Unloading sprite '%s'"), getTargetPath().c_str());
 #endif
 
+  // stop any pending streaming sounds
+  stopStreamSound();
+
   bool childHaveUnloadHandler = m_display_list.unload();
 
   // We won't be displayed again, so worth releasing
@@ -4500,6 +4493,8 @@
 void
 sprite_instance::destroy()
 {
+  stopStreamSound();
+
   m_display_list.destroy();
 
   /// We don't need these anymore
@@ -4557,4 +4552,37 @@
 
 }
 
+void
+sprite_instance::setStreamSoundId(int id)
+{
+       if ( id != m_sound_stream_id )
+       {
+               log_debug("Stream sound id from %d to %d, stopping old", 
m_sound_stream_id, id);
+               stopStreamSound();
+       }
+       m_sound_stream_id = id;
+}
+
+void
+sprite_instance::stopStreamSound()
+{
+       if ( m_sound_stream_id == -1 ) return; // nothing to do
+
+       media::sound_handler* handler = get_sound_handler(); // TODO: chache ?
+       if (handler)
+       {
+               handler->stop_sound(m_sound_stream_id);
+       }
+
+       m_sound_stream_id = -1;
+}
+
+void
+sprite_instance::set_play_state(play_state s)
+{
+       if ( s == m_play_state ) return; // nothing to do
+       if ( s == sprite_instance::STOP ) stopStreamSound();
+       m_play_state = s;
+}
+
 } // namespace gnash

Index: server/sprite_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.171
retrieving revision 1.171.2.1
diff -u -b -r1.171 -r1.171.2.1
--- server/sprite_instance.h    20 Feb 2008 14:46:28 -0000      1.171
+++ server/sprite_instance.h    3 Apr 2008 23:14:05 -0000       1.171.2.1
@@ -179,11 +179,11 @@
        }
 
        /// Stop or play the sprite.
-       void set_play_state(play_state s)
-       {
-           //if (m_play_state != s) m_time_remainder = 0;
-           m_play_state = s;
-       }
+       //
+       /// If stopped, any stream sound associated with this sprite
+       /// will also be stopped.
+       ///
+       void set_play_state(play_state s);
 
        play_state get_play_state() const { return m_play_state; }
 
@@ -743,11 +743,11 @@
 #endif
        }
 
-       /// Set the current m_sound_stream_id
-       virtual void set_sound_stream_id(int id){ m_sound_stream_id = id; }
-
-       /// Get the current m_sound_stream_id
-       virtual int get_sound_stream_id() { return m_sound_stream_id;}
+       /// Set the currently playing m_sound_stream_id
+       // 
+       // TODO: rename to setStreamingSoundId
+       //
+       void setStreamSoundId(int id);
 
        /// Remove this sprite from the stage.
        //
@@ -877,6 +877,8 @@
 
 private:
 
+       void stopStreamSound();
+
        /// Register this sprite as a listener of core broadcasters
        //
        /// This is currently only used for key events broadcaster

Index: server/parser/sound_definition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sound_definition.cpp,v
retrieving revision 1.10
retrieving revision 1.10.2.1
diff -u -b -r1.10 -r1.10.2.1
--- server/parser/sound_definition.cpp  24 Nov 2007 17:21:45 -0000      1.10
+++ server/parser/sound_definition.cpp  3 Apr 2008 23:14:05 -0000       1.10.2.1
@@ -48,7 +48,7 @@
        if (handler)
        {
                // This makes it possible to stop only the stream when 
framejumping.
-               m->set_sound_stream_id(m_handler_id);
+               m->setStreamSoundId(m_handler_id);
                handler->play_sound(m_handler_id, 0, 0, m_start, NULL);
        }
 }

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.199.2.1
retrieving revision 1.199.2.2
diff -u -b -r1.199.2.1 -r1.199.2.2
--- server/vm/ASHandlers.cpp    3 Mar 2008 09:22:39 -0000       1.199.2.1
+++ server/vm/ASHandlers.cpp    3 Apr 2008 23:14:05 -0000       1.199.2.2
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: ASHandlers.cpp,v 1.199.2.1 2008/03/03 09:22:39 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.199.2.2 2008/04/03 23:14:05 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "gnashconfig.h"
@@ -535,16 +535,8 @@
     assert( code[thread.pc] == SWF::ACTION_STOP );
 #endif
 
-    media::sound_handler* s = get_sound_handler();
-
     sprite_instance* tgt = env.get_target()->to_movie();
     assert(tgt);
-    int stream_id = tgt->get_sound_stream_id();
-
-    if (s != NULL && stream_id != -1)
-    {
-        s->stop_sound(stream_id);
-    }
 
     tgt->set_play_state(sprite_instance::STOP);
 }




reply via email to

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