From 6d00aef398f964c4d20a58c1a206ab53536226a8 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Mon, 2 Dec 2024 19:30:55 +0300 Subject: [PATCH] engine: move soundlib onto client, only leave snd_utils with some functions that's engine core or server are dependent on --- .../soundlib/libmpg/dct36.c | 0 .../soundlib/libmpg/dct64.c | 0 .../soundlib/libmpg/fmt123.h | 0 .../soundlib/libmpg/format.c | 0 .../soundlib/libmpg/frame.c | 0 .../soundlib/libmpg/frame.h | 0 .../soundlib/libmpg/getbits.h | 0 .../soundlib/libmpg/huffman.h | 0 .../soundlib/libmpg/index.c | 0 .../soundlib/libmpg/index.h | 0 .../soundlib/libmpg/layer3.c | 0 .../soundlib/libmpg/libmpg.c | 0 .../soundlib/libmpg/libmpg.dsp | 0 .../soundlib/libmpg/libmpg.h | 0 .../soundlib/libmpg/mpeghead.h | 0 .../soundlib/libmpg/mpg123.c | 0 .../soundlib/libmpg/mpg123.h | 0 .../soundlib/libmpg/parse.c | 0 .../soundlib/libmpg/reader.c | 0 .../soundlib/libmpg/reader.h | 0 .../soundlib/libmpg/sample.h | 0 .../soundlib/libmpg/synth.c | 0 .../soundlib/libmpg/synth.h | 0 .../soundlib/libmpg/tabinit.c | 0 .../soundlib/ogg_filestream.c | 0 .../soundlib/ogg_filestream.h | 0 engine/{common => client}/soundlib/snd_main.c | 3 -- engine/{common => client}/soundlib/snd_mp3.c | 0 .../soundlib/snd_ogg_opus.c | 0 .../soundlib/snd_ogg_vorbis.c | 0 engine/{common => client}/soundlib/snd_wav.c | 0 engine/common/soundlib/snd_utils.c | 49 +++++++++---------- engine/wscript | 8 +-- 33 files changed, 28 insertions(+), 32 deletions(-) rename engine/{common => client}/soundlib/libmpg/dct36.c (100%) rename engine/{common => client}/soundlib/libmpg/dct64.c (100%) rename engine/{common => client}/soundlib/libmpg/fmt123.h (100%) rename engine/{common => client}/soundlib/libmpg/format.c (100%) rename engine/{common => client}/soundlib/libmpg/frame.c (100%) rename engine/{common => client}/soundlib/libmpg/frame.h (100%) rename engine/{common => client}/soundlib/libmpg/getbits.h (100%) rename engine/{common => client}/soundlib/libmpg/huffman.h (100%) rename engine/{common => client}/soundlib/libmpg/index.c (100%) rename engine/{common => client}/soundlib/libmpg/index.h (100%) rename engine/{common => client}/soundlib/libmpg/layer3.c (100%) rename engine/{common => client}/soundlib/libmpg/libmpg.c (100%) rename engine/{common => client}/soundlib/libmpg/libmpg.dsp (100%) rename engine/{common => client}/soundlib/libmpg/libmpg.h (100%) rename engine/{common => client}/soundlib/libmpg/mpeghead.h (100%) rename engine/{common => client}/soundlib/libmpg/mpg123.c (100%) rename engine/{common => client}/soundlib/libmpg/mpg123.h (100%) rename engine/{common => client}/soundlib/libmpg/parse.c (100%) rename engine/{common => client}/soundlib/libmpg/reader.c (100%) rename engine/{common => client}/soundlib/libmpg/reader.h (100%) rename engine/{common => client}/soundlib/libmpg/sample.h (100%) rename engine/{common => client}/soundlib/libmpg/synth.c (100%) rename engine/{common => client}/soundlib/libmpg/synth.h (100%) rename engine/{common => client}/soundlib/libmpg/tabinit.c (100%) rename engine/{common => client}/soundlib/ogg_filestream.c (100%) rename engine/{common => client}/soundlib/ogg_filestream.h (100%) rename engine/{common => client}/soundlib/snd_main.c (99%) rename engine/{common => client}/soundlib/snd_mp3.c (100%) rename engine/{common => client}/soundlib/snd_ogg_opus.c (100%) rename engine/{common => client}/soundlib/snd_ogg_vorbis.c (100%) rename engine/{common => client}/soundlib/snd_wav.c (100%) diff --git a/engine/common/soundlib/libmpg/dct36.c b/engine/client/soundlib/libmpg/dct36.c similarity index 100% rename from engine/common/soundlib/libmpg/dct36.c rename to engine/client/soundlib/libmpg/dct36.c diff --git a/engine/common/soundlib/libmpg/dct64.c b/engine/client/soundlib/libmpg/dct64.c similarity index 100% rename from engine/common/soundlib/libmpg/dct64.c rename to engine/client/soundlib/libmpg/dct64.c diff --git a/engine/common/soundlib/libmpg/fmt123.h b/engine/client/soundlib/libmpg/fmt123.h similarity index 100% rename from engine/common/soundlib/libmpg/fmt123.h rename to engine/client/soundlib/libmpg/fmt123.h diff --git a/engine/common/soundlib/libmpg/format.c b/engine/client/soundlib/libmpg/format.c similarity index 100% rename from engine/common/soundlib/libmpg/format.c rename to engine/client/soundlib/libmpg/format.c diff --git a/engine/common/soundlib/libmpg/frame.c b/engine/client/soundlib/libmpg/frame.c similarity index 100% rename from engine/common/soundlib/libmpg/frame.c rename to engine/client/soundlib/libmpg/frame.c diff --git a/engine/common/soundlib/libmpg/frame.h b/engine/client/soundlib/libmpg/frame.h similarity index 100% rename from engine/common/soundlib/libmpg/frame.h rename to engine/client/soundlib/libmpg/frame.h diff --git a/engine/common/soundlib/libmpg/getbits.h b/engine/client/soundlib/libmpg/getbits.h similarity index 100% rename from engine/common/soundlib/libmpg/getbits.h rename to engine/client/soundlib/libmpg/getbits.h diff --git a/engine/common/soundlib/libmpg/huffman.h b/engine/client/soundlib/libmpg/huffman.h similarity index 100% rename from engine/common/soundlib/libmpg/huffman.h rename to engine/client/soundlib/libmpg/huffman.h diff --git a/engine/common/soundlib/libmpg/index.c b/engine/client/soundlib/libmpg/index.c similarity index 100% rename from engine/common/soundlib/libmpg/index.c rename to engine/client/soundlib/libmpg/index.c diff --git a/engine/common/soundlib/libmpg/index.h b/engine/client/soundlib/libmpg/index.h similarity index 100% rename from engine/common/soundlib/libmpg/index.h rename to engine/client/soundlib/libmpg/index.h diff --git a/engine/common/soundlib/libmpg/layer3.c b/engine/client/soundlib/libmpg/layer3.c similarity index 100% rename from engine/common/soundlib/libmpg/layer3.c rename to engine/client/soundlib/libmpg/layer3.c diff --git a/engine/common/soundlib/libmpg/libmpg.c b/engine/client/soundlib/libmpg/libmpg.c similarity index 100% rename from engine/common/soundlib/libmpg/libmpg.c rename to engine/client/soundlib/libmpg/libmpg.c diff --git a/engine/common/soundlib/libmpg/libmpg.dsp b/engine/client/soundlib/libmpg/libmpg.dsp similarity index 100% rename from engine/common/soundlib/libmpg/libmpg.dsp rename to engine/client/soundlib/libmpg/libmpg.dsp diff --git a/engine/common/soundlib/libmpg/libmpg.h b/engine/client/soundlib/libmpg/libmpg.h similarity index 100% rename from engine/common/soundlib/libmpg/libmpg.h rename to engine/client/soundlib/libmpg/libmpg.h diff --git a/engine/common/soundlib/libmpg/mpeghead.h b/engine/client/soundlib/libmpg/mpeghead.h similarity index 100% rename from engine/common/soundlib/libmpg/mpeghead.h rename to engine/client/soundlib/libmpg/mpeghead.h diff --git a/engine/common/soundlib/libmpg/mpg123.c b/engine/client/soundlib/libmpg/mpg123.c similarity index 100% rename from engine/common/soundlib/libmpg/mpg123.c rename to engine/client/soundlib/libmpg/mpg123.c diff --git a/engine/common/soundlib/libmpg/mpg123.h b/engine/client/soundlib/libmpg/mpg123.h similarity index 100% rename from engine/common/soundlib/libmpg/mpg123.h rename to engine/client/soundlib/libmpg/mpg123.h diff --git a/engine/common/soundlib/libmpg/parse.c b/engine/client/soundlib/libmpg/parse.c similarity index 100% rename from engine/common/soundlib/libmpg/parse.c rename to engine/client/soundlib/libmpg/parse.c diff --git a/engine/common/soundlib/libmpg/reader.c b/engine/client/soundlib/libmpg/reader.c similarity index 100% rename from engine/common/soundlib/libmpg/reader.c rename to engine/client/soundlib/libmpg/reader.c diff --git a/engine/common/soundlib/libmpg/reader.h b/engine/client/soundlib/libmpg/reader.h similarity index 100% rename from engine/common/soundlib/libmpg/reader.h rename to engine/client/soundlib/libmpg/reader.h diff --git a/engine/common/soundlib/libmpg/sample.h b/engine/client/soundlib/libmpg/sample.h similarity index 100% rename from engine/common/soundlib/libmpg/sample.h rename to engine/client/soundlib/libmpg/sample.h diff --git a/engine/common/soundlib/libmpg/synth.c b/engine/client/soundlib/libmpg/synth.c similarity index 100% rename from engine/common/soundlib/libmpg/synth.c rename to engine/client/soundlib/libmpg/synth.c diff --git a/engine/common/soundlib/libmpg/synth.h b/engine/client/soundlib/libmpg/synth.h similarity index 100% rename from engine/common/soundlib/libmpg/synth.h rename to engine/client/soundlib/libmpg/synth.h diff --git a/engine/common/soundlib/libmpg/tabinit.c b/engine/client/soundlib/libmpg/tabinit.c similarity index 100% rename from engine/common/soundlib/libmpg/tabinit.c rename to engine/client/soundlib/libmpg/tabinit.c diff --git a/engine/common/soundlib/ogg_filestream.c b/engine/client/soundlib/ogg_filestream.c similarity index 100% rename from engine/common/soundlib/ogg_filestream.c rename to engine/client/soundlib/ogg_filestream.c diff --git a/engine/common/soundlib/ogg_filestream.h b/engine/client/soundlib/ogg_filestream.h similarity index 100% rename from engine/common/soundlib/ogg_filestream.h rename to engine/client/soundlib/ogg_filestream.h diff --git a/engine/common/soundlib/snd_main.c b/engine/client/soundlib/snd_main.c similarity index 99% rename from engine/common/soundlib/snd_main.c rename to engine/client/soundlib/snd_main.c index a9ff2e87..1304f39a 100644 --- a/engine/common/soundlib/snd_main.c +++ b/engine/client/soundlib/snd_main.c @@ -15,9 +15,6 @@ GNU General Public License for more details. #include "soundlib.h" -// global sound variables -sndlib_t sound; - static void Sound_Reset( void ) { // reset global variables diff --git a/engine/common/soundlib/snd_mp3.c b/engine/client/soundlib/snd_mp3.c similarity index 100% rename from engine/common/soundlib/snd_mp3.c rename to engine/client/soundlib/snd_mp3.c diff --git a/engine/common/soundlib/snd_ogg_opus.c b/engine/client/soundlib/snd_ogg_opus.c similarity index 100% rename from engine/common/soundlib/snd_ogg_opus.c rename to engine/client/soundlib/snd_ogg_opus.c diff --git a/engine/common/soundlib/snd_ogg_vorbis.c b/engine/client/soundlib/snd_ogg_vorbis.c similarity index 100% rename from engine/common/soundlib/snd_ogg_vorbis.c rename to engine/client/soundlib/snd_ogg_vorbis.c diff --git a/engine/common/soundlib/snd_wav.c b/engine/client/soundlib/snd_wav.c similarity index 100% rename from engine/common/soundlib/snd_wav.c rename to engine/client/soundlib/snd_wav.c diff --git a/engine/common/soundlib/snd_utils.c b/engine/common/soundlib/snd_utils.c index 2ca606c4..be4eafbd 100644 --- a/engine/common/soundlib/snd_utils.c +++ b/engine/common/soundlib/snd_utils.c @@ -18,6 +18,9 @@ GNU General Public License for more details. #include #endif // XASH_SDL +// global sound variables +sndlib_t sound; + /* ============================================================================= @@ -25,14 +28,9 @@ GNU General Public License for more details. ============================================================================= */ -// stub -static const loadwavfmt_t load_null[] = -{ -{ NULL, NULL, NULL } -}; - static const loadwavfmt_t load_game[] = { +#ifndef XASH_DEDICATED { DEFAULT_SOUNDPATH "%s%s.%s", "wav", Sound_LoadWAV }, { "%s%s.%s", "wav", Sound_LoadWAV }, { DEFAULT_SOUNDPATH "%s%s.%s", "mp3", Sound_LoadMPG }, @@ -41,7 +39,13 @@ static const loadwavfmt_t load_game[] = { "%s%s.%s", "ogg", Sound_LoadOggVorbis }, { DEFAULT_SOUNDPATH "%s%s.%s", "opus", Sound_LoadOggOpus }, { "%s%s.%s", "opus", Sound_LoadOggOpus }, -{ NULL, NULL, NULL } +#else // we only need extensions +{ NULL, "wav" }, +{ NULL, "mp3" }, +{ NULL, "ogg" }, +{ NULL, "opus" }, +#endif +{ NULL }, }; /* @@ -51,19 +55,20 @@ static const loadwavfmt_t load_game[] = ============================================================================= */ -// stub -static const streamfmt_t stream_null[] = -{ -{ NULL, NULL, NULL, NULL, NULL, NULL, NULL } -}; - static const streamfmt_t stream_game[] = { +#ifndef XASH_DEDICATED { "%s%s.%s", "mp3", Stream_OpenMPG, Stream_ReadMPG, Stream_SetPosMPG, Stream_GetPosMPG, Stream_FreeMPG }, { "%s%s.%s", "wav", Stream_OpenWAV, Stream_ReadWAV, Stream_SetPosWAV, Stream_GetPosWAV, Stream_FreeWAV }, { "%s%s.%s", "ogg", Stream_OpenOggVorbis, Stream_ReadOggVorbis, Stream_SetPosOggVorbis, Stream_GetPosOggVorbis, Stream_FreeOggVorbis }, { "%s%s.%s", "opus", Stream_OpenOggOpus, Stream_ReadOggOpus, Stream_SetPosOggOpus, Stream_GetPosOggOpus, Stream_FreeOggOpus }, -{ NULL, NULL, NULL, NULL, NULL, NULL, NULL } +#else // we only need extensions +{ NULL, "mp3" }, +{ NULL, "wav" }, +{ NULL, "ogg" }, +{ NULL, "opus" }, +#endif +{ NULL }, }; void Sound_Init( void ) @@ -71,18 +76,10 @@ void Sound_Init( void ) // init pools host.soundpool = Mem_AllocPool( "SoundLib Pool" ); - // install image formats (can be re-install later by Sound_Setup) - switch( host.type ) - { - case HOST_NORMAL: - sound.loadformats = load_game; - sound.streamformat = stream_game; - break; - default: // all other instances not using soundlib or will be reinstalling later - sound.loadformats = load_null; - sound.streamformat = stream_null; - break; - } + // install sound formats + sound.loadformats = load_game; + sound.streamformat = stream_game; + sound.tempbuffer = NULL; } diff --git a/engine/wscript b/engine/wscript index 0b330394..3b4af893 100644 --- a/engine/wscript +++ b/engine/wscript @@ -148,7 +148,6 @@ def build(bld): 'common/*.c', 'common/imagelib/*.c', 'common/soundlib/*.c', - 'common/soundlib/libmpg/*.c', 'server/*.c']) if bld.env.ENGINE_TESTS: @@ -234,7 +233,10 @@ def build(bld): source += bld.path.ant_glob([ 'client/*.c', 'client/vgui/*.c', - 'client/avi/*.c']) + 'client/avi/*.c', + 'client/soundlib/*.c', + 'client/soundlib/libmpg/*.c', + ]) is_cxx_link = True libs += ['bzip2', 'MultiEmulator'] @@ -264,7 +266,7 @@ def build(bld): bld(source = source, target = 'xash', features = features, - includes = 'server client client/vgui', + includes = 'server client client/vgui common/soundlib', use = libs, install_path = install_path, nro_install_path = bld.env.BINDIR,