[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/trunk r9504: pause/unpause sound handler, cairo build fix,
Sandro Santilli <=