- renamed the FluidSetting functions to ChangeSetting so that they can be used as a generic means to change music player options without overloading the virtual function table for each minor thing.
- pass Printf as a parameter to the MIDI renderer to uncouple it from the main GZDoom code.
- throw exceptions when setting up the renderer fails so that this can be handled consistently for all construction errors here.
- delete FluidSynth handles before the constructor aborts.
This also removes the OPL dumper because I wasn't able to get any non-broken output from it and have no desire to fix such a niche feature.
# Conflicts:
# src/sound/mididevices/music_opldumper_mididevice.cpp
libraries/wildmidi/file_io.cpp:68:40: error: use of undeclared identifier 'malloc'
libraries/wildmidi/wildmidi_lib.cpp:672:10: error: use of undeclared identifier 'stricmp'; did you mean 'strcmp'?
libraries/wildmidi/wildmidi_lib.cpp:1011:11: error: use of undeclared identifier 'strnicmp'; did you mean 'strncmp'?
They were already clean of unwanted external references, but including this file made it hard to keep it that way.
This also moves a few useful definitions around to less 'dirty' headers.
# Conflicts:
# src/rendering/swrenderer/textures/warptexture.cpp
# Conflicts:
# src/doomtype.h
# src/sound/midisources/midisource.cpp
# src/sound/midisources/midisource_smf.cpp
# src/sound/midisources/midisource_xmi.cpp
libraries/timidity/instrum_dls.cpp:1071:18: error: ‘INT_MIN’ was not declared in this scope
libraries/timidity/instrum_font.cpp:37:47: error: ‘stricmp’ was not declared in this scope
libraries/timidity/timidity.cpp:207:32: error: ‘strcmp’ was not declared in this scope
libraries/timidity/timidity.cpp:235:24: error: ‘strcmp’ was not declared in this scope
libraries/timidity/timidity.cpp:310:33: error: ‘strchr’ was not declared in this scope
libraries/timidity/timidity.cpp:515:30: error: ‘strchr’ was not declared in this scope
libraries/timidity/timidity.cpp:602:34: error: ‘memset’ was not declared in this scope
libraries/timidity/timidity.cpp:648:35: error: ‘memcpy’ was not declared in this scope
libraries/timidity/timidity.cpp:753:41: error: ‘memset’ was not declared in this scope
The organization here is now the same as for the Timidity++ device, i.e. it is the device owning the instruments to give better control over their lifecycle.
# Conflicts:
# src/sound/timidity/instrum_font.cpp
# src/sound/timidity/instrum_sf2.cpp
# src/sound/timidity/mix.cpp
# src/sound/timidity/playmidi.cpp
# src/sound/timidity/resample.cpp
* use std::string instead of FString
* replaced the single use of clamp with std::min/std::max.
* copied MAKE_ID macro into the source.
* use snprintf instead of mysnprintf
* use std::runtime_error instead of I_Error to abort on failed memory allocations.
# Conflicts:
# src/sound/timidity/common.cpp
# Conflicts:
# src/sound/timidity/common.cpp
# src/sound/timidity/instrum.cpp
# src/sound/timidity/instrum_dls.cpp
This is npw a function pointer so that a simple stdout printout can be used as default, but allows to override it.
Also added the missing timidity_file.h header.
# Conflicts:
# src/sound/timiditypp/common.cpp
The only dependency left on the main GZDoom code are the CVars, which will be dealt with next.
# Conflicts:
# src/sound/mididevices/music_timiditypp_mididevice.cpp
The big issues, i.e. FileReader and SoundFontReader still need to be handled to make this a standalone library.
# Conflicts:
# src/sound/timiditypp/configfile.cpp
This is to improve compile times because the MSVC compiler tends to become slow with large lists of source files in a single project.
This new project is still our stripped down copy of libadl, not the original, because that project contains a large amount of baggage we do not need.
# Conflicts:
# src/CMakeLists.txt
# Conflicts:
# src/sound/mididevices/music_adlmidi_mididevice.cpp
Many had leftover non-default constructors/ assignment operators, and some were initialized, even though the initialized data was never used.
In case of FCycler this even caused a default setting to be overwritten when used inside FDynamicLight.
# Conflicts:
# src/g_shared/a_dynlight.cpp
# src/sound/s_sndseq.cpp
If GZDoom is built on a POSIX system without the GTK frontend and not
run from a KDE session, an IWAD picker is presented on the terminal
and expects the user to select a game wad. However, if stdin is
redirected, this won't work, so start with the default IWAD instead.
* More compat fixes for Swan Fox maps
Found some more issues on maps that already have compat fixes in place
* Missed a dud line
At least I'd commented it out so it was benign, but still...