[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog libmedia/ffmpeg/sound_handler_s...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog libmedia/ffmpeg/sound_handler_s... |
Date: |
Tue, 17 Jun 2008 13:04:19 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/06/17 13:04:19
Modified files:
. : ChangeLog
libmedia/ffmpeg: sound_handler_sdl.cpp
Log message:
concatenate final volume to mixer.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6958&r2=1.6959
http://cvs.savannah.gnu.org/viewcvs/gnash/libmedia/ffmpeg/sound_handler_sdl.cpp?cvsroot=gnash&r1=1.15&r2=1.16
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6958
retrieving revision 1.6959
diff -u -b -r1.6958 -r1.6959
--- ChangeLog 17 Jun 2008 12:42:15 -0000 1.6958
+++ ChangeLog 17 Jun 2008 13:04:18 -0000 1.6959
@@ -1,5 +1,10 @@
2008-06-17 Sandro Santilli <address@hidden>
+ * libmedia/ffmpeg/sound_handler_sdl.cpp: concatenate final
+ volume to mixer.
+
+2008-06-17 Sandro Santilli <address@hidden>
+
* server/asobj/Sound.{cpp,h}: fix constructor taking
arg; fix getVolume/setVolume to query either global
volume or associated-character-local one; fix visibility
Index: libmedia/ffmpeg/sound_handler_sdl.cpp
===================================================================
RCS file: /sources/gnash/gnash/libmedia/ffmpeg/sound_handler_sdl.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- libmedia/ffmpeg/sound_handler_sdl.cpp 16 Jun 2008 16:58:49 -0000
1.15
+++ libmedia/ffmpeg/sound_handler_sdl.cpp 17 Jun 2008 13:04:19 -0000
1.16
@@ -675,7 +675,7 @@
static void
do_mixing(Uint8* stream, active_sound& sound, Uint8* data, unsigned int
mix_length, unsigned int volume)
{
- // If the volume needs adjustments we call a function to do that
+ // If the volume needs adjustments we call a function to do that (why
are we doing this manually ?)
if (volume != 100) {
adjust_volume(reinterpret_cast<boost::int16_t*>(data),
mix_length, volume);
} else if (sound.envelopes != NULL) {
@@ -761,6 +761,8 @@
boost::mutex::scoped_lock lock(handler->_mutex);
+ int finalVolume = int(128*handler->getFinalVolume()/100.0);
+
// If nothing to play there is no reason to play
// Is this a potential deadlock problem?
if (handler->soundsPlaying == 0 && handler->m_aux_streamer.empty()) {
@@ -798,7 +800,7 @@
} else {
++it;
}
- SDL_MixAudio(stream, buf.get(), buffer_length,
SDL_MIX_MAXVOLUME);
+ SDL_MixAudio(stream, buf.get(), buffer_length,
finalVolume);
}
}
@@ -840,6 +842,8 @@
// If there exist no decoder, then we can't decode!
if (sound.decoder == NULL) return;
+ int volume = int(sounddata.volume*getFinalVolume()/100.0); //
concatenate global volume
+
// When the current sound don't have enough decoded data to fill the
buffer,
// we first mix what is already decoded, then decode some more data, and
// mix some more until the buffer is full. If a sound loops the magic
@@ -855,7 +859,7 @@
index = sound.rawDataSize() - sound.raw_position;
do_mixing(buffer, sound,
sound.get_raw_data_ptr(sound.raw_position),
- index, sounddata.volume);
+ index, volume);
}
@@ -927,7 +931,7 @@
log_error("Something went terribly wrong during mixing
of an active sound");
return; // something went terrible wrong
}
- do_mixing(buffer+index, sound, sound.get_raw_data_ptr(0),
mix_length, sounddata.volume);
+ do_mixing(buffer+index, sound, sound.get_raw_data_ptr(0),
mix_length, volume);
}
@@ -937,7 +941,7 @@
{
do_mixing(buffer, sound,
sound.get_raw_data_ptr(sound.raw_position),
- buffer_length, sounddata.volume);
+ buffer_length, volume);
}
@@ -949,7 +953,7 @@
do_mixing(buffer, sound,
sound.get_raw_data_ptr(sound.raw_position),
- sound.rawDataSize() - sound.raw_position,
sounddata.volume);
+ sound.rawDataSize() - sound.raw_position, volume);
sound.raw_position = sound.rawDataSize();
}