36 lines
847 B
C#
36 lines
847 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace BizHawk.Emulation.Computers.Commodore64.MOS
|
|
{
|
|
public abstract partial class Sid : ISyncSoundProvider
|
|
{
|
|
public void GetSamples(out short[] samples, out int nsamp)
|
|
{
|
|
if (bufferIndex > bufferReadOffset)
|
|
samples = new short[bufferIndex - bufferReadOffset];
|
|
else
|
|
samples = new short[bufferIndex + (bufferLength - bufferReadOffset)];
|
|
|
|
nsamp = samples.Length;
|
|
for (uint i = 0; i < nsamp; i++)
|
|
{
|
|
samples[i] = buffer[bufferReadOffset];
|
|
if (bufferReadOffset != bufferIndex)
|
|
bufferReadOffset++;
|
|
if (bufferReadOffset == bufferLength)
|
|
bufferReadOffset = 0;
|
|
}
|
|
nsamp /= 2;
|
|
}
|
|
|
|
public void DiscardSamples()
|
|
{
|
|
bufferIndex = 0;
|
|
bufferReadOffset = 0;
|
|
}
|
|
}
|
|
}
|