From d3df422031e075c66e95b4f0cb0fea6aa2c7bf90 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 26 Sep 2019 20:06:39 +0200 Subject: [PATCH] - made the OPL synth backend a separate library. --- CMakeLists.txt | 2 + libraries/oplsynth/CMakeLists.txt | 38 +++++++++++++++++++ {src/sound => libraries}/oplsynth/OPL3.cpp | 2 + .../oplsynth/dosbox/opl.cpp | 5 ++- .../sound => libraries}/oplsynth/dosbox/opl.h | 0 {src/sound => libraries}/oplsynth/fmopl.cpp | 6 ++- .../oplsynth/musicblock.cpp | 0 .../oplsynth/nukedopl3.cpp | 0 .../oplsynth/opl_mus_player.cpp | 0 {src/sound => libraries}/oplsynth/oplio.cpp | 0 .../oplsynth}/oplsynth/genmidi.h | 0 .../oplsynth}/oplsynth/musicblock.h | 0 .../oplsynth}/oplsynth/nukedopl3.h | 0 .../oplsynth}/oplsynth/o_swap.h | 0 .../oplsynth}/oplsynth/opl.h | 0 .../oplsynth}/oplsynth/opl3_Float.h | 0 .../oplsynth}/oplsynth/opl_mus_player.h | 0 .../oplsynth}/oplsynth/oplio.h | 0 src/CMakeLists.txt | 18 +-------- .../mididevices/music_opl_mididevice.cpp | 2 +- 20 files changed, 53 insertions(+), 20 deletions(-) create mode 100644 libraries/oplsynth/CMakeLists.txt rename {src/sound => libraries}/oplsynth/OPL3.cpp (99%) rename {src/sound => libraries}/oplsynth/dosbox/opl.cpp (99%) rename {src/sound => libraries}/oplsynth/dosbox/opl.h (100%) rename {src/sound => libraries}/oplsynth/fmopl.cpp (99%) rename {src/sound => libraries}/oplsynth/musicblock.cpp (100%) rename {src/sound => libraries}/oplsynth/nukedopl3.cpp (100%) rename {src/sound => libraries}/oplsynth/opl_mus_player.cpp (100%) rename {src/sound => libraries}/oplsynth/oplio.cpp (100%) rename {src/sound => libraries/oplsynth}/oplsynth/genmidi.h (100%) rename {src/sound => libraries/oplsynth}/oplsynth/musicblock.h (100%) rename {src/sound => libraries/oplsynth}/oplsynth/nukedopl3.h (100%) rename {src/sound => libraries/oplsynth}/oplsynth/o_swap.h (100%) rename {src/sound => libraries/oplsynth}/oplsynth/opl.h (100%) rename {src/sound => libraries/oplsynth}/oplsynth/opl3_Float.h (100%) rename {src/sound => libraries/oplsynth}/oplsynth/opl_mus_player.h (100%) rename {src/sound => libraries/oplsynth}/oplsynth/oplio.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 632f92bdfb..5cf7f6b3e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -388,6 +388,7 @@ set( OPN_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/opnmidi" ) set( TIMIDITYPP_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/timidityplus" ) set( TIMIDITY_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/timidity" ) set( WILDMIDI_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/wildmidi" ) +set( OPLSYNTH_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/oplsynth" ) if( NOT CMAKE_CROSSCOMPILING ) if( NOT CROSS_EXPORTS ) @@ -414,6 +415,7 @@ add_subdirectory( libraries/opnmidi ) add_subdirectory( libraries/timidity ) add_subdirectory( libraries/timidityplus ) add_subdirectory( libraries/wildmidi ) +add_subdirectory( libraries/oplsynth ) add_subdirectory( wadsrc ) add_subdirectory( wadsrc_bm ) add_subdirectory( wadsrc_lights ) diff --git a/libraries/oplsynth/CMakeLists.txt b/libraries/oplsynth/CMakeLists.txt new file mode 100644 index 0000000000..7dc736e74d --- /dev/null +++ b/libraries/oplsynth/CMakeLists.txt @@ -0,0 +1,38 @@ +cmake_minimum_required( VERSION 2.8.7 ) + +make_release_only() + +if( ZD_CMAKE_COMPILER_IS_GNUC_COMPATIBLE ) + set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter -fomit-frame-pointer" ) + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" ) +endif() + +set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ZD_FASTMATH_FLAG}") + +include( CheckFunctionExists ) + +CHECK_FUNCTION_EXISTS( stricmp STRICMP_EXISTS ) +if( NOT STRICMP_EXISTS ) + add_definitions( -Dstricmp=strcasecmp ) +endif() + +CHECK_FUNCTION_EXISTS( strnicmp STRNICMP_EXISTS ) +if( NOT STRNICMP_EXISTS ) + add_definitions( -Dstrnicmp=strncasecmp ) +endif() + +include_directories( oplsynth ) + +file( GLOB HEADER_FILES + oplsynth/*.h + ) +add_library( oplsynth STATIC + fmopl.cpp + musicblock.cpp + nukedopl3.cpp + opl_mus_player.cpp + OPL3.cpp + oplio.cpp + dosbox/opl.cpp + ) +target_link_libraries( oplsynth ) diff --git a/src/sound/oplsynth/OPL3.cpp b/libraries/oplsynth/OPL3.cpp similarity index 99% rename from src/sound/oplsynth/OPL3.cpp rename to libraries/oplsynth/OPL3.cpp index 4aa69ce76b..f7bbca0af5 100644 --- a/src/sound/oplsynth/OPL3.cpp +++ b/libraries/oplsynth/OPL3.cpp @@ -44,6 +44,8 @@ */ #include +#include +#include #include "opl.h" #include "opl3_Float.h" diff --git a/src/sound/oplsynth/dosbox/opl.cpp b/libraries/oplsynth/dosbox/opl.cpp similarity index 99% rename from src/sound/oplsynth/dosbox/opl.cpp rename to libraries/oplsynth/dosbox/opl.cpp index 79d897198c..ffd056f73c 100644 --- a/src/sound/oplsynth/dosbox/opl.cpp +++ b/libraries/oplsynth/dosbox/opl.cpp @@ -24,7 +24,10 @@ * Ken Silverman's official web site: "http://www.advsys.net/ken" */ -#include "../opl.h" +#include "../oplsynth/opl.h" +#include +#include +#include #include typedef uintptr_t Bitu; diff --git a/src/sound/oplsynth/dosbox/opl.h b/libraries/oplsynth/dosbox/opl.h similarity index 100% rename from src/sound/oplsynth/dosbox/opl.h rename to libraries/oplsynth/dosbox/opl.h diff --git a/src/sound/oplsynth/fmopl.cpp b/libraries/oplsynth/fmopl.cpp similarity index 99% rename from src/sound/oplsynth/fmopl.cpp rename to libraries/oplsynth/fmopl.cpp index a37cae2742..3a1e94a327 100644 --- a/src/sound/oplsynth/fmopl.cpp +++ b/libraries/oplsynth/fmopl.cpp @@ -83,6 +83,8 @@ Revision History: #include #include #include +#include +#include //#include "driver.h" /* use M.A.M.E. */ #include "opl.h" @@ -1615,7 +1617,7 @@ public: } } - FString GetVoiceString(void *chip) + std::string GetVoiceString(void *chip) { FM_OPL *OPL = (FM_OPL *)chip; char out[9*3]; @@ -1636,7 +1638,7 @@ public: out[i*3+1] = color; out[i*3+2] = '*'; } - return FString (out, 9*3); + return std::string (out, 9*3); } }; diff --git a/src/sound/oplsynth/musicblock.cpp b/libraries/oplsynth/musicblock.cpp similarity index 100% rename from src/sound/oplsynth/musicblock.cpp rename to libraries/oplsynth/musicblock.cpp diff --git a/src/sound/oplsynth/nukedopl3.cpp b/libraries/oplsynth/nukedopl3.cpp similarity index 100% rename from src/sound/oplsynth/nukedopl3.cpp rename to libraries/oplsynth/nukedopl3.cpp diff --git a/src/sound/oplsynth/opl_mus_player.cpp b/libraries/oplsynth/opl_mus_player.cpp similarity index 100% rename from src/sound/oplsynth/opl_mus_player.cpp rename to libraries/oplsynth/opl_mus_player.cpp diff --git a/src/sound/oplsynth/oplio.cpp b/libraries/oplsynth/oplio.cpp similarity index 100% rename from src/sound/oplsynth/oplio.cpp rename to libraries/oplsynth/oplio.cpp diff --git a/src/sound/oplsynth/genmidi.h b/libraries/oplsynth/oplsynth/genmidi.h similarity index 100% rename from src/sound/oplsynth/genmidi.h rename to libraries/oplsynth/oplsynth/genmidi.h diff --git a/src/sound/oplsynth/musicblock.h b/libraries/oplsynth/oplsynth/musicblock.h similarity index 100% rename from src/sound/oplsynth/musicblock.h rename to libraries/oplsynth/oplsynth/musicblock.h diff --git a/src/sound/oplsynth/nukedopl3.h b/libraries/oplsynth/oplsynth/nukedopl3.h similarity index 100% rename from src/sound/oplsynth/nukedopl3.h rename to libraries/oplsynth/oplsynth/nukedopl3.h diff --git a/src/sound/oplsynth/o_swap.h b/libraries/oplsynth/oplsynth/o_swap.h similarity index 100% rename from src/sound/oplsynth/o_swap.h rename to libraries/oplsynth/oplsynth/o_swap.h diff --git a/src/sound/oplsynth/opl.h b/libraries/oplsynth/oplsynth/opl.h similarity index 100% rename from src/sound/oplsynth/opl.h rename to libraries/oplsynth/oplsynth/opl.h diff --git a/src/sound/oplsynth/opl3_Float.h b/libraries/oplsynth/oplsynth/opl3_Float.h similarity index 100% rename from src/sound/oplsynth/opl3_Float.h rename to libraries/oplsynth/oplsynth/opl3_Float.h diff --git a/src/sound/oplsynth/opl_mus_player.h b/libraries/oplsynth/oplsynth/opl_mus_player.h similarity index 100% rename from src/sound/oplsynth/opl_mus_player.h rename to libraries/oplsynth/oplsynth/opl_mus_player.h diff --git a/src/sound/oplsynth/oplio.h b/libraries/oplsynth/oplsynth/oplio.h similarity index 100% rename from src/sound/oplsynth/oplio.h rename to libraries/oplsynth/oplsynth/oplio.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0f6cfe1f79..b01c9786cb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -468,7 +468,7 @@ set( ZDOOM_LIBS ${ZDOOM_LIBS} "${ZLIB_LIBRARIES}" "${JPEG_LIBRARIES}" "${BZIP2_L if (HAVE_VULKAN) set( ZDOOM_LIBS ${ZDOOM_LIBS} "glslang" "SPIRV" "OGLCompiler") endif() -include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${GME_INCLUDE_DIR}" "${ADL_INCLUDE_DIR}" "${OPN_INCLUDE_DIR}" "${TIMIDITYPP_INCLUDE_DIR}" "${TIMIDITY_INCLUDE_DIR}" "${WILDMIDI_INCLUDE_DIR}" ) +include_directories( "${ZLIB_INCLUDE_DIR}" "${BZIP2_INCLUDE_DIR}" "${LZMA_INCLUDE_DIR}" "${JPEG_INCLUDE_DIR}" "${GME_INCLUDE_DIR}" "${ADL_INCLUDE_DIR}" "${OPN_INCLUDE_DIR}" "${TIMIDITYPP_INCLUDE_DIR}" "${TIMIDITY_INCLUDE_DIR}" "${WILDMIDI_INCLUDE_DIR}" "${OPLSYNTH_INCLUDE_DIR}" ) if( ${HAVE_VM_JIT} ) add_definitions( -DHAVE_VM_JIT ) @@ -672,8 +672,6 @@ file( GLOB HEADER_FILES sound/*.h sound/backend/*.h* sound/music/*.h* - sound/oplsynth/*.h - sound/oplsynth/dosbox/*.h posix/*.h posix/cocoa/*.h posix/sdl/*.h @@ -690,8 +688,6 @@ file( GLOB HEADER_FILES scripting/zscript/*.h scripting/vm/*.h sound/midisources/*.h - sound/oplsynth/*.h - sound/oplsynth/dosbox/*.h sound/thirdparty/*.h rendering/*.h rendering/2d/*.h @@ -838,7 +834,6 @@ set( FASTMATH_SOURCES rendering/swrenderer/r_all.cpp rendering/swrenderer/r_swscene.cpp rendering/polyrenderer/poly_all.cpp - sound/oplsynth/opl_mus_player.cpp sound/backend/mpg123_decoder.cpp sound/music/music_midi_base.cpp sound/backend/oalsound.cpp @@ -1212,12 +1207,6 @@ set (PCH_SOURCES sound/musicformats/music_opl.cpp sound/musicformats/music_stream.cpp sound/musicformats/music_xa.cpp - sound/oplsynth/fmopl.cpp - sound/oplsynth/musicblock.cpp - sound/oplsynth/oplio.cpp - sound/oplsynth/dosbox/opl.cpp - sound/oplsynth/OPL3.cpp - sound/oplsynth/nukedopl3.cpp rendering/swrenderer/textures/r_swtexture.cpp rendering/swrenderer/textures/warptexture.cpp rendering/swrenderer/textures/swcanvastexture.cpp @@ -1314,7 +1303,7 @@ if( UNIX ) endif() endif() -target_link_libraries( zdoom ${ZDOOM_LIBS} gdtoa dumb lzma adl opn timidity timidityplus wildmidi ) +target_link_libraries( zdoom ${ZDOOM_LIBS} gdtoa dumb lzma adl opn timidity timidityplus wildmidi oplsynth ) include_directories( . g_statusbar @@ -1331,7 +1320,6 @@ include_directories( . sound sound/music sound/backend - sound/oplsynth xlat utility utility/nodebuilder @@ -1441,8 +1429,6 @@ install(TARGETS zdoom source_group("Audio Files" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/sound/.+") source_group("Audio Files\\Backend" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/sound/backend/.+") -source_group("Audio Files\\OPL Synth" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/sound/oplsynth/.+") -source_group("Audio Files\\OPL Synth\\DOSBox" FILES sound/oplsynth/dosbox/opl.cpp sound/oplsynth/dosbox/opl.h) source_group("Audio Files\\MIDI Devices" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/sound/mididevices/.+") source_group("Audio Files\\MIDI Sources" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/sound/midisources/.+") source_group("Audio Files\\Music formats" REGULAR_EXPRESSION "^${CMAKE_CURRENT_SOURCE_DIR}/sound/musicformats/.+") diff --git a/src/sound/mididevices/music_opl_mididevice.cpp b/src/sound/mididevices/music_opl_mididevice.cpp index 91bc7f687d..88247ffcc3 100644 --- a/src/sound/mididevices/music_opl_mididevice.cpp +++ b/src/sound/mididevices/music_opl_mididevice.cpp @@ -39,7 +39,7 @@ #include "w_wad.h" #include "v_text.h" #include "doomerrors.h" -#include "opl.h" +#include "oplsynth/opl.h" // MACROS ------------------------------------------------------------------