From 3013fbb93b06e8d30b6b54c324340d6dccad7f3b Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Tue, 19 Jun 2018 16:12:27 +0200 Subject: get chip base on level with OPNMIDI --- src/adlmidi.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/adlmidi.cpp') 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(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(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); } -- cgit v1.2.3