[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash backend/sound_handler.cpp backend/sound_h...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash backend/sound_handler.cpp backend/sound_h... |
Date: |
Tue, 27 Feb 2007 09:54:49 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/02/27 09:54:49
Modified files:
backend : sound_handler.cpp sound_handler.h
gui : gtk.cpp gui.cpp
server : gnash.h impl.cpp
server/parser : sound_definition.cpp
server/swf : tag_loaders.cpp
Log message:
Never access globals::s_sound_handler directly. Actually drop that
symbol.
Move get_sound_handler/set_sound_handler from backend to server to avoid
circular dependency of those two libs.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/sound_handler.cpp?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/sound_handler.h?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtk.cpp?cvsroot=gnash&r1=1.67&r2=1.68
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gui.cpp?cvsroot=gnash&r1=1.62&r2=1.63
http://cvs.savannah.gnu.org/viewcvs/gnash/server/gnash.h?cvsroot=gnash&r1=1.86&r2=1.87
http://cvs.savannah.gnu.org/viewcvs/gnash/server/impl.cpp?cvsroot=gnash&r1=1.99&r2=1.100
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sound_definition.cpp?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.78&r2=1.79
Patches:
Index: backend/sound_handler.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/sound_handler.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- backend/sound_handler.cpp 27 Feb 2007 09:10:20 -0000 1.1
+++ backend/sound_handler.cpp 27 Feb 2007 09:54:48 -0000 1.2
@@ -19,27 +19,6 @@
namespace gnash {
-namespace globals {
-
-// Callback interface to host, for handling sounds. If it's NULL,
-// sound is ignored.
-sound_handler* s_sound_handler = 0;
-
-} // namespace gnash::global
-
-
-void set_sound_handler(sound_handler* s)
-// Called by host, to set a handler for all sounds.
-// Can pass in 0 to disable sound.
-{
- globals::s_sound_handler = s;
-}
-
-
-sound_handler* get_sound_handler()
-{
- return globals::s_sound_handler;
-}
} // namespace gnash
Index: backend/sound_handler.h
===================================================================
RCS file: /sources/gnash/gnash/backend/sound_handler.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- backend/sound_handler.h 27 Feb 2007 09:10:20 -0000 1.1
+++ backend/sound_handler.h 27 Feb 2007 09:54:48 -0000 1.2
@@ -17,7 +17,7 @@
//
//
-/* $Id: sound_handler.h,v 1.1 2007/02/27 09:10:20 strk Exp $ */
+/* $Id: sound_handler.h,v 1.2 2007/02/27 09:54:48 strk Exp $ */
/// \page sound_handler_intro Sound handler introduction
///
@@ -151,17 +151,6 @@
};
-/// Pass in a sound handler, so you can handle audio on behalf of
-/// gnash. This is optional; if you don't set a handler, or set
-/// NULL, then sounds won't be played.
-///
-/// If you want sound support, you should set this at startup,
-/// before loading or playing any movies!
-DSOEXPORT void set_sound_handler(sound_handler* s);
-
-/// You probably don't need this. (@@ make it private?)
-DSOEXPORT sound_handler* get_sound_handler();
-
// TODO: move to appropriate specific sound handlers
DSOEXPORT sound_handler* create_sound_handler_sdl();
DSOEXPORT sound_handler* create_sound_handler_gst();
Index: gui/gtk.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gtk.cpp,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -b -r1.67 -r1.68
--- gui/gtk.cpp 27 Feb 2007 09:10:20 -0000 1.67
+++ gui/gtk.cpp 27 Feb 2007 09:54:49 -0000 1.68
@@ -17,7 +17,7 @@
//
//
-/* $Id: gtk.cpp,v 1.67 2007/02/27 09:10:20 strk Exp $ */
+/* $Id: gtk.cpp,v 1.68 2007/02/27 09:54:49 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -30,6 +30,7 @@
#include "rc.h"
#include "gtksup.h"
#include "sound_handler.h"
+#include "gnash.h" for get_sound_handler
#include "render_handler.h"
#include <iostream>
Index: gui/gui.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gui.cpp,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -b -r1.62 -r1.63
--- gui/gui.cpp 27 Feb 2007 09:10:20 -0000 1.62
+++ gui/gui.cpp 27 Feb 2007 09:54:49 -0000 1.63
@@ -26,6 +26,7 @@
#include "render.h" // debug
#include "render_handler.h"
#include "sound_handler.h"
+#include "gnash.h" for get_sound_handler
#include "movie_root.h"
#include "VM.h"
Index: server/gnash.h
===================================================================
RCS file: /sources/gnash/gnash/server/gnash.h,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -b -r1.86 -r1.87
--- server/gnash.h 27 Feb 2007 09:10:20 -0000 1.86
+++ server/gnash.h 27 Feb 2007 09:54:49 -0000 1.87
@@ -17,7 +17,7 @@
//
//
-/* $Id: gnash.h,v 1.86 2007/02/27 09:10:20 strk Exp $ */
+/* $Id: gnash.h,v 1.87 2007/02/27 09:54:49 strk Exp $ */
/// \mainpage
///
@@ -77,6 +77,22 @@
class URL;
class rect;
+// Sound callbacks stuff
+
+/// \brief
+/// Pass in a sound handler, so you can handle audio on behalf of
+/// gnash. This is optional; if you don't set a handler, or set
+/// NULL, then sounds won't be played.
+///
+/// If you want sound support, you should set this at startup,
+/// before loading or playing any movies!
+///
+DSOEXPORT void set_sound_handler(sound_handler* s);
+
+/// Get currently registered sound handler
+DSOEXPORT sound_handler* get_sound_handler();
+
+
///
/// Log & error reporting control.
///
Index: server/impl.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/impl.cpp,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -b -r1.99 -r1.100
--- server/impl.cpp 27 Feb 2007 09:10:20 -0000 1.99
+++ server/impl.cpp 27 Feb 2007 09:54:49 -0000 1.100
@@ -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: impl.cpp,v 1.99 2007/02/27 09:10:20 strk Exp $ */
+/* $Id: impl.cpp,v 1.100 2007/02/27 09:54:49 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -79,6 +79,11 @@
} // namespace gnash::global
+// global Sound handler stuff. Should this be moved to the VM class ?
+static sound_handler* _sound_handler = 0;
+void set_sound_handler(sound_handler* s) { _sound_handler = s; }
+sound_handler* get_sound_handler() { return _sound_handler; }
+
void
set_base_url(const URL& url)
{
Index: server/parser/sound_definition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sound_definition.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- server/parser/sound_definition.cpp 27 Feb 2007 09:10:20 -0000 1.1
+++ server/parser/sound_definition.cpp 27 Feb 2007 09:54:49 -0000 1.2
@@ -16,13 +16,14 @@
namespace gnash {
- sound_sample::~sound_sample()
- {
- if (globals::s_sound_handler)
+sound_sample::~sound_sample()
+{
+ sound_handler* handler = get_sound_handler();
+ if (handler)
{
-
globals::s_sound_handler->delete_sound(m_sound_handler_id);
- }
+ handler->delete_sound(m_sound_handler_id);
}
+}
@@ -77,19 +78,20 @@
void
start_sound_tag::execute_state(sprite_instance* /* m */)
{
- using globals::s_sound_handler;
+ // Make static ?
+ sound_handler* handler = get_sound_handler();
//GNASH_REPORT_FUNCTION;
- if (s_sound_handler)
+ if (handler)
{
if (m_stop_playback)
{
- s_sound_handler->stop_sound(m_handler_id);
+ handler->stop_sound(m_handler_id);
}
else
{
- s_sound_handler->play_sound(m_handler_id, m_loop_count,
0,0, (m_envelopes.size() == 0 ? NULL : &m_envelopes));
+ handler->play_sound(m_handler_id, m_loop_count, 0,0,
(m_envelopes.size() == 0 ? NULL : &m_envelopes));
}
}
}
@@ -112,12 +114,13 @@
void
start_stream_sound_tag::execute_state(sprite_instance* m)
{
- using globals::s_sound_handler;
- if (s_sound_handler)
+ // Make static ?
+ sound_handler* handler = get_sound_handler();
+ if (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);
+ handler->play_sound(m_handler_id, 0, 0, m_start, NULL);
}
}
Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -b -r1.78 -r1.79
--- server/swf/tag_loaders.cpp 27 Feb 2007 09:10:20 -0000 1.78
+++ server/swf/tag_loaders.cpp 27 Feb 2007 09:54:49 -0000 1.79
@@ -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: tag_loaders.cpp,v 1.78 2007/02/27 09:10:20 strk Exp $ */
+/* $Id: tag_loaders.cpp,v 1.79 2007/02/27 09:54:49 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -60,9 +60,6 @@
// @@ TODO get rid of this; make it the normal mode.
extern bool s_no_recurse_while_loading;
- namespace globals {
- extern sound_handler* s_sound_handler;
- }
}
namespace gnash {
@@ -1592,7 +1589,7 @@
{
assert(tag == SWF::DEFINESOUND); // 14
- using globals::s_sound_handler;
+ sound_handler* handler = get_sound_handler();
uint16_t character_id = in->read_u16();
@@ -1614,7 +1611,7 @@
// If we have a sound_handler, ask it to init this sound.
- if (s_sound_handler)
+ if (handler)
{
int data_bytes = 0;
unsigned char* data = NULL;
@@ -1663,7 +1660,7 @@
}
}
- int handler_id = s_sound_handler->create_sound(
+ int handler_id = handler->create_sound(
data,
data_bytes,
sample_count,
@@ -1694,7 +1691,7 @@
void
start_sound_loader(stream* in, tag_type tag, movie_definition* m)
{
- using globals::s_sound_handler;
+ sound_handler* handler = get_sound_handler();
assert(tag == SWF::STARTSOUND); // 15
@@ -1714,7 +1711,7 @@
}
else
{
- if (s_sound_handler)
+ if (handler)
{
IF_VERBOSE_MALFORMED_SWF(
log_swferror("start_sound_loader: sound_id %d is not
defined", sound_id);
@@ -1728,13 +1725,13 @@
void
sound_stream_head_loader(stream* in, tag_type tag, movie_definition* m)
{
- using globals::s_sound_handler;
+ sound_handler* handler = get_sound_handler();
// 18 || 45
assert(tag == SWF::SOUNDSTREAMHEAD || tag == SWF::SOUNDSTREAMHEAD2);
// If we don't have a sound_handler registered stop here
- if (!s_sound_handler) return;
+ if (!handler) return;
// FIXME:
// no character id for soundstreams... so we make one up...
@@ -1778,7 +1775,7 @@
// Since the ADPCM is converted to NATIVE16, the format is set to
that...
if (format == sound_handler::FORMAT_ADPCM) format =
sound_handler::FORMAT_NATIVE16;
- int handler_id = s_sound_handler->create_sound(
+ int handler_id = handler->create_sound(
NULL,
data_bytes,
sample_count,
@@ -1794,7 +1791,7 @@
void
sound_stream_block_loader(stream* in, tag_type tag, movie_definition* m)
{
- using globals::s_sound_handler;
+ sound_handler* handler = get_sound_handler();
assert(tag == SWF::SOUNDSTREAMBLOCK); // 19
@@ -1804,7 +1801,7 @@
// If we don't have a sound_handler registered stop here
- if (!s_sound_handler) return;
+ if (!handler) return;
int handle_id = m->get_loading_sound_stream_id();
@@ -1822,7 +1819,7 @@
bool stereo = true;
int sample_count = -1;
- s_sound_handler->get_info(handle_id, &format, &stereo);
+ handler->get_info(handle_id, &format, &stereo);
if (format == sound_handler::FORMAT_ADPCM)
{
@@ -1867,7 +1864,7 @@
// Fill the data on the apropiate sound, and receives the starting point
// for later "start playing from this frame" events.
- long start = s_sound_handler->fill_stream_data(data, data_bytes,
sample_count, handle_id);
+ long start = handler->fill_stream_data(data, data_bytes, sample_count,
handle_id);
delete [] data;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash backend/sound_handler.cpp backend/sound_h...,
Sandro Santilli <=