gnash-commit
[Top][All Lists]
Advanced

[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();
        } 




reply via email to

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