From e3cad2f46925ac0b9ae303bea68a5fe508e78bc9 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Sun, 3 Jun 2018 14:50:53 +0200 Subject: optional high-quality resampling --- src/chips/nuked_opl3.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/chips/nuked_opl3.h') diff --git a/src/chips/nuked_opl3.h b/src/chips/nuked_opl3.h index ceb1dfd..765a451 100644 --- a/src/chips/nuked_opl3.h +++ b/src/chips/nuked_opl3.h @@ -3,12 +3,18 @@ #include "opl_chip_base.h" +#if defined(ADLMIDI_ENABLE_HQ_RESAMPLER) +class VResampler; +#endif + class NukedOPL3 final : public OPLChipBase { void *m_chip; +#if defined(ADLMIDI_ENABLE_HQ_RESAMPLER) + VResampler *m_resampler; +#endif public: NukedOPL3(); - NukedOPL3(const NukedOPL3 &c); virtual ~NukedOPL3() override; virtual void setRate(uint32_t rate) override; @@ -20,6 +26,11 @@ public: virtual int generate32(int32_t *output, size_t frames) override; virtual int generateAndMix32(int32_t *output, size_t frames) override; virtual const char *emulatorName() override; +private: +#if defined(ADLMIDI_ENABLE_HQ_RESAMPLER) + void generateResampledHq(int16_t *out); + void generateResampledHq32(int32_t *out); +#endif }; #endif // NUKED_OPL3_H -- cgit v1.2.3 From 7cfe4dbcef738681b5445aa14b35fc1a6f8ff001 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Thu, 7 Jun 2018 07:21:29 +0200 Subject: chips: create a common method set for generation and resampling --- src/chips/nuked_opl3.h | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) (limited to 'src/chips/nuked_opl3.h') diff --git a/src/chips/nuked_opl3.h b/src/chips/nuked_opl3.h index 765a451..25d9ed5 100644 --- a/src/chips/nuked_opl3.h +++ b/src/chips/nuked_opl3.h @@ -3,34 +3,20 @@ #include "opl_chip_base.h" -#if defined(ADLMIDI_ENABLE_HQ_RESAMPLER) -class VResampler; -#endif - -class NukedOPL3 final : public OPLChipBase +class NukedOPL3 final : public OPLChipBaseT { void *m_chip; -#if defined(ADLMIDI_ENABLE_HQ_RESAMPLER) - VResampler *m_resampler; -#endif public: NukedOPL3(); - virtual ~NukedOPL3() override; + ~NukedOPL3() override; - virtual void setRate(uint32_t rate) override; - virtual void reset() override; - virtual void reset(uint32_t rate) override; - virtual void writeReg(uint16_t addr, uint8_t data) override; - virtual int generate(int16_t *output, size_t frames) override; - virtual int generateAndMix(int16_t *output, size_t frames) override; - virtual int generate32(int32_t *output, size_t frames) override; - virtual int generateAndMix32(int32_t *output, size_t frames) override; - virtual const char *emulatorName() override; -private: -#if defined(ADLMIDI_ENABLE_HQ_RESAMPLER) - void generateResampledHq(int16_t *out); - void generateResampledHq32(int32_t *out); -#endif + void setRate(uint32_t rate) override; + void reset() override; + void writeReg(uint16_t addr, uint8_t data) override; + void nativePreGenerate() override {} + void nativePostGenerate() override {} + void nativeGenerate(int16_t *frame) override; + const char *emulatorName() override; }; #endif // NUKED_OPL3_H -- cgit v1.2.3