diff options
author | Vitaly Novichkov <admin@wohlnet.ru> | 2018-06-19 22:53:45 +0300 |
---|---|---|
committer | Vitaly Novichkov <admin@wohlnet.ru> | 2018-06-19 22:53:45 +0300 |
commit | 105c5db749836ff25c03ae7abf3b2348ecb72c86 (patch) | |
tree | 4ab583ebdc831a4ea40082dc921475d95819545b | |
parent | 942e7a571a87b8e5322513addc550fdca2a8a99c (diff) | |
download | libADLMIDI-105c5db749836ff25c03ae7abf3b2348ecb72c86.tar.gz libADLMIDI-105c5db749836ff25c03ae7abf3b2348ecb72c86.tar.bz2 libADLMIDI-105c5db749836ff25c03ae7abf3b2348ecb72c86.zip |
Apply same DJGPP build fix
as here https://github.com/Wohlstand/libADLMIDI/commit/96f407668feb79b883e294d1ce3f7fc5bbf823ed
[ :warning: A conflict with "poly-portamento2" is possible!!! :warning:. Need to me resolve it on receiving the push ]
-rw-r--r-- | CMakeLists.txt | 11 | ||||
-rw-r--r-- | src/adlmidi_opl3.cpp | 17 | ||||
-rw-r--r-- | src/adlmidi_private.hpp | 4 | ||||
-rw-r--r-- | utils/adlmidi-2/midiplay.cc | 12 |
4 files changed, 25 insertions, 19 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9332f0b..d75342f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -266,7 +266,6 @@ endif() if(libADLMIDI_STATIC) add_library(ADLMIDI_static STATIC ${libADLMIDI_SOURCES}) set_target_properties(ADLMIDI_static PROPERTIES OUTPUT_NAME ADLMIDI) - target_compile_definitions(ADLMIDI_static PRIVATE ADLMIDI_AUDIO_TICK_HANDLER) target_include_directories(ADLMIDI_static PUBLIC ${libADLMIDI_SOURCE_DIR}/include) set_legacy_standard(ADLMIDI_static) list(APPEND libADLMIDI_INSTALLS ADLMIDI_static) @@ -278,7 +277,6 @@ endif() if(libADLMIDI_SHARED) add_library(ADLMIDI_shared SHARED ${libADLMIDI_SOURCES}) set_target_properties(ADLMIDI_shared PROPERTIES OUTPUT_NAME ADLMIDI) - target_compile_definitions(ADLMIDI_shared PRIVATE ADLMIDI_AUDIO_TICK_HANDLER) target_include_directories(ADLMIDI_shared PUBLIC ${libADLMIDI_SOURCE_DIR}/include) set_legacy_standard(ADLMIDI_shared) list(APPEND libADLMIDI_INSTALLS ADLMIDI_shared) @@ -314,12 +312,12 @@ if(WITH_MIDIPLAY) ) if(MIDIPLAY_WAVE_ONLY) - target_compile_options(adlmidiplay PUBLIC "-DOUTPUT_WAVE_ONLY") + target_compile_definitions(adlmidiplay PUBLIC "-DOUTPUT_WAVE_ONLY") message("Demo tool will only output WAVE file, no playing support.") endif() if(MSDOS OR DJGPP) - target_compile_options(adlmidiplay PUBLIC "-DHARDWARE_OPL3") + target_compile_definitions(adlmidiplay PUBLIC "-DHARDWARE_OPL3") message("Turn on hardware OPL3 support on demo tool") endif() @@ -387,6 +385,11 @@ if(WITH_ADLMIDI2) target_compile_definitions(adlmidi2 PUBLIC "-DSUPPORT_VIDEO_OUTPUT") endif() + if(MSDOS OR DJGPP) + target_compile_definitions(adlmidi2 PUBLIC "-DHARDWARE_OPL3") + message("Turn on hardware OPL3 support on ADLMIDI2 tool") + endif() + if(WIN32) target_link_libraries(adlmidi2 ADLMIDI winmm) elseif(DJGPP OR MSDOS) diff --git a/src/adlmidi_opl3.cpp b/src/adlmidi_opl3.cpp index 3de70e3..49e2e76 100644 --- a/src/adlmidi_opl3.cpp +++ b/src/adlmidi_opl3.cpp @@ -486,18 +486,22 @@ void OPL3::ClearChips() void OPL3::Reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler) { - #ifndef ADLMIDI_HW_OPL +#ifndef ADLMIDI_HW_OPL ClearChips(); - #endif +#else (void)emulator; (void)PCM_RATE; +#endif +#if !defined(ADLMIDI_AUDIO_TICK_HANDLER) + (void)audioTickHandler; +#endif ins.clear(); pit.clear(); regBD.clear(); - #ifndef ADLMIDI_HW_OPL +#ifndef ADLMIDI_HW_OPL cardsOP2.resize(NumCards, AdlMIDI_SPtr<OPLChipBase>()); - #endif +#endif NumChannels = NumCards * 23; ins.resize(NumChannels, adl[adlDefaultNumber]); @@ -521,9 +525,8 @@ void OPL3::Reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler) for(size_t i = 0; i < NumCards; ++i) { - OPLChipBase *chip; - #ifndef ADLMIDI_HW_OPL + OPLChipBase *chip; switch(emulator) { default: @@ -546,7 +549,9 @@ void OPL3::Reset(int emulator, unsigned long PCM_RATE, void *audioTickHandler) chip->setRate((uint32_t)PCM_RATE); if(runAtPcmRate) chip->setRunningAtPcmRate(true); +# if defined(ADLMIDI_AUDIO_TICK_HANDLER) chip->setAudioTickHandlerInstance(audioTickHandler); +# endif #endif // ADLMIDI_HW_OPL for(unsigned a = 0; a < 18; ++a) Poke(i, 0xB0 + Channels[a], 0x00); diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 0614c7b..0e63b5a 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -1258,10 +1258,6 @@ struct FourChars }; */ -#if !defined(ADLMIDI_AUDIO_TICK_HANDLER) -#error The audio tick handler must be enabled! -#endif - extern void adl_audioTickHandler(void *instance, uint32_t chipId, uint32_t rate); extern int adlRefreshNumCards(ADL_MIDIPlayer *device); diff --git a/utils/adlmidi-2/midiplay.cc b/utils/adlmidi-2/midiplay.cc index 74806eb..8fe1c8a 100644 --- a/utils/adlmidi-2/midiplay.cc +++ b/utils/adlmidi-2/midiplay.cc @@ -1551,6 +1551,7 @@ static bool is_number(const std::string &s) int main(int argc, char **argv) { +#ifndef HARDWARE_OPL3 // How long is SDL buffer, in seconds? // The smaller the value, the more often AdlAudioCallBack() // is called. @@ -1560,8 +1561,9 @@ int main(int argc, char **argv) const double OurHeadRoomLength = 0.1; // The lag between visual content and audio content equals // the sum of these two buffers. +#endif - #ifndef _WIN32 +#ifndef _WIN32 WritingToTTY = isatty(STDOUT_FILENO); if(WritingToTTY) { @@ -1573,9 +1575,9 @@ int main(int argc, char **argv) #endif ); } - #else +#else WritingToTTY = true; - #endif +#endif if(WritingToTTY) { UI.Print(0, 3, true, "(C) -- http://iki.fi/bisqwit/source/adlmidi.html"); @@ -1584,9 +1586,9 @@ int main(int argc, char **argv) std::fflush(stderr); signal(SIGINT, TidyupAndExit); - #ifdef __DJGPP__ +#ifdef __DJGPP__ signal(SIGQUIT, TidyupAndExit); - #endif +#endif if(argc < 2 || std::string(argv[1]) == "--help" || std::string(argv[1]) == "-h") { |