mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2024-11-10 07:21:58 +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: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@179 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
parent
ad73b2d75a
commit
48ecd3b74b
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"
|
#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;
|
||||||
|
|
Loading…
Reference in a new issue