private static void InitializeFixCommonErrorsLine(Nikse.SubtitleEdit.Forms.FixCommonErrors target, string line, string line2)
 {
     var subtitle = new Subtitle();
     subtitle.Paragraphs.Add(new Paragraph(line, 100, 10000));
     subtitle.Paragraphs.Add(new Paragraph(line2, 10001, 30000));
     target.Initialize(subtitle, new Nikse.SubtitleEdit.Logic.SubtitleFormats.SubRip(), System.Text.Encoding.UTF8);
 }
Example #2
0
        internal void Initialize(Nikse.SubtitleEdit.Logic.Networking.NikseWebServiceSession networkSession)
        {
            _networkSession = networkSession;
            Text = Configuration.Settings.Language.NetworkChat.Title + " - " + _networkSession.CurrentUser.UserName;

            listViewUsers.Items.Clear();
            foreach (var user in _networkSession.Users)
            {
                AddUser(user);
            }

            listViewChat.Items.Clear();
            foreach (var message in _networkSession.ChatLog)
            {
                AddChatMessage(message.User, message.Message);
                listViewChat.EnsureVisible(listViewChat.Items.Count - 1);
            }
        }
Example #3
0
        internal bool Initialize(string vobSubFileName, VobSubOcrSettings vobSubOcrSettings, bool useNewSubIdxCode, Nikse.SubtitleEdit.Forms.Main main)
        {
            _main = main;
            _useNewSubIdxCode = useNewSubIdxCode;
            buttonOK.Enabled = false;
            buttonCancel.Enabled = false;
            buttonStartOcr.Enabled = false;
            buttonStop.Enabled = false;
            buttonNewCharacterDatabase.Enabled = false;
            buttonEditCharacterDatabase.Enabled = false;
            labelStatus.Text = string.Empty;
            progressBar1.Visible = false;
            progressBar1.Maximum = 100;
            progressBar1.Value = 0;
            numericUpDownPixelsIsSpace.Value = vobSubOcrSettings.XOrMorePixelsMakesSpace;
            numericUpDownNumberOfPixelsIsSpaceNOCR.Value = vobSubOcrSettings.XOrMorePixelsMakesSpace;
            _vobSubOcrSettings = vobSubOcrSettings;

            InitializeModi();
            InitializeTesseract();
            LoadImageCompareCharacterDatabaseList();

            SetOcrMethod();

            FileName = vobSubFileName;
            Text += " - " + Path.GetFileName(FileName);

            return InitializeSubIdx(vobSubFileName);
        }
Example #4
0
 void AudioWaveForm_OnPositionSelected(object sender, Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e)
 {
     mediaPlayer.CurrentPosition = e.Seconds;
     if (e.Paragraph != null)
         SubtitleListview1.SelectIndexAndEnsureVisible(_subtitle.GetIndex(e.Paragraph));
 }
Example #5
0
 private void MovePrevNext(Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e, Paragraph paragraph, Paragraph beforeParagraph, int index)
 {
     if (e.MovePreviousOrNext)
     {
         if (e.MouseDownParagraphType == AudioVisualizer.MouseDownParagraphType.Start)
         {
             var prev = _subtitle.GetParagraphOrDefault(index - 1);
             if (prev != null)
             {
                 prev.EndTime.TotalMilliseconds = prev.EndTime.TotalMilliseconds + (e.Paragraph.StartTime.TotalMilliseconds - beforeParagraph.StartTime.TotalMilliseconds);
                 SubtitleListview1.SetStartTime(index - 1, prev);
                 SubtitleListview1.SetDuration(index - 1, prev);
                 audioVisualizer.Invalidate();
             }
         }
         else if (e.MouseDownParagraphType == AudioVisualizer.MouseDownParagraphType.End)
         {
             var next = _subtitle.GetParagraphOrDefault(index + 1);
             if (next != null)
             {
                 next.StartTime.TotalMilliseconds = next.StartTime.TotalMilliseconds + (e.Paragraph.EndTime.TotalMilliseconds - beforeParagraph.EndTime.TotalMilliseconds);
                 SubtitleListview1.SetStartTime(index + 1, next);
                 SubtitleListview1.SetDuration(index + 1, next);
                 audioVisualizer.Invalidate();
             }
         }
     }
 }
Example #6
0
        void AudioWaveForm_OnTimeChanged(object sender, Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e)
        {
            var paragraph = e.Paragraph;
            var beforeParagraph = e.BeforeParagraph;
            if (beforeParagraph == null)
                beforeParagraph = paragraph;

            if (beforeParagraph.StartTime.TotalMilliseconds == paragraph.StartTime.TotalMilliseconds &&
                beforeParagraph.EndTime.TotalMilliseconds == paragraph.EndTime.TotalMilliseconds)
                _makeHistoryPaused = true;

            int selectedIndex = FirstSelectedIndex;
            int index = _subtitle.Paragraphs.IndexOf(paragraph);
            if (index == _subtitleListViewIndex)
            {
                // Make history item for rollback (change paragraph back for history + change again)
                _subtitle.Paragraphs[index] = new Paragraph(beforeParagraph);
                MakeHistoryForUndoOnlyIfNotResent(string.Format(_language.VideoControls.BeforeChangingTimeInWaveFormX, "#" + paragraph.Number + " " + paragraph.Text));
                _subtitle.Paragraphs[index] = paragraph;
                _makeHistoryPaused = true;

                MovePrevNext(e, paragraph, beforeParagraph, index);

                Paragraph original = null;
                if (_subtitleAlternate != null && SubtitleListview1.IsAlternateTextColumnVisible)
                    original = Utilities.GetOriginalParagraph(index, beforeParagraph, _subtitleAlternate.Paragraphs);

                if (Configuration.Settings.General.UseTimeFormatHHMMSSFF)
                { // so we don't get weird rounds we'll use whole frames when moving start time
                    double fr = 1000.0 / Configuration.Settings.General.CurrentFrameRate;
                    if (e.BeforeParagraph != null && e.BeforeParagraph.StartTime.TotalMilliseconds != e.Paragraph.StartTime.TotalMilliseconds &&
                                                     e.BeforeParagraph.Duration.TotalMilliseconds == e.Paragraph.Duration.TotalMilliseconds)
                    {
                        // move paragraph
                        paragraph.StartTime.TotalMilliseconds = ((int)Math.Round(paragraph.StartTime.TotalMilliseconds / fr)) * fr;
                        paragraph.EndTime.TotalMilliseconds = paragraph.StartTime.TotalMilliseconds + e.BeforeParagraph.Duration.TotalMilliseconds;
                    }
                    else if (e.BeforeParagraph != null && e.BeforeParagraph.EndTime.TotalMilliseconds == e.Paragraph.EndTime.TotalMilliseconds)
                    {
                        paragraph.EndTime.TotalMilliseconds = ((int)Math.Round(paragraph.EndTime.TotalMilliseconds / fr)) * fr;
                        int end = SubtitleFormat.MillisecondsToFrames(paragraph.EndTime.TotalMilliseconds);
                        int dur = SubtitleFormat.MillisecondsToFrames(paragraph.Duration.TotalMilliseconds);
                        paragraph.StartTime.TotalMilliseconds = SubtitleFormat.FramesToMilliseconds(end - dur);
                    }
                }

                timeUpDownStartTime.TimeCode = paragraph.StartTime;
                decimal durationInSeconds = (decimal) (paragraph.Duration.TotalSeconds);
                if (durationInSeconds >= numericUpDownDuration.Minimum && durationInSeconds <= numericUpDownDuration.Maximum)
                    SetDurationInSeconds((double)durationInSeconds);

                if (original != null)
                {
                    original.StartTime.TotalMilliseconds = paragraph.StartTime.TotalMilliseconds;
                    original.EndTime.TotalMilliseconds = paragraph.EndTime.TotalMilliseconds;
                }
            }
            else
            {
                if (_subtitleAlternate != null && SubtitleListview1.IsAlternateTextColumnVisible && Configuration.Settings.General.ShowOriginalAsPreviewIfAvailable)
                {
                    index = _subtitleAlternate.GetIndex(paragraph);
                    if (index >= 0)
                    {
                        // Make history item for rollback (change paragraph back for history + change again)
                        _subtitleAlternate.Paragraphs[index] = new Paragraph(beforeParagraph);
                        MakeHistoryForUndoOnlyIfNotResent(string.Format(_language.VideoControls.BeforeChangingTimeInWaveFormX, "#" + paragraph.Number + " " + paragraph.Text));
                        _subtitleAlternate.Paragraphs[index] = paragraph;
                        _makeHistoryPaused = true;

                        var current = Utilities.GetOriginalParagraph(index, beforeParagraph, _subtitle.Paragraphs);
                        if (current != null)
                        {
                            current.StartTime.TotalMilliseconds = paragraph.StartTime.TotalMilliseconds;
                            current.EndTime.TotalMilliseconds = paragraph.EndTime.TotalMilliseconds;

                            index = _subtitle.GetIndex(current);

                            SubtitleListview1.SetStartTime(index, paragraph);
                            SubtitleListview1.SetDuration(index, paragraph);

                            if (index == selectedIndex)
                            {
                                timeUpDownStartTime.TimeCode = paragraph.StartTime;
                                decimal durationInSeconds = (decimal)(paragraph.Duration.TotalSeconds);
                                if (durationInSeconds >= numericUpDownDuration.Minimum && durationInSeconds <= numericUpDownDuration.Maximum)
                                    SetDurationInSeconds((double)durationInSeconds);
                            }
                        }
                    }
                }
                else if (_subtitleAlternate != null && SubtitleListview1.IsAlternateTextColumnVisible)
                {
                    index = _subtitle.GetIndex(paragraph);
                    if (index >= 0)
                    {
                        // Make history item for rollback (change paragraph back for history + change again)
                        _subtitle.Paragraphs[index] = new Paragraph(beforeParagraph);
                        MakeHistoryForUndoOnlyIfNotResent(string.Format(_language.VideoControls.BeforeChangingTimeInWaveFormX, "#" + paragraph.Number + " " + paragraph.Text));
                        _subtitle.Paragraphs[index] = paragraph;
                        _makeHistoryPaused = true;

                        var original = Utilities.GetOriginalParagraph(index, beforeParagraph, _subtitleAlternate.Paragraphs);
                        if (original != null)
                        {
                            original.StartTime.TotalMilliseconds = paragraph.StartTime.TotalMilliseconds;
                            original.EndTime.TotalMilliseconds = paragraph.EndTime.TotalMilliseconds;
                        }
                        SubtitleListview1.SetStartTime(index, paragraph);
                        SubtitleListview1.SetDuration(index, paragraph);
                    }
                }
                else
                {
                    if (index >= 0)
                    {
                        // Make history item for rollback (change paragraph back for history + change again)
                        _subtitle.Paragraphs[index] = new Paragraph(beforeParagraph);
                        MakeHistoryForUndoOnlyIfNotResent(string.Format(_language.VideoControls.BeforeChangingTimeInWaveFormX, "#" + paragraph.Number + " " + paragraph.Text));
                        _subtitle.Paragraphs[index] = paragraph;
                        _makeHistoryPaused = true;

                        MovePrevNext(e, paragraph, beforeParagraph, index);
                    }

                    SubtitleListview1.SetStartTime(index, paragraph);
                    SubtitleListview1.SetDuration(index, paragraph);
                }
            }
            beforeParagraph.StartTime.TotalMilliseconds = paragraph.StartTime.TotalMilliseconds;
            beforeParagraph.EndTime.TotalMilliseconds = paragraph.EndTime.TotalMilliseconds;
            _makeHistoryPaused = false;
        }
Example #7
0
        void AudioWaveForm_OnNewSelectionRightClicked(object sender, Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e)
        {
            SubtitleListview1.SelectIndexAndEnsureVisible(_subtitle.GetIndex(e.Paragraph));

            addParagraphHereToolStripMenuItem.Visible = true;
            addParagraphAndPasteToolStripMenuItem.Visible = Clipboard.ContainsText();

            deleteParagraphToolStripMenuItem.Visible = false;
            toolStripMenuItemFocusTextbox.Visible = false;
            splitToolStripMenuItem1.Visible = false;
            mergeWithPreviousToolStripMenuItem.Visible = false;
            mergeWithNextToolStripMenuItem.Visible = false;

            contextMenuStripWaveForm.Show(MousePosition.X, MousePosition.Y);
        }
Example #8
0
        void AudioWaveForm_OnSingleClick(object sender, Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e)
        {
            timerWaveForm.Stop();
            _endSeconds = -1;
            if (mediaPlayer.VideoPlayer != null)
                mediaPlayer.Pause();

            mediaPlayer.CurrentPosition = e.Seconds;

            int index = -1;
            if (SubtitleListview1.SelectedItems.Count > 0)
                index = SubtitleListview1.SelectedItems[0].Index;
            SetWaveFormPosition(audioVisualizer.StartPositionSeconds, e.Seconds, index);
            timerWaveForm.Start();
        }
Example #9
0
        void AudioWaveForm_OnTimeChangedAndOffsetRest(object sender, Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e)
        {
            if (mediaPlayer.VideoPlayer == null)
                return;

            int index = _subtitle.Paragraphs.IndexOf(e.Paragraph);
            if (index < 0)
            {
                if (_subtitleAlternate != null && SubtitleListview1.IsAlternateTextColumnVisible && Configuration.Settings.General.ShowOriginalAsPreviewIfAvailable)
                {
                    index = _subtitleAlternate.GetIndex(e.Paragraph);
                    if (index >= 0)
                    {
                        var current = Utilities.GetOriginalParagraph(index, e.Paragraph, _subtitle.Paragraphs);
                        if (current != null)
                        {
                            index = _subtitle.Paragraphs.IndexOf(current);
                        }
                    }
                }
                else if (_subtitleAlternate != null && SubtitleListview1.IsAlternateTextColumnVisible)
                {
                    index = _subtitle.GetIndex(e.Paragraph);
                }
            }
            if (index >= 0)
            {
                SubtitleListview1.SelectIndexAndEnsureVisible(index);
                mediaPlayer.CurrentPosition = e.Seconds;
                ButtonSetStartAndOffsetRestClick(null, null);
            }
            audioVisualizer.Invalidate();
        }
Example #10
0
 void AudioWaveForm_OnDoubleClickNonParagraph(object sender, Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e)
 {
     if (mediaPlayer.VideoPlayer != null)
     {
         _endSeconds = -1;
         if (e.Paragraph == null)
         {
             if (Configuration.Settings.VideoControls.WaveFormDoubleClickOnNonParagraphAction == "PlayPause")
                 mediaPlayer.TogglePlayPause();
         }
         else
         {
             SubtitleListview1.SelectIndexAndEnsureVisible(_subtitle.GetIndex(e.Paragraph));
         }
     }
 }
Example #11
0
 void AudioWaveForm_OnNonParagraphRightClicked(object sender, Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e)
 {
     addParagraphHereToolStripMenuItem.Visible = false;
     addParagraphAndPasteToolStripMenuItem.Visible = false;
     deleteParagraphToolStripMenuItem.Visible = false;
     toolStripMenuItemFocusTextbox.Visible = !string.IsNullOrEmpty(Configuration.Settings.Language.WaveForm.FocusTextBox); //TODO: Remove in 3.4
     splitToolStripMenuItem1.Visible = false;
     mergeWithPreviousToolStripMenuItem.Visible = false;
     mergeWithNextToolStripMenuItem.Visible = false;
     toolStripSeparator11.Visible = false;
     toolStripMenuItemWaveFormPlaySelection.Visible = false;
     toolStripSeparator24.Visible = false;
     contextMenuStripWaveForm.Show(MousePosition.X, MousePosition.Y);
 }
Example #12
0
 private void AudioWaveform_OnNonParagraphRightClicked(object sender, Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e)
 {
     addParagraphHereToolStripMenuItem.Visible = false;
     addParagraphAndPasteToolStripMenuItem.Visible = false;
     deleteParagraphToolStripMenuItem.Visible = false;
     toolStripMenuItemFocusTextbox.Visible = true;
     splitToolStripMenuItem1.Visible = false;
     mergeWithPreviousToolStripMenuItem.Visible = false;
     mergeWithNextToolStripMenuItem.Visible = false;
     toolStripSeparator11.Visible = false;
     toolStripMenuItemWaveformPlaySelection.Visible = false;
     toolStripSeparator24.Visible = false;
     contextMenuStripWaveform.Show(MousePosition.X, MousePosition.Y);
 }
Example #13
0
        private void AudioWaveForm_OnParagraphRightClicked(object sender, Nikse.SubtitleEdit.Controls.AudioVisualizer.ParagraphEventArgs e)
        {
            SubtitleListview1.SelectIndexAndEnsureVisible(_subtitle.GetIndex(e.Paragraph));

            addParagraphHereToolStripMenuItem.Visible = false;
            addParagraphAndPasteToolStripMenuItem.Visible = false;
            deleteParagraphToolStripMenuItem.Visible = true;
            toolStripMenuItemFocusTextbox.Visible = true;
            splitToolStripMenuItem1.Visible = true;
            mergeWithPreviousToolStripMenuItem.Visible = true;
            mergeWithNextToolStripMenuItem.Visible = true;
            toolStripSeparator11.Visible = true;
            toolStripMenuItemWaveFormPlaySelection.Visible = true;
            toolStripSeparator24.Visible = true;

            _audioWaveFormRightClickSeconds = e.Seconds;
            contextMenuStripWaveForm.Show(MousePosition.X, MousePosition.Y);
        }
 public void ShowSubtitle(Nikse.SubtitleEdit.Core.Paragraph p)
 {
     View.ShowSubtitle(p);
 }
 public void ShowSubtitle(Nikse.SubtitleEdit.Core.Paragraph p)
 {
     if (p == null)
     { 
         _subtitleWebView.MainFrame.LoadHtmlString(new NSString("<body style='background-color:black'></body>"), null);
     }
     else
     {
         var sb = new StringBuilder();
         bool first = true;
         foreach (var line in p.Text.SplitToLines())
         {
             if (!first)
             {
                 sb.Append("<br />");
             }
             sb.Append(line);
             first = false;
         }
         _subtitleWebView.MainFrame.LoadHtmlString(new NSString("<body style='background-color:black;color:white;text-align:center'>" + sb.ToString() +  "<body>"), null);
     }
    
 }