aboutsummaryrefslogtreecommitdiff
path: root/AudioTester/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'AudioTester/Program.cs')
-rw-r--r--AudioTester/Program.cs88
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;
}
}
}