aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2018-06-19 22:53:45 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2018-06-19 22:53:45 +0300
commit105c5db749836ff25c03ae7abf3b2348ecb72c86 (patch)
tree4ab583ebdc831a4ea40082dc921475d95819545b
parent942e7a571a87b8e5322513addc550fdca2a8a99c (diff)
downloadlibADLMIDI-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.txt11
-rw-r--r--src/adlmidi_opl3.cpp17
-rw-r--r--src/adlmidi_private.hpp4
-rw-r--r--utils/adlmidi-2/midiplay.cc12
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")
{