diff options
Diffstat (limited to 'AudioTester/Program.cs')
-rw-r--r-- | AudioTester/Program.cs | 88 |
1 files changed, 56 insertions, 32 deletions
diff --git a/AudioTester/Program.cs b/AudioTester/Program.cs index 95d6049..c2a3a0b 100644 --- a/AudioTester/Program.cs +++ b/AudioTester/Program.cs @@ -1,47 +1,36 @@ using AudioTester.Core; -using AudioTester.Core.Extensions; +using NAudio.Mixer; using NAudio.Wave; using RayRoom.Core; -using System.Drawing; +using RayRoom.NAudioEngine; using System.Numerics; namespace AudioTester { internal class Program { - private const int width = 1280; - private const int height = 720; - private const float scale = 100; -#pragma warning disable CA1416 // Проверка совместимости платформы + [STAThread] static void Main(string[] args) { - AudioSimulator a = new AudioSimulator(new Settings(44100, 5, 330)); + var settings = new Settings(44100, 100, 330, 100f); + RaySimulator simulator = new RaySimulator(settings); - var array = a.Simulate(Vector2.Zero, 3600); - var bitmap = new Bitmap(width, height); + var sampler = new AudioSampler(@".\Resources\test.wav", true); - Matrix2x2 mat = new(Vector2.UnitX * scale, Vector2.UnitY * -scale); - - Pen foreground = new(Color.FromArgb(20, Color.White), 1); - - using (Graphics g = Graphics.FromImage(bitmap)) + List<ICastObject> structures = new List<ICastObject> { - g.Clear(Color.Black); - - Vector2 offset = new(width / 2, height / 2); - for (int i = 0; i < array.Length; i++) - { - g.DrawLine(foreground, - (array[i].a * mat + offset).GetPoint(), - (array[i].b * mat + offset).GetPoint()); - } - } - - bitmap.Save($"bitmap.png"); -#pragma warning restore CA1416 // Проверка совместимости платформы - return; - var device = new RenderStreamer(); + new AudioSource(new Vector2(0, 9), 10, sampler), + new Line(new Vector2(-2, 10), new Vector2(-2, -10)), + new Line(new Vector2(-1, 8), new Vector2(1, 8)), + new Line(new Vector2(2, 10), new Vector2(2, -10)), + new Line(new Vector2(-2, -10), new Vector2(2, -10)), + new Line(new Vector2(-2, 10), new Vector2(2, 10)), + }; + + var device = new AudioOut(settings); + device.Container = new ResultContainer(0, new AudioSourceCollision[0]); + Vector2 pos = new Vector2(0, 0); using (var wo = new WasapiOut(NAudio.CoreAudioApi.AudioClientShareMode.Shared, 150)) { wo.Init(device); @@ -49,10 +38,45 @@ namespace AudioTester while (wo.PlaybackState == PlaybackState.Playing) { - Thread.Sleep(100); - if (Console.KeyAvailable) - wo.Stop(); + { + var key = Console.ReadKey(); + + switch (key.Key) + { + case ConsoleKey.Q: + break; + case ConsoleKey.E: + break; + case ConsoleKey.W: + pos += new Vector2(0, 0.1f); + break; + case ConsoleKey.S: + pos += new Vector2(0, -0.1f); + break; + case ConsoleKey.A: + pos += new Vector2(-0.1f, 0); + break; + case ConsoleKey.D: + pos += new Vector2(0.1f, 0); + break; + case ConsoleKey.Escape: + wo.Stop(); + break; + default: + break; + } + Console.CursorLeft = 0; + Console.CursorTop = 0; + Console.WriteLine(" {0} ", pos.ToString("0.00")); + } + + var left = simulator.Simulate(structures, -Vector2.UnitX * 0.1f + pos, 0, 36); + var right = simulator.Simulate(structures, Vector2.UnitX * 0.1f + pos, 1, 36); + + var container = new ResultContainer(36, left.distances.Concat(right.distances).ToArray()); + + device.Container = container; } } } |