[Top][All Lists]
[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Stratagus-CVS] stratagus/src include/sound_server.h sound/wav.c,
Russell Smith <=