much happenings in this fucked up world
This commit is contained in:
parent
29fc81ef37
commit
2f6d3b7b5b
55 changed files with 1067 additions and 52 deletions
79
Legacy Tools/MitziPlayer/Program.cs
Normal file
79
Legacy Tools/MitziPlayer/Program.cs
Normal file
|
@ -0,0 +1,79 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.IO.Ports;
|
||||
|
||||
using System.Timers;
|
||||
|
||||
namespace MitziPlayer
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
static INIFile Config;
|
||||
static string PathPrefix="/";
|
||||
static int[] Signals;
|
||||
static SerialPort port = null;
|
||||
static System.Timers.Timer FrameTimer;
|
||||
static string MPVArgs = "";
|
||||
static long index = 0;
|
||||
static int frameSkip = 6;
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Config = INIFile.Load(args[0]);
|
||||
PathPrefix = Path.GetFullPath(args[0]).Replace("manifest.ini", "");
|
||||
Signals = LoadSignals(File.ReadAllLines(PathPrefix+Config.Data["data"]));
|
||||
if (args.Count() == 3)
|
||||
{
|
||||
MPVArgs = $"--start={args[2]} ";
|
||||
index = int.Parse(args[2])*60;
|
||||
}
|
||||
port = new SerialPort(args[1], 9600, Parity.None, 8, StopBits.One);
|
||||
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
|
||||
port.Open();
|
||||
FrameTimer = new System.Timers.Timer((1000d/double.Parse(Config.Data["frames-per-second"]))*frameSkip);
|
||||
FrameTimer.Elapsed += PlaySignal;
|
||||
FrameTimer.AutoReset = true;
|
||||
|
||||
PlayAudio();
|
||||
FrameTimer.Start();
|
||||
Console.ReadLine();
|
||||
port.Close();
|
||||
}
|
||||
|
||||
private static void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
|
||||
{
|
||||
Console.Write(port.ReadExisting());
|
||||
}
|
||||
|
||||
static int[] LoadSignals(string[] inData)
|
||||
{
|
||||
List<int> tmpOut = new List<int>();
|
||||
foreach (string frame in inData) tmpOut.Add(int.Parse(frame, NumberStyles.HexNumber));
|
||||
return tmpOut.ToArray();
|
||||
}
|
||||
|
||||
static void PlayAudio()
|
||||
{
|
||||
Process.Start("mpv", MPVArgs+PathPrefix+Config.Data["audio"]);
|
||||
}
|
||||
|
||||
static void PlaySignal(Object sender, ElapsedEventArgs e)
|
||||
{
|
||||
if (index >= Signals.Length)
|
||||
{
|
||||
FrameTimer.Stop();
|
||||
Console.WriteLine("Complete!");
|
||||
return;
|
||||
}
|
||||
int b = Signals[index];
|
||||
|
||||
char[] bytesOut = { (char)(64 | ((b & 8) | (b & 4) | (b & 2) | (b & 1))), (char)(64 | (((b & 128) | (b & 64) | (b & 32) | (b & 16)) >> 4)), (char)(64 | (((b & 2048) | (b & 1024) | (b & 512) | (b & 256)) >> 8)), (char)(64 | (((b & 32768) | (b & 16384) | (b & 8192) | (b & 4096)) >> 12)), (char)(64 | (((b & 262144) | (b & 131072) | (b & 65536)) >> 16)) };
|
||||
port.Write(new string(bytesOut));
|
||||
Console.WriteLine(b.ToString("B19"));
|
||||
index+=frameSkip;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue