aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_opl3.cpp
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2018-09-30 04:57:56 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2018-09-30 04:57:56 +0300
commitc971992278519b29768be349dd3962bbd93dbb22 (patch)
treeee1ece6c4c28a7784c02cc2d9a8aaecc4808fd29 /src/adlmidi_opl3.cpp
parent4cf3a53ed36e56985753a9d0ec5ba564d6043460 (diff)
downloadlibADLMIDI-c971992278519b29768be349dd3962bbd93dbb22.tar.gz
libADLMIDI-c971992278519b29768be349dd3962bbd93dbb22.tar.bz2
libADLMIDI-c971992278519b29768be349dd3962bbd93dbb22.zip
Lock settings for CMF and IMF playing to don't destroy them
For now, all settings are in safe, except of custom bank that getting be dropped away by CMF file that does passing of own custom instruments.
Diffstat (limited to 'src/adlmidi_opl3.cpp')
-rw-r--r--src/adlmidi_opl3.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/adlmidi_opl3.cpp b/src/adlmidi_opl3.cpp
index e486dd6..f3672d3 100644
--- a/src/adlmidi_opl3.cpp
+++ b/src/adlmidi_opl3.cpp
@@ -181,6 +181,13 @@ OPL3::OPL3() :
#endif
}
+bool OPL3::setupLocked()
+{
+ return (m_musicMode == MODE_CMF ||
+ m_musicMode == MODE_IMF ||
+ m_musicMode == MODE_RSXX);
+}
+
void OPL3::setEmbeddedBank(uint32_t bank)
{
#ifndef DISABLE_EMBEDDED_BANKS
@@ -487,6 +494,7 @@ void OPL3::setPan(size_t c, uint8_t value)
int panning = 0;
if(value < 64 + 32) panning |= OPL_PANNING_LEFT;
if(value >= 64 - 32) panning |= OPL_PANNING_RIGHT;
+ writePan(chip, g_channelsMap[cc], 64);
writeRegI(chip, 0xC0 + g_channelsMap[cc], m_insCache[c].feedconn | panning);
#ifndef ADLMIDI_HW_OPL
}