stratagus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Stratagus-CVS] stratagus/src include/sound_server.h sound/wav.c


From: Russell Smith
Subject: [Stratagus-CVS] stratagus/src include/sound_server.h sound/wav.c
Date: Fri, 14 Nov 2003 02:23:42 -0500

CVSROOT:        /cvsroot/stratagus
Module name:    stratagus
Branch:         
Changes by:     Russell Smith <address@hidden>  03/11/14 02:23:42

Modified files:
        src/include    : sound_server.h 
        src/sound      : wav.c 

Log message:
        Attempted Fix to bug #4721: Sound effects are white noise

Patches:
Index: stratagus/src/include/sound_server.h
diff -u stratagus/src/include/sound_server.h:1.62 
stratagus/src/include/sound_server.h:1.63
--- stratagus/src/include/sound_server.h:1.62   Mon Nov  3 06:09:52 2003
+++ stratagus/src/include/sound_server.h        Fri Nov 14 02:23:40 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: sound_server.h,v 1.62 2003/11/03 11:09:52 pludov Exp $
+//     $Id: sound_server.h,v 1.63 2003/11/14 07:23:40 mr-russ Exp $
 
 #ifndef __SOUND_SERVER_H__
 #define __SOUND_SERVER_H__
@@ -96,6 +96,7 @@
     unsigned char      Channels;       /// mono or stereo
     unsigned char      SampleSize;     /// sample size in bits
     unsigned int       Frequency;      /// frequency in hz
+    unsigned short     BitsPerSample;  /// bits in a sample 8/16/32
     int                        Length;         /// sample length
     char               Data[1];        /// sample bytes
 };
Index: stratagus/src/sound/wav.c
diff -u stratagus/src/sound/wav.c:1.34 stratagus/src/sound/wav.c:1.35
--- stratagus/src/sound/wav.c:1.34      Sat Oct 11 15:09:03 2003
+++ stratagus/src/sound/wav.c   Fri Nov 14 02:23:42 2003
@@ -26,7 +26,7 @@
 //      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 //      02111-1307, USA.
 //
-//     $Id: wav.c,v 1.34 2003/10/11 19:09:03 jsalmon3 Exp $
+//     $Id: wav.c,v 1.35 2003/11/14 07:23:42 mr-russ Exp $
 
 //@{
 
@@ -77,6 +77,7 @@
     int brratio;
     int samplesize;    // number of bytes per sample
     int divide;
+    int i;
 
     data = (WavData*)sample->User;
 
@@ -96,6 +97,12 @@
 
        comp = CLread(data->WavFile, sndbuf, unc/divide);
 
+       if (sample->BitsPerSample == 16) {
+           for (i = 0; i < (unc / divide) >> 1; ++i) {
+               ((unsigned short*)sndbuf)[i] = ConvertLE16(((unsigned 
short*)sndbuf)[i]);
+           }
+       }
+
        sample->Length += ConvertToStereo32(sndbuf, 
            &data->PointerInBuffer[sample->Length], 
            sample->Frequency, sample->SampleSize / 8, 
@@ -262,6 +269,7 @@
     sample->Channels = wavfmt.Channels;
     sample->SampleSize = wavfmt.SampleSize * 8 / sample->Channels;
     sample->Frequency = wavfmt.Frequency;
+    sample->BitsPerSample = wavfmt.BitsPerSample;
     sample->Length = 0;
 
 
@@ -316,6 +324,12 @@
        }
 
        CLclose(f);
+
+       if (wavfmt.BitsPerSample == 16) {
+           for (i = 0; i < sample->Length >> 1; ++i) {
+               ((unsigned short*)sample->Data)[i] = ConvertLE16(((unsigned 
short*)sample->Data)[i]);
+           }
+       }
 
 #ifdef DEBUG
        AllocatedSoundMemory += sample->Length;




reply via email to

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