aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi.cpp
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2018-06-19 22:57:06 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2018-06-19 22:57:06 +0300
commitad60170e94d599c76351198ca4052d0cd5c9602e (patch)
tree4ab583ebdc831a4ea40082dc921475d95819545b /src/adlmidi.cpp
parentc0873278718da57ff19194377a35601027926c5f (diff)
parent105c5db749836ff25c03ae7abf3b2348ecb72c86 (diff)
downloadlibADLMIDI-ad60170e94d599c76351198ca4052d0cd5c9602e.tar.gz
libADLMIDI-ad60170e94d599c76351198ca4052d0cd5c9602e.tar.bz2
libADLMIDI-ad60170e94d599c76351198ca4052d0cd5c9602e.zip
Merge branch 'master' into stable
Diffstat (limited to 'src/adlmidi.cpp')
-rw-r--r--src/adlmidi.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/adlmidi.cpp b/src/adlmidi.cpp
index a0c7d8a..9210b5b 100644
--- a/src/adlmidi.cpp
+++ b/src/adlmidi.cpp
@@ -511,11 +511,28 @@ ADLMIDI_EXPORT int adl_switchEmulator(struct ADL_MIDIPlayer *device, int emulato
adl_reset(device);
return 0;
}
- play->setErrorString("OPN2 MIDI: Unknown emulation core!");
+ play->setErrorString("OPL3 MIDI: Unknown emulation core!");
}
return -1;
}
+
+ADLMIDI_EXPORT int adl_setRunAtPcmRate(ADL_MIDIPlayer *device, int enabled)
+{
+ if(device)
+ {
+ MIDIplay *play = reinterpret_cast<MIDIplay *>(device->adl_midiPlayer);
+ if(play)
+ {
+ play->m_setup.runAtPcmRate = (enabled != 0);
+ adl_reset(device);
+ return 0;
+ }
+ }
+ return -1;
+}
+
+
ADLMIDI_EXPORT const char *adl_linkedLibraryVersion()
{
#if !defined(ADLMIDI_ENABLE_HQ_RESAMPLER)
@@ -574,7 +591,8 @@ ADLMIDI_EXPORT void adl_reset(struct ADL_MIDIPlayer *device)
return;
MIDIplay *play = reinterpret_cast<MIDIplay *>(device->adl_midiPlayer);
play->m_setup.tick_skip_samples_delay = 0;
- play->opl.Reset(play->m_setup.emulator, play->m_setup.PCM_RATE);
+ play->opl.runAtPcmRate = play->m_setup.runAtPcmRate;
+ play->opl.Reset(play->m_setup.emulator, play->m_setup.PCM_RATE, play);
play->ch.clear();
play->ch.resize((size_t)play->opl.NumChannels);
}