From 6725cfcca5ff4add38b717b1cd78bd7b9e01c71d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 8 Dec 2019 22:17:19 +0100 Subject: [PATCH] - cleaned the includes of the sound backend code of unwanted content. Also simplified the sound init decision making. With FMod gone there is no reason to be pedantic here. Even the check of snd_backend for the Null device could be omitted here, its only realistic use is '-nosound'. --- src/console/c_dispatch.cpp | 5 ++ src/console/c_dispatch.h | 8 +- src/console/c_expr.cpp | 1 + src/gamedata/fonts/v_text.h | 1 - src/r_data/r_vanillatrans.cpp | 1 + src/sound/backend/i_sound.cpp | 18 +---- src/sound/backend/i_soundinternal.h | 1 - src/sound/backend/oalsound.cpp | 113 +++++++++++++++------------- src/sound/s_environment.cpp | 16 +--- src/sound/s_sound.cpp | 4 +- 10 files changed, 77 insertions(+), 91 deletions(-) diff --git a/src/console/c_dispatch.cpp b/src/console/c_dispatch.cpp index abd851b35..1921e2be3 100644 --- a/src/console/c_dispatch.cpp +++ b/src/console/c_dispatch.cpp @@ -1134,6 +1134,11 @@ FString BuildString (int argc, FString *argv) // //=========================================================================== +void FConsoleCommand::PrintCommand() +{ + Printf("%s\n", m_Name); +} + FString SubstituteAliasParams (FString &command, FCommandLine &args) { // Do substitution by replacing %x with the argument x. diff --git a/src/console/c_dispatch.h b/src/console/c_dispatch.h index f9fbd31d5..88976d95f 100644 --- a/src/console/c_dispatch.h +++ b/src/console/c_dispatch.h @@ -34,7 +34,9 @@ #ifndef __C_DISPATCH_H__ #define __C_DISPATCH_H__ -#include "doomtype.h" +#include +#include "tarray.h" +#include "zstring.h" class FConfigFile; @@ -63,7 +65,7 @@ struct FExecList TArray Commands; TArray Pullins; - void AddCommand(const char *cmd, const char *file = NULL); + void AddCommand(const char *cmd, const char *file = nullptr); void ExecCommands() const; void AddPullins(TArray &wads) const; }; @@ -107,7 +109,7 @@ public: FConsoleCommand (const char *name, CCmdRun RunFunc); virtual ~FConsoleCommand (); virtual bool IsAlias (); - void PrintCommand () { Printf ("%s\n", m_Name); } + void PrintCommand(); virtual void Run (FCommandLine &args, AActor *instigator, int key); static FConsoleCommand* FindByName (const char* name); diff --git a/src/console/c_expr.cpp b/src/console/c_expr.cpp index 0f5cb9c4f..cde8527e2 100644 --- a/src/console/c_expr.cpp +++ b/src/console/c_expr.cpp @@ -40,6 +40,7 @@ #include "c_dispatch.h" #include "c_cvars.h" +#include "doomtype.h" // MACROS ------------------------------------------------------------------ diff --git a/src/gamedata/fonts/v_text.h b/src/gamedata/fonts/v_text.h index 365674b52..cb16ebb74 100644 --- a/src/gamedata/fonts/v_text.h +++ b/src/gamedata/fonts/v_text.h @@ -34,7 +34,6 @@ #ifndef __V_TEXT_H__ #define __V_TEXT_H__ -#include "doomtype.h" #include "v_font.h" struct FBrokenLines diff --git a/src/r_data/r_vanillatrans.cpp b/src/r_data/r_vanillatrans.cpp index 6bf897951..ff2584e58 100644 --- a/src/r_data/r_vanillatrans.cpp +++ b/src/r_data/r_vanillatrans.cpp @@ -28,6 +28,7 @@ #include "templates.h" #include "c_cvars.h" #include "w_wad.h" +#include "doomtype.h" #ifdef _DEBUG #include "c_dispatch.h" #endif diff --git a/src/sound/backend/i_sound.cpp b/src/sound/backend/i_sound.cpp index 616120b98..0ba595ac7 100644 --- a/src/sound/backend/i_sound.cpp +++ b/src/sound/backend/i_sound.cpp @@ -47,7 +47,6 @@ #include "v_text.h" #include "c_cvars.h" #include "stats.h" -#include "s_music.h" #include "zmusic/zmusic.h" @@ -259,20 +258,12 @@ void I_InitSound () return; } -#ifndef NO_OPENAL - // Simplify transition to OpenAL backend - if (stricmp(snd_backend, "fmod") == 0) - { - Printf (TEXTCOLOR_ORANGE "FMOD Ex sound system was removed, switching to OpenAL\n"); - snd_backend = "openal"; - } -#endif // NO_OPENAL - + // Keep it simple: let everything except "null" init the sound. if (stricmp(snd_backend, "null") == 0) { GSnd = new NullSoundRenderer; } - else if(stricmp(snd_backend, "openal") == 0) + else { #ifndef NO_OPENAL if (IsOpenALPresent()) @@ -281,11 +272,6 @@ void I_InitSound () } #endif } - else - { - Printf (TEXTCOLOR_RED"%s: Unknown sound system specified\n", *snd_backend); - snd_backend = "null"; - } if (!GSnd || !GSnd->IsValid ()) { I_CloseSound(); diff --git a/src/sound/backend/i_soundinternal.h b/src/sound/backend/i_soundinternal.h index 311ed22b0..99dc1badb 100644 --- a/src/sound/backend/i_soundinternal.h +++ b/src/sound/backend/i_soundinternal.h @@ -3,7 +3,6 @@ #include -#include "doomtype.h" #include "vectors.h" #include "tarray.h" #include "zmusic/sounddecoder.h" diff --git a/src/sound/backend/oalsound.cpp b/src/sound/backend/oalsound.cpp index a16d42b41..3f3ede72f 100644 --- a/src/sound/backend/oalsound.cpp +++ b/src/sound/backend/oalsound.cpp @@ -35,17 +35,18 @@ #include #include -#include "doomstat.h" +#include "c_cvars.h" #include "templates.h" #include "oalsound.h" #include "c_dispatch.h" #include "v_text.h" #include "i_module.h" #include "cmdlib.h" -#include "menu/menu.h" +#include "m_fixed.h" #include "zmusic/sounddecoder.h" #include "filereadermusicinterface.h" + const char *GetSampleTypeName(SampleType type); const char *GetChannelConfigName(ChannelConfig chan); @@ -96,58 +97,6 @@ bool IsOpenALPresent() -void I_BuildALDeviceList(FOptionValues *opt) -{ - opt->mValues.Resize(1); - opt->mValues[0].TextValue = "Default"; - opt->mValues[0].Text = "Default"; - -#ifndef NO_OPENAL - if (IsOpenALPresent()) - { - const ALCchar *names = (alcIsExtensionPresent(NULL, "ALC_ENUMERATE_ALL_EXT") ? - alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER) : - alcGetString(NULL, ALC_DEVICE_SPECIFIER)); - if (!names) - Printf("Failed to get device list: %s\n", alcGetString(NULL, alcGetError(NULL))); - else while (*names) - { - unsigned int i = opt->mValues.Reserve(1); - opt->mValues[i].TextValue = names; - opt->mValues[i].Text = names; - - names += strlen(names) + 1; - } - } -#endif -} - -void I_BuildALResamplersList(FOptionValues *opt) -{ - opt->mValues.Resize(1); - opt->mValues[0].TextValue = "Default"; - opt->mValues[0].Text = "Default"; - -#ifndef NO_OPENAL - if (!IsOpenALPresent()) - return; - if (!alcGetCurrentContext() || !alIsExtensionPresent("AL_SOFT_source_resampler")) - return; - - LPALGETSTRINGISOFT alGetStringiSOFT = reinterpret_cast(alGetProcAddress("alGetStringiSOFT")); - ALint num_resamplers = alGetInteger(AL_NUM_RESAMPLERS_SOFT); - - unsigned int idx = opt->mValues.Reserve(num_resamplers); - for(ALint i = 0;i < num_resamplers;++i) - { - const ALchar *name = alGetStringiSOFT(AL_RESAMPLER_NAME_SOFT, i); - opt->mValues[idx].TextValue = name; - opt->mValues[idx].Text = name; - ++idx; - } -#endif -} - ReverbContainer *ForcedEnvironment; @@ -2359,4 +2308,60 @@ FSoundChan *OpenALSoundRenderer::FindLowestChannel() return lowest; } + +#include "menu/menu.h" + +void I_BuildALDeviceList(FOptionValues* opt) +{ + opt->mValues.Resize(1); + opt->mValues[0].TextValue = "Default"; + opt->mValues[0].Text = "Default"; + +#ifndef NO_OPENAL + if (IsOpenALPresent()) + { + const ALCchar* names = (alcIsExtensionPresent(NULL, "ALC_ENUMERATE_ALL_EXT") ? + alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER) : + alcGetString(NULL, ALC_DEVICE_SPECIFIER)); + if (!names) + Printf("Failed to get device list: %s\n", alcGetString(NULL, alcGetError(NULL))); + else while (*names) + { + unsigned int i = opt->mValues.Reserve(1); + opt->mValues[i].TextValue = names; + opt->mValues[i].Text = names; + + names += strlen(names) + 1; + } + } +#endif +} + +void I_BuildALResamplersList(FOptionValues* opt) +{ + opt->mValues.Resize(1); + opt->mValues[0].TextValue = "Default"; + opt->mValues[0].Text = "Default"; + +#ifndef NO_OPENAL + if (!IsOpenALPresent()) + return; + if (!alcGetCurrentContext() || !alIsExtensionPresent("AL_SOFT_source_resampler")) + return; + + LPALGETSTRINGISOFT alGetStringiSOFT = reinterpret_cast(alGetProcAddress("alGetStringiSOFT")); + ALint num_resamplers = alGetInteger(AL_NUM_RESAMPLERS_SOFT); + + unsigned int idx = opt->mValues.Reserve(num_resamplers); + for (ALint i = 0; i < num_resamplers; ++i) + { + const ALchar* name = alGetStringiSOFT(AL_RESAMPLER_NAME_SOFT, i); + opt->mValues[idx].TextValue = name; + opt->mValues[idx].Text = name; + ++idx; + } +#endif +} + + #endif // NO_OPENAL diff --git a/src/sound/s_environment.cpp b/src/sound/s_environment.cpp index 9e1d19e37..276770f6c 100644 --- a/src/sound/s_environment.cpp +++ b/src/sound/s_environment.cpp @@ -32,21 +32,11 @@ ** */ -#include "doomtype.h" -#include "s_sound.h" +#include "s_soundinternal.h" #include "sc_man.h" -#include "cmdlib.h" #include "templates.h" -#include "w_wad.h" -#include "i_system.h" #include "m_misc.h" -#include "c_cvars.h" -#include "c_dispatch.h" -#include "vm.h" -#include "dobject.h" -#include "menu/menu.h" - FReverbField ReverbFields[] = { @@ -526,7 +516,7 @@ void S_ReadReverbDef (FScanner &sc) while (sc.GetString ()) { - name = copystring (sc.String); + name = strdup (sc.String); sc.MustGetNumber (); id1 = sc.Number; sc.MustGetNumber (); @@ -627,7 +617,7 @@ void S_UnloadReverbDef () if (!probe->Builtin) { if (pNext != NULL) *pNext = probe->Next; - delete[] const_cast(probe->Name); + free(const_cast(probe->Name)); delete probe; } else diff --git a/src/sound/s_sound.cpp b/src/sound/s_sound.cpp index 7b6492c2a..4fba205dc 100644 --- a/src/sound/s_sound.cpp +++ b/src/sound/s_sound.cpp @@ -39,9 +39,7 @@ #include #endif -#include "i_system.h" -#include "i_sound.h" -#include "s_sound.h" +#include "s_soundinternal.h" #include "m_swap.h" #include "superfasthash.h"