private static void InitializeFixCommonErrorsLine(Nikse.SubtitleEdit.Forms.FixCommonErrors target, string line) { var subtitle = new Subtitle(); subtitle.Paragraphs.Add(new Paragraph(line, 100, 10000)); target.Initialize(subtitle, new Nikse.SubtitleEdit.Logic.SubtitleFormats.SubRip(), System.Text.Encoding.UTF8); }
private void ButtonSyncClick(object sender, EventArgs e) { double startPos = MediaPlayerStart.CurrentPosition; double endPos = MediaPlayerEnd.CurrentPosition; if (!(endPos > startPos)) { MessageBox.Show(_language.StartSceneMustComeBeforeEndScene, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } SetSyncFactorLabel(); double subStart = _paragraphs[comboBoxStartTexts.SelectedIndex].StartTime.TotalMilliseconds / TimeCode.BaseUnit; double subEnd = _paragraphs[comboBoxEndTexts.SelectedIndex].StartTime.TotalMilliseconds / TimeCode.BaseUnit; double subDiff = subEnd - subStart; double realDiff = endPos - startPos; // speed factor double factor = realDiff / subDiff; // adjust to starting position double adjust = startPos - subStart * factor; foreach (Paragraph p in _paragraphs) { p.Adjust(factor, adjust); } // fix overlapping time codes using (var formFix = new FixCommonErrors()) { var tmpSubtitle = new Subtitle { WasLoadedWithFrameNumbers = _originalSubtitle.WasLoadedWithFrameNumbers }; foreach (Paragraph p in _paragraphs) { tmpSubtitle.Paragraphs.Add(new Paragraph(p)); } formFix.Initialize(tmpSubtitle, tmpSubtitle.OriginalFormat, System.Text.Encoding.UTF8); formFix.FixOverlappingDisplayTimes(); _paragraphs.Clear(); foreach (Paragraph p in formFix.FixedSubtitle.Paragraphs) { _paragraphs.Add(new Paragraph(p)); } } // update comboboxes int startSaveIdx = comboBoxStartTexts.SelectedIndex; int endSaveIdx = comboBoxEndTexts.SelectedIndex; FillStartAndEndTexts(); comboBoxStartTexts.SelectedIndex = startSaveIdx; comboBoxEndTexts.SelectedIndex = endSaveIdx; labelSyncDone.Text = _language.SynchronizationDone; _timerHideSyncLabel.Start(); }
private void InitializeFixCommonErrorsLine(FixCommonErrors target, string line, string line2) { _subtitle = new Subtitle(); _subtitle.Paragraphs.Add(new Paragraph(line, 100, 10000)); _subtitle.Paragraphs.Add(new Paragraph(line2, 10001, 30000)); target.Initialize(_subtitle, new SubRip(), System.Text.Encoding.UTF8); }
private void FixCommonErrors(bool onlySelectedLines) { if (IsSubtitleLoaded) { ReloadFromSourceView(); SaveSubtitleListviewIndices(); using (var fixErrors = new FixCommonErrors()) { if (onlySelectedLines) { var selectedLines = new Subtitle { WasLoadedWithFrameNumbers = _subtitle.WasLoadedWithFrameNumbers }; foreach (int index in SubtitleListview1.SelectedIndices) selectedLines.Paragraphs.Add(_subtitle.Paragraphs[index]); fixErrors.Initialize(selectedLines, GetCurrentSubtitleFormat(), GetCurrentEncoding()); } else { fixErrors.Initialize(_subtitle, GetCurrentSubtitleFormat(), GetCurrentEncoding()); } if (fixErrors.ShowDialog(this) == DialogResult.OK) { MakeHistoryForUndo(_language.BeforeCommonErrorFixes); _subtitle.Renumber(); if (onlySelectedLines) { // we only update selected lines int i = 0; if (_networkSession != null) { var deletes = new List<int>(); _networkSession.TimerStop(); foreach (int index in SubtitleListview1.SelectedIndices) { var pOld = _subtitle.Paragraphs[index]; var p = fixErrors.FixedSubtitle.GetParagraphOrDefaultById(pOld.ID); if (p == null) { deletes.Add(index); } else { _subtitle.Paragraphs[index] = p; SubtitleListview1.SetTimeAndText(index, p); } i++; } NetworkGetSendUpdates(deletes, 0, null); } else { for (int index = SubtitleListview1.SelectedIndices.Count - 1; index >= 0; index--) { var idx = SubtitleListview1.SelectedIndices[index]; var pOld = _subtitle.Paragraphs[idx]; var p = fixErrors.FixedSubtitle.GetParagraphOrDefaultById(pOld.ID); if (p == null) { _subtitle.Paragraphs.RemoveAt(idx); } else { _subtitle.Paragraphs[idx] = p; } i++; } } ShowStatus(_language.CommonErrorsFixedInSelectedLines); } else { _subtitle.Paragraphs.Clear(); foreach (var p in fixErrors.FixedSubtitle.Paragraphs) _subtitle.Paragraphs.Add(p); ShowStatus(_language.CommonErrorsFixed); } _subtitle.Renumber(); ShowSource(); SubtitleListview1.Fill(_subtitle, _subtitleAlternate); RestoreSubtitleListviewIndices(); } Configuration.Settings.CommonErrors.StartSize = fixErrors.Width + ";" + fixErrors.Height; Configuration.Settings.CommonErrors.StartPosition = fixErrors.Left + ";" + fixErrors.Top; } } else { DisplaySubtitleNotLoadedMessage(); } ShowInTaskbar = true; }
private void ButtonSyncClick(object sender, EventArgs e) { double startPos = MediaPlayerStart.CurrentPosition; double endPos = MediaPlayerEnd.CurrentPosition; if (endPos > startPos) { double subStart = _paragraphs[comboBoxStartTexts.SelectedIndex].StartTime.TotalMilliseconds / 1000.0; double subEnd = _paragraphs[comboBoxEndTexts.SelectedIndex].StartTime.TotalMilliseconds / 1000.0; double subDiff = subEnd - subStart; double realDiff = endPos - startPos; // speed factor double factor = realDiff / subDiff; // adjust to starting position double adjust = startPos - subStart * factor; foreach (Paragraph p in _paragraphs) { p.Adjust(factor, adjust); } // fix overlapping time codes var formFix = new FixCommonErrors(); var tmpSubtitle = new Subtitle { WasLoadedWithFrameNumbers = _originalSubtitle.WasLoadedWithFrameNumbers }; foreach (Paragraph p in _paragraphs) tmpSubtitle.Paragraphs.Add(new Paragraph(p)); formFix.Initialize(tmpSubtitle, tmpSubtitle.OriginalFormat, System.Text.Encoding.UTF8); formFix.FixOverlappingDisplayTimes(); _paragraphs.Clear(); foreach (Paragraph p in formFix.FixedSubtitle.Paragraphs) _paragraphs.Add(new Paragraph(p)); // update comboboxes int startSaveIdx = comboBoxStartTexts.SelectedIndex; int endSaveIdx = comboBoxEndTexts.SelectedIndex; FillStartAndEndTexts(); comboBoxStartTexts.SelectedIndex = startSaveIdx; comboBoxEndTexts.SelectedIndex = endSaveIdx; labelSyncDone.Text = _language.SynchronizationDone; timerHideSyncLabel.Start(); } else { MessageBox.Show(_language.StartSceneMustComeBeforeEndScene, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
private static void InitializeFixCommonErrorsLine(FixCommonErrors target, string line) { var subtitle = new Subtitle(); subtitle.Paragraphs.Add(new Paragraph(line, 100, 10000)); target.Initialize(subtitle, new SubRip(), System.Text.Encoding.UTF8); }