mirror of
https://github.com/Shpoike/Quakespasm.git
synced 2025-02-10 09:41:09 +00:00
Add mixer rate to the extras menu, and add snd_restart command in order to be able to apply it instantly.
This commit is contained in:
parent
0955d04426
commit
f64bd5e9d6
2 changed files with 56 additions and 1 deletions
15
Quake/menu.c
15
Quake/menu.c
|
@ -1639,6 +1639,7 @@ static enum extras_e
|
||||||
EXTRAS_NETEXTENSIONS,
|
EXTRAS_NETEXTENSIONS,
|
||||||
EXTRAS_QCEXTENSIONS,
|
EXTRAS_QCEXTENSIONS,
|
||||||
EXTRAS_CLASSICPARTICLES,
|
EXTRAS_CLASSICPARTICLES,
|
||||||
|
EXTRAS_AUDIORATE,
|
||||||
EXTRAS_ITEMS
|
EXTRAS_ITEMS
|
||||||
} extras_cursor;
|
} extras_cursor;
|
||||||
|
|
||||||
|
@ -1742,6 +1743,10 @@ static void M_Extras_AdjustSliders (int dir)
|
||||||
case EXTRAS_CLASSICPARTICLES:
|
case EXTRAS_CLASSICPARTICLES:
|
||||||
Cvar_SetValueQuick (&r_particles, (r_particles.value==1)?2:1);
|
Cvar_SetValueQuick (&r_particles, (r_particles.value==1)?2:1);
|
||||||
break;
|
break;
|
||||||
|
case EXTRAS_AUDIORATE:
|
||||||
|
Cvar_SetValueQuick (&snd_mixspeed, (snd_mixspeed.value==48000)?44100:48000);
|
||||||
|
Cbuf_AddText("\nsnd_restart\n");
|
||||||
|
break;
|
||||||
case EXTRAS_ITEMS: //not a real option
|
case EXTRAS_ITEMS: //not a real option
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1842,6 +1847,16 @@ void M_Extras_Draw (void)
|
||||||
M_Print (220, y, "?!?");
|
M_Print (220, y, "?!?");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case EXTRAS_AUDIORATE:
|
||||||
|
M_Print (16, y, " Audio Rate");
|
||||||
|
if (snd_mixspeed.value == 48000)
|
||||||
|
M_Print (220, y, "48000 hz (DVD)");
|
||||||
|
else if (r_particles.value == 1)
|
||||||
|
M_Print (220, y, "44100 hz (CD)");
|
||||||
|
else
|
||||||
|
M_Print (220, y, va("%i hz", (int)snd_mixspeed.value));
|
||||||
|
break;
|
||||||
|
|
||||||
case EXTRAS_ITEMS: //unreachable.
|
case EXTRAS_ITEMS: //unreachable.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,7 @@ static void S_Play (void);
|
||||||
static void S_PlayVol (void);
|
static void S_PlayVol (void);
|
||||||
static void S_SoundList (void);
|
static void S_SoundList (void);
|
||||||
static void S_Update_ (void);
|
static void S_Update_ (void);
|
||||||
|
static void GetSoundtime (void);
|
||||||
void S_StopAllSounds (qboolean clear);
|
void S_StopAllSounds (qboolean clear);
|
||||||
static void S_StopAllSoundsC (void);
|
static void S_StopAllSoundsC (void);
|
||||||
|
|
||||||
|
@ -91,7 +92,7 @@ cvar_t precache = {"precache", "1", CVAR_NONE};
|
||||||
cvar_t loadas8bit = {"loadas8bit", "0", CVAR_NONE};
|
cvar_t loadas8bit = {"loadas8bit", "0", CVAR_NONE};
|
||||||
|
|
||||||
cvar_t sndspeed = {"sndspeed", "11025", CVAR_NONE};
|
cvar_t sndspeed = {"sndspeed", "11025", CVAR_NONE};
|
||||||
cvar_t snd_mixspeed = {"snd_mixspeed", "44100", CVAR_NONE};
|
cvar_t snd_mixspeed = {"snd_mixspeed", "44100", CVAR_ARCHIVE};
|
||||||
|
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
#define SND_FILTERQUALITY_DEFAULT "5"
|
#define SND_FILTERQUALITY_DEFAULT "5"
|
||||||
|
@ -165,8 +166,46 @@ void S_Startup (void)
|
||||||
(shm->channels == 2) ? "stereo" : "mono",
|
(shm->channels == 2) ? "stereo" : "mono",
|
||||||
shm->speed);
|
shm->speed);
|
||||||
}
|
}
|
||||||
|
GetSoundtime();
|
||||||
|
paintedtime = soundtime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
snd_restart console command
|
||||||
|
*/
|
||||||
|
void S_Restart_f(void)
|
||||||
|
{
|
||||||
|
sfx_t *s;
|
||||||
|
size_t i;
|
||||||
|
int oldspeed = shm->speed;
|
||||||
|
if (!snd_initialized)
|
||||||
|
return;
|
||||||
|
S_Shutdown();
|
||||||
|
S_Startup ();
|
||||||
|
S_CodecInit ();
|
||||||
|
|
||||||
|
paintedtime = soundtime;
|
||||||
|
//we changed the sound time and probably the rates too...
|
||||||
|
//any timing of sounds will be way off. so lets just kill any currently playing sounds
|
||||||
|
//(note that this lazy way of killing them will ensure that looping sounds restart)
|
||||||
|
for (i = 0; i < total_channels; i++)
|
||||||
|
{
|
||||||
|
snd_channels[i].pos = 0;
|
||||||
|
snd_channels[i].end = 0;
|
||||||
|
}
|
||||||
|
s_rawend = 0; //clear any music too...
|
||||||
|
|
||||||
|
//reload any sounds if their rates changed.
|
||||||
|
if (shm->speed != oldspeed)
|
||||||
|
{
|
||||||
|
for (i = 0; i < num_sfx; i++)
|
||||||
|
{
|
||||||
|
s = &known_sfx[i];
|
||||||
|
if (s->cache.data)
|
||||||
|
Cache_Free(&s->cache, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
================
|
================
|
||||||
|
@ -210,6 +249,7 @@ void S_Init (void)
|
||||||
Cmd_AddCommand("stopsound", S_StopAllSoundsC);
|
Cmd_AddCommand("stopsound", S_StopAllSoundsC);
|
||||||
Cmd_AddCommand("soundlist", S_SoundList);
|
Cmd_AddCommand("soundlist", S_SoundList);
|
||||||
Cmd_AddCommand("soundinfo", S_SoundInfo_f);
|
Cmd_AddCommand("soundinfo", S_SoundInfo_f);
|
||||||
|
Cmd_AddCommand("snd_restart", S_Restart_f);
|
||||||
|
|
||||||
i = COM_CheckParm("-sndspeed");
|
i = COM_CheckParm("-sndspeed");
|
||||||
if (i && i < com_argc-1)
|
if (i && i < com_argc-1)
|
||||||
|
|
Loading…
Reference in a new issue