[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/movie.h server/sound.cpp...
From: |
Tomas Groth |
Subject: |
[Gnash-commit] gnash ChangeLog server/movie.h server/sound.cpp... |
Date: |
Sat, 18 Nov 2006 11:12:23 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Tomas Groth <tgc> 06/11/18 11:12:23
Modified files:
. : ChangeLog
server : movie.h sound.cpp sprite_instance.cpp
sprite_instance.h
server/swf : ASHandlers.cpp
Log message:
* server/movie.h, server/sound.cpp, server/sprite_instance.{cpp,h},
server/swf/ASHandlers.cpp: Instead of stopping all sounds when
framejumping or on sprite-stop, now only stop soundstreams. The
id of the current playing stream is stored in the sprite.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1659&r2=1.1660
http://cvs.savannah.gnu.org/viewcvs/gnash/server/movie.h?cvsroot=gnash&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sound.cpp?cvsroot=gnash&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.81&r2=1.82
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.38&r2=1.39
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/ASHandlers.cpp?cvsroot=gnash&r1=1.96&r2=1.97
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1659
retrieving revision 1.1660
diff -u -b -r1.1659 -r1.1660
--- ChangeLog 17 Nov 2006 23:19:57 -0000 1.1659
+++ ChangeLog 18 Nov 2006 11:12:22 -0000 1.1660
@@ -1,3 +1,10 @@
+2006-11-18 Tomas Groth Christensen <address@hidden>
+
+ * server/movie.h, server/sound.cpp, server/sprite_instance.{cpp,h},
+ server/swf/ASHandlers.cpp: Instead of stopping all sounds when
+ framejumping or on sprite-stop, now only stop soundstreams. The
+ id of the current playing stream is stored in the sprite.
+
2006-11-17 Sandro Santilli <address@hidden>
* testsuite/actionscript.all/Makefile.am: fixed
Index: server/movie.h
===================================================================
RCS file: /sources/gnash/gnash/server/movie.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- server/movie.h 3 Nov 2006 14:03:37 -0000 1.25
+++ server/movie.h 18 Nov 2006 11:12:22 -0000 1.26
@@ -479,6 +479,13 @@
{
}
+ // Set the current m_sound_stream_id - override to provide this
+ virtual void set_sound_stream_id(int /*id*/){ }
+
+ // Get the current m_sound_stream_id - override to provide this
+ virtual int get_sound_stream_id() { return -1;}
+
+
};
Index: server/sound.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sound.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- server/sound.cpp 16 Oct 2006 14:33:38 -0000 1.19
+++ server/sound.cpp 18 Nov 2006 11:12:22 -0000 1.20
@@ -129,11 +129,13 @@
void
-start_stream_sound_tag::execute(movie* /* m */)
+start_stream_sound_tag::execute(movie* m)
{
using globals::s_sound_handler;
if (s_sound_handler)
{
+ // This makes it possible to stop only the stream when
framejumping.
+ m->set_sound_stream_id(m_handler_id);
s_sound_handler->play_sound(m_handler_id, 0, 0, m_start, NULL);
}
}
Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -b -r1.81 -r1.82
--- server/sprite_instance.cpp 15 Nov 2006 12:37:32 -0000 1.81
+++ server/sprite_instance.cpp 18 Nov 2006 11:12:22 -0000 1.82
@@ -102,9 +102,16 @@
assert(sprite);
sprite->set_play_state(movie_interface::STOP);
- // Stop all sounds as well
+ // Stop sound stream as well, if such exist
+ int stream_id = sprite->get_sound_stream_id();
+ if (sprite->get_sound_stream_id() != -1) {
sound_handler* sh = get_sound_handler();
- if (sh != NULL) sh->stop_all_sounds();
+ if (sh != NULL) sh->stop_sound(stream_id);
+ sprite->set_sound_stream_id(-1);
+ }
+
+/* sound_handler* sh = get_sound_handler();
+ if (sh != NULL) sh->stop_all_sounds();*/
}
//removeMovieClip() : Void
@@ -1198,6 +1205,11 @@
size_t original_size = m_action_list.size();
#endif
+ // 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 execute_tags.
+ set_sound_stream_id(-1);
+
// Execute the execute_tag actions
const PlayList& playlist = m_def->get_playlist(frame_number);
@@ -1876,10 +1888,12 @@
return;
}
- // Unless the target frame is the next one, stop playback of sounds
- if (target_frame_number != m_current_frame+1) {
+ // 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) {
sound_handler* sh = get_sound_handler();
- if (sh != NULL) sh->stop_all_sounds();
+ if (sh != NULL) sh->stop_sound(stream_id);
+ set_sound_stream_id(-1);
}
size_t loaded_frames = get_loaded_frames();
Index: server/sprite_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -b -r1.38 -r1.39
--- server/sprite_instance.h 15 Nov 2006 10:29:00 -0000 1.38
+++ server/sprite_instance.h 18 Nov 2006 11:12:22 -0000 1.39
@@ -17,7 +17,7 @@
//
//
-/* $Id: sprite_instance.h,v 1.38 2006/11/15 10:29:00 strk Exp $ */
+/* $Id: sprite_instance.h,v 1.39 2006/11/18 11:12:22 tgc Exp $ */
// Stateful live Sprite instance
@@ -509,6 +509,11 @@
// not stored in a
boost::intrusive_ptr
}
+ /// 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;}
private:
@@ -586,6 +591,8 @@
///
edit_text_character* get_textfield_variable(const std::string& name);
+ /// soundid for current playing stream. If no stream set to -1
+ int m_sound_stream_id;
protected:
Index: server/swf/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/ASHandlers.cpp,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -b -r1.96 -r1.97
--- server/swf/ASHandlers.cpp 13 Nov 2006 09:56:31 -0000 1.96
+++ server/swf/ASHandlers.cpp 18 Nov 2006 11:12:22 -0000 1.97
@@ -16,7 +16,7 @@
//
-/* $Id: ASHandlers.cpp,v 1.96 2006/11/13 09:56:31 bjacques Exp $ */
+/* $Id: ASHandlers.cpp,v 1.97 2006/11/18 11:12:22 tgc Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -571,9 +571,10 @@
const action_buffer& code = thread.code;
sound_handler* s = get_sound_handler();
- if (s)
+ int stream_id = env.get_target()->get_sound_stream_id();
+ if (s != NULL && stream_id != -1)
{
- s->stop_all_sounds();
+ s->stop_sound(stream_id);
}
assert( code[thread.pc] == SWF::ACTION_STOP );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/movie.h server/sound.cpp...,
Tomas Groth <=