mirror of
https://git.code.sf.net/p/quake/newtree
synced 2025-01-21 23:50:58 +00:00
cd_linux.c: whitespace.
quakefs.c: -game n[,n ...] support. snd_oss.c: Compilation support for OSS on BSD systems.
This commit is contained in:
parent
4962c3bf0b
commit
dd7333a2da
3 changed files with 96 additions and 80 deletions
|
@ -67,8 +67,8 @@ static void CDAudio_Eject(void)
|
|||
if (cdfile == -1 || !enabled)
|
||||
return; // no cd init'd
|
||||
|
||||
if ( ioctl(cdfile, CDROMEJECT) == -1 )
|
||||
Con_DPrintf("ioctl cdromeject failed\n");
|
||||
if (ioctl (cdfile, CDROMEJECT) == -1 )
|
||||
Con_DPrintf ("ioctl cdromeject failed\n");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1038,8 +1038,19 @@ COM_InitFilesystem ( void )
|
|||
}
|
||||
|
||||
if ((i = COM_CheckParm ("-game")) && i < com_argc - 1) {
|
||||
COM_CreateGameDirectory(com_argv[i+1]);
|
||||
}
|
||||
char *gamedirs = NULL;
|
||||
char *where;
|
||||
|
||||
gamedirs = strdup (com_argv[i+1]);
|
||||
where = strtok (gamedirs, ",");
|
||||
while (where) {
|
||||
where = strtok (NULL, ",");
|
||||
if (where) {
|
||||
COM_CreateGameDirectory (where);
|
||||
}
|
||||
}
|
||||
free (gamedirs);
|
||||
}
|
||||
|
||||
// any set gamedirs will be freed up to here
|
||||
com_base_searchpaths = com_searchpaths;
|
||||
|
|
157
source/snd_oss.c
157
source/snd_oss.c
|
@ -29,17 +29,31 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/shm.h>
|
||||
#include <sys/wait.h>
|
||||
#include <linux/soundcard.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef HAVE_SYS_IOCTL_H
|
||||
# include <sys/ioctl.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_MMAN_H
|
||||
# include <sys/mman.h>
|
||||
#endif
|
||||
|
||||
#if defined HAVE_SYS_SOUNDCARD_H
|
||||
# include <sys/soundcard.h>
|
||||
#elif defined HAVE_LINUX_SOUNDCARD_H
|
||||
# include <linux/soundcard.h>
|
||||
#elif HAVE_MACHINE_SOUNDCARD_H
|
||||
# include <machine/soundcard.h>
|
||||
#endif
|
||||
|
||||
#include "console.h"
|
||||
#include "qargs.h"
|
||||
#include "sound.h"
|
||||
|
@ -54,14 +68,14 @@ int snd_inited;
|
|||
|
||||
static int tryrates[] = { 11025, 22051, 44100, 8000 };
|
||||
|
||||
qboolean SNDDMA_Init(void)
|
||||
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;
|
||||
|
||||
|
@ -69,16 +83,16 @@ 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);
|
||||
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");
|
||||
|
@ -89,7 +103,7 @@ qboolean SNDDMA_Init(void)
|
|||
if (ioctl(audio_fd, SNDCTL_DSP_GETCAPS, &caps)==-1)
|
||||
{
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Sound driver too old\n");
|
||||
Con_Printf("Sound driver too old\n");
|
||||
close(audio_fd);
|
||||
return 0;
|
||||
}
|
||||
|
@ -101,48 +115,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;
|
||||
|
@ -151,7 +165,8 @@ qboolean SNDDMA_Init(void)
|
|||
|
||||
shm->buffer = (unsigned char *) mmap(NULL, info.fragstotal
|
||||
* info.fragsize, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, audio_fd, 0);
|
||||
if (!shm->buffer || shm->buffer == MAP_FAILED) {
|
||||
|
||||
if (shm->buffer == MAP_FAILED) {
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Could not mmap /dev/dsp\n");
|
||||
close(audio_fd);
|
||||
|
@ -161,54 +176,46 @@ 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
|
||||
{
|
||||
} else {
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("%d-bit sound not supported.", shm->samplebits);
|
||||
close(audio_fd);
|
||||
|
@ -217,19 +224,17 @@ qboolean SNDDMA_Init(void)
|
|||
|
||||
// toggle the trigger & start her up
|
||||
|
||||
tmp = 0;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &tmp);
|
||||
if (rc < 0)
|
||||
{
|
||||
tmp = 0;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &tmp);
|
||||
if (rc < 0) {
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Could not toggle.\n");
|
||||
close(audio_fd);
|
||||
return 0;
|
||||
}
|
||||
tmp = PCM_ENABLE_OUTPUT;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &tmp);
|
||||
if (rc < 0)
|
||||
{
|
||||
tmp = PCM_ENABLE_OUTPUT;
|
||||
rc = ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &tmp);
|
||||
if (rc < 0) {
|
||||
perror("/dev/dsp");
|
||||
Con_Printf("Could not toggle.\n");
|
||||
close(audio_fd);
|
||||
|
@ -259,7 +264,7 @@ int SNDDMA_GetDMAPos(void)
|
|||
return 0;
|
||||
}
|
||||
// shm->samplepos = (count.bytes / (shm->samplebits / 8)) & (shm->samples-1);
|
||||
// fprintf(stderr, "%d \r", count.ptr);
|
||||
// fprintf(stderr, "%d \r", count.ptr);
|
||||
shm->samplepos = count.ptr / (shm->samplebits / 8);
|
||||
|
||||
return shm->samplepos;
|
||||
|
|
Loading…
Reference in a new issue