Restore -nosound, -nosfx, -nomusic

Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 80
This commit is contained in:
Simon Howard 2005-09-06 22:39:43 +00:00
parent 7bf9829dbc
commit 9c38ec686f
2 changed files with 77 additions and 13 deletions

View file

@ -1,7 +1,7 @@
// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
// $Id: i_sound.c 79 2005-09-06 21:40:28Z fraggle $
// $Id: i_sound.c 80 2005-09-06 22:39:43Z fraggle $
//
// Copyright(C) 1993-1996 Id Software, Inc.
// Copyright(C) 2005 Simon Howard
@ -22,6 +22,9 @@
// 02111-1307, USA.
//
// $Log$
// Revision 1.16 2005/09/06 22:39:43 fraggle
// Restore -nosound, -nosfx, -nomusic
//
// Revision 1.15 2005/09/06 21:40:28 fraggle
// Setting music volume
//
@ -80,7 +83,7 @@
//-----------------------------------------------------------------------------
static const char
rcsid[] = "$Id: i_sound.c 79 2005-09-06 21:40:28Z fraggle $";
rcsid[] = "$Id: i_sound.c 80 2005-09-06 22:39:43Z fraggle $";
#include <stdio.h>
#include <stdlib.h>
@ -105,9 +108,10 @@ rcsid[] = "$Id: i_sound.c 79 2005-09-06 21:40:28Z fraggle $";
#define NUM_CHANNELS 16
static int sound_initialised = 0;
static boolean sound_initialised = false;
static Mix_Chunk sound_chunks[NUMSFX];
static byte *expand_sound_data(byte *data, int samplerate, int length)
{
byte *result = data;
@ -249,7 +253,12 @@ I_StartSound
int pitch,
int priority )
{
Mix_Chunk *chunk = getsfx(id);
Mix_Chunk *chunk;
if (!sound_initialised)
return 0;
chunk = getsfx(id);
// play sound
@ -266,12 +275,17 @@ I_StartSound
void I_StopSound (int handle)
{
if (!sound_initialised)
return;
Mix_HaltChannel(handle);
}
int I_SoundIsPlaying(int handle)
{
if (!sound_initialised)
return false;
return Mix_Playing(handle);
}
@ -320,6 +334,9 @@ I_UpdateSoundParams
{
int left, right;
if (!sound_initialised)
return;
left = ((254 - sep) * vol) / 15;
right = ((sep) * vol) / 15;
@ -340,12 +357,16 @@ void I_ShutdownSound(void)
void
I_InitSound()
{
// If music or sound is going to play, we need to at least
// initialise SDL
if (M_CheckParm("-nosound")
|| (M_CheckParm("-nosfx") && M_CheckParm("-nomusic")))
return;
if (SDL_Init(SDL_INIT_AUDIO) < 0)
{
fprintf(stderr, "Unable to set up sound.\n");
@ -359,9 +380,14 @@ I_InitSound()
Mix_AllocateChannels(NUM_CHANNELS);
sound_initialised = 1;
SDL_PauseAudio(0);
if (M_CheckParm("-nosound") || M_CheckParm("-nosfx"))
return;
sound_initialised = true;
}
@ -372,8 +398,21 @@ I_InitSound()
// Still no music done.
// Remains. Dummies.
//
void I_InitMusic(void) { }
void I_ShutdownMusic(void) { }
static int music_initialised;
void I_InitMusic(void)
{
if (M_CheckParm("-nomusic") || M_CheckParm("-nosound"))
return;
music_initialised = true;
}
void I_ShutdownMusic(void)
{
music_initialised = false;
}
static int looping=0;
static int musicdies=-1;
@ -383,6 +422,9 @@ void I_PlaySong(void *handle, int looping)
Mix_Music *music = (Mix_Music *) handle;
int loops;
if (!music_initialised)
return;
if (handle == NULL)
return;
@ -396,16 +438,25 @@ void I_PlaySong(void *handle, int looping)
void I_PauseSong (void *handle)
{
if (!music_initialised)
return;
Mix_PauseMusic();
}
void I_ResumeSong (void *handle)
{
if (!music_initialised)
return;
Mix_ResumeMusic();
}
void I_StopSong(void *handle)
{
if (!music_initialised)
return;
Mix_HaltMusic();
}
@ -413,6 +464,9 @@ void I_UnRegisterSong(void *handle)
{
Mix_Music *music = (Mix_Music *) handle;
if (!music_initialised)
return;
if (handle == NULL)
return;
@ -426,6 +480,9 @@ void *I_RegisterSong(void *data, int len)
MIDI *mididata;
UBYTE *mid;
int midlen;
if (!music_initialised)
return NULL;
#ifdef _WIN32
sprintf(filename, "doom.mid");
@ -475,6 +532,9 @@ void *I_RegisterSong(void *data, int len)
// Is the song playing?
int I_QrySongPlaying(void *handle)
{
if (!music_initialised)
return false;
return Mix_PlayingMusic();
}

View file

@ -1,7 +1,7 @@
// Emacs style mode select -*- C++ -*-
//-----------------------------------------------------------------------------
//
// $Id: i_system.c 37 2005-08-04 18:42:15Z fraggle $
// $Id: i_system.c 80 2005-09-06 22:39:43Z fraggle $
//
// Copyright(C) 1993-1996 Id Software, Inc.
// Copyright(C) 2005 Simon Howard
@ -22,6 +22,9 @@
// 02111-1307, USA.
//
// $Log$
// Revision 1.8 2005/09/06 22:39:43 fraggle
// Restore -nosound, -nosfx, -nomusic
//
// Revision 1.7 2005/08/04 18:42:15 fraggle
// Silence compiler warnings
//
@ -49,7 +52,7 @@
//-----------------------------------------------------------------------------
static const char
rcsid[] = "$Id: i_system.c 37 2005-08-04 18:42:15Z fraggle $";
rcsid[] = "$Id: i_system.c 80 2005-09-06 22:39:43Z fraggle $";
#include <stdlib.h>
@ -136,6 +139,7 @@ int I_GetTime (void)
void I_Init (void)
{
I_InitSound();
I_InitMusic();
// initialise timer