mirror of
https://github.com/aaru-dps/RedBookPlayer.git
synced 2025-12-16 11:14:39 +00:00
44 lines
1.1 KiB
C#
44 lines
1.1 KiB
C#
using System;
|
|
using CSCore;
|
|
using WaveFormat = CSCore.WaveFormat;
|
|
|
|
namespace RedBookPlayer.Models.Audio
|
|
{
|
|
public class PlayerSource : IWaveSource
|
|
{
|
|
public delegate int ReadFunction(byte[] buffer, int offset, int count);
|
|
|
|
readonly ReadFunction _read;
|
|
|
|
public bool Run = true;
|
|
|
|
public PlayerSource(ReadFunction read) => _read = read;
|
|
|
|
public WaveFormat WaveFormat => new WaveFormat();
|
|
bool IAudioSource.CanSeek => throw new NotImplementedException();
|
|
|
|
public long Position
|
|
{
|
|
get => throw new NotImplementedException();
|
|
set => throw new NotImplementedException();
|
|
}
|
|
|
|
public long Length => throw new NotImplementedException();
|
|
|
|
public int Read(byte[] buffer, int offset, int count)
|
|
{
|
|
if(Run)
|
|
return _read(buffer, offset, count);
|
|
|
|
Array.Clear(buffer, offset, count);
|
|
|
|
return count;
|
|
}
|
|
|
|
public void Dispose() {}
|
|
|
|
public void Start() => Run = true;
|
|
|
|
public void Stop() => Run = false;
|
|
}
|
|
} |