mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2024-11-10 15:31:39 +00:00
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: http://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@179 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
parent
f60f04ac0a
commit
d2fba0d4de
1 changed files with 33 additions and 45 deletions
|
@ -23,13 +23,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
#include "quakedef.h"
|
||||
|
||||
#define DWORD unsigned long
|
||||
|
||||
#define PAINTBUFFER_SIZE 512
|
||||
portable_samplepair_t paintbuffer[PAINTBUFFER_SIZE];
|
||||
int snd_scaletable[32][256];
|
||||
int *snd_p, snd_linear_count, snd_vol;
|
||||
short *snd_out;
|
||||
int *snd_p, snd_linear_count, snd_vol;
|
||||
short *snd_out;
|
||||
|
||||
void Snd_WriteLinearBlastStereo16 (void);
|
||||
|
||||
|
@ -38,9 +36,9 @@ void Snd_WriteLinearBlastStereo16 (void)
|
|||
int i;
|
||||
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)
|
||||
snd_out[i] = 0x7fff;
|
||||
else if (val < (short)0x8000)
|
||||
|
@ -48,7 +46,7 @@ void Snd_WriteLinearBlastStereo16 (void)
|
|||
else
|
||||
snd_out[i] = val;
|
||||
|
||||
val = (snd_p[i+1]*snd_vol)>>8;
|
||||
val = (snd_p[i+1]*snd_vol) >> 8;
|
||||
if (val > 0x7fff)
|
||||
snd_out[i+1] = 0x7fff;
|
||||
else if (val < (short)0x8000)
|
||||
|
@ -62,22 +60,20 @@ void S_TransferStereo16 (int endtime)
|
|||
{
|
||||
int lpos;
|
||||
int lpaintedtime;
|
||||
DWORD *pbuf;
|
||||
|
||||
snd_vol = volume.value*256;
|
||||
snd_vol = volume.value * 256;
|
||||
|
||||
snd_p = (int *) paintbuffer;
|
||||
lpaintedtime = paintedtime;
|
||||
pbuf = (DWORD *)shm->buffer;
|
||||
|
||||
while (lpaintedtime < endtime)
|
||||
{
|
||||
// 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)
|
||||
snd_linear_count = endtime - lpaintedtime;
|
||||
|
||||
|
@ -87,20 +83,15 @@ void S_TransferStereo16 (int endtime)
|
|||
Snd_WriteLinearBlastStereo16 ();
|
||||
|
||||
snd_p += snd_linear_count;
|
||||
lpaintedtime += (snd_linear_count>>1);
|
||||
lpaintedtime += (snd_linear_count >> 1);
|
||||
}
|
||||
}
|
||||
|
||||
void S_TransferPaintBuffer(int endtime)
|
||||
{
|
||||
int out_idx;
|
||||
int count;
|
||||
int out_mask;
|
||||
int *p;
|
||||
int step;
|
||||
int val;
|
||||
int snd_vol;
|
||||
DWORD *pbuf;
|
||||
int out_idx, out_mask;
|
||||
int count, step, val;
|
||||
int *p;
|
||||
|
||||
if (shm->samplebits == 16 && shm->channels == 2)
|
||||
{
|
||||
|
@ -113,12 +104,11 @@ void S_TransferPaintBuffer(int endtime)
|
|||
out_mask = shm->samples - 1;
|
||||
out_idx = paintedtime * shm->channels & out_mask;
|
||||
step = 3 - shm->channels;
|
||||
snd_vol = volume.value*256;
|
||||
pbuf = (DWORD *)shm->buffer;
|
||||
snd_vol = volume.value * 256;
|
||||
|
||||
if (shm->samplebits == 16)
|
||||
{
|
||||
short *out = (short *) pbuf;
|
||||
short *out = (short *)shm->buffer;
|
||||
while (count--)
|
||||
{
|
||||
val = (*p * snd_vol) >> 8;
|
||||
|
@ -133,7 +123,7 @@ void S_TransferPaintBuffer(int endtime)
|
|||
}
|
||||
else if (shm->samplebits == 8)
|
||||
{
|
||||
unsigned char *out = (unsigned char *) pbuf;
|
||||
unsigned char *out = shm->buffer;
|
||||
while (count--)
|
||||
{
|
||||
val = (*p * snd_vol) >> 8;
|
||||
|
@ -142,7 +132,7 @@ void S_TransferPaintBuffer(int endtime)
|
|||
val = 0x7fff;
|
||||
else if (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;
|
||||
}
|
||||
}
|
||||
|
@ -160,13 +150,12 @@ CHANNEL MIXING
|
|||
void SND_PaintChannelFrom8 (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 end;
|
||||
channel_t *ch;
|
||||
int i;
|
||||
int end, ltime, count;
|
||||
channel_t *ch;
|
||||
sfxcache_t *sc;
|
||||
int ltime, count;
|
||||
|
||||
while (paintedtime < endtime)
|
||||
{
|
||||
|
@ -176,11 +165,11 @@ void S_PaintChannels(int endtime)
|
|||
end = paintedtime + PAINTBUFFER_SIZE;
|
||||
|
||||
// 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.
|
||||
ch = channels;
|
||||
for (i=0; i<total_channels ; i++, ch++)
|
||||
for (i = 0; i < total_channels; i++, ch++)
|
||||
{
|
||||
if (!ch->sfx)
|
||||
continue;
|
||||
|
@ -224,7 +213,6 @@ void S_PaintChannels(int endtime)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// transfer out according to DMA format
|
||||
|
@ -237,9 +225,9 @@ void SND_InitScaletable (void)
|
|||
{
|
||||
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
|
||||
higher, the tricky signed char type conversion is not
|
||||
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)
|
||||
{
|
||||
int data;
|
||||
int data;
|
||||
int *lscale, *rscale;
|
||||
unsigned char *sfx;
|
||||
unsigned char *sfx;
|
||||
int i;
|
||||
|
||||
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];
|
||||
sfx = (unsigned char *) ((signed char *)sc->data + ch->pos);
|
||||
|
||||
for (i=0 ; i<count ; i++)
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
data = sfx[i];
|
||||
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)
|
||||
{
|
||||
int data;
|
||||
int left, right;
|
||||
int leftvol, rightvol;
|
||||
signed short *sfx;
|
||||
int data;
|
||||
int left, right;
|
||||
int leftvol, rightvol;
|
||||
signed short *sfx;
|
||||
int i;
|
||||
|
||||
leftvol = ch->leftvol;
|
||||
rightvol = ch->rightvol;
|
||||
sfx = (signed short *)sc->data + ch->pos;
|
||||
|
||||
for (i=0 ; i<count ; i++)
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
data = sfx[i];
|
||||
left = (data * leftvol) >> 8;
|
||||
|
|
Loading…
Reference in a new issue