diff options
author | WaluigiWare64 <68647953+WaluigiWare64@users.noreply.github.com> | 2020-12-19 17:43:53 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-19 17:43:53 +0000 |
commit | df190b04000a8a3c5052de3fd695f6c26892f353 (patch) | |
tree | 85c53cda9b5e6c73dcfb82f97272e509f023788b /src/SPU.h | |
parent | d6cade25f4ac6b2ebac9d4830ab7b10294bc4c89 (diff) | |
parent | 659dc58d4d8290d8ef1930d9f21007c0ec4c3739 (diff) |
Merge branch 'master' into feature/zip-support
Diffstat (limited to 'src/SPU.h')
-rw-r--r-- | src/SPU.h | 25 |
1 files changed, 12 insertions, 13 deletions
@@ -33,7 +33,7 @@ void DoSavestate(Savestate* file); void SetBias(u16 bias); -void Mix(u32 samples); +void Mix(u32 dummy); void TrimOutput(); void DrainOutput(); @@ -41,6 +41,7 @@ void InitOutput(); int GetOutputSize(); void Sync(bool wait); int ReadOutput(s16* data, int samples); +void TransferOutput(); u8 Read8(u32 addr); u16 Read16(u32 addr); @@ -123,26 +124,24 @@ public: void NextSample_PSG(); void NextSample_Noise(); - template<u32 type> void Run(s32* buf, u32 samples); + template<u32 type> s32 Run(); - void DoRun(s32* buf, u32 samples) + s32 DoRun() { - for (u32 s = 0; s < samples; s++) - buf[s] = 0; - switch ((Cnt >> 29) & 0x3) { - case 0: Run<0>(buf, samples); break; - case 1: Run<1>(buf, samples); break; - case 2: Run<2>(buf, samples); break; + case 0: return Run<0>(); break; + case 1: return Run<1>(); break; + case 2: return Run<2>(); break; case 3: - if (Num >= 14) Run<4>(buf, samples); - else if (Num >= 8) Run<3>(buf, samples); - break; + if (Num >= 14) return Run<4>(); + else if (Num >= 8) return Run<3>(); + default: + return 0; } } - void PanOutput(s32* inbuf, u32 samples, s32* leftbuf, s32* rightbuf); + void PanOutput(s32 in, s32& left, s32& right); private: u32 (*BusRead32)(u32 addr); |