snd_mix.c: General whitespace and formatting tidy up.

(DWORD): Deleted macro.
(S_TransferStereo16): Removed unnecessary pbuf pointer and used shm-> buffer
directly.
(S_TransferPaintBuffer): Removed unnecessary pbuf pointer and used shm-> buffer
directly. Removed the shadowing instance of snd_vol and used the global var.
(S_PaintChannels): Replaced Q_memset with memset.


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@179 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
sezero 2010-06-03 16:28:30 +00:00
parent ad73b2d75a
commit 48ecd3b74b
1 changed files with 33 additions and 45 deletions

View File

@ -23,13 +23,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "quakedef.h" #include "quakedef.h"
#define DWORD unsigned long
#define PAINTBUFFER_SIZE 512 #define PAINTBUFFER_SIZE 512
portable_samplepair_t paintbuffer[PAINTBUFFER_SIZE]; portable_samplepair_t paintbuffer[PAINTBUFFER_SIZE];
int snd_scaletable[32][256]; int snd_scaletable[32][256];
int *snd_p, snd_linear_count, snd_vol; int *snd_p, snd_linear_count, snd_vol;
short *snd_out; short *snd_out;
void Snd_WriteLinearBlastStereo16 (void); void Snd_WriteLinearBlastStereo16 (void);
@ -38,9 +36,9 @@ void Snd_WriteLinearBlastStereo16 (void)
int i; int i;
int val; int val;
for (i=0 ; i<snd_linear_count ; i+=2) for (i = 0; i < snd_linear_count; i += 2)
{ {
val = (snd_p[i]*snd_vol)>>8; val = (snd_p[i]*snd_vol) >> 8;
if (val > 0x7fff) if (val > 0x7fff)
snd_out[i] = 0x7fff; snd_out[i] = 0x7fff;
else if (val < (short)0x8000) else if (val < (short)0x8000)
@ -48,7 +46,7 @@ void Snd_WriteLinearBlastStereo16 (void)
else else
snd_out[i] = val; snd_out[i] = val;
val = (snd_p[i+1]*snd_vol)>>8; val = (snd_p[i+1]*snd_vol) >> 8;
if (val > 0x7fff) if (val > 0x7fff)
snd_out[i+1] = 0x7fff; snd_out[i+1] = 0x7fff;
else if (val < (short)0x8000) else if (val < (short)0x8000)
@ -62,22 +60,20 @@ void S_TransferStereo16 (int endtime)
{ {
int lpos; int lpos;
int lpaintedtime; int lpaintedtime;
DWORD *pbuf;
snd_vol = volume.value*256; snd_vol = volume.value * 256;
snd_p = (int *) paintbuffer; snd_p = (int *) paintbuffer;
lpaintedtime = paintedtime; lpaintedtime = paintedtime;
pbuf = (DWORD *)shm->buffer;
while (lpaintedtime < endtime) while (lpaintedtime < endtime)
{ {
// handle recirculating buffer issues // handle recirculating buffer issues
lpos = lpaintedtime & ((shm->samples>>1)-1); lpos = lpaintedtime & ((shm->samples >> 1) - 1);
snd_out = (short *) pbuf + (lpos<<1); snd_out = (short *)shm->buffer + (lpos << 1);
snd_linear_count = (shm->samples>>1) - lpos; snd_linear_count = (shm->samples >> 1) - lpos;
if (lpaintedtime + snd_linear_count > endtime) if (lpaintedtime + snd_linear_count > endtime)
snd_linear_count = endtime - lpaintedtime; snd_linear_count = endtime - lpaintedtime;
@ -87,20 +83,15 @@ void S_TransferStereo16 (int endtime)
Snd_WriteLinearBlastStereo16 (); Snd_WriteLinearBlastStereo16 ();
snd_p += snd_linear_count; snd_p += snd_linear_count;
lpaintedtime += (snd_linear_count>>1); lpaintedtime += (snd_linear_count >> 1);
} }
} }
void S_TransferPaintBuffer(int endtime) void S_TransferPaintBuffer(int endtime)
{ {
int out_idx; int out_idx, out_mask;
int count; int count, step, val;
int out_mask; int *p;
int *p;
int step;
int val;
int snd_vol;
DWORD *pbuf;
if (shm->samplebits == 16 && shm->channels == 2) if (shm->samplebits == 16 && shm->channels == 2)
{ {
@ -113,12 +104,11 @@ void S_TransferPaintBuffer(int endtime)
out_mask = shm->samples - 1; out_mask = shm->samples - 1;
out_idx = paintedtime * shm->channels & out_mask; out_idx = paintedtime * shm->channels & out_mask;
step = 3 - shm->channels; step = 3 - shm->channels;
snd_vol = volume.value*256; snd_vol = volume.value * 256;
pbuf = (DWORD *)shm->buffer;
if (shm->samplebits == 16) if (shm->samplebits == 16)
{ {
short *out = (short *) pbuf; short *out = (short *)shm->buffer;
while (count--) while (count--)
{ {
val = (*p * snd_vol) >> 8; val = (*p * snd_vol) >> 8;
@ -133,7 +123,7 @@ void S_TransferPaintBuffer(int endtime)
} }
else if (shm->samplebits == 8) else if (shm->samplebits == 8)
{ {
unsigned char *out = (unsigned char *) pbuf; unsigned char *out = shm->buffer;
while (count--) while (count--)
{ {
val = (*p * snd_vol) >> 8; val = (*p * snd_vol) >> 8;
@ -142,7 +132,7 @@ void S_TransferPaintBuffer(int endtime)
val = 0x7fff; val = 0x7fff;
else if (val < (short)0x8000) else if (val < (short)0x8000)
val = (short)0x8000; val = (short)0x8000;
out[out_idx] = (val>>8) + 128; out[out_idx] = (val >> 8) + 128;
out_idx = (out_idx + 1) & out_mask; out_idx = (out_idx + 1) & out_mask;
} }
} }
@ -160,13 +150,12 @@ CHANNEL MIXING
void SND_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int endtime); void SND_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int endtime);
void SND_PaintChannelFrom16 (channel_t *ch, sfxcache_t *sc, int endtime); void SND_PaintChannelFrom16 (channel_t *ch, sfxcache_t *sc, int endtime);
void S_PaintChannels(int endtime) void S_PaintChannels (int endtime)
{ {
int i; int i;
int end; int end, ltime, count;
channel_t *ch; channel_t *ch;
sfxcache_t *sc; sfxcache_t *sc;
int ltime, count;
while (paintedtime < endtime) while (paintedtime < endtime)
{ {
@ -176,11 +165,11 @@ void S_PaintChannels(int endtime)
end = paintedtime + PAINTBUFFER_SIZE; end = paintedtime + PAINTBUFFER_SIZE;
// clear the paint buffer // clear the paint buffer
Q_memset(paintbuffer, 0, (end - paintedtime) * sizeof(portable_samplepair_t)); memset(paintbuffer, 0, (end - paintedtime) * sizeof(portable_samplepair_t));
// paint in the channels. // paint in the channels.
ch = channels; ch = channels;
for (i=0; i<total_channels ; i++, ch++) for (i = 0; i < total_channels; i++, ch++)
{ {
if (!ch->sfx) if (!ch->sfx)
continue; continue;
@ -224,7 +213,6 @@ void S_PaintChannels(int endtime)
} }
} }
} }
} }
// transfer out according to DMA format // transfer out according to DMA format
@ -237,9 +225,9 @@ void SND_InitScaletable (void)
{ {
int i, j; int i, j;
for (i=0 ; i<32 ; i++) for (i = 0; i < 32; i++)
{ {
for (j=0 ; j<256 ; j++) for (j = 0; j < 256; j++)
/* When compiling with gcc-4.1.0 at optimisations O1 and /* When compiling with gcc-4.1.0 at optimisations O1 and
higher, the tricky signed char type conversion is not higher, the tricky signed char type conversion is not
guaranteed. Therefore we explicity calculate the signed guaranteed. Therefore we explicity calculate the signed
@ -254,9 +242,9 @@ void SND_InitScaletable (void)
void SND_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int count) void SND_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int count)
{ {
int data; int data;
int *lscale, *rscale; int *lscale, *rscale;
unsigned char *sfx; unsigned char *sfx;
int i; int i;
if (ch->leftvol > 255) if (ch->leftvol > 255)
@ -268,7 +256,7 @@ void SND_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int count)
rscale = snd_scaletable[ch->rightvol >> 3]; rscale = snd_scaletable[ch->rightvol >> 3];
sfx = (unsigned char *) ((signed char *)sc->data + ch->pos); sfx = (unsigned char *) ((signed char *)sc->data + ch->pos);
for (i=0 ; i<count ; i++) for (i = 0; i < count; i++)
{ {
data = sfx[i]; data = sfx[i];
paintbuffer[i].left += lscale[data]; paintbuffer[i].left += lscale[data];
@ -280,17 +268,17 @@ void SND_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int count)
void SND_PaintChannelFrom16 (channel_t *ch, sfxcache_t *sc, int count) void SND_PaintChannelFrom16 (channel_t *ch, sfxcache_t *sc, int count)
{ {
int data; int data;
int left, right; int left, right;
int leftvol, rightvol; int leftvol, rightvol;
signed short *sfx; signed short *sfx;
int i; int i;
leftvol = ch->leftvol; leftvol = ch->leftvol;
rightvol = ch->rightvol; rightvol = ch->rightvol;
sfx = (signed short *)sc->data + ch->pos; sfx = (signed short *)sc->data + ch->pos;
for (i=0 ; i<count ; i++) for (i = 0; i < count; i++)
{ {
data = sfx[i]; data = sfx[i];
left = (data * leftvol) >> 8; left = (data * leftvol) >> 8;