/// <summary> /// 异步写入单点 /// </summary> /// <param name="Value"></param> /// <param name="Start"></param> /// <param name="T"></param> public WriteInvoke(object Value, int Start, Type T) { PointValue = new WritePoint(Value, Start, T); }
static int Main(string[] args) { Console.WriteLine("Album Art Downloader XUI Script Tester"); Console.WriteLine("(this is an internal development tool)"); Console.WriteLine(); if (!ScriptManager.CompileIfRequired()) { WaitForExit(-1); return(-1); //Failed } ScriptManager.LoadScripts(); //Create a lookup of script by name var scripts = ScriptManager.Scripts.ToDictionary(script => script.Name); WritePoint status = new WritePoint(); Console.WriteLine(); Console.WriteLine(); //Read through test list using (var testList = File.OpenText(Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "TestList.txt"))) { while (!testList.EndOfStream) { string line = testList.ReadLine(); if (line == "END") { break; //Premature end requested } if (!line.StartsWith(";")) //; Used for comment marking { string[] fields = line.Split('\t'); IScript script; if (scripts.TryGetValue(fields[0], out script)) { using (status.WriteAt()) { Console.Write(new String(' ', Console.WindowWidth - status.X)); Console.SetCursorPosition(status.X, status.Y); Console.Write("Testing: " + script.Name); } TestScript(script, fields[1], fields[2]); } else { Console.WriteLine("WARNING: Could not find script: " + fields[0]); } } } } using (status.WriteAt()) { Console.Write(new String(' ', Console.WindowWidth - status.X)); } Console.WriteLine(); Console.WriteLine("All tests complete"); WaitForExit(0); return(0); }