mirror of
https://git.code.sf.net/p/quake/nuq
synced 2024-11-21 19:51:09 +00:00
Fix use of read/write to write-only for sound, and whitespace cleanup.
This commit is contained in:
parent
75971a4fed
commit
c44715fe21
1 changed files with 61 additions and 61 deletions
120
source/snd_oss.c
120
source/snd_oss.c
|
@ -54,10 +54,10 @@ qboolean SNDDMA_Init(void)
|
|||
{
|
||||
|
||||
int rc;
|
||||
int fmt;
|
||||
int fmt;
|
||||
int tmp;
|
||||
int i;
|
||||
char *s;
|
||||
int i;
|
||||
char *s;
|
||||
struct audio_buf_info info;
|
||||
int caps;
|
||||
|
||||
|
@ -65,16 +65,17 @@ qboolean SNDDMA_Init(void)
|
|||
|
||||
// open /dev/dsp, confirm capability to mmap, and get size of dma buffer
|
||||
|
||||
audio_fd = open("/dev/dsp", O_RDWR);
|
||||
if (audio_fd < 0)
|
||||
// audio_fd = open("/dev/dsp", O_RDWR);
|
||||
audio_fd = open("/dev/dsp", O_WRONLY);
|
||||
if (audio_fd < 0)
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Could not open /dev/dsp\n");
|
||||
Con_Printf("Could not open /dev/dsp\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_RESET, 0);
|
||||
if (rc < 0)
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_RESET, 0);
|
||||
if (rc < 0)
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Could not reset /dev/dsp\n");
|
||||
|
@ -97,48 +98,48 @@ qboolean SNDDMA_Init(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info)==-1)
|
||||
{
|
||||
perror("GETOSPACE");
|
||||
if (ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &info)==-1)
|
||||
{
|
||||
perror("GETOSPACE");
|
||||
Con_Printf("Um, can't do GETOSPACE?\n");
|
||||
close(audio_fd);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
shm = &sn;
|
||||
shm->splitbuffer = 0;
|
||||
shm->splitbuffer = 0;
|
||||
|
||||
// set sample bits & speed
|
||||
|
||||
s = getenv("QUAKE_SOUND_SAMPLEBITS");
|
||||
if (s) shm->samplebits = atoi(s);
|
||||
s = getenv("QUAKE_SOUND_SAMPLEBITS");
|
||||
if (s) shm->samplebits = atoi(s);
|
||||
else if ((i = COM_CheckParm("-sndbits")) != 0)
|
||||
shm->samplebits = atoi(com_argv[i+1]);
|
||||
if (shm->samplebits != 16 && shm->samplebits != 8)
|
||||
{
|
||||
ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &fmt);
|
||||
if (fmt & AFMT_S16_LE) shm->samplebits = 16;
|
||||
else if (fmt & AFMT_U8) shm->samplebits = 8;
|
||||
}
|
||||
{
|
||||
ioctl(audio_fd, SNDCTL_DSP_GETFMTS, &fmt);
|
||||
if (fmt & AFMT_S16_LE) shm->samplebits = 16;
|
||||
else if (fmt & AFMT_U8) shm->samplebits = 8;
|
||||
}
|
||||
|
||||
s = getenv("QUAKE_SOUND_SPEED");
|
||||
if (s) shm->speed = atoi(s);
|
||||
s = getenv("QUAKE_SOUND_SPEED");
|
||||
if (s) shm->speed = atoi(s);
|
||||
else if ((i = COM_CheckParm("-sndspeed")) != 0)
|
||||
shm->speed = atoi(com_argv[i+1]);
|
||||
else
|
||||
{
|
||||
for (i=0 ; i<sizeof(tryrates)/4 ; i++)
|
||||
if (!ioctl(audio_fd, SNDCTL_DSP_SPEED, &tryrates[i])) break;
|
||||
shm->speed = tryrates[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i=0 ; i<sizeof(tryrates)/4 ; i++)
|
||||
if (!ioctl(audio_fd, SNDCTL_DSP_SPEED, &tryrates[i])) break;
|
||||
shm->speed = tryrates[i];
|
||||
}
|
||||
|
||||
s = getenv("QUAKE_SOUND_CHANNELS");
|
||||
if (s) shm->channels = atoi(s);
|
||||
s = getenv("QUAKE_SOUND_CHANNELS");
|
||||
if (s) shm->channels = atoi(s);
|
||||
else if ((i = COM_CheckParm("-sndmono")) != 0)
|
||||
shm->channels = 1;
|
||||
else if ((i = COM_CheckParm("-sndstereo")) != 0)
|
||||
shm->channels = 2;
|
||||
else shm->channels = 2;
|
||||
else shm->channels = 2;
|
||||
|
||||
shm->samples = info.fragstotal * info.fragsize / (shm->samplebits/8);
|
||||
shm->submission_chunk = 1;
|
||||
|
@ -158,52 +159,52 @@ qboolean SNDDMA_Init(void)
|
|||
tmp = 0;
|
||||
if (shm->channels == 2)
|
||||
tmp = 1;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_STEREO, &tmp);
|
||||
if (rc < 0)
|
||||
{
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_STEREO, &tmp);
|
||||
if (rc < 0)
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Could not set /dev/dsp to stereo=%d", shm->channels);
|
||||
Con_Printf("Could not set /dev/dsp to stereo=%d", shm->channels);
|
||||
close(audio_fd);
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
if (tmp)
|
||||
shm->channels = 2;
|
||||
else
|
||||
shm->channels = 1;
|
||||
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SPEED, &shm->speed);
|
||||
if (rc < 0)
|
||||
{
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SPEED, &shm->speed);
|
||||
if (rc < 0)
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Could not set /dev/dsp speed to %d", shm->speed);
|
||||
Con_Printf("Could not set /dev/dsp speed to %d", shm->speed);
|
||||
close(audio_fd);
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (shm->samplebits == 16)
|
||||
{
|
||||
rc = AFMT_S16_LE;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETFMT, &rc);
|
||||
if (rc < 0)
|
||||
if (shm->samplebits == 16)
|
||||
{
|
||||
rc = AFMT_S16_LE;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETFMT, &rc);
|
||||
if (rc < 0)
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Could not support 16-bit data. Try 8-bit.\n");
|
||||
close(audio_fd);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if (shm->samplebits == 8)
|
||||
{
|
||||
rc = AFMT_U8;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETFMT, &rc);
|
||||
if (rc < 0)
|
||||
}
|
||||
else if (shm->samplebits == 8)
|
||||
{
|
||||
rc = AFMT_U8;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETFMT, &rc);
|
||||
if (rc < 0)
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Could not support 8-bit data.\n");
|
||||
close(audio_fd);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
|
@ -214,8 +215,8 @@ qboolean SNDDMA_Init(void)
|
|||
|
||||
// toggle the trigger & start her up
|
||||
|
||||
tmp = 0;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &tmp);
|
||||
tmp = 0;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &tmp);
|
||||
if (rc < 0)
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
|
@ -223,8 +224,8 @@ qboolean SNDDMA_Init(void)
|
|||
close(audio_fd);
|
||||
return 0;
|
||||
}
|
||||
tmp = PCM_ENABLE_OUTPUT;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &tmp);
|
||||
tmp = PCM_ENABLE_OUTPUT;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &tmp);
|
||||
if (rc < 0)
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
|
@ -282,4 +283,3 @@ Send sound to device if buffer isn't really the dma buffer
|
|||
void SNDDMA_Submit(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue