From 08d2f12dbd6f28058a0672482134ff133eddd6f8 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 1 Jan 2023 19:46:08 -0500 Subject: [PATCH] prepare new dispatch will allow for more than 2 outputs --- src/engine/defines.h | 3 ++ src/engine/dispatch.h | 12 +++--- src/engine/dispatchContainer.cpp | 63 ++++++++++++++++++------------ src/engine/engine.h | 23 ++++++----- src/engine/platform/abstract.cpp | 6 +-- src/engine/platform/amiga.cpp | 4 +- src/engine/platform/amiga.h | 2 +- src/engine/platform/arcade.cpp | 4 +- src/engine/platform/arcade.h | 2 +- src/engine/platform/ay.cpp | 4 +- src/engine/platform/ay.h | 2 +- src/engine/platform/ay8930.cpp | 4 +- src/engine/platform/ay8930.h | 2 +- src/engine/platform/bubsyswsg.cpp | 4 +- src/engine/platform/bubsyswsg.h | 2 +- src/engine/platform/ga20.cpp | 4 +- src/engine/platform/ga20.h | 2 +- src/engine/platform/gb.cpp | 4 +- src/engine/platform/gb.h | 2 +- src/engine/platform/genesis.cpp | 4 +- src/engine/platform/genesis.h | 2 +- src/engine/platform/k007232.cpp | 4 +- src/engine/platform/k007232.h | 2 +- src/engine/platform/lynx.cpp | 4 +- src/engine/platform/lynx.h | 2 +- src/engine/platform/msm5232.cpp | 4 +- src/engine/platform/msm5232.h | 2 +- src/engine/platform/msm6258.cpp | 4 +- src/engine/platform/msm6258.h | 2 +- src/engine/platform/namcowsg.cpp | 4 +- src/engine/platform/namcowsg.h | 2 +- src/engine/platform/opl.cpp | 4 +- src/engine/platform/opl.h | 2 +- src/engine/platform/pce.cpp | 4 +- src/engine/platform/pce.h | 2 +- src/engine/platform/pcmdac.cpp | 4 +- src/engine/platform/pcmdac.h | 2 +- src/engine/platform/pet.cpp | 4 +- src/engine/platform/pet.h | 2 +- src/engine/platform/qsound.cpp | 4 +- src/engine/platform/qsound.h | 2 +- src/engine/platform/rf5c68.cpp | 4 +- src/engine/platform/rf5c68.h | 2 +- src/engine/platform/saa.cpp | 4 +- src/engine/platform/saa.h | 2 +- src/engine/platform/scc.cpp | 4 +- src/engine/platform/scc.h | 2 +- src/engine/platform/segapcm.cpp | 4 +- src/engine/platform/segapcm.h | 2 +- src/engine/platform/sms.cpp | 4 +- src/engine/platform/sms.h | 2 +- src/engine/platform/snes.cpp | 4 +- src/engine/platform/snes.h | 2 +- src/engine/platform/su.cpp | 4 +- src/engine/platform/su.h | 2 +- src/engine/platform/swan.cpp | 4 +- src/engine/platform/swan.h | 2 +- src/engine/platform/t6w28.cpp | 4 +- src/engine/platform/t6w28.h | 2 +- src/engine/platform/tia.cpp | 4 +- src/engine/platform/tia.h | 2 +- src/engine/platform/tx81z.cpp | 4 +- src/engine/platform/tx81z.h | 2 +- src/engine/platform/vb.cpp | 4 +- src/engine/platform/vb.h | 2 +- src/engine/platform/vera.cpp | 4 +- src/engine/platform/vera.h | 2 +- src/engine/platform/vic20.cpp | 4 +- src/engine/platform/vic20.h | 2 +- src/engine/platform/x1_010.cpp | 4 +- src/engine/platform/x1_010.h | 2 +- src/engine/platform/ym2203.cpp | 4 +- src/engine/platform/ym2203.h | 2 +- src/engine/platform/ym2608.cpp | 4 +- src/engine/platform/ym2608.h | 2 +- src/engine/platform/ym2610.cpp | 4 +- src/engine/platform/ym2610.h | 2 +- src/engine/platform/ym2610b.cpp | 4 +- src/engine/platform/ym2610b.h | 2 +- src/engine/platform/ym2610shared.h | 4 +- src/engine/platform/ymz280b.cpp | 4 +- src/engine/platform/ymz280b.h | 2 +- 82 files changed, 178 insertions(+), 161 deletions(-) diff --git a/src/engine/defines.h b/src/engine/defines.h index 2cd4b692f..3461a52db 100644 --- a/src/engine/defines.h +++ b/src/engine/defines.h @@ -33,4 +33,7 @@ // sample related #define DIV_MAX_SAMPLE_TYPE 4 +// dispatch +#define DIV_MAX_OUTPUTS 16 + #endif diff --git a/src/engine/dispatch.h b/src/engine/dispatch.h index 46a49cb4a..dc2b07b75 100644 --- a/src/engine/dispatch.h +++ b/src/engine/dispatch.h @@ -322,12 +322,10 @@ class DivDispatch { /** * fill a buffer with sound data. - * @param bufL the left or mono channel buffer. - * @param bufR the right channel buffer. - * @param start the start offset. + * @param buf pointers to output buffers. * @param len the amount of samples to fill. */ - virtual void acquire(short* bufL, short* bufR, size_t start, size_t len); + virtual void acquire(short** buf, size_t len); /** * fill a write stream with data (e.g. for software-mixed PCM). @@ -413,10 +411,10 @@ class DivDispatch { virtual void muteChannel(int ch, bool mute); /** - * test whether this dispatch outputs audio in two channels. - * @return whether it does. + * get the number of outputs this dispatch provides. + * @return number of outputs (usually 1 or 2 but may be more). SHALL NOT be less than one. */ - virtual bool isStereo(); + virtual int getOutputCount(); /** * test whether sending a key off command to a channel should reset arp too. diff --git a/src/engine/dispatchContainer.cpp b/src/engine/dispatchContainer.cpp index 5768bde38..5b943332c 100644 --- a/src/engine/dispatchContainer.cpp +++ b/src/engine/dispatchContainer.cpp @@ -89,7 +89,11 @@ void DivDispatchContainer::setQuality(bool lowQual) { } void DivDispatchContainer::acquire(size_t offset, size_t count) { - dispatch->acquire(bbIn[0],bbIn[1],offset,count); + int outs=dispatch->getOutputCount(); + for (int i=0; iacquire(bbInMapped,count); } void DivDispatchContainer::flush(size_t count) { @@ -166,26 +170,10 @@ void DivDispatchContainer::clear() { } void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, double gotRate, const DivConfig& flags) { + // quit if we already initialized if (dispatch!=NULL) return; - bb[0]=blip_new(32768); - if (bb[0]==NULL) { - logE("not enough memory!"); - return; - } - - bb[1]=blip_new(32768); - if (bb[1]==NULL) { - logE("not enough memory!"); - return; - } - - bbOut[0]=new short[32768]; - bbOut[1]=new short[32768]; - bbIn[0]=new short[32768]; - bbIn[1]=new short[32768]; - bbInLen=32768; - + // initialize chip switch (sys) { case DIV_SYSTEM_YMU759: dispatch=new DivPlatformOPL; @@ -461,6 +449,23 @@ void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, do break; } dispatch->init(eng,chanCount,gotRate,flags); + + // initialize output buffers + int outs=dispatch->getOutputCount(); + bbInLen=32768; + + for (int i=0; i& stream, int sRate, size_t len) { @@ -69,8 +69,8 @@ int DivDispatch::dispatch(DivCommand c) { void DivDispatch::reset() { } -bool DivDispatch::isStereo() { - return false; +int DivDispatch::getOutputCount() { + return 1; } bool DivDispatch::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/amiga.cpp b/src/engine/platform/amiga.cpp index 0ecd6ba41..4e588e7db 100644 --- a/src/engine/platform/amiga.cpp +++ b/src/engine/platform/amiga.cpp @@ -401,8 +401,8 @@ void DivPlatformAmiga::reset() { filtConst=filterOn?filtConstOn:filtConstOff; } -bool DivPlatformAmiga::isStereo() { - return true; +int DivPlatformAmiga::getOutputCount() { + return 2; } bool DivPlatformAmiga::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/amiga.h b/src/engine/platform/amiga.h index f28707440..c22ca1afd 100644 --- a/src/engine/platform/amiga.h +++ b/src/engine/platform/amiga.h @@ -75,7 +75,7 @@ class DivPlatformAmiga: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); DivMacroInt* getChanMacroInt(int ch); void setFlags(const DivConfig& flags); diff --git a/src/engine/platform/arcade.cpp b/src/engine/platform/arcade.cpp index e73249988..22f5c2935 100644 --- a/src/engine/platform/arcade.cpp +++ b/src/engine/platform/arcade.cpp @@ -885,8 +885,8 @@ void DivPlatformArcade::setFlags(const DivConfig& flags) { } } -bool DivPlatformArcade::isStereo() { - return true; +int DivPlatformArcade::getOutputCount() { + return 2; } void DivPlatformArcade::setYMFM(bool use) { diff --git a/src/engine/platform/arcade.h b/src/engine/platform/arcade.h index f8c66aca1..2eb26cb79 100644 --- a/src/engine/platform/arcade.h +++ b/src/engine/platform/arcade.h @@ -77,7 +77,7 @@ class DivPlatformArcade: public DivPlatformOPM { DivMacroInt* getChanMacroInt(int ch); void notifyInsChange(int ins); void setFlags(const DivConfig& flags); - bool isStereo(); + int getOutputCount(); void setYMFM(bool use); void poke(unsigned int addr, unsigned short val); void poke(std::vector& wlist); diff --git a/src/engine/platform/ay.cpp b/src/engine/platform/ay.cpp index bc3abc3c0..b90e0f2a6 100644 --- a/src/engine/platform/ay.cpp +++ b/src/engine/platform/ay.cpp @@ -751,8 +751,8 @@ void DivPlatformAY8910::reset() { portBVal=0; } -bool DivPlatformAY8910::isStereo() { - return true; +int DivPlatformAY8910::getOutputCount() { + return 2; } bool DivPlatformAY8910::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/ay.h b/src/engine/platform/ay.h index e8d7efcec..a546baa88 100644 --- a/src/engine/platform/ay.h +++ b/src/engine/platform/ay.h @@ -140,7 +140,7 @@ class DivPlatformAY8910: public DivDispatch { void tick(bool sysTick=true); void muteChannel(int ch, bool mute); void setFlags(const DivConfig& flags); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); DivMacroInt* getChanMacroInt(int ch); bool getDCOffRequired(); diff --git a/src/engine/platform/ay8930.cpp b/src/engine/platform/ay8930.cpp index 5d8cbc137..032fd69e9 100644 --- a/src/engine/platform/ay8930.cpp +++ b/src/engine/platform/ay8930.cpp @@ -747,8 +747,8 @@ void DivPlatformAY8930::reset() { immWrite(0x1a,0x00); // or mask } -bool DivPlatformAY8930::isStereo() { - return true; +int DivPlatformAY8930::getOutputCount() { + return 2; } bool DivPlatformAY8930::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/ay8930.h b/src/engine/platform/ay8930.h index 0bd2171a1..b89ee6f57 100644 --- a/src/engine/platform/ay8930.h +++ b/src/engine/platform/ay8930.h @@ -142,7 +142,7 @@ class DivPlatformAY8930: public DivDispatch { void tick(bool sysTick=true); void muteChannel(int ch, bool mute); void setFlags(const DivConfig& flags); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); DivMacroInt* getChanMacroInt(int ch); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/bubsyswsg.cpp b/src/engine/platform/bubsyswsg.cpp index 2d3f6ed00..73fd967b7 100644 --- a/src/engine/platform/bubsyswsg.cpp +++ b/src/engine/platform/bubsyswsg.cpp @@ -306,8 +306,8 @@ void DivPlatformBubSysWSG::reset() { k005289.reset(); } -bool DivPlatformBubSysWSG::isStereo() { - return false; +int DivPlatformBubSysWSG::getOutputCount() { + return 1; } bool DivPlatformBubSysWSG::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/bubsyswsg.h b/src/engine/platform/bubsyswsg.h index 92c64d898..900a391a6 100644 --- a/src/engine/platform/bubsyswsg.h +++ b/src/engine/platform/bubsyswsg.h @@ -56,7 +56,7 @@ class DivPlatformBubSysWSG: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); DivMacroInt* getChanMacroInt(int ch); void setFlags(const DivConfig& flags); diff --git a/src/engine/platform/ga20.cpp b/src/engine/platform/ga20.cpp index bd3c79dfd..bb29154ae 100644 --- a/src/engine/platform/ga20.cpp +++ b/src/engine/platform/ga20.cpp @@ -361,8 +361,8 @@ void DivPlatformGA20::reset() { } } -bool DivPlatformGA20::isStereo() { - return false; +int DivPlatformGA20::getOutputCount() { + return 1; } void DivPlatformGA20::notifyInsChange(int ins) { diff --git a/src/engine/platform/ga20.h b/src/engine/platform/ga20.h index 88b475472..5e64db77f 100644 --- a/src/engine/platform/ga20.h +++ b/src/engine/platform/ga20.h @@ -85,7 +85,7 @@ class DivPlatformGA20: public DivDispatch, public iremga20_intf { virtual void forceIns() override; virtual void tick(bool sysTick=true) override; virtual void muteChannel(int ch, bool mute) override; - virtual bool isStereo() override; + virtual int getOutputCount() override; virtual void notifyInsChange(int ins) override; virtual void notifyWaveChange(int wave) override; virtual void notifyInsDeletion(void* ins) override; diff --git a/src/engine/platform/gb.cpp b/src/engine/platform/gb.cpp index e84d212b6..2cb64f4ac 100644 --- a/src/engine/platform/gb.cpp +++ b/src/engine/platform/gb.cpp @@ -604,8 +604,8 @@ int DivPlatformGB::getPortaFloor(int ch) { return 24; } -bool DivPlatformGB::isStereo() { - return true; +int DivPlatformGB::getOutputCount() { + return 2; } bool DivPlatformGB::getDCOffRequired() { diff --git a/src/engine/platform/gb.h b/src/engine/platform/gb.h index 581962999..ce657fd10 100644 --- a/src/engine/platform/gb.h +++ b/src/engine/platform/gb.h @@ -90,7 +90,7 @@ class DivPlatformGB: public DivDispatch { void tick(bool sysTick=true); void muteChannel(int ch, bool mute); int getPortaFloor(int ch); - bool isStereo(); + int getOutputCount(); bool getDCOffRequired(); void notifyInsChange(int ins); void notifyWaveChange(int wave); diff --git a/src/engine/platform/genesis.cpp b/src/engine/platform/genesis.cpp index 166607207..5bc339505 100644 --- a/src/engine/platform/genesis.cpp +++ b/src/engine/platform/genesis.cpp @@ -1193,8 +1193,8 @@ void DivPlatformGenesis::reset() { delay=0; } -bool DivPlatformGenesis::isStereo() { - return true; +int DivPlatformGenesis::getOutputCount() { + return 2; } bool DivPlatformGenesis::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/genesis.h b/src/engine/platform/genesis.h index d66083826..9bde5aa38 100644 --- a/src/engine/platform/genesis.h +++ b/src/engine/platform/genesis.h @@ -110,7 +110,7 @@ class DivPlatformGenesis: public DivPlatformOPN { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); void setYMFM(bool use); bool keyOffAffectsArp(int ch); bool keyOffAffectsPorta(int ch); diff --git a/src/engine/platform/k007232.cpp b/src/engine/platform/k007232.cpp index 58304553a..e4007cfd5 100644 --- a/src/engine/platform/k007232.cpp +++ b/src/engine/platform/k007232.cpp @@ -448,8 +448,8 @@ void DivPlatformK007232::reset() { } } -bool DivPlatformK007232::isStereo() { - return stereo; +int DivPlatformK007232::getOutputCount() { + return stereo?2:1; } void DivPlatformK007232::notifyInsChange(int ins) { diff --git a/src/engine/platform/k007232.h b/src/engine/platform/k007232.h index 04e6e73f0..78d0522b2 100644 --- a/src/engine/platform/k007232.h +++ b/src/engine/platform/k007232.h @@ -91,7 +91,7 @@ class DivPlatformK007232: public DivDispatch, public k007232_intf { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); void notifyInsChange(int ins); void notifyWaveChange(int wave); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/lynx.cpp b/src/engine/platform/lynx.cpp index 3af5dbd83..978e26006 100644 --- a/src/engine/platform/lynx.cpp +++ b/src/engine/platform/lynx.cpp @@ -393,8 +393,8 @@ void DivPlatformLynx::muteChannel(int ch, bool mute) { if (chan[ch].active) WRITE_VOLUME(ch,(isMuted[ch]?0:(chan[ch].outVol&127))); } -bool DivPlatformLynx::isStereo() { - return true; +int DivPlatformLynx::getOutputCount() { + return 2; } void DivPlatformLynx::forceIns() { diff --git a/src/engine/platform/lynx.h b/src/engine/platform/lynx.h index 463aad3d0..dfd89108f 100644 --- a/src/engine/platform/lynx.h +++ b/src/engine/platform/lynx.h @@ -79,7 +79,7 @@ class DivPlatformLynx: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); bool keyOffAffectsPorta(int ch); //int getPortaFloor(int ch); diff --git a/src/engine/platform/msm5232.cpp b/src/engine/platform/msm5232.cpp index 4781945f5..8a4e369c7 100644 --- a/src/engine/platform/msm5232.cpp +++ b/src/engine/platform/msm5232.cpp @@ -371,8 +371,8 @@ void DivPlatformMSM5232::reset() { } } -bool DivPlatformMSM5232::isStereo() { - return false; +int DivPlatformMSM5232::getOutputCount() { + return 1; } bool DivPlatformMSM5232::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/msm5232.h b/src/engine/platform/msm5232.h index 2d4b9705e..e6bfb9ff8 100644 --- a/src/engine/platform/msm5232.h +++ b/src/engine/platform/msm5232.h @@ -71,7 +71,7 @@ class DivPlatformMSM5232: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void setFlags(const DivConfig& flags); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/msm6258.cpp b/src/engine/platform/msm6258.cpp index 32fe24cc8..c9b6b910a 100644 --- a/src/engine/platform/msm6258.cpp +++ b/src/engine/platform/msm6258.cpp @@ -336,8 +336,8 @@ void DivPlatformMSM6258::reset() { delay=0; } -bool DivPlatformMSM6258::isStereo() { - return true; +int DivPlatformMSM6258::getOutputCount() { + return 2; } bool DivPlatformMSM6258::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/msm6258.h b/src/engine/platform/msm6258.h index d64d40b43..b981fd283 100644 --- a/src/engine/platform/msm6258.h +++ b/src/engine/platform/msm6258.h @@ -69,7 +69,7 @@ class DivPlatformMSM6258: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void notifyInsChange(int ins); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/namcowsg.cpp b/src/engine/platform/namcowsg.cpp index 10b2aeb25..122693d26 100644 --- a/src/engine/platform/namcowsg.cpp +++ b/src/engine/platform/namcowsg.cpp @@ -494,8 +494,8 @@ void DivPlatformNamcoWSG::reset() { namco->device_start(NULL); } -bool DivPlatformNamcoWSG::isStereo() { - return (devType==30); +int DivPlatformNamcoWSG::getOutputCount() { + return (devType==30)?2:1; } bool DivPlatformNamcoWSG::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/namcowsg.h b/src/engine/platform/namcowsg.h index 127f84aa4..639b54c4f 100644 --- a/src/engine/platform/namcowsg.h +++ b/src/engine/platform/namcowsg.h @@ -65,7 +65,7 @@ class DivPlatformNamcoWSG: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void setDeviceType(int type); void setFlags(const DivConfig& flags); diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 5af5de8c6..aefefcaab 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1568,8 +1568,8 @@ void DivPlatformOPL::reset() { immWrite(0xbd,(dam<<7)|(dvb<<6)|(properDrums<<5)|drumState); } -bool DivPlatformOPL::isStereo() { - return (oplType==3 || oplType==759); +int DivPlatformOPL::getOutputCount() { + return (oplType==3 || oplType==759)?4:1; } bool DivPlatformOPL::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/opl.h b/src/engine/platform/opl.h index f4a6788cb..db8bc4759 100644 --- a/src/engine/platform/opl.h +++ b/src/engine/platform/opl.h @@ -119,7 +119,7 @@ class DivPlatformOPL: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); void setYMFM(bool use); void setOPLType(int type, bool drums); bool keyOffAffectsArp(int ch); diff --git a/src/engine/platform/pce.cpp b/src/engine/platform/pce.cpp index 3d9c0aee9..cc6f67f36 100644 --- a/src/engine/platform/pce.cpp +++ b/src/engine/platform/pce.cpp @@ -547,8 +547,8 @@ void DivPlatformPCE::reset() { delay=500; } -bool DivPlatformPCE::isStereo() { - return true; +int DivPlatformPCE::getOutputCount() { + return 2; } bool DivPlatformPCE::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/pce.h b/src/engine/platform/pce.h index 7a417a2a2..02aea9b3a 100644 --- a/src/engine/platform/pce.h +++ b/src/engine/platform/pce.h @@ -87,7 +87,7 @@ class DivPlatformPCE: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void setFlags(const DivConfig& flags); void notifyWaveChange(int wave); diff --git a/src/engine/platform/pcmdac.cpp b/src/engine/platform/pcmdac.cpp index abcdd39ff..8d9bb954a 100644 --- a/src/engine/platform/pcmdac.cpp +++ b/src/engine/platform/pcmdac.cpp @@ -410,8 +410,8 @@ void DivPlatformPCMDAC::reset() { chan[0].ws.init(NULL,32,255); } -bool DivPlatformPCMDAC::isStereo() { - return true; +int DivPlatformPCMDAC::getOutputCount() { + return 2; } DivMacroInt* DivPlatformPCMDAC::getChanMacroInt(int ch) { diff --git a/src/engine/platform/pcmdac.h b/src/engine/platform/pcmdac.h index 95c014240..280af7a36 100644 --- a/src/engine/platform/pcmdac.h +++ b/src/engine/platform/pcmdac.h @@ -75,7 +75,7 @@ class DivPlatformPCMDAC: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); DivMacroInt* getChanMacroInt(int ch); void setFlags(const DivConfig& flags); void notifyInsChange(int ins); diff --git a/src/engine/platform/pet.cpp b/src/engine/platform/pet.cpp index b3279e8e1..1e98257ef 100644 --- a/src/engine/platform/pet.cpp +++ b/src/engine/platform/pet.cpp @@ -287,8 +287,8 @@ void DivPlatformPET::reset() { chan[0].std.setEngine(parent); } -bool DivPlatformPET::isStereo() { - return false; +int DivPlatformPET::getOutputCount() { + return 1; } void DivPlatformPET::notifyInsDeletion(void* ins) { diff --git a/src/engine/platform/pet.h b/src/engine/platform/pet.h index 0078e3f3f..69bf9dde4 100644 --- a/src/engine/platform/pet.h +++ b/src/engine/platform/pet.h @@ -57,7 +57,7 @@ class DivPlatformPET: public DivDispatch { void tick(bool sysTick=true); void muteChannel(int ch, bool mute); void notifyInsDeletion(void* ins); - bool isStereo(); + int getOutputCount(); void poke(unsigned int addr, unsigned short val); void poke(std::vector& wlist); const char** getRegisterSheet(); diff --git a/src/engine/platform/qsound.cpp b/src/engine/platform/qsound.cpp index bc9e0f2ab..a307912a0 100644 --- a/src/engine/platform/qsound.cpp +++ b/src/engine/platform/qsound.cpp @@ -636,8 +636,8 @@ void DivPlatformQSound::reset() { immWrite(Q1_ECHO_FEEDBACK, echoFeedback << 6); } -bool DivPlatformQSound::isStereo() { - return true; +int DivPlatformQSound::getOutputCount() { + return 2; } bool DivPlatformQSound::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/qsound.h b/src/engine/platform/qsound.h index dbdffd051..f4db43412 100644 --- a/src/engine/platform/qsound.h +++ b/src/engine/platform/qsound.h @@ -74,7 +74,7 @@ class DivPlatformQSound: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void setFlags(const DivConfig& flags); void notifyInsChange(int ins); diff --git a/src/engine/platform/rf5c68.cpp b/src/engine/platform/rf5c68.cpp index bf87ce761..da3529250 100644 --- a/src/engine/platform/rf5c68.cpp +++ b/src/engine/platform/rf5c68.cpp @@ -332,8 +332,8 @@ void DivPlatformRF5C68::reset() { } } -bool DivPlatformRF5C68::isStereo() { - return true; +int DivPlatformRF5C68::getOutputCount() { + return 2; } void DivPlatformRF5C68::notifyInsChange(int ins) { diff --git a/src/engine/platform/rf5c68.h b/src/engine/platform/rf5c68.h index 2703a2900..f1a19cdfe 100644 --- a/src/engine/platform/rf5c68.h +++ b/src/engine/platform/rf5c68.h @@ -67,7 +67,7 @@ class DivPlatformRF5C68: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); void setChipModel(int type); void notifyInsChange(int ins); void notifyWaveChange(int wave); diff --git a/src/engine/platform/saa.cpp b/src/engine/platform/saa.cpp index 102b00216..4823055c7 100644 --- a/src/engine/platform/saa.cpp +++ b/src/engine/platform/saa.cpp @@ -419,8 +419,8 @@ void DivPlatformSAA1099::reset() { rWrite(0x1c,1); } -bool DivPlatformSAA1099::isStereo() { - return true; +int DivPlatformSAA1099::getOutputCount() { + return 2; } int DivPlatformSAA1099::getPortaFloor(int ch) { diff --git a/src/engine/platform/saa.h b/src/engine/platform/saa.h index 055a0979f..af2f18c11 100644 --- a/src/engine/platform/saa.h +++ b/src/engine/platform/saa.h @@ -86,7 +86,7 @@ class DivPlatformSAA1099: public DivDispatch { void tick(bool sysTick=true); void muteChannel(int ch, bool mute); void setFlags(const DivConfig& flags); - bool isStereo(); + int getOutputCount(); int getPortaFloor(int ch); bool keyOffAffectsArp(int ch); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/scc.cpp b/src/engine/platform/scc.cpp index 0f5e45859..ba446e239 100644 --- a/src/engine/platform/scc.cpp +++ b/src/engine/platform/scc.cpp @@ -335,8 +335,8 @@ void DivPlatformSCC::reset() { lastUpdated34=0; } -bool DivPlatformSCC::isStereo() { - return false; +int DivPlatformSCC::getOutputCount() { + return 1; } void DivPlatformSCC::notifyWaveChange(int wave) { diff --git a/src/engine/platform/scc.h b/src/engine/platform/scc.h index 5c4db4e28..55d82ca8d 100644 --- a/src/engine/platform/scc.h +++ b/src/engine/platform/scc.h @@ -61,7 +61,7 @@ class DivPlatformSCC: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); void notifyWaveChange(int wave); void notifyInsDeletion(void* ins); void poke(unsigned int addr, unsigned short val); diff --git a/src/engine/platform/segapcm.cpp b/src/engine/platform/segapcm.cpp index a206de5c0..edc05d471 100644 --- a/src/engine/platform/segapcm.cpp +++ b/src/engine/platform/segapcm.cpp @@ -502,8 +502,8 @@ void DivPlatformSegaPCM::setFlags(const DivConfig& flags) { } } -bool DivPlatformSegaPCM::isStereo() { - return true; +int DivPlatformSegaPCM::getOutputCount() { + return 2; } int DivPlatformSegaPCM::init(DivEngine* p, int channels, int sugRate, const DivConfig& flags) { diff --git a/src/engine/platform/segapcm.h b/src/engine/platform/segapcm.h index 0c99a20ca..8e02d4a8b 100644 --- a/src/engine/platform/segapcm.h +++ b/src/engine/platform/segapcm.h @@ -91,7 +91,7 @@ class DivPlatformSegaPCM: public DivDispatch { void notifyInsChange(int ins); void renderSamples(int chipID); void setFlags(const DivConfig& flags); - bool isStereo(); + int getOutputCount(); void poke(unsigned int addr, unsigned short val); void poke(std::vector& wlist); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); diff --git a/src/engine/platform/sms.cpp b/src/engine/platform/sms.cpp index cf03b93b0..472038175 100644 --- a/src/engine/platform/sms.cpp +++ b/src/engine/platform/sms.cpp @@ -444,8 +444,8 @@ void DivPlatformSMS::reset() { } } -bool DivPlatformSMS::isStereo() { - return stereo; +int DivPlatformSMS::getOutputCount() { + return stereo?2:1; } bool DivPlatformSMS::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/sms.h b/src/engine/platform/sms.h index 7bb3b1b16..900003089 100644 --- a/src/engine/platform/sms.h +++ b/src/engine/platform/sms.h @@ -78,7 +78,7 @@ class DivPlatformSMS: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); bool keyOffAffectsPorta(int ch); int getPortaFloor(int ch); diff --git a/src/engine/platform/snes.cpp b/src/engine/platform/snes.cpp index 053ac9b76..fec8139e8 100644 --- a/src/engine/platform/snes.cpp +++ b/src/engine/platform/snes.cpp @@ -768,8 +768,8 @@ void DivPlatformSNES::reset() { initEcho(); } -bool DivPlatformSNES::isStereo() { - return true; +int DivPlatformSNES::getOutputCount() { + return 2; } void DivPlatformSNES::notifyInsChange(int ins) { diff --git a/src/engine/platform/snes.h b/src/engine/platform/snes.h index 8d5e25311..094fe03a2 100644 --- a/src/engine/platform/snes.h +++ b/src/engine/platform/snes.h @@ -104,7 +104,7 @@ class DivPlatformSNES: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); void notifyInsChange(int ins); void notifyWaveChange(int wave); void setFlags(const DivConfig& flags); diff --git a/src/engine/platform/su.cpp b/src/engine/platform/su.cpp index 1508c6846..52fcafb0d 100644 --- a/src/engine/platform/su.cpp +++ b/src/engine/platform/su.cpp @@ -499,8 +499,8 @@ void DivPlatformSoundUnit::reset() { rWrite(0xbd,fil1); } -bool DivPlatformSoundUnit::isStereo() { - return true; +int DivPlatformSoundUnit::getOutputCount() { + return 2; } bool DivPlatformSoundUnit::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/su.h b/src/engine/platform/su.h index ebaa911b9..d6ca5aee3 100644 --- a/src/engine/platform/su.h +++ b/src/engine/platform/su.h @@ -109,7 +109,7 @@ class DivPlatformSoundUnit: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void setFlags(const DivConfig& flags); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/swan.cpp b/src/engine/platform/swan.cpp index f10a4e4e6..92dbe9400 100644 --- a/src/engine/platform/swan.cpp +++ b/src/engine/platform/swan.cpp @@ -490,8 +490,8 @@ void DivPlatformSwan::reset() { rWrite(0x11,0x09); // enable speakers } -bool DivPlatformSwan::isStereo() { - return true; +int DivPlatformSwan::getOutputCount() { + return 2; } void DivPlatformSwan::notifyWaveChange(int wave) { diff --git a/src/engine/platform/swan.h b/src/engine/platform/swan.h index b93f0859d..167a1180e 100644 --- a/src/engine/platform/swan.h +++ b/src/engine/platform/swan.h @@ -69,7 +69,7 @@ class DivPlatformSwan: public DivDispatch { void muteChannel(int ch, bool mute); void notifyWaveChange(int wave); void notifyInsDeletion(void* ins); - bool isStereo(); + int getOutputCount(); void poke(unsigned int addr, unsigned short val); void poke(std::vector& wlist); const char** getRegisterSheet(); diff --git a/src/engine/platform/t6w28.cpp b/src/engine/platform/t6w28.cpp index b318b1741..4578e79c3 100644 --- a/src/engine/platform/t6w28.cpp +++ b/src/engine/platform/t6w28.cpp @@ -335,8 +335,8 @@ void DivPlatformT6W28::reset() { rWrite(1,0xe7); } -bool DivPlatformT6W28::isStereo() { - return true; +int DivPlatformT6W28::getOutputCount() { + return 2; } bool DivPlatformT6W28::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/t6w28.h b/src/engine/platform/t6w28.h index c526fd5d8..e3aa2fcf8 100644 --- a/src/engine/platform/t6w28.h +++ b/src/engine/platform/t6w28.h @@ -70,7 +70,7 @@ class DivPlatformT6W28: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void setFlags(const DivConfig& flags); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/tia.cpp b/src/engine/platform/tia.cpp index 9517204e3..5f0467a5b 100644 --- a/src/engine/platform/tia.cpp +++ b/src/engine/platform/tia.cpp @@ -342,8 +342,8 @@ float DivPlatformTIA::getPostAmp() { return 0.5f; } -bool DivPlatformTIA::isStereo() { - return (mixingType==2); +int DivPlatformTIA::getOutputCount() { + return (mixingType==2)?2:1; } bool DivPlatformTIA::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/tia.h b/src/engine/platform/tia.h index d60d41656..3317955b8 100644 --- a/src/engine/platform/tia.h +++ b/src/engine/platform/tia.h @@ -58,7 +58,7 @@ class DivPlatformTIA: public DivDispatch { void muteChannel(int ch, bool mute); void setFlags(const DivConfig& flags); float getPostAmp(); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void notifyInsDeletion(void* ins); void poke(unsigned int addr, unsigned short val); diff --git a/src/engine/platform/tx81z.cpp b/src/engine/platform/tx81z.cpp index 88266114c..e76f43375 100644 --- a/src/engine/platform/tx81z.cpp +++ b/src/engine/platform/tx81z.cpp @@ -947,8 +947,8 @@ void DivPlatformTX81Z::setFlags(const DivConfig& flags) { } } -bool DivPlatformTX81Z::isStereo() { - return true; +int DivPlatformTX81Z::getOutputCount() { + return 2; } int DivPlatformTX81Z::init(DivEngine* p, int channels, int sugRate, const DivConfig& flags) { diff --git a/src/engine/platform/tx81z.h b/src/engine/platform/tx81z.h index b180f28c5..3107f8057 100644 --- a/src/engine/platform/tx81z.h +++ b/src/engine/platform/tx81z.h @@ -73,7 +73,7 @@ class DivPlatformTX81Z: public DivPlatformOPM { void muteChannel(int ch, bool mute); void notifyInsChange(int ins); void setFlags(const DivConfig& flags); - bool isStereo(); + int getOutputCount(); void poke(unsigned int addr, unsigned short val); void poke(std::vector& wlist); const char** getRegisterSheet(); diff --git a/src/engine/platform/vb.cpp b/src/engine/platform/vb.cpp index 5d79e5083..c1257144c 100644 --- a/src/engine/platform/vb.cpp +++ b/src/engine/platform/vb.cpp @@ -465,8 +465,8 @@ void DivPlatformVB::reset() { delay=500; } -bool DivPlatformVB::isStereo() { - return true; +int DivPlatformVB::getOutputCount() { + return 2; } bool DivPlatformVB::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/vb.h b/src/engine/platform/vb.h index bcce42fee..b09e33afe 100644 --- a/src/engine/platform/vb.h +++ b/src/engine/platform/vb.h @@ -76,7 +76,7 @@ class DivPlatformVB: public DivDispatch { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); float getPostAmp(); void setFlags(const DivConfig& flags); diff --git a/src/engine/platform/vera.cpp b/src/engine/platform/vera.cpp index 5021ac854..c5de27215 100644 --- a/src/engine/platform/vera.cpp +++ b/src/engine/platform/vera.cpp @@ -406,8 +406,8 @@ float DivPlatformVERA::getPostAmp() { return 4.0f; } -bool DivPlatformVERA::isStereo() { - return true; +int DivPlatformVERA::getOutputCount() { + return 2; } void DivPlatformVERA::notifyInsDeletion(void* ins) { diff --git a/src/engine/platform/vera.h b/src/engine/platform/vera.h index 57be5dc9a..f3467858e 100644 --- a/src/engine/platform/vera.h +++ b/src/engine/platform/vera.h @@ -72,7 +72,7 @@ class DivPlatformVERA: public DivDispatch { void muteChannel(int ch, bool mute); void notifyInsDeletion(void* ins); float getPostAmp(); - bool isStereo(); + int getOutputCount(); void poke(unsigned int addr, unsigned short val); void poke(std::vector& wlist); const char** getRegisterSheet(); diff --git a/src/engine/platform/vic20.cpp b/src/engine/platform/vic20.cpp index 3e8046d28..be33140b9 100644 --- a/src/engine/platform/vic20.cpp +++ b/src/engine/platform/vic20.cpp @@ -299,8 +299,8 @@ void DivPlatformVIC20::reset() { vic_sound_clock(vic,4); } -bool DivPlatformVIC20::isStereo() { - return false; +int DivPlatformVIC20::getOutputCount() { + return 1; } void DivPlatformVIC20::notifyInsDeletion(void* ins) { diff --git a/src/engine/platform/vic20.h b/src/engine/platform/vic20.h index a2628872e..fd650b55c 100644 --- a/src/engine/platform/vic20.h +++ b/src/engine/platform/vic20.h @@ -56,7 +56,7 @@ class DivPlatformVIC20: public DivDispatch { void muteChannel(int ch, bool mute); void setFlags(const DivConfig& flags); void notifyInsDeletion(void* ins); - bool isStereo(); + int getOutputCount(); void poke(unsigned int addr, unsigned short val); void poke(std::vector& wlist); const char** getRegisterSheet(); diff --git a/src/engine/platform/x1_010.cpp b/src/engine/platform/x1_010.cpp index 093b952c2..0a7510977 100644 --- a/src/engine/platform/x1_010.cpp +++ b/src/engine/platform/x1_010.cpp @@ -894,8 +894,8 @@ void DivPlatformX1_010::reset() { } } -bool DivPlatformX1_010::isStereo() { - return stereo; +int DivPlatformX1_010::getOutputCount() { + return stereo?2:1; } bool DivPlatformX1_010::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/x1_010.h b/src/engine/platform/x1_010.h index 28b180eb4..5c106eed6 100644 --- a/src/engine/platform/x1_010.h +++ b/src/engine/platform/x1_010.h @@ -138,7 +138,7 @@ class DivPlatformX1_010: public DivDispatch, public vgsound_emu_mem_intf { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void setFlags(const DivConfig& flags); void notifyWaveChange(int wave); diff --git a/src/engine/platform/ym2203.cpp b/src/engine/platform/ym2203.cpp index 3419a1b6e..453fa9052 100644 --- a/src/engine/platform/ym2203.cpp +++ b/src/engine/platform/ym2203.cpp @@ -967,8 +967,8 @@ void DivPlatformYM2203::reset() { ay->flushWrites(); } -bool DivPlatformYM2203::isStereo() { - return false; +int DivPlatformYM2203::getOutputCount() { + return 1; } bool DivPlatformYM2203::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/ym2203.h b/src/engine/platform/ym2203.h index 3d4670f7b..2076aa255 100644 --- a/src/engine/platform/ym2203.h +++ b/src/engine/platform/ym2203.h @@ -70,7 +70,7 @@ class DivPlatformYM2203: public DivPlatformOPN { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void notifyInsChange(int ins); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/ym2608.cpp b/src/engine/platform/ym2608.cpp index fc0b08de6..fd73fd2c2 100644 --- a/src/engine/platform/ym2608.cpp +++ b/src/engine/platform/ym2608.cpp @@ -1424,8 +1424,8 @@ void DivPlatformYM2608::reset() { ay->flushWrites(); } -bool DivPlatformYM2608::isStereo() { - return true; +int DivPlatformYM2608::getOutputCount() { + return 2; } bool DivPlatformYM2608::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/ym2608.h b/src/engine/platform/ym2608.h index 4e6c59b90..9dfa2e8d6 100644 --- a/src/engine/platform/ym2608.h +++ b/src/engine/platform/ym2608.h @@ -85,7 +85,7 @@ class DivPlatformYM2608: public DivPlatformOPN { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void notifyInsChange(int ins); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/ym2610.cpp b/src/engine/platform/ym2610.cpp index 9251a39f3..b6f231547 100644 --- a/src/engine/platform/ym2610.cpp +++ b/src/engine/platform/ym2610.cpp @@ -1372,8 +1372,8 @@ void DivPlatformYM2610::reset() { immWrite(0x1b,0xff); // B } -bool DivPlatformYM2610::isStereo() { - return true; +int DivPlatformYM2610::getOutputCount() { + return 2; } bool DivPlatformYM2610::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/ym2610.h b/src/engine/platform/ym2610.h index f2ffb9c7d..82cce7b58 100644 --- a/src/engine/platform/ym2610.h +++ b/src/engine/platform/ym2610.h @@ -53,7 +53,7 @@ class DivPlatformYM2610: public DivPlatformYM2610Base { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void notifyInsChange(int ins); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/ym2610b.cpp b/src/engine/platform/ym2610b.cpp index 593ecfa0b..f78d62d7a 100644 --- a/src/engine/platform/ym2610b.cpp +++ b/src/engine/platform/ym2610b.cpp @@ -1443,8 +1443,8 @@ void DivPlatformYM2610B::reset() { ay->flushWrites(); } -bool DivPlatformYM2610B::isStereo() { - return true; +int DivPlatformYM2610B::getOutputCount() { + return 2; } bool DivPlatformYM2610B::keyOffAffectsArp(int ch) { diff --git a/src/engine/platform/ym2610b.h b/src/engine/platform/ym2610b.h index 6052a535e..3c1817a41 100644 --- a/src/engine/platform/ym2610b.h +++ b/src/engine/platform/ym2610b.h @@ -49,7 +49,7 @@ class DivPlatformYM2610B: public DivPlatformYM2610Base { void forceIns(); void tick(bool sysTick=true); void muteChannel(int ch, bool mute); - bool isStereo(); + int getOutputCount(); bool keyOffAffectsArp(int ch); void notifyInsChange(int ins); void notifyInsDeletion(void* ins); diff --git a/src/engine/platform/ym2610shared.h b/src/engine/platform/ym2610shared.h index ab1bd0528..517186999 100644 --- a/src/engine/platform/ym2610shared.h +++ b/src/engine/platform/ym2610shared.h @@ -119,8 +119,8 @@ class DivPlatformYM2610Base: public DivPlatformOPN { } } - bool isStereo() { - return true; + int getOutputCount() { + return 2; } const void* getSampleMem(int index) { diff --git a/src/engine/platform/ymz280b.cpp b/src/engine/platform/ymz280b.cpp index 7c7c56861..fdab2cd60 100644 --- a/src/engine/platform/ymz280b.cpp +++ b/src/engine/platform/ymz280b.cpp @@ -372,8 +372,8 @@ void DivPlatformYMZ280B::reset() { } } -bool DivPlatformYMZ280B::isStereo() { - return true; +int DivPlatformYMZ280B::getOutputCount() { + return 2; } void DivPlatformYMZ280B::notifyInsChange(int ins) { diff --git a/src/engine/platform/ymz280b.h b/src/engine/platform/ymz280b.h index 810d52230..37e06cf36 100644 --- a/src/engine/platform/ymz280b.h +++ b/src/engine/platform/ymz280b.h @@ -68,7 +68,7 @@ class DivPlatformYMZ280B: public DivDispatch { void tick(bool sysTick=true); void muteChannel(int ch, bool mute); float getPostAmp(); - bool isStereo(); + int getOutputCount(); void setChipModel(int type); void notifyInsChange(int ins); void notifyWaveChange(int wave);