- moved a few CCMDs from i_sound.cpp to s_sound.cpp.

This commit is contained in:
Christoph Oelckers 2019-08-23 21:57:56 +02:00 committed by drfrag
parent bd3e8c0a99
commit 09d26a9e64
4 changed files with 43 additions and 31 deletions

View file

@ -124,6 +124,7 @@ enum
extern float S_GetMusicVolume (const char *music);
// PUBLIC FUNCTION PROTOTYPES ----------------------------------------------
void I_CloseSound();
// PRIVATE FUNCTION PROTOTYPES ---------------------------------------------
@ -2591,3 +2592,41 @@ DEFINE_ACTION_FUNCTION(DObject, S_ResumeSound)
return 0;
}
void S_UnloadAllSounds()
{
for (unsigned i = 0; i < S_sfx.Size(); i++)
{
S_UnloadSound(&S_sfx[i]);
}
}
CCMD (snd_status)
{
GSnd->PrintStatus ();
}
CCMD (snd_reset)
{
S_SoundReset();
}
void S_SoundReset()
{
I_ShutdownMusic();
S_EvictAllChannels();
I_CloseSound();
I_InitSound();
S_RestartMusic();
S_RestoreEvictedChannels();
}
CCMD (snd_listdrivers)
{
GSnd->PrintDriversList ();
}
ADD_STAT (sound)
{
return GSnd->GatherStats ();
}

View file

@ -372,5 +372,7 @@ void S_SetEnvironment (const ReverbContainer *settings);
ReverbContainer *S_FindEnvironment (const char *name);
ReverbContainer *S_FindEnvironment (int id);
void S_AddEnvironment (ReverbContainer *settings);
void S_UnloadAllSounds();
void S_SoundReset();
#endif

View file

@ -315,10 +315,7 @@ void I_InitSound ()
void I_CloseSound ()
{
// Free all loaded samples
for (unsigned i = 0; i < S_sfx.Size(); i++)
{
S_UnloadSound(&S_sfx[i]);
}
S_UnloadAllSounds();
delete GSnd;
GSnd = NULL;
@ -354,32 +351,6 @@ const char *GetChannelConfigName(enum ChannelConfig chan)
return "(invalid channel config)";
}
CCMD (snd_status)
{
GSnd->PrintStatus ();
}
CCMD (snd_reset)
{
I_ShutdownMusic();
S_EvictAllChannels();
I_CloseSound();
I_InitSound();
S_RestartMusic();
S_RestoreEvictedChannels();
}
CCMD (snd_listdrivers)
{
GSnd->PrintDriversList ();
}
ADD_STAT (sound)
{
return GSnd->GatherStats ();
}
SoundRenderer::SoundRenderer ()
{
}

View file

@ -2250,7 +2250,7 @@ void OpenALSoundRenderer::UpdateSounds()
if(connected == ALC_FALSE)
{
Printf("Sound device disconnected; restarting...\n");
AddCommandString("snd_reset");
S_SoundReset();
return;
}
}