Cores/Nds/NdsAudio.cs
namespace Emulotl.Nds;

public sealed class NdsAudio : IAudioOutput
{
	public int SampleRate => NdsConstants.AudioSampleRate;
	public int Channels => 2;
	public int SamplesPerFrame => NdsConstants.AudioSamplesPerFrame;
	public short[] OutputBuffer { get; } = new short[NdsConstants.AudioSamplesPerFrame * 2];
	public int SamplesWritten { get; set; }

	public void BeginFrame() => SamplesWritten = 0;

	public void PushSample( short left, short right )
	{
		if ( SamplesWritten >= SamplesPerFrame )
			return;

		int i = SamplesWritten * 2;
		OutputBuffer[i] = left;
		OutputBuffer[i + 1] = right;
		SamplesWritten++;
	}

	public void EndFrame() { }
}