aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/adlmidi.cpp')
-rw-r--r--src/adlmidi.cpp39
1 files changed, 30 insertions, 9 deletions
diff --git a/src/adlmidi.cpp b/src/adlmidi.cpp
index 7fbf134..b81a342 100644
--- a/src/adlmidi.cpp
+++ b/src/adlmidi.cpp
@@ -24,11 +24,12 @@
#include "adlmidi_midiplay.hpp"
#include "adlmidi_opl3.hpp"
#include "adlmidi_private.hpp"
-#ifndef ADLMIDI_HW_OPL
#include "chips/opl_chip_base.h"
-#endif
#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER
-#include "midi_sequencer.hpp"
+# include "midi_sequencer.hpp"
+#endif
+#ifdef ENABLE_HW_OPL_DOS
+# include "chips/dos_hw_opl.h"
#endif
#if defined(_MSC_VER) && _MSC_VER < 1900
@@ -138,8 +139,7 @@ ADLMIDI_EXPORT int adl_setNumChips(ADL_MIDIPlayer *device, int numChips)
#endif
#ifdef ADLMIDI_HW_OPL
- ADL_UNUSED(numChips);
- play->m_setup.numChips = 1;
+ play->m_setup.numChips = numChips > 2 ? 1 : static_cast<unsigned int>(numChips);
#else
play->m_setup.numChips = static_cast<unsigned int>(numChips);
#endif
@@ -835,15 +835,11 @@ ADLMIDI_EXPORT const char *adl_chipEmulatorName(struct ADL_MIDIPlayer *device)
{
if(device)
{
-#ifndef ADLMIDI_HW_OPL
MidiPlayer *play = GET_MIDI_PLAYER(device);
assert(play);
Synth &synth = *play->m_synth;
if(!synth.m_chips.empty())
return synth.m_chips[0]->emulatorName();
-#else
- return "Hardware OPL3 chip on 0x330";
-#endif
}
return "Unknown";
}
@@ -910,6 +906,31 @@ ADLMIDI_EXPORT int adl_switchSerialHW(struct ADL_MIDIPlayer *device,
return -1;
}
+int adl_switchDOSHW(int chipType, ADL_UInt16 baseAddress)
+{
+#ifdef ENABLE_HW_OPL_DOS
+ if(baseAddress > 0)
+ DOS_HW_OPL::setOplAddress(baseAddress);
+
+ switch(chipType)
+ {
+ case ADLMIDI_DOS_ChipAuto:
+ break;
+
+ case ADLMIDI_DOS_ChipOPL2:
+ DOS_HW_OPL::setChipType(OPLChipBase::CHIPTYPE_OPL2);
+ break;
+ case ADLMIDI_DOS_ChipOPL3:
+ DOS_HW_OPL::setChipType(OPLChipBase::CHIPTYPE_OPL3);
+ break;
+ }
+#else
+ (void)chipType;
+ (void)baseAddress;
+#endif
+ return -1;
+}
+
ADLMIDI_EXPORT const char *adl_linkedLibraryVersion()
{
#if !defined(ADLMIDI_ENABLE_HQ_RESAMPLER)