private void ShowOptimizators() { OptimizatorList.Items.Clear(); foreach (IOptimizator Optimizator in AllOptimizators) { OptimizatorList.Items.Add(Optimizator.GetName(), IsEnabled(Optimizator)); } }
private string[] Import(string File) { var Ori = Wrapper.Import(File); OriStrs = new string[Ori.LongLength]; Ori.CopyTo(OriStrs, 0); for (uint i = 0; i < Ori.LongLength; i++) { if (i % (Ori.LongLength > 5000 ? 55 : 15) == 0) { lblState.Text = string.Format("Initializing... ({0}/{1} Lines)", i, Ori.LongLength); Application.DoEvents(); } foreach (IOptimizator Optimizator in EnabledOptimizators) { try { if (Optimizator is DialogueFilter) { continue; } Optimizator.AfterOpen(ref Ori[i], i); } catch { } } } var Filter = new DialogueFilter(); string[] Strs = null; if (IsEnabled(Filter)) { ValidList = ValidDialogueList(Ori); List <string> List = new List <string>(); for (uint i = 0; i < Ori.LongLength; i++) { if (ValidList[i]) { List.Add(Ori[i]); } } Strs = List.ToArray(); } return(Strs ?? Ori); }
private void PreviewDialoguesClick(object sender, EventArgs e) { OpenFileDialog fd = new OpenFileDialog(); fd.Filter = "All Files|*.*"; if (fd.ShowDialog() != DialogResult.OK) { return; } Wrapper Wrapper = new Wrapper(); var Content = Wrapper.Import(fd.FileName, TryLastPluginFirst: true); for (uint i = 0; i < Content.LongLength; i++) { if (i % (Content.LongLength > 5000 ? 55 : 15) == 0) { lblState.Text = string.Format("Initializing... ({0}/{1} Lines)", i, Content.LongLength); Application.DoEvents(); } foreach (IOptimizator Optimizator in EnabledOptimizators) { try { Optimizator.AfterOpen(ref Content[i], i); } catch { } } } for (uint i = 0; i < Content.LongLength; i++) { if (i % (Content.LongLength > 5000 ? 55 : 15) == 0) { lblState.Text = string.Format("Finishing... ({0}/{1} Lines)", i, Content.LongLength); Application.DoEvents(); } foreach (IOptimizator Optimizator in EnabledOptimizators) { try { Optimizator.BeforeTranslate(ref Content[i], i); } catch { } } } ShowStrings(Content, NewFile: true); lblState.Text = "IDLE"; }
public static string Execute(string inputTactSize, string inputStaves) { try { var tactSize = Parser.ToNoteOrDefault(inputTactSize); var tacts = Parser.ToTacts(inputStaves); Optimizator.ExecuteForNote(tactSize); Optimizator.ExecuteForTacts(tacts); var validationResults = Validator.Compare(tactSize, tacts); return(Reporter.ExportToString(validationResults)); } catch (Exception ex) { return(string.Format(Constants.Messages.OutputError, ex.Message)); } }
public void RunNoteOptimizeTests(Note input, Note expectedOptimized) { Optimizator.ExecuteForNote(input); Assert.True(input.Numerator == expectedOptimized.Numerator && input.Denominator == expectedOptimized.Denominator); }
private void ProcessFiles(string[] Files, uint Begin = 0) { Program.TaskInfo = new TaskInfo() { LastTask = Files, LastTaskPos = Begin }; DialogResult?dr = null; long TotalCount = 0; Wrapper Wrapper = new Wrapper(); for (uint x = Begin; x < Files.LongLength; x++) { Program.TaskInfo.LastTaskPos = x; Program.SaveTask(); string FileName = Files[x]; #if !DEBUG try { #endif var Strings = Import(FileName); if (Strings.Length == 0) { if (dr == null || dr == DialogResult.Retry) { dr = MessageBox.Show($"Failed to Open the Script \"{Path.GetFileName(FileName)}\"", "TLBOT 2", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error); } if (dr == DialogResult.Retry) { x--; } if (dr == DialogResult.Ignore || dr == DialogResult.Retry) { continue; } if (dr == DialogResult.Abort) { break; } } TotalCount += (from z in Strings select(long) z.Length).Sum(); ShowStrings(Strings, NewFile: true); var TaskCreator = new TranslationTask(Strings, Program.Settings.SourceLang, Program.Settings.TargetLang, EnabledOptimizators); Task Translate = TaskCreator.Build(); Translate.Start(); Text = $"TLBOT 2 - {Path.GetFileName(FileName)}"; int DL = 0; int LP = 0; while (TaskCreator.TaskStatus != TranslationTask.Status.Finished) { try { if (Program.TLMode == TransMode.Normal || Program.TLMode == TransMode.Multithread) { lblState.Text = string.Format("{4}... ({0}/{1} Lines) ({2}/{3} Files)", TaskCreator.Progress, Strings.LongLength, x, Files.LongLength, GetStateName(TaskCreator.TaskStatus)); TaskProgress.Maximum = Strings.Length; TaskProgress.Value = (int)TaskCreator.Progress; StringList.SelectedIndex = (int)TaskCreator.Progress; if (++DL == 20) { DL = 0; int Progress = (int)(Program.TLMode == TransMode.Normal ? TaskCreator.Progress : 0); ShowStrings(TaskCreator.Lines, LP, Progress); LP = Progress; } } else { if (TaskCreator.TaskStatus == TranslationTask.Status.Translating) { lblState.Text = string.Format("Translating... ({0}/{1} Files)", x, Files.LongLength); } else { lblState.Text = string.Format("{4}... ({2}/{3} Lines) ({0}/{1} Files)", x, Files.LongLength, TaskCreator.Progress, Strings.LongLength, GetStateName(TaskCreator.TaskStatus)); if (++DL == 20) { DL = 0; int Progress = (int)TaskCreator.Progress; ShowStrings(TaskCreator.Lines, LP, Progress); LP = Progress; } } TaskProgress.Maximum = Files.Length; TaskProgress.Value = (int)x; } } catch { } Application.DoEvents(); Thread.Sleep(100); } for (uint i = 0; i < TaskCreator.Lines.LongLength; i++) { if (i % (Strings.LongLength > 5000 ? 55 : 15) == 0) { lblState.Text = string.Format("Finishing... ({0}/{1} Lines)", i, Strings.LongLength); Application.DoEvents(); } foreach (IOptimizator Optimizator in EnabledOptimizators) { try { if (Optimizator is DialogueFilter) { continue; } Optimizator.BeforeSave(ref TaskCreator.Lines[i], i); } catch { } } } bool Changed = false; for (uint i = 0; i < Strings.Length; i++) { if (Strings[i] != TaskCreator.Lines[i]) { Changed = true; break; } } if (Changed) { if (Program.Settings.LSTMode) { string LstPath = Path.GetDirectoryName(FileName) + "\\Strings-" + Path.GetFileNameWithoutExtension(FileName) + ".lst"; Dump(TaskCreator.Lines, LstPath); } else { Export(TaskCreator.Lines, FileName); } } #if !DEBUG } catch { } #endif } TaskProgress.Value = TaskProgress.Maximum; Text = "TLBOT 2"; lblState.Text = "IDLE"; Program.TaskInfo = new TaskInfo(); MessageBox.Show($"Task Finished:\n{TotalCount:N0} letters in this game.\nwith ${20 * (TotalCount / 1000000.00):N} of cost", "TLBOT", MessageBoxButtons.OK, MessageBoxIcon.Information); }
public Task Build(Action OnFinish = null) { return(new Task(() => { TaskStatus = Status.PreProcessing; if (Program.Settings.Multithread) { Parallel.For(0, Lines.LongLength, new Action <long>((a) => { uint i = (uint)a; foreach (IOptimizator Optimizator in Optimizators) { #if !DEBUG try { #endif Optimizator.BeforeTranslate(ref Lines[i], i); #if !DEBUG } catch { } #endif } Progress++; })); } else { for (uint i = 0; i < Lines.LongLength; i++) { foreach (IOptimizator Optimizator in Optimizators) { #if !DEBUG try { #endif Optimizator.BeforeTranslate(ref Lines[i], i); #if !DEBUG } catch { } #endif Progress++; } } } TaskStatus = Status.Translating; switch (Program.TLMode) { case TransMode.Massive: Lines = Lines.TranslateMassive(SourceLanguage, TargetLanguage, Program.TLClient); break; case TransMode.Multithread: Lines = Lines.TranslateMultithread(SourceLanguage, TargetLanguage, Program.TLClient, x => Progress = x); break; case TransMode.Normal: for (uint i = 0; i < Lines.Length; i++) { Lines[i] = Lines[i].Translate(SourceLanguage, TargetLanguage, Program.TLClient); Progress = i; } break; } TaskStatus = Status.PostProcessing; Progress = 0; if (Program.Settings.Multithread) { Parallel.For(0, Lines.LongLength, new Action <long>((a) => { Progress++; uint i = (uint)a; foreach (IOptimizator Optimizator in Optimizators) { try { #if DEBUG && !NODEBUG var Begin = DateTime.Now; string Line = Lines[i]; Optimizator.AfterTranslate(ref Line, i); if (System.Diagnostics.Debugger.IsAttached) { var ElapsedTime = (DateTime.Now - Begin).TotalMilliseconds; if (ElapsedTime > 300 || Lines[i] != Line) { System.Diagnostics.Debugger.Break(); } } Lines[i] = Line; #else Optimizator.AfterTranslate(ref Lines[i], i); #endif } catch { } } })); } else { for (uint i = 0; i < Lines.LongLength; i++) { foreach (IOptimizator Optimizator in Optimizators) { try { #if DEBUG && !NODEBUG var Begin = DateTime.Now; string Line = Lines[i]; Optimizator.AfterTranslate(ref Line, i); if (System.Diagnostics.Debugger.IsAttached) { var ElapsedTime = (DateTime.Now - Begin).TotalMilliseconds; if (ElapsedTime > 300 || Lines[i] != Line) { System.Diagnostics.Debugger.Break(); } } Lines[i] = Line; #else Optimizator.AfterTranslate(ref Lines[i], i); #endif } catch { } } Progress++; } } TaskStatus = Status.Finished; OnFinish?.Invoke(); })); }