From 8a0a939a3281a31fc17327d24f0a4c0975a1b9fa Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Tue, 10 Apr 2018 02:15:03 +0300 Subject: [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. --- src/chips/opl_chip_base.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/chips/opl_chip_base.h (limited to 'src/chips/opl_chip_base.h') diff --git a/src/chips/opl_chip_base.h b/src/chips/opl_chip_base.h new file mode 100644 index 0000000..aa6934b --- /dev/null +++ b/src/chips/opl_chip_base.h @@ -0,0 +1,25 @@ +#ifndef ONP_CHIP_BASE_H +#define ONP_CHIP_BASE_H + +#include +#include + +class OPLChipBase +{ +protected: + uint32_t m_rate; +public: + OPLChipBase(); + OPLChipBase(const OPLChipBase &c); + virtual ~OPLChipBase(); + + virtual void setRate(uint32_t rate); + virtual void reset() = 0; + virtual void reset(uint32_t rate); + virtual void writeReg(uint16_t addr, uint8_t data) = 0; + virtual int generate(int16_t *output, size_t frames) = 0; + virtual int generateAndMix(int16_t *output, size_t frames) = 0; + virtual const char* emulatorName() = 0; +}; + +#endif // ONP_CHIP_BASE_H -- cgit v1.2.3