diff options
Diffstat (limited to 'AudioTester/Core')
-rw-r--r-- | AudioTester/Core/Extensions/Matrix2x2Extensions.cs | 14 | ||||
-rw-r--r-- | AudioTester/Core/RenderStreamer.cs | 44 |
2 files changed, 58 insertions, 0 deletions
diff --git a/AudioTester/Core/Extensions/Matrix2x2Extensions.cs b/AudioTester/Core/Extensions/Matrix2x2Extensions.cs new file mode 100644 index 0000000..0e0b405 --- /dev/null +++ b/AudioTester/Core/Extensions/Matrix2x2Extensions.cs @@ -0,0 +1,14 @@ +using System.Drawing; +using System.Numerics; + +namespace AudioTester.Core.Extensions +{ + internal static class PointExtensions + { + public static Point GetPoint(this Vector2 vector) + { + return new Point((int)MathF.Round(vector.X), (int)MathF.Round(vector.Y)); + } + } + +} diff --git a/AudioTester/Core/RenderStreamer.cs b/AudioTester/Core/RenderStreamer.cs new file mode 100644 index 0000000..85f76a5 --- /dev/null +++ b/AudioTester/Core/RenderStreamer.cs @@ -0,0 +1,44 @@ +using NAudio.Codecs; +using NAudio.Wave; +using NAudio.Wave.SampleProviders; + +namespace AudioTester.Core +{ + internal class RenderStreamer : ISampleProvider + { + public WaveFormat WaveFormat { get; } + + private const int ReadBufferSize = 1024; + private int sample; + private Random rand; + + private AudioFileReader streamReader; + private ISampleProvider provider; + + public RenderStreamer() + { + rand = new Random(); + WaveFormat = WaveFormat.CreateIeeeFloatWaveFormat(44100, 2); + sample = 0; + + streamReader = new AudioFileReader(@"Resources\test.wav"); + + provider = streamReader.ToSampleProvider(); + } + + public int Read(float[] buffer, int offset, int count) + { + int length = provider.Read(buffer, offset, count); + + Console.WriteLine("i: {0}; o:{1}", count, length); + + if (length < count) + { + streamReader.Position = 0; + length += provider.Read(buffer, length, count - length); + } + + return length; + } + } +} |