Exemple #1
0
 private void ShowOptimizators()
 {
     OptimizatorList.Items.Clear();
     foreach (IOptimizator Optimizator in AllOptimizators)
     {
         OptimizatorList.Items.Add(Optimizator.GetName(), IsEnabled(Optimizator));
     }
 }
Exemple #2
0
        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);
        }
Exemple #3
0
        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";
        }
Exemple #4
0
        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);
 }
Exemple #6
0
        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);
        }
Exemple #7
0
        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();
            }));
        }