From b1324a0f1a6ccba2fb0b5144fa26bbb9fd917213 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Tue, 25 Mar 2025 17:28:37 +0300 Subject: Chipset: Added "hasFullPanning" method It should allow normal work of emulators without full-panning extension implementation, or with real hardware interfaces --- src/chips/opl_chip_base.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/chips/opl_chip_base.h') diff --git a/src/chips/opl_chip_base.h b/src/chips/opl_chip_base.h index cbc09b2..3568d68 100644 --- a/src/chips/opl_chip_base.h +++ b/src/chips/opl_chip_base.h @@ -41,7 +41,9 @@ public: enum { nativeRate = 49716 }; enum ChipType { - CHIPTYPE_OPL3 = 0, CHIPTYPE_OPL2 = 1 + CHIPTYPE_OPL3 = 0, + CHIPTYPE_OPL2 = 1, + CHIPTYPE_ESFM = 2 }; protected: uint32_t m_id; @@ -79,6 +81,11 @@ public: virtual const char* emulatorName() = 0; virtual ChipType chipType() = 0; + /** + * @brief Does emulator has the per-channel full-panning extension? + * @return true if emulator has this extension, false if emulator has only original behaviour + */ + virtual bool hasFullPanning() = 0; private: OPLChipBase(const OPLChipBase &c); OPLChipBase &operator=(const OPLChipBase &c); -- cgit v1.2.3