X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfsound%2Fspu.c;h=45a788692c25e05b9789ebc2b592f192ea67be28;hp=69d6217c749baa17c5dc0d19de47cb7ced870655;hb=fa56d36096cd4ab2b227ce2aa61c8404b8874689;hpb=89cb20587977b8702a1f96591852feac394ecc4b diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index 69d6217c..45a78869 100644 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -24,7 +24,7 @@ #include "externals.h" #include "registers.h" -#include "dsoundoss.h" +#include "out.h" #ifdef ENABLE_NLS #include @@ -243,7 +243,7 @@ INLINE void InterpolateDown(int ch) // helpers for gauss interpolation #define gval0 (((short*)(&s_chan[ch].SB[29]))[gpos]) -#define gval(x) (((short*)(&s_chan[ch].SB[29]))[(gpos+x)&3]) +#define gval(x) ((int)((short*)(&s_chan[ch].SB[29]))[(gpos+x)&3]) #include "gauss_i.h" @@ -386,7 +386,7 @@ INLINE int iGetInterpolationVal(int ch, int spos) int vl, vr;int gpos; vl = (spos >> 6) & ~3; gpos = s_chan[ch].SB[28]; - vr=(gauss[vl]*gval0)&~2047; + vr=(gauss[vl]*(int)gval0)&~2047; vr+=(gauss[vl+1]*gval(1))&~2047; vr+=(gauss[vl+2]*gval(2))&~2047; vr+=(gauss[vl+3]*gval(3))&~2047; @@ -697,7 +697,7 @@ static int do_samples(int forced_updates) // until enuff free place is available/a new channel gets // started - if(!forced_updates && SoundGetBytesBuffered()) // still enuff data in sound buffer? + if(!forced_updates && out_current->busy()) // still enuff data in sound buffer? { return 0; } @@ -872,7 +872,7 @@ static int do_samples(int forced_updates) // wanna have around 1/60 sec (16.666 ms) updates if (iCycle++ > 16/FRAG_MSECS) { - SoundFeedStreamData((unsigned char *)pSpuBuffer, + out_current->feed(pSpuBuffer, ((unsigned char *)pS) - ((unsigned char *)pSpuBuffer)); pS = (short *)pSpuBuffer; iCycle = 0; @@ -1056,7 +1056,7 @@ long CALLBACK SPUclose(void) bSPUIsOpen = 0; // no more open - RemoveSound(); // no more sound handling + out_current->finish(); // no more sound handling return 0; }