aboutsummaryrefslogtreecommitdiff
path: root/src/SPU.h
diff options
context:
space:
mode:
authorWaluigiWare64 <68647953+WaluigiWare64@users.noreply.github.com>2020-12-19 17:43:53 +0000
committerGitHub <noreply@github.com>2020-12-19 17:43:53 +0000
commitdf190b04000a8a3c5052de3fd695f6c26892f353 (patch)
tree85c53cda9b5e6c73dcfb82f97272e509f023788b /src/SPU.h
parentd6cade25f4ac6b2ebac9d4830ab7b10294bc4c89 (diff)
parent659dc58d4d8290d8ef1930d9f21007c0ec4c3739 (diff)
Merge branch 'master' into feature/zip-support
Diffstat (limited to 'src/SPU.h')
-rw-r--r--src/SPU.h25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/SPU.h b/src/SPU.h
index 964841d..c6b1c7f 100644
--- a/src/SPU.h
+++ b/src/SPU.h
@@ -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);