mirror of
https://git.code.sf.net/p/quake/quake2forge
synced 2024-12-04 01:51:52 +00:00
- Added sdl and solaris sound drivers to the build.
- Don't ship CVS directories in the dist in docs directory.
This commit is contained in:
parent
f4a2cc9ca2
commit
227b43b119
11 changed files with 106 additions and 69 deletions
|
@ -1,8 +1,8 @@
|
|||
# $Id$
|
||||
|
||||
SUBDIRS = src data
|
||||
SUBDIRS = src data docs
|
||||
|
||||
EXTRA_DIST = quake2.dsp quake2.dsw quake2.mak \
|
||||
quake2.spec \
|
||||
HACKING NEWS THANKS TODO \
|
||||
baseq2 bsd docs irix null rhapsody solaris win32
|
||||
baseq2 bsd irix null rhapsody solaris win32
|
||||
|
|
71
configure.in
71
configure.in
|
@ -296,6 +296,11 @@ if test "x$enable_sdl" != xno; then
|
|||
HAVE_SDL=no)
|
||||
AC_SUBST(HAVE_SDL)
|
||||
fi
|
||||
if test "x$HAVE_SDL" = xyes ; then
|
||||
SNDDRIVERS="$SNDDRIVERS snd_sdl.la"
|
||||
BUILD_SNDSDL="yes"
|
||||
fi
|
||||
AM_CONDITIONAL(BUILD_SNDSDL, test "x$BUILD_SNDSDL" = xyes)
|
||||
|
||||
dnl ------------------------
|
||||
dnl Check for MPG123 library
|
||||
|
@ -320,6 +325,7 @@ dnl ------------------
|
|||
dnl Check for ossaudio
|
||||
dnl ------------------
|
||||
|
||||
HAVE_OSS="yes"
|
||||
OSS_CFLAGS=""
|
||||
OSS_LIBS=""
|
||||
AC_CHECK_LIB([ossaudio], [_oss_ioctl], [OSS_LIBS="-lossaudio"])
|
||||
|
@ -353,7 +359,7 @@ else if test "x$ac_cv_header_soundcard_h" = "xyes"; then
|
|||
fi
|
||||
fi
|
||||
AC_SUBST(HAVE_AFMT_S16_NE)
|
||||
AM_CONDITIONAL(BUILD_OSS, test x = x)
|
||||
AM_CONDITIONAL(BUILD_SNDOSS, test "x$HAVE_OSS" = xyes)
|
||||
SNDDRIVERS="$SNDDRIVERS snd_oss.la"
|
||||
|
||||
dnl ---------------
|
||||
|
@ -415,7 +421,7 @@ if test "x${ac_with_ao}" != xno ; then
|
|||
else
|
||||
HAVE_AO=disabled
|
||||
fi
|
||||
AM_CONDITIONAL(BUILD_AO, test "x$HAVE_AO" = xyes)
|
||||
AM_CONDITIONAL(BUILD_SNDAO, test "x$HAVE_AO" = xyes)
|
||||
|
||||
dnl --------------
|
||||
dnl Check for ALSA
|
||||
|
@ -476,7 +482,24 @@ if test "x${ac_with_alsa}" != xno ; then
|
|||
else
|
||||
HAVE_ALSA=disabled
|
||||
fi
|
||||
AM_CONDITIONAL(BUILD_ALSA, test "x$HAVE_ALSA" = xyes)
|
||||
AM_CONDITIONAL(BUILD_SNDALSA, test "x$HAVE_ALSA" = xyes)
|
||||
|
||||
dnl -----------------------
|
||||
dnl Check for Solaris audio
|
||||
dnl -----------------------
|
||||
|
||||
SOLARIS_CFLAGS=""
|
||||
SOLARIS_LIBS=""
|
||||
AC_CHECK_HEADER([sys/audioio.h])
|
||||
HAVE_SOLARIS="$ac_cv_header_sys_audioio_h"
|
||||
AC_SUBST(SOLARIS_CFLAGS)
|
||||
AC_SUBST(SOLARIS_LIBS)
|
||||
if test "x$HAVE_SOLARIS" = xyes ; then
|
||||
SNDDRIVERS="$SNDDRIVERS snd_solaris.la"
|
||||
BUILD_SNDSOLARIS="yes"
|
||||
fi
|
||||
AM_CONDITIONAL(BUILD_SNDSOLARIS, test "x$BUILD_SNDSOLARIS" = xyes)
|
||||
|
||||
|
||||
dnl -------------------------------------------------------------
|
||||
dnl Checks for typedefs, structures, and compiler characteristics
|
||||
|
@ -648,35 +671,6 @@ case "${host}" in
|
|||
esac
|
||||
AM_CONDITIONAL(ASM_ARCH, test "$ASM_ARCH" = "yes")
|
||||
|
||||
dnl -------------------
|
||||
dnl Checks for SDL-only platforms
|
||||
dnl -------------------
|
||||
|
||||
AC_MSG_CHECKING(if SDL sound can be used instead of native drivers)
|
||||
case "${host}" in
|
||||
*-sun-solaris*)
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_MSG_WARN(Defaulting to SDL sound under Solaris due to temporary lack of native support.)
|
||||
BUILD_SDLQUAKE2=yes
|
||||
AC_DEFINE(BUILD_SDLQUAKE2, 1, [Define this if you want SDL sound instead of native drivers])
|
||||
;;
|
||||
i?86-*-*)
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_MSG_CHECKING(if SDL sound will be used)
|
||||
AC_ARG_ENABLE(sdlsound,
|
||||
[ --enable-sdlsound enable SDL sound instead of native drivers ],
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(BUILD_SDLQUAKE2, 1, [Define this if you want SDL sound instead of native drivers])
|
||||
BUILD_SDLQUAKE2=yes,
|
||||
AC_MSG_RESULT(no)
|
||||
)
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(no)
|
||||
;;
|
||||
esac
|
||||
AM_CONDITIONAL(BUILD_SDLQUAKE2, test "x$BUILD_SDLQUAKE2" = "xyes")
|
||||
|
||||
dnl ---------------------------------------------------
|
||||
dnl Check if the xatrix and rogue sources are available
|
||||
dnl ---------------------------------------------------
|
||||
|
@ -790,6 +784,8 @@ AC_CONFIG_FILES([
|
|||
data/Makefile
|
||||
data/pixmaps/Makefile
|
||||
data/baseq2/Makefile
|
||||
docs/Makefile
|
||||
docs/ctf/Makefile
|
||||
quake2.spec
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
@ -836,8 +832,8 @@ dnl AC_MSG_RESULT([ Framebuffer: ..... $HAVE_FB])
|
|||
dnl AC_MSG_RESULT([ AAlib: ........... $HAVE_AA])
|
||||
|
||||
AC_MSG_RESULT([ Sound drivers: ..... ${SNDDRIVERS- none}])
|
||||
AC_MSG_RESULT([ OSS .............. yes])
|
||||
AC_MSG_RESULT([ ALSA ............. $HAVE_ALSA])
|
||||
AC_MSG_RESULT([ OSS: ............. $HAVE_OSS])
|
||||
AC_MSG_RESULT([ ALSA: ............ $HAVE_ALSA])
|
||||
if test "x${ac_with_alsa}" = xyes ; then
|
||||
if test "x${HAVE_ALSA}" != xyes ; then
|
||||
AC_MSG_RESULT([
|
||||
|
@ -849,7 +845,7 @@ if test "x${ac_with_alsa}" = xyes ; then
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
AC_MSG_RESULT([ libao ............ $HAVE_AO])
|
||||
AC_MSG_RESULT([ libao: ........... $HAVE_AO])
|
||||
if test "x${ac_with_ao}" = xyes ; then
|
||||
if test "x${HAVE_AO}" != xyes ; then
|
||||
AC_MSG_RESULT([
|
||||
|
@ -861,6 +857,7 @@ if test "x${ac_with_ao}" = xyes ; then
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
AC_MSG_RESULT([ solaris: ......... $HAVE_SOLARIS])
|
||||
|
||||
AC_MSG_RESULT([
|
||||
Installation directories:
|
||||
|
@ -872,8 +869,8 @@ AC_MSG_RESULT([
|
|||
Type 'make' to compile Quake2Forge.
|
||||
|
||||
Type 'make install' to install Quake2Forge. Game data needs to be
|
||||
installed in the game data directory shown above, before the game
|
||||
can be played. See the file README in the top directory of the source
|
||||
installed in the game data directory shown above before the game can
|
||||
be played. See the file README in the top directory of the source
|
||||
for more details.
|
||||
|
||||
Happy fragging!
|
||||
|
|
2
docs/.gitignore
vendored
Normal file
2
docs/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
Makefile
|
||||
Makefile.in
|
3
docs/Makefile.am
Normal file
3
docs/Makefile.am
Normal file
|
@ -0,0 +1,3 @@
|
|||
SUBDIRS = ctf
|
||||
|
||||
EXTRA_DIST = README.* *.txt
|
2
docs/ctf/.gitignore
vendored
Normal file
2
docs/ctf/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
Makefile
|
||||
Makefile.in
|
1
docs/ctf/Makefile.am
Normal file
1
docs/ctf/Makefile.am
Normal file
|
@ -0,0 +1 @@
|
|||
EXTRA_DIST = *.gif *.html
|
|
@ -7,7 +7,8 @@ bin_PROGRAMS = quake2
|
|||
pkglib_LTLIBRARIES = @VID_REFS@ @SNDDRIVERS@
|
||||
EXTRA_LTLIBRARIES = ref_soft.la ref_softx.la ref_softsdl.la \
|
||||
ref_glx.la ref_sdlgl.la ref_tdfx.la \
|
||||
snd_oss.la snd_alsa.la snd_ao.la
|
||||
snd_oss.la snd_alsa.la snd_ao.la snd_sdl.la \
|
||||
snd_solaris.la
|
||||
|
||||
# Common source files
|
||||
REF_GL_COMMON = q_sh.c q_shared.c q_glob.c qgl.c \
|
||||
|
@ -80,12 +81,13 @@ EXTRA_ref_softx_la_SOURCES = rw_x11.c
|
|||
EXTRA_quake2_SOURCES = snd_mixa.S cd_sdl.c snd_sdl.c snd_dma.c \
|
||||
snd_mix.c snd_mem.c cd.c \
|
||||
snd_oss.c snd_ao.c snd_alsa.c
|
||||
snd_solaris.c
|
||||
|
||||
quake2_CFLAGS = $(std_cflags)
|
||||
quake2_LDADD = @DL_LIBS@ @SYSTEM_LIBS@ -lm
|
||||
|
||||
# oss sound driver
|
||||
if BUILD_OSS
|
||||
if BUILD_SNDOSS
|
||||
snd_oss_la_SOURCES = snd_oss.c
|
||||
snd_oss_la_CFLAGS = $(std_cflags) -fPIC @OSS_CFLAGS@
|
||||
snd_oss_la_LIBADD = @OSS_LIBS@
|
||||
|
@ -93,7 +95,7 @@ snd_oss_la_LDFLAGS = $(module_ldflags)
|
|||
endif
|
||||
|
||||
# alsa sound driver
|
||||
if BUILD_ALSA
|
||||
if BUILD_SNDALSA
|
||||
snd_alsa_la_SOURCES = snd_alsa.c
|
||||
snd_alsa_la_CFLAGS = $(std_cflags) -fPIC @ALSA_CFLAGS@
|
||||
snd_alsa_la_LIBADD = @ALSA_LIBS@
|
||||
|
@ -101,13 +103,29 @@ snd_alsa_la_LDFLAGS = $(module_ldflags)
|
|||
endif
|
||||
|
||||
# libao sound driver
|
||||
if BUILD_AO
|
||||
if BUILD_SNDAO
|
||||
snd_ao_la_SOURCES = snd_ao.c
|
||||
snd_ao_la_CFLAGS = $(std_cflags) -fPIC @AO_CFLAGS@
|
||||
snd_ao_la_LIBADD = @AO_LIBS@
|
||||
snd_ao_la_LDFLAGS = $(module_ldflags)
|
||||
endif
|
||||
|
||||
# sdl sound driver
|
||||
if BUILD_SNDSDL
|
||||
snd_sdl_la_SOURCES = snd_sdl.c
|
||||
snd_sdl_la_CFLAGS = $(std_cflags) -fPIC @SDL_CFLAGS@
|
||||
snd_sdl_la_LIBADD = @SDL_LIBS@
|
||||
snd_sdl_la_LDFLAGS = $(module_ldflags)
|
||||
endif
|
||||
|
||||
# solaris sound driver
|
||||
if BUILD_SNDSOLARIS
|
||||
snd_solaris_la_SOURCES = snd_solaris.c
|
||||
snd_solaris_la_CFLAGS = $(std_cflags) -fPIC
|
||||
snd_solaris_la_LIBADD = @SOLARIS_LIBS@
|
||||
snd_solaris_la_LDFLAGS = $(module_ldflags)
|
||||
endif
|
||||
|
||||
# ref_glx
|
||||
if BUILD_GLX
|
||||
ref_glx_la_SOURCES = $(REF_GL_COMMON) gl_glx.c
|
||||
|
|
|
@ -201,7 +201,9 @@ void S_Init (void)
|
|||
si.speed = Cvar_Get("sndspeed", "0", CVAR_ARCHIVE);
|
||||
si.channels = Cvar_Get("sndchannels", "2", CVAR_ARCHIVE);
|
||||
si.device = Cvar_Get("snddevice", "/dev/dsp", CVAR_ARCHIVE);
|
||||
si.s_khz = Cvar_Get("s_khz", "0", CVAR_ARCHIVE);
|
||||
si.Com_Printf = Com_Printf;
|
||||
si.S_PaintChannels = S_PaintChannels;
|
||||
|
||||
if (!SNDDMA_Init(&si))
|
||||
return;
|
||||
|
|
|
@ -144,8 +144,10 @@ struct sndinfo {
|
|||
cvar_t * speed;
|
||||
cvar_t * channels;
|
||||
cvar_t * device;
|
||||
cvar_t * s_khz;
|
||||
|
||||
void (*Com_Printf)(char * fmt, ...);
|
||||
void (*S_PaintChannels)(int);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -25,6 +25,10 @@
|
|||
$Id$
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <SDL.h>
|
||||
|
||||
#include "client.h"
|
||||
|
@ -33,6 +37,8 @@
|
|||
static int snd_inited;
|
||||
static dma_t *shm;
|
||||
|
||||
struct sndinfo * si;
|
||||
|
||||
static void
|
||||
paint_audio (void *unused, Uint8 * stream, int len)
|
||||
{
|
||||
|
@ -40,15 +46,20 @@ paint_audio (void *unused, Uint8 * stream, int len)
|
|||
shm->buffer = stream;
|
||||
shm->samplepos += len / (shm->samplebits / 4);
|
||||
// Check for samplepos overflow?
|
||||
S_PaintChannels (shm->samplepos);
|
||||
si->S_PaintChannels (shm->samplepos);
|
||||
}
|
||||
}
|
||||
|
||||
qboolean
|
||||
SNDDMA_Init (void)
|
||||
SNDDMA_Init (struct sndinfo * s)
|
||||
{
|
||||
SDL_AudioSpec desired, obtained;
|
||||
int desired_bits, freq;
|
||||
|
||||
if (snd_inited)
|
||||
return 1;
|
||||
|
||||
snd_inited = 0;
|
||||
|
||||
if (SDL_WasInit(SDL_INIT_EVERYTHING) == 0) {
|
||||
if (SDL_Init(SDL_INIT_AUDIO) < 0) {
|
||||
|
@ -61,12 +72,13 @@ SNDDMA_Init (void)
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
si = s;
|
||||
|
||||
snd_inited = 0;
|
||||
desired_bits = (Cvar_Get("sndbits", "16", CVAR_ARCHIVE))->value;
|
||||
desired_bits = si->bits->value;
|
||||
|
||||
/* Set up the desired format */
|
||||
freq = (Cvar_Get("s_khz", "0", CVAR_ARCHIVE))->value;
|
||||
freq = si->s_khz->value;
|
||||
if (freq == 44)
|
||||
desired.freq = 44100;
|
||||
else if (freq == 22)
|
||||
|
@ -88,7 +100,7 @@ SNDDMA_Init (void)
|
|||
Com_Printf ("Unknown number of audio bits: %d\n", desired_bits);
|
||||
return 0;
|
||||
}
|
||||
desired.channels = (Cvar_Get("sndchannels", "2", CVAR_ARCHIVE))->value;
|
||||
desired.channels = si->channels->value;
|
||||
|
||||
if (desired.freq == 44100)
|
||||
desired.samples = 2048;
|
||||
|
@ -133,7 +145,7 @@ SNDDMA_Init (void)
|
|||
SDL_PauseAudio (0);
|
||||
|
||||
/* Fill the audio DMA information block */
|
||||
shm = &dma;
|
||||
shm = si->dma;
|
||||
shm->samplebits = (obtained.format & 0xFF);
|
||||
shm->speed = obtained.freq;
|
||||
shm->channels = obtained.channels;
|
||||
|
|
|
@ -17,6 +17,11 @@ along with this program; if not, write to the Free Software
|
|||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
@ -40,16 +45,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
static int audio_fd = -1;
|
||||
static int snd_inited;
|
||||
|
||||
static cvar_t *sndbits;
|
||||
static cvar_t *sndspeed;
|
||||
static cvar_t *sndchannels;
|
||||
static cvar_t *snddevice;
|
||||
|
||||
|
||||
static int tryrates[] = { 11025, 22051, 44100, 8000 };
|
||||
|
||||
#define QSND_NUM_CHUNKS 2
|
||||
|
||||
static struct sndinfo * si;
|
||||
|
||||
/*
|
||||
==================
|
||||
SNDDMA_Init
|
||||
|
@ -59,7 +60,7 @@ Returns false if nothing is found.
|
|||
Returns true and fills in the "dma" structure with information for the mixer.
|
||||
==================
|
||||
*/
|
||||
qboolean SNDDMA_Init(void)
|
||||
qboolean SNDDMA_Init(struct sndinfo * s)
|
||||
{
|
||||
int i;
|
||||
int samples;
|
||||
|
@ -68,36 +69,33 @@ qboolean SNDDMA_Init(void)
|
|||
if (snd_inited)
|
||||
return 1;
|
||||
|
||||
if (!snddevice) {
|
||||
sndbits = Cvar_Get("sndbits", "16", CVAR_ARCHIVE);
|
||||
sndspeed = Cvar_Get("sndspeed", "0", CVAR_ARCHIVE);
|
||||
sndchannels = Cvar_Get("sndchannels", "2", CVAR_ARCHIVE);
|
||||
snddevice = Cvar_Get("snddevice", "/dev/audio", CVAR_ARCHIVE);
|
||||
}
|
||||
snd_inited = 0;
|
||||
|
||||
si = s;
|
||||
|
||||
// open /dev/audio
|
||||
|
||||
if (audio_fd < 0) {
|
||||
|
||||
audio_fd = open(snddevice->string, O_WRONLY);
|
||||
audio_fd = open(si->device->string, O_WRONLY);
|
||||
|
||||
if (audio_fd < 0) {
|
||||
Com_Printf("Could not open %s: %s\n", snddevice->string, strerror(errno));
|
||||
Com_Printf("Could not open %s: %s\n", si->device->string, strerror(errno));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// set sample bits & speed
|
||||
|
||||
if ((int)sndspeed->value > 0) {
|
||||
if ((int)si->speed->value > 0) {
|
||||
AUDIO_INITINFO(&au_info);
|
||||
|
||||
au_info.play.precision = (int)sndbits->value;
|
||||
au_info.play.precision = (int)si->bits->value;
|
||||
au_info.play.encoding =
|
||||
( au_info.play.precision == 8
|
||||
? AUDIO_ENCODING_LINEAR8
|
||||
: AUDIO_ENCODING_LINEAR );
|
||||
au_info.play.sample_rate = (int)sndspeed->value;
|
||||
au_info.play.sample_rate = (int)si->speed->value;
|
||||
au_info.play.channels = (int)sndchannels->value;
|
||||
|
||||
if (ioctl(audio_fd, AUDIO_SETINFO, &au_info) == -1) {
|
||||
|
@ -108,7 +106,7 @@ qboolean SNDDMA_Init(void)
|
|||
for (i=0 ; i<sizeof(tryrates)/sizeof(tryrates[0]) ; i++) {
|
||||
AUDIO_INITINFO(&au_info);
|
||||
|
||||
au_info.play.precision = (int)sndbits->value;
|
||||
au_info.play.precision = (int)si->bits->value;
|
||||
au_info.play.encoding =
|
||||
( au_info.play.precision == 8
|
||||
? AUDIO_ENCODING_LINEAR8
|
||||
|
|
Loading…
Reference in a new issue