aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_private.hpp
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2018-04-10 02:15:03 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2018-04-10 02:15:03 +0300
commit8a0a939a3281a31fc17327d24f0a4c0975a1b9fa (patch)
treee5f87aba998ede08465aa319af7dba930abff025 /src/adlmidi_private.hpp
parent0ad695eeaaf5d52d3ea4ef15d295d8cc62002a50 (diff)
downloadlibADLMIDI-8a0a939a3281a31fc17327d24f0a4c0975a1b9fa.tar.gz
libADLMIDI-8a0a939a3281a31fc17327d24f0a4c0975a1b9fa.tar.bz2
libADLMIDI-8a0a939a3281a31fc17327d24f0a4c0975a1b9fa.zip
[Experimental] Added support for emulation core switching in real time!
Due to clunky playback on updated Nuked OPL3 emulator v 1.8, I kept the Nuked OPL3 1.7.4 work in parallel and be a separated switchable emulator.
Diffstat (limited to 'src/adlmidi_private.hpp')
-rw-r--r--src/adlmidi_private.hpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp
index 8523343..82a6627 100644
--- a/src/adlmidi_private.hpp
+++ b/src/adlmidi_private.hpp
@@ -112,13 +112,8 @@ typedef int32_t ssize_t;
#endif
#include "fraction.hpp"
-
#ifndef ADLMIDI_HW_OPL
-#ifdef ADLMIDI_USE_DOSBOX_OPL
-#include "dbopl.h"
-#else
-#include "nukedopl3.h"
-#endif
+#include "chips/opl_chip_base.h"
#endif
#include "adldata.hh"
@@ -178,11 +173,7 @@ public:
char ____padding[4];
ADL_MIDIPlayer *_parent;
#ifndef ADLMIDI_HW_OPL
-# ifdef ADLMIDI_USE_DOSBOX_OPL
- std::vector<DBOPL::Handler> cards;
-# else
- std::vector<_opl3_chip> cards;
-# endif
+ std::vector<AdlMIDI_CPtr<OPLChipBase > > cardsOP2;
#endif
private:
std::vector<size_t> ins; // index to adl[], cached, needed by Touch()
@@ -268,7 +259,8 @@ public:
void updateFlags();
void updateDeepFlags();
void ChangeVolumeRangesModel(ADLMIDI_VolumeModels volumeModel);
- void Reset(unsigned long PCM_RATE);
+ void ClearChips();
+ void Reset(int emulator, unsigned long PCM_RATE);
};
@@ -712,6 +704,7 @@ public:
struct Setup
{
+ int emulator;
unsigned int AdlBank;
unsigned int NumFourOps;
unsigned int NumCards;