diff --git a/src/ChangeLog.txt b/src/ChangeLog.txt index 66d8feee9..148f560cb 100644 --- a/src/ChangeLog.txt +++ b/src/ChangeLog.txt @@ -3,6 +3,7 @@ Subtitle Edit Changelog 3.2 (not yet released) * NEW: + * Can now display spectrogram (as well as waveform) * Subtitle formats: D-Cinema, Cavena890, Timed Text 1.0, Captionate, Flash xml * Most important shortcuts in Options -> Settings * Export bdn-xml/images + import/ocr bdn-xml/images @@ -21,7 +22,7 @@ Subtitle Edit Changelog * Merge short lines can now also merge lines ending with ".", "?", or "!" (optional) * Can now read Adobe Encore files starting with line numbers (thx Pier) * FIXED: - * Adjust all times did not work for MicroDvd + * Adjust all times did not work for MicroDvd (thx Wolf) * Now removes empty white spaces from Google translate * Crash when entering invalid text in source view (thx Frédéric) * Fixed a few bugs in DVD Architect format + added another two new variants (thx Jacob) diff --git a/src/Forms/AddWareForm.cs b/src/Forms/AddWareForm.cs index 07df99a0a..b81d606c8 100644 --- a/src/Forms/AddWareForm.cs +++ b/src/Forms/AddWareForm.cs @@ -130,7 +130,7 @@ namespace Nikse.SubtitleEdit.Forms this.Refresh(); waveFile.GeneratePeakSamples(sampleRate); // samples per second - SampleRate - if (Configuration.Settings.General.GenerateSpectrogram) + if (Configuration.Settings.VideoControls.GenerateSpectrogram) { labelProgress.Text = Configuration.Settings.Language.AddWaveForm.GeneratingSpectrogram; this.Refresh(); diff --git a/src/Forms/Main.Designer.cs b/src/Forms/Main.Designer.cs index 0ffd89609..d25de4457 100644 --- a/src/Forms/Main.Designer.cs +++ b/src/Forms/Main.Designer.cs @@ -223,6 +223,7 @@ this.toolStripMenuItemPlayRateNormal = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemPlayRateFast = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItemPlayRateVeryFast = new System.Windows.Forms.ToolStripMenuItem(); + this.AudioWaveForm = new Nikse.SubtitleEdit.Controls.WaveForm(); this.tabControlButtons = new System.Windows.Forms.TabControl(); this.tabPageTranslate = new System.Windows.Forms.TabPage(); this.labelTranslateTip = new System.Windows.Forms.Label(); @@ -244,6 +245,7 @@ this.buttonPlayCurrent = new System.Windows.Forms.Button(); this.buttonPlayNext = new System.Windows.Forms.Button(); this.tabPageCreate = new System.Windows.Forms.TabPage(); + this.timeUpDownVideoPosition = new Nikse.SubtitleEdit.Controls.TimeUpDown(); this.buttonGotoSub = new System.Windows.Forms.Button(); this.buttonBeforeText = new System.Windows.Forms.Button(); this.buttonSetEnd = new System.Windows.Forms.Button(); @@ -262,6 +264,7 @@ this.labelVideoPosition = new System.Windows.Forms.Label(); this.buttonSecBack1 = new System.Windows.Forms.Button(); this.tabPageAdjust = new System.Windows.Forms.TabPage(); + this.timeUpDownVideoPositionAdjust = new Nikse.SubtitleEdit.Controls.TimeUpDown(); this.buttonAdjustSetEndTime = new System.Windows.Forms.Button(); this.buttonSetEndAndGoToNext = new System.Windows.Forms.Button(); this.buttonSetStartAndOffsetRest = new System.Windows.Forms.Button(); @@ -293,6 +296,10 @@ this.mergeWithNextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripMenuItemWaveFormPlaySelection = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator24 = new System.Windows.Forms.ToolStripSeparator(); + this.showWaveformAndSpectrogramToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.showOnlyWaveformToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.showOnlySpectrogramToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.splitContainerMain = new System.Windows.Forms.SplitContainer(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.tabControlSubtitle = new System.Windows.Forms.TabControl(); @@ -327,6 +334,7 @@ this.labelTextLineTotal = new System.Windows.Forms.Label(); this.labelCharactersPerSecond = new System.Windows.Forms.Label(); this.buttonUnBreak = new System.Windows.Forms.Button(); + this.timeUpDownStartTime = new Nikse.SubtitleEdit.Controls.TimeUpDown(); this.buttonUndoListViewChanges = new System.Windows.Forms.Button(); this.labelStartTimeWarning = new System.Windows.Forms.Label(); this.labelDurationWarning = new System.Windows.Forms.Label(); @@ -337,22 +345,14 @@ this.textBoxListViewText = new System.Windows.Forms.TextBox(); this.labelDuration = new System.Windows.Forms.Label(); this.labelAutoDuration = new System.Windows.Forms.Label(); + this.SubtitleListview1 = new Nikse.SubtitleEdit.Controls.SubtitleListView(); this.tabPage2 = new System.Windows.Forms.TabPage(); this.textBoxSource = new System.Windows.Forms.TextBox(); this.panelVideoPlayer = new System.Windows.Forms.Panel(); + this.mediaPlayer = new Nikse.SubtitleEdit.Controls.VideoPlayerContainer(); this.contextMenuStripEmpty = new System.Windows.Forms.ContextMenuStrip(this.components); this.insertLineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.imageListPlayRate = new System.Windows.Forms.ImageList(this.components); - this.toolStripSeparator24 = new System.Windows.Forms.ToolStripSeparator(); - this.showWaveformAndSpectrogramToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.showOnlyWaveformToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.showOnlySpectrogramToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.timeUpDownStartTime = new Nikse.SubtitleEdit.Controls.TimeUpDown(); - this.SubtitleListview1 = new Nikse.SubtitleEdit.Controls.SubtitleListView(); - this.mediaPlayer = new Nikse.SubtitleEdit.Controls.VideoPlayerContainer(); - this.AudioWaveForm = new Nikse.SubtitleEdit.Controls.WaveForm(); - this.timeUpDownVideoPosition = new Nikse.SubtitleEdit.Controls.TimeUpDown(); - this.timeUpDownVideoPositionAdjust = new Nikse.SubtitleEdit.Controls.TimeUpDown(); this.statusStrip1.SuspendLayout(); this.toolStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout(); @@ -2023,6 +2023,36 @@ this.toolStripMenuItemPlayRateVeryFast.Text = "Very fast"; this.toolStripMenuItemPlayRateVeryFast.Click += new System.EventHandler(this.veryFastToolStripMenuItem_Click); // + // AudioWaveForm + // + this.AudioWaveForm.AllowDrop = true; + this.AudioWaveForm.AllowNewSelection = true; + this.AudioWaveForm.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.AudioWaveForm.BackColor = System.Drawing.Color.Black; + this.AudioWaveForm.BackgroundColor = System.Drawing.Color.Black; + this.AudioWaveForm.Color = System.Drawing.Color.GreenYellow; + this.AudioWaveForm.DrawGridLines = true; + this.AudioWaveForm.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(18))))); + this.AudioWaveForm.Location = new System.Drawing.Point(472, 32); + this.AudioWaveForm.Margin = new System.Windows.Forms.Padding(0); + this.AudioWaveForm.Name = "AudioWaveForm"; + this.AudioWaveForm.NewSelectionParagraph = null; + this.AudioWaveForm.SelectedColor = System.Drawing.Color.Red; + this.AudioWaveForm.ShowSpectrogram = false; + this.AudioWaveForm.ShowWaveform = true; + this.AudioWaveForm.Size = new System.Drawing.Size(768, 229); + this.AudioWaveForm.StartPositionSeconds = 0D; + this.AudioWaveForm.TabIndex = 6; + this.AudioWaveForm.TextColor = System.Drawing.Color.Gray; + this.AudioWaveForm.WaveFormNotLoadedText = "Click to add wave form"; + this.AudioWaveForm.WavePeaks = null; + this.AudioWaveForm.ZoomFactor = 1D; + this.AudioWaveForm.Click += new System.EventHandler(this.AudioWaveForm_Click); + this.AudioWaveForm.DragDrop += new System.Windows.Forms.DragEventHandler(this.AudioWaveForm_DragDrop); + this.AudioWaveForm.DragEnter += new System.Windows.Forms.DragEventHandler(this.AudioWaveForm_DragEnter); + // // tabControlButtons // this.tabControlButtons.Controls.Add(this.tabPageTranslate); @@ -2298,6 +2328,16 @@ this.tabPageCreate.Text = "Create"; this.tabPageCreate.UseVisualStyleBackColor = true; // + // timeUpDownVideoPosition + // + this.timeUpDownVideoPosition.AutoSize = true; + this.timeUpDownVideoPosition.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.timeUpDownVideoPosition.Location = new System.Drawing.Point(86, 192); + this.timeUpDownVideoPosition.Margin = new System.Windows.Forms.Padding(4); + this.timeUpDownVideoPosition.Name = "timeUpDownVideoPosition"; + this.timeUpDownVideoPosition.Size = new System.Drawing.Size(92, 25); + this.timeUpDownVideoPosition.TabIndex = 12; + // // buttonGotoSub // this.buttonGotoSub.Location = new System.Drawing.Point(6, 58); @@ -2523,6 +2563,16 @@ this.tabPageAdjust.Text = "Adjust"; this.tabPageAdjust.UseVisualStyleBackColor = true; // + // timeUpDownVideoPositionAdjust + // + this.timeUpDownVideoPositionAdjust.AutoSize = true; + this.timeUpDownVideoPositionAdjust.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.timeUpDownVideoPositionAdjust.Location = new System.Drawing.Point(87, 214); + this.timeUpDownVideoPositionAdjust.Margin = new System.Windows.Forms.Padding(4); + this.timeUpDownVideoPositionAdjust.Name = "timeUpDownVideoPositionAdjust"; + this.timeUpDownVideoPositionAdjust.Size = new System.Drawing.Size(92, 25); + this.timeUpDownVideoPositionAdjust.TabIndex = 13; + // // buttonAdjustSetEndTime // this.buttonAdjustSetEndTime.Location = new System.Drawing.Point(6, 84); @@ -2819,6 +2869,32 @@ this.toolStripMenuItemWaveFormPlaySelection.Text = "Play selection"; this.toolStripMenuItemWaveFormPlaySelection.Click += new System.EventHandler(this.toolStripMenuItemWaveFormPlaySelection_Click); // + // toolStripSeparator24 + // + this.toolStripSeparator24.Name = "toolStripSeparator24"; + this.toolStripSeparator24.Size = new System.Drawing.Size(249, 6); + // + // showWaveformAndSpectrogramToolStripMenuItem + // + this.showWaveformAndSpectrogramToolStripMenuItem.Name = "showWaveformAndSpectrogramToolStripMenuItem"; + this.showWaveformAndSpectrogramToolStripMenuItem.Size = new System.Drawing.Size(252, 22); + this.showWaveformAndSpectrogramToolStripMenuItem.Text = "Show waveform and spectrogram"; + this.showWaveformAndSpectrogramToolStripMenuItem.Click += new System.EventHandler(this.showWaveformAndSpectrogramToolStripMenuItem_Click); + // + // showOnlyWaveformToolStripMenuItem + // + this.showOnlyWaveformToolStripMenuItem.Name = "showOnlyWaveformToolStripMenuItem"; + this.showOnlyWaveformToolStripMenuItem.Size = new System.Drawing.Size(252, 22); + this.showOnlyWaveformToolStripMenuItem.Text = "Show only waveform"; + this.showOnlyWaveformToolStripMenuItem.Click += new System.EventHandler(this.showOnlyWaveformToolStripMenuItem_Click); + // + // showOnlySpectrogramToolStripMenuItem + // + this.showOnlySpectrogramToolStripMenuItem.Name = "showOnlySpectrogramToolStripMenuItem"; + this.showOnlySpectrogramToolStripMenuItem.Size = new System.Drawing.Size(252, 22); + this.showOnlySpectrogramToolStripMenuItem.Text = "Show only spectrogram"; + this.showOnlySpectrogramToolStripMenuItem.Click += new System.EventHandler(this.showOnlySpectrogramToolStripMenuItem_Click); + // // splitContainerMain // this.splitContainerMain.Dock = System.Windows.Forms.DockStyle.Fill; @@ -3184,6 +3260,16 @@ this.buttonUnBreak.UseVisualStyleBackColor = true; this.buttonUnBreak.Click += new System.EventHandler(this.ButtonUnBreakClick); // + // timeUpDownStartTime + // + this.timeUpDownStartTime.AutoSize = true; + this.timeUpDownStartTime.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.timeUpDownStartTime.Location = new System.Drawing.Point(9, 27); + this.timeUpDownStartTime.Margin = new System.Windows.Forms.Padding(4); + this.timeUpDownStartTime.Name = "timeUpDownStartTime"; + this.timeUpDownStartTime.Size = new System.Drawing.Size(92, 25); + this.timeUpDownStartTime.TabIndex = 0; + // // buttonUndoListViewChanges // this.buttonUndoListViewChanges.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -3305,6 +3391,31 @@ this.labelAutoDuration.TabIndex = 30; this.labelAutoDuration.Text = "Auto"; // + // SubtitleListview1 + // + this.SubtitleListview1.AllowDrop = true; + this.SubtitleListview1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.SubtitleListview1.ContextMenuStrip = this.contextMenuStripListview; + this.SubtitleListview1.FirstVisibleIndex = -1; + this.SubtitleListview1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.SubtitleListview1.FullRowSelect = true; + this.SubtitleListview1.GridLines = true; + this.SubtitleListview1.HideSelection = false; + this.SubtitleListview1.Location = new System.Drawing.Point(1, 3); + this.SubtitleListview1.Name = "SubtitleListview1"; + this.SubtitleListview1.Size = new System.Drawing.Size(932, 148); + this.SubtitleListview1.SmallImageList = this.imageList1; + this.SubtitleListview1.TabIndex = 0; + this.SubtitleListview1.UseCompatibleStateImageBehavior = false; + this.SubtitleListview1.View = System.Windows.Forms.View.Details; + this.SubtitleListview1.SelectedIndexChanged += new System.EventHandler(this.SubtitleListview1_SelectedIndexChanged); + this.SubtitleListview1.DragDrop += new System.Windows.Forms.DragEventHandler(this.SubtitleListview1_DragDrop); + this.SubtitleListview1.DragEnter += new System.Windows.Forms.DragEventHandler(this.SubtitleListview1_DragEnter); + this.SubtitleListview1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.SubtitleListview1_KeyDown); + this.SubtitleListview1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.SubtitleListview1_MouseDoubleClick); + // // tabPage2 // this.tabPage2.Controls.Add(this.textBoxSource); @@ -3349,88 +3460,6 @@ this.panelVideoPlayer.Size = new System.Drawing.Size(282, 278); this.panelVideoPlayer.TabIndex = 5; // - // contextMenuStripEmpty - // - this.contextMenuStripEmpty.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.insertLineToolStripMenuItem}); - this.contextMenuStripEmpty.Name = "contextMenuStripEmpty"; - this.contextMenuStripEmpty.Size = new System.Drawing.Size(126, 26); - // - // insertLineToolStripMenuItem - // - this.insertLineToolStripMenuItem.Name = "insertLineToolStripMenuItem"; - this.insertLineToolStripMenuItem.Size = new System.Drawing.Size(125, 22); - this.insertLineToolStripMenuItem.Text = "Insert line"; - this.insertLineToolStripMenuItem.Click += new System.EventHandler(this.insertLineToolStripMenuItem_Click); - // - // imageListPlayRate - // - this.imageListPlayRate.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageListPlayRate.ImageStream"))); - this.imageListPlayRate.TransparentColor = System.Drawing.Color.Transparent; - this.imageListPlayRate.Images.SetKeyName(0, "FastForward.png"); - this.imageListPlayRate.Images.SetKeyName(1, "FastForwardHighLight.png"); - // - // toolStripSeparator24 - // - this.toolStripSeparator24.Name = "toolStripSeparator24"; - this.toolStripSeparator24.Size = new System.Drawing.Size(249, 6); - // - // showWaveformAndSpectrogramToolStripMenuItem - // - this.showWaveformAndSpectrogramToolStripMenuItem.Name = "showWaveformAndSpectrogramToolStripMenuItem"; - this.showWaveformAndSpectrogramToolStripMenuItem.Size = new System.Drawing.Size(252, 22); - this.showWaveformAndSpectrogramToolStripMenuItem.Text = "Show waveform and spectrogram"; - this.showWaveformAndSpectrogramToolStripMenuItem.Click += new System.EventHandler(this.showWaveformAndSpectrogramToolStripMenuItem_Click); - // - // showOnlyWaveformToolStripMenuItem - // - this.showOnlyWaveformToolStripMenuItem.Name = "showOnlyWaveformToolStripMenuItem"; - this.showOnlyWaveformToolStripMenuItem.Size = new System.Drawing.Size(252, 22); - this.showOnlyWaveformToolStripMenuItem.Text = "Show only waveform"; - this.showOnlyWaveformToolStripMenuItem.Click += new System.EventHandler(this.showOnlyWaveformToolStripMenuItem_Click); - // - // showOnlySpectrogramToolStripMenuItem - // - this.showOnlySpectrogramToolStripMenuItem.Name = "showOnlySpectrogramToolStripMenuItem"; - this.showOnlySpectrogramToolStripMenuItem.Size = new System.Drawing.Size(252, 22); - this.showOnlySpectrogramToolStripMenuItem.Text = "Show only spectrogram"; - this.showOnlySpectrogramToolStripMenuItem.Click += new System.EventHandler(this.showOnlySpectrogramToolStripMenuItem_Click); - // - // timeUpDownStartTime - // - this.timeUpDownStartTime.AutoSize = true; - this.timeUpDownStartTime.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.timeUpDownStartTime.Location = new System.Drawing.Point(9, 27); - this.timeUpDownStartTime.Margin = new System.Windows.Forms.Padding(4); - this.timeUpDownStartTime.Name = "timeUpDownStartTime"; - this.timeUpDownStartTime.Size = new System.Drawing.Size(92, 25); - this.timeUpDownStartTime.TabIndex = 0; - // - // SubtitleListview1 - // - this.SubtitleListview1.AllowDrop = true; - this.SubtitleListview1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.SubtitleListview1.ContextMenuStrip = this.contextMenuStripListview; - this.SubtitleListview1.FirstVisibleIndex = -1; - this.SubtitleListview1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.SubtitleListview1.FullRowSelect = true; - this.SubtitleListview1.GridLines = true; - this.SubtitleListview1.HideSelection = false; - this.SubtitleListview1.Location = new System.Drawing.Point(1, 3); - this.SubtitleListview1.Name = "SubtitleListview1"; - this.SubtitleListview1.Size = new System.Drawing.Size(932, 148); - this.SubtitleListview1.SmallImageList = this.imageList1; - this.SubtitleListview1.TabIndex = 0; - this.SubtitleListview1.UseCompatibleStateImageBehavior = false; - this.SubtitleListview1.View = System.Windows.Forms.View.Details; - this.SubtitleListview1.SelectedIndexChanged += new System.EventHandler(this.SubtitleListview1_SelectedIndexChanged); - this.SubtitleListview1.DragDrop += new System.Windows.Forms.DragEventHandler(this.SubtitleListview1_DragDrop); - this.SubtitleListview1.DragEnter += new System.Windows.Forms.DragEventHandler(this.SubtitleListview1_DragEnter); - this.SubtitleListview1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.SubtitleListview1_KeyDown); - this.SubtitleListview1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.SubtitleListview1_MouseDoubleClick); - // // mediaPlayer // this.mediaPlayer.AllowDrop = true; @@ -3451,55 +3480,26 @@ this.mediaPlayer.DragDrop += new System.Windows.Forms.DragEventHandler(this.mediaPlayer_DragDrop); this.mediaPlayer.DragEnter += new System.Windows.Forms.DragEventHandler(this.mediaPlayer_DragEnter); // - // AudioWaveForm + // contextMenuStripEmpty // - this.AudioWaveForm.AllowDrop = true; - this.AudioWaveForm.AllowNewSelection = true; - this.AudioWaveForm.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.AudioWaveForm.BackColor = System.Drawing.Color.Black; - this.AudioWaveForm.BackgroundColor = System.Drawing.Color.Black; - this.AudioWaveForm.Color = System.Drawing.Color.GreenYellow; - this.AudioWaveForm.DrawGridLines = true; - this.AudioWaveForm.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(18))))); - this.AudioWaveForm.Location = new System.Drawing.Point(472, 32); - this.AudioWaveForm.Margin = new System.Windows.Forms.Padding(0); - this.AudioWaveForm.Name = "AudioWaveForm"; - this.AudioWaveForm.NewSelectionParagraph = null; - this.AudioWaveForm.SelectedColor = System.Drawing.Color.Red; - this.AudioWaveForm.ShowSpectrogram = false; - this.AudioWaveForm.ShowWaveform = false; - this.AudioWaveForm.Size = new System.Drawing.Size(768, 229); - this.AudioWaveForm.StartPositionSeconds = 0D; - this.AudioWaveForm.TabIndex = 6; - this.AudioWaveForm.TextColor = System.Drawing.Color.Gray; - this.AudioWaveForm.WaveFormNotLoadedText = "Click to add wave form"; - this.AudioWaveForm.WavePeaks = null; - this.AudioWaveForm.ZoomFactor = 1D; - this.AudioWaveForm.Click += new System.EventHandler(this.AudioWaveForm_Click); - this.AudioWaveForm.DragDrop += new System.Windows.Forms.DragEventHandler(this.AudioWaveForm_DragDrop); - this.AudioWaveForm.DragEnter += new System.Windows.Forms.DragEventHandler(this.AudioWaveForm_DragEnter); + this.contextMenuStripEmpty.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.insertLineToolStripMenuItem}); + this.contextMenuStripEmpty.Name = "contextMenuStripEmpty"; + this.contextMenuStripEmpty.Size = new System.Drawing.Size(126, 26); // - // timeUpDownVideoPosition + // insertLineToolStripMenuItem // - this.timeUpDownVideoPosition.AutoSize = true; - this.timeUpDownVideoPosition.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.timeUpDownVideoPosition.Location = new System.Drawing.Point(86, 192); - this.timeUpDownVideoPosition.Margin = new System.Windows.Forms.Padding(4); - this.timeUpDownVideoPosition.Name = "timeUpDownVideoPosition"; - this.timeUpDownVideoPosition.Size = new System.Drawing.Size(92, 25); - this.timeUpDownVideoPosition.TabIndex = 12; + this.insertLineToolStripMenuItem.Name = "insertLineToolStripMenuItem"; + this.insertLineToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.insertLineToolStripMenuItem.Text = "Insert line"; + this.insertLineToolStripMenuItem.Click += new System.EventHandler(this.insertLineToolStripMenuItem_Click); // - // timeUpDownVideoPositionAdjust + // imageListPlayRate // - this.timeUpDownVideoPositionAdjust.AutoSize = true; - this.timeUpDownVideoPositionAdjust.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.timeUpDownVideoPositionAdjust.Location = new System.Drawing.Point(87, 214); - this.timeUpDownVideoPositionAdjust.Margin = new System.Windows.Forms.Padding(4); - this.timeUpDownVideoPositionAdjust.Name = "timeUpDownVideoPositionAdjust"; - this.timeUpDownVideoPositionAdjust.Size = new System.Drawing.Size(92, 25); - this.timeUpDownVideoPositionAdjust.TabIndex = 13; + this.imageListPlayRate.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageListPlayRate.ImageStream"))); + this.imageListPlayRate.TransparentColor = System.Drawing.Color.Transparent; + this.imageListPlayRate.Images.SetKeyName(0, "FastForward.png"); + this.imageListPlayRate.Images.SetKeyName(1, "FastForwardHighLight.png"); // // Main // diff --git a/src/Forms/Main.cs b/src/Forms/Main.cs index ca8670369..f69704107 100644 --- a/src/Forms/Main.cs +++ b/src/Forms/Main.cs @@ -958,6 +958,9 @@ namespace Nikse.SubtitleEdit.Forms mergeWithPreviousToolStripMenuItem.Text = Configuration.Settings.Language.WaveForm.MergeWithPrevious; mergeWithNextToolStripMenuItem.Text = Configuration.Settings.Language.WaveForm.MergeWithNext; toolStripMenuItemWaveFormPlaySelection.Text = Configuration.Settings.Language.WaveForm.PlaySelection; + showWaveformAndSpectrogramToolStripMenuItem.Text = Configuration.Settings.Language.WaveForm.ShowWaveformAndSpectrogram; + showOnlyWaveformToolStripMenuItem.Text = Configuration.Settings.Language.WaveForm.ShowWaveformOnly; + showOnlySpectrogramToolStripMenuItem.Text = Configuration.Settings.Language.WaveForm.ShowSpectrogramOnly; toolStripButtonWaveFormZoomOut.ToolTipText = Configuration.Settings.Language.WaveForm.ZoomOut; toolStripButtonWaveFormZoomIn.ToolTipText = Configuration.Settings.Language.WaveForm.ZoomIn; diff --git a/src/Forms/Main.resx b/src/Forms/Main.resx index d0b1c0501..468e94252 100644 --- a/src/Forms/Main.resx +++ b/src/Forms/Main.resx @@ -577,9 +577,6 @@ 208, 56 - - 208, 56 - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -687,7 +684,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2 - CAAAAk1TRnQBSQFMAgEBAgEAAdgBBgHYAQYBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAAeABBgHgAQYBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/src/Forms/Settings.Designer.cs b/src/Forms/Settings.Designer.cs index e230fe870..a7170e501 100644 --- a/src/Forms/Settings.Designer.cs +++ b/src/Forms/Settings.Designer.cs @@ -33,6 +33,7 @@ this.tabControlSettings = new System.Windows.Forms.TabControl(); this.tabPageGenerel = new System.Windows.Forms.TabPage(); this.groupBoxMiscellaneous = new System.Windows.Forms.GroupBox(); + this.checkBoxPromptDeleteLines = new System.Windows.Forms.CheckBox(); this.checkBoxAutoWrapWhileTyping = new System.Windows.Forms.CheckBox(); this.labelMergeShortLines = new System.Windows.Forms.Label(); this.comboBoxMergeShortLineLength = new System.Windows.Forms.ComboBox(); @@ -209,7 +210,8 @@ this.colorDialogSSAStyle = new System.Windows.Forms.ColorDialog(); this.fontDialogSSAStyle = new System.Windows.Forms.FontDialog(); this.labelStatus = new System.Windows.Forms.Label(); - this.checkBoxPromptDeleteLines = new System.Windows.Forms.CheckBox(); + this.groupBoxSpectrogram = new System.Windows.Forms.GroupBox(); + this.checkBoxGenerateSpectrogram = new System.Windows.Forms.CheckBox(); this.tabControlSettings.SuspendLayout(); this.tabPageGenerel.SuspendLayout(); this.groupBoxMiscellaneous.SuspendLayout(); @@ -250,6 +252,7 @@ this.groupBoxProxyAuthentication.SuspendLayout(); this.tabPageShortcuts.SuspendLayout(); this.groupBoxShortcuts.SuspendLayout(); + this.groupBoxSpectrogram.SuspendLayout(); this.SuspendLayout(); // // buttonOK @@ -347,6 +350,16 @@ this.groupBoxMiscellaneous.TabStop = false; this.groupBoxMiscellaneous.Text = "Miscellaneous"; // + // checkBoxPromptDeleteLines + // + this.checkBoxPromptDeleteLines.AutoSize = true; + this.checkBoxPromptDeleteLines.Location = new System.Drawing.Point(436, 319); + this.checkBoxPromptDeleteLines.Name = "checkBoxPromptDeleteLines"; + this.checkBoxPromptDeleteLines.Size = new System.Drawing.Size(142, 17); + this.checkBoxPromptDeleteLines.TabIndex = 40; + this.checkBoxPromptDeleteLines.Text = "Prompt for deleting lines"; + this.checkBoxPromptDeleteLines.UseVisualStyleBackColor = true; + // // checkBoxAutoWrapWhileTyping // this.checkBoxAutoWrapWhileTyping.AutoSize = true; @@ -730,7 +743,7 @@ this.checkBoxShowFrameRate.AutoSize = true; this.checkBoxShowFrameRate.Location = new System.Drawing.Point(16, 29); this.checkBoxShowFrameRate.Name = "checkBoxShowFrameRate"; - this.checkBoxShowFrameRate.Size = new System.Drawing.Size(149, 17); + this.checkBoxShowFrameRate.Size = new System.Drawing.Size(154, 17); this.checkBoxShowFrameRate.TabIndex = 34; this.checkBoxShowFrameRate.Text = "Show frame rate in toolbar"; this.checkBoxShowFrameRate.UseVisualStyleBackColor = true; @@ -796,7 +809,7 @@ this.checkBoxHelp.AutoSize = true; this.checkBoxHelp.Location = new System.Drawing.Point(596, 80); this.checkBoxHelp.Name = "checkBoxHelp"; - this.checkBoxHelp.Size = new System.Drawing.Size(56, 17); + this.checkBoxHelp.Size = new System.Drawing.Size(55, 17); this.checkBoxHelp.TabIndex = 31; this.checkBoxHelp.Text = "Visible"; this.checkBoxHelp.UseVisualStyleBackColor = true; @@ -823,7 +836,7 @@ this.checkBoxSettings.AutoSize = true; this.checkBoxSettings.Location = new System.Drawing.Point(532, 80); this.checkBoxSettings.Name = "checkBoxSettings"; - this.checkBoxSettings.Size = new System.Drawing.Size(56, 17); + this.checkBoxSettings.Size = new System.Drawing.Size(55, 17); this.checkBoxSettings.TabIndex = 28; this.checkBoxSettings.Text = "Visible"; this.checkBoxSettings.UseVisualStyleBackColor = true; @@ -850,7 +863,7 @@ this.checkBoxSpellCheck.AutoSize = true; this.checkBoxSpellCheck.Location = new System.Drawing.Point(464, 80); this.checkBoxSpellCheck.Name = "checkBoxSpellCheck"; - this.checkBoxSpellCheck.Size = new System.Drawing.Size(56, 17); + this.checkBoxSpellCheck.Size = new System.Drawing.Size(55, 17); this.checkBoxSpellCheck.TabIndex = 26; this.checkBoxSpellCheck.Text = "Visible"; this.checkBoxSpellCheck.UseVisualStyleBackColor = true; @@ -877,7 +890,7 @@ this.checkBoxVisualSync.AutoSize = true; this.checkBoxVisualSync.Location = new System.Drawing.Point(398, 80); this.checkBoxVisualSync.Name = "checkBoxVisualSync"; - this.checkBoxVisualSync.Size = new System.Drawing.Size(56, 17); + this.checkBoxVisualSync.Size = new System.Drawing.Size(55, 17); this.checkBoxVisualSync.TabIndex = 19; this.checkBoxVisualSync.Text = "Visible"; this.checkBoxVisualSync.UseVisualStyleBackColor = true; @@ -904,7 +917,7 @@ this.checkBoxReplace.AutoSize = true; this.checkBoxReplace.Location = new System.Drawing.Point(335, 80); this.checkBoxReplace.Name = "checkBoxReplace"; - this.checkBoxReplace.Size = new System.Drawing.Size(56, 17); + this.checkBoxReplace.Size = new System.Drawing.Size(55, 17); this.checkBoxReplace.TabIndex = 16; this.checkBoxReplace.Text = "Visible"; this.checkBoxReplace.UseVisualStyleBackColor = true; @@ -931,7 +944,7 @@ this.checkBoxToolbarFind.AutoSize = true; this.checkBoxToolbarFind.Location = new System.Drawing.Point(272, 80); this.checkBoxToolbarFind.Name = "checkBoxToolbarFind"; - this.checkBoxToolbarFind.Size = new System.Drawing.Size(56, 17); + this.checkBoxToolbarFind.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarFind.TabIndex = 13; this.checkBoxToolbarFind.Text = "Visible"; this.checkBoxToolbarFind.UseVisualStyleBackColor = true; @@ -958,7 +971,7 @@ this.checkBoxToolbarSaveAs.AutoSize = true; this.checkBoxToolbarSaveAs.Location = new System.Drawing.Point(209, 80); this.checkBoxToolbarSaveAs.Name = "checkBoxToolbarSaveAs"; - this.checkBoxToolbarSaveAs.Size = new System.Drawing.Size(56, 17); + this.checkBoxToolbarSaveAs.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarSaveAs.TabIndex = 10; this.checkBoxToolbarSaveAs.Text = "Visible"; this.checkBoxToolbarSaveAs.UseVisualStyleBackColor = true; @@ -985,7 +998,7 @@ this.checkBoxToolbarSave.AutoSize = true; this.checkBoxToolbarSave.Location = new System.Drawing.Point(146, 80); this.checkBoxToolbarSave.Name = "checkBoxToolbarSave"; - this.checkBoxToolbarSave.Size = new System.Drawing.Size(56, 17); + this.checkBoxToolbarSave.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarSave.TabIndex = 7; this.checkBoxToolbarSave.Text = "Visible"; this.checkBoxToolbarSave.UseVisualStyleBackColor = true; @@ -1012,7 +1025,7 @@ this.checkBoxToolbarOpen.AutoSize = true; this.checkBoxToolbarOpen.Location = new System.Drawing.Point(83, 80); this.checkBoxToolbarOpen.Name = "checkBoxToolbarOpen"; - this.checkBoxToolbarOpen.Size = new System.Drawing.Size(56, 17); + this.checkBoxToolbarOpen.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarOpen.TabIndex = 4; this.checkBoxToolbarOpen.Text = "Visible"; this.checkBoxToolbarOpen.UseVisualStyleBackColor = true; @@ -1039,7 +1052,7 @@ this.checkBoxToolbarNew.AutoSize = true; this.checkBoxToolbarNew.Location = new System.Drawing.Point(20, 80); this.checkBoxToolbarNew.Name = "checkBoxToolbarNew"; - this.checkBoxToolbarNew.Size = new System.Drawing.Size(56, 17); + this.checkBoxToolbarNew.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarNew.TabIndex = 1; this.checkBoxToolbarNew.Text = "Visible"; this.checkBoxToolbarNew.UseVisualStyleBackColor = true; @@ -1150,7 +1163,7 @@ this.checkBoxVideoPlayerShowStopButton.AutoSize = true; this.checkBoxVideoPlayerShowStopButton.Location = new System.Drawing.Point(9, 19); this.checkBoxVideoPlayerShowStopButton.Name = "checkBoxVideoPlayerShowStopButton"; - this.checkBoxVideoPlayerShowStopButton.Size = new System.Drawing.Size(109, 17); + this.checkBoxVideoPlayerShowStopButton.Size = new System.Drawing.Size(111, 17); this.checkBoxVideoPlayerShowStopButton.TabIndex = 10; this.checkBoxVideoPlayerShowStopButton.Text = "Show stop button"; this.checkBoxVideoPlayerShowStopButton.UseVisualStyleBackColor = true; @@ -1217,7 +1230,7 @@ this.radioButtonVideoPlayerVLC.AutoSize = true; this.radioButtonVideoPlayerVLC.Location = new System.Drawing.Point(10, 46); this.radioButtonVideoPlayerVLC.Name = "radioButtonVideoPlayerVLC"; - this.radioButtonVideoPlayerVLC.Size = new System.Drawing.Size(45, 17); + this.radioButtonVideoPlayerVLC.Size = new System.Drawing.Size(43, 17); this.radioButtonVideoPlayerVLC.TabIndex = 4; this.radioButtonVideoPlayerVLC.TabStop = true; this.radioButtonVideoPlayerVLC.Text = "VLC"; @@ -1273,7 +1286,7 @@ this.radioButtonVideoPlayerDirectShow.AutoSize = true; this.radioButtonVideoPlayerDirectShow.Location = new System.Drawing.Point(10, 23); this.radioButtonVideoPlayerDirectShow.Name = "radioButtonVideoPlayerDirectShow"; - this.radioButtonVideoPlayerDirectShow.Size = new System.Drawing.Size(83, 17); + this.radioButtonVideoPlayerDirectShow.Size = new System.Drawing.Size(82, 17); this.radioButtonVideoPlayerDirectShow.TabIndex = 1; this.radioButtonVideoPlayerDirectShow.TabStop = true; this.radioButtonVideoPlayerDirectShow.Text = "DirectShow "; @@ -1284,7 +1297,7 @@ this.radioButtonVideoPlayerManagedDirectX.AutoSize = true; this.radioButtonVideoPlayerManagedDirectX.Location = new System.Drawing.Point(10, 90); this.radioButtonVideoPlayerManagedDirectX.Name = "radioButtonVideoPlayerManagedDirectX"; - this.radioButtonVideoPlayerManagedDirectX.Size = new System.Drawing.Size(108, 17); + this.radioButtonVideoPlayerManagedDirectX.Size = new System.Drawing.Size(106, 17); this.radioButtonVideoPlayerManagedDirectX.TabIndex = 6; this.radioButtonVideoPlayerManagedDirectX.TabStop = true; this.radioButtonVideoPlayerManagedDirectX.Text = "Managed DirectX"; @@ -1293,22 +1306,23 @@ // // tabPageWaveForm // + this.tabPageWaveForm.Controls.Add(this.groupBoxSpectrogram); this.tabPageWaveForm.Controls.Add(this.groupBox1); this.tabPageWaveForm.Controls.Add(this.groupBoxWaveFormAppearence); this.tabPageWaveForm.Location = new System.Drawing.Point(4, 22); this.tabPageWaveForm.Name = "tabPageWaveForm"; this.tabPageWaveForm.Size = new System.Drawing.Size(798, 411); this.tabPageWaveForm.TabIndex = 6; - this.tabPageWaveForm.Text = "Wave form"; + this.tabPageWaveForm.Text = "Waveform/spectrogram"; this.tabPageWaveForm.UseVisualStyleBackColor = true; // // groupBox1 // this.groupBox1.Controls.Add(this.buttonWaveFormsFolderEmpty); this.groupBox1.Controls.Add(this.labelWaveFormsFolderInfo); - this.groupBox1.Location = new System.Drawing.Point(6, 216); + this.groupBox1.Location = new System.Drawing.Point(6, 325); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(786, 192); + this.groupBox1.Size = new System.Drawing.Size(786, 77); this.groupBox1.TabIndex = 3; this.groupBox1.TabStop = false; // @@ -1484,7 +1498,7 @@ this.checkBoxSpellCheckAutoChangeNames.AutoSize = true; this.checkBoxSpellCheckAutoChangeNames.Location = new System.Drawing.Point(15, 20); this.checkBoxSpellCheckAutoChangeNames.Name = "checkBoxSpellCheckAutoChangeNames"; - this.checkBoxSpellCheckAutoChangeNames.Size = new System.Drawing.Size(209, 17); + this.checkBoxSpellCheckAutoChangeNames.Size = new System.Drawing.Size(216, 17); this.checkBoxSpellCheckAutoChangeNames.TabIndex = 0; this.checkBoxSpellCheckAutoChangeNames.Text = "Auto fix names where only casing differ"; this.checkBoxSpellCheckAutoChangeNames.UseVisualStyleBackColor = true; @@ -1508,7 +1522,7 @@ this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.AutoSize = true; this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Location = new System.Drawing.Point(15, 115); this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Name = "checkBoxFixCommonOcrErrorsUsingHardcodedRules"; - this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Size = new System.Drawing.Size(264, 17); + this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Size = new System.Drawing.Size(268, 17); this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.TabIndex = 2; this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Text = "Fix common OCR errors - also use hardcoded rules"; this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.UseVisualStyleBackColor = true; @@ -1791,7 +1805,7 @@ this.checkBoxNamesEtcOnline.AutoSize = true; this.checkBoxNamesEtcOnline.Location = new System.Drawing.Point(7, 22); this.checkBoxNamesEtcOnline.Name = "checkBoxNamesEtcOnline"; - this.checkBoxNamesEtcOnline.Size = new System.Drawing.Size(162, 17); + this.checkBoxNamesEtcOnline.Size = new System.Drawing.Size(163, 17); this.checkBoxNamesEtcOnline.TabIndex = 26; this.checkBoxNamesEtcOnline.Text = "Use online names etc xml file"; this.checkBoxNamesEtcOnline.UseVisualStyleBackColor = true; @@ -2175,7 +2189,7 @@ this.checkBoxShortcutsShift.Enabled = false; this.checkBoxShortcutsShift.Location = new System.Drawing.Point(243, 366); this.checkBoxShortcutsShift.Name = "checkBoxShortcutsShift"; - this.checkBoxShortcutsShift.Size = new System.Drawing.Size(47, 17); + this.checkBoxShortcutsShift.Size = new System.Drawing.Size(48, 17); this.checkBoxShortcutsShift.TabIndex = 3; this.checkBoxShortcutsShift.Text = "Shift"; this.checkBoxShortcutsShift.UseVisualStyleBackColor = true; @@ -2186,7 +2200,7 @@ this.checkBoxShortcutsAlt.Enabled = false; this.checkBoxShortcutsAlt.Location = new System.Drawing.Point(174, 366); this.checkBoxShortcutsAlt.Name = "checkBoxShortcutsAlt"; - this.checkBoxShortcutsAlt.Size = new System.Drawing.Size(38, 17); + this.checkBoxShortcutsAlt.Size = new System.Drawing.Size(39, 17); this.checkBoxShortcutsAlt.TabIndex = 2; this.checkBoxShortcutsAlt.Text = "Alt"; this.checkBoxShortcutsAlt.UseVisualStyleBackColor = true; @@ -2197,7 +2211,7 @@ this.checkBoxShortcutsControl.Enabled = false; this.checkBoxShortcutsControl.Location = new System.Drawing.Point(87, 367); this.checkBoxShortcutsControl.Name = "checkBoxShortcutsControl"; - this.checkBoxShortcutsControl.Size = new System.Drawing.Size(59, 17); + this.checkBoxShortcutsControl.Size = new System.Drawing.Size(61, 17); this.checkBoxShortcutsControl.TabIndex = 1; this.checkBoxShortcutsControl.Text = "Control"; this.checkBoxShortcutsControl.UseVisualStyleBackColor = true; @@ -2240,15 +2254,25 @@ this.labelStatus.TabIndex = 3; this.labelStatus.Text = "labelStatus"; // - // checkBoxPromptDeleteLines + // groupBoxSpectrogram // - this.checkBoxPromptDeleteLines.AutoSize = true; - this.checkBoxPromptDeleteLines.Location = new System.Drawing.Point(436, 319); - this.checkBoxPromptDeleteLines.Name = "checkBoxPromptDeleteLines"; - this.checkBoxPromptDeleteLines.Size = new System.Drawing.Size(142, 17); - this.checkBoxPromptDeleteLines.TabIndex = 40; - this.checkBoxPromptDeleteLines.Text = "Prompt for deleting lines"; - this.checkBoxPromptDeleteLines.UseVisualStyleBackColor = true; + this.groupBoxSpectrogram.Controls.Add(this.checkBoxGenerateSpectrogram); + this.groupBoxSpectrogram.Location = new System.Drawing.Point(6, 216); + this.groupBoxSpectrogram.Name = "groupBoxSpectrogram"; + this.groupBoxSpectrogram.Size = new System.Drawing.Size(786, 103); + this.groupBoxSpectrogram.TabIndex = 4; + this.groupBoxSpectrogram.TabStop = false; + this.groupBoxSpectrogram.Text = "Spectrogram"; + // + // checkBoxGenerateSpectrogram + // + this.checkBoxGenerateSpectrogram.AutoSize = true; + this.checkBoxGenerateSpectrogram.Location = new System.Drawing.Point(10, 20); + this.checkBoxGenerateSpectrogram.Name = "checkBoxGenerateSpectrogram"; + this.checkBoxGenerateSpectrogram.Size = new System.Drawing.Size(134, 17); + this.checkBoxGenerateSpectrogram.TabIndex = 11; + this.checkBoxGenerateSpectrogram.Text = "Generate spectrogram"; + this.checkBoxGenerateSpectrogram.UseVisualStyleBackColor = true; // // Settings // @@ -2327,6 +2351,8 @@ this.tabPageShortcuts.ResumeLayout(false); this.groupBoxShortcuts.ResumeLayout(false); this.groupBoxShortcuts.PerformLayout(); + this.groupBoxSpectrogram.ResumeLayout(false); + this.groupBoxSpectrogram.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -2516,5 +2542,7 @@ private System.Windows.Forms.CheckBox checkBoxShortcutsAlt; private System.Windows.Forms.CheckBox checkBoxShortcutsControl; private System.Windows.Forms.CheckBox checkBoxPromptDeleteLines; + private System.Windows.Forms.GroupBox groupBoxSpectrogram; + private System.Windows.Forms.CheckBox checkBoxGenerateSpectrogram; } } \ No newline at end of file diff --git a/src/Forms/Settings.cs b/src/Forms/Settings.cs index a6304e706..59c1772b6 100644 --- a/src/Forms/Settings.cs +++ b/src/Forms/Settings.cs @@ -146,7 +146,7 @@ namespace Nikse.SubtitleEdit.Forms Text = language.Title; tabPageGenerel.Text = language.General; tabPageVideoPlayer.Text = language.VideoPlayer; - tabPageWaveForm.Text = language.WaveForm; + tabPageWaveForm.Text = language.WaveformAndSpectrogram; tabPageWordLists.Text = language.WordLists; tabPageTools.Text = language.Tools; tabPageSsaStyle.Text = language.SsaStyle; @@ -236,6 +236,8 @@ namespace Nikse.SubtitleEdit.Forms buttonWaveFormSelectedColor.Text = language.WaveFormSelectedColor; buttonWaveFormTextColor.Text = language.WaveFormTextColor; buttonWaveFormBackgroundColor.Text = language.WaveFormBackgroundColor; + groupBoxSpectrogram.Text = language.Spectrogram; + checkBoxGenerateSpectrogram.Text = language.GenerateSpectrogram; buttonWaveFormsFolderEmpty.Text = language.WaveFormsFolderEmpty; InitializeWaveFormsFolderEmpty(language); @@ -404,7 +406,7 @@ namespace Nikse.SubtitleEdit.Forms panelWaveFormColor.BackColor = Configuration.Settings.VideoControls.WaveFormColor; panelWaveFormBackgroundColor.BackColor = Configuration.Settings.VideoControls.WaveFormBackgroundColor; panelWaveFormTextColor.BackColor = Configuration.Settings.VideoControls.WaveFormTextColor; - + checkBoxGenerateSpectrogram.Checked = Configuration.Settings.VideoControls.GenerateSpectrogram; //Control+N //Control+O @@ -507,6 +509,26 @@ namespace Nikse.SubtitleEdit.Forms long bytes = 0; int count = 0; DirectoryInfo di = new DirectoryInfo(waveFormsFolder); + + // spectrum data + foreach (DirectoryInfo dir in di.GetDirectories()) + { + DirectoryInfo spectrogramDir = new DirectoryInfo(dir.FullName); + foreach (FileInfo fi in spectrogramDir.GetFiles("*.gif")) + { + bytes += fi.Length; + count++; + } + string xmlFileName = Path.Combine(dir.FullName, "Info.xml"); + if (File.Exists(xmlFileName)) + { + FileInfo fi = new FileInfo(xmlFileName); + bytes += fi.Length; + count++; + } + } + + // waveform data foreach (FileInfo fi in di.GetFiles("*.wav")) { bytes += fi.Length; @@ -742,7 +764,7 @@ namespace Nikse.SubtitleEdit.Forms Configuration.Settings.VideoControls.WaveFormColor = panelWaveFormColor.BackColor; Configuration.Settings.VideoControls.WaveFormBackgroundColor = panelWaveFormBackgroundColor.BackColor; Configuration.Settings.VideoControls.WaveFormTextColor = panelWaveFormTextColor.BackColor; - + Configuration.Settings.VideoControls.GenerateSpectrogram = checkBoxGenerateSpectrogram.Checked; //Main File foreach (TreeNode node in treeViewShortcuts.Nodes[0].Nodes) @@ -1512,6 +1534,20 @@ namespace Nikse.SubtitleEdit.Forms if (Directory.Exists(waveFormsFolder)) { DirectoryInfo di = new DirectoryInfo(waveFormsFolder); + + foreach (DirectoryInfo dir in di.GetDirectories()) + { + DirectoryInfo spectrogramDir = new DirectoryInfo(dir.FullName); + foreach (FileInfo fileName in spectrogramDir.GetFiles("*.gif")) + { + File.Delete(fileName.FullName); + } + string xmlFileName = Path.Combine(dir.FullName, "Info.xml"); + if (File.Exists(xmlFileName)) + File.Delete(xmlFileName); + Directory.Delete(dir.FullName); + } + foreach (FileInfo fileName in di.GetFiles("*.wav")) { try diff --git a/src/Logic/Language.cs b/src/Logic/Language.cs index 43fce16d4..aeb3352b2 100644 --- a/src/Logic/Language.cs +++ b/src/Logic/Language.cs @@ -1092,7 +1092,7 @@ can edit in same subtitle file (collaboration)", General = "General", Toolbar = "Toolbar", VideoPlayer = "Video player", - WaveForm = "Wave form", + WaveformAndSpectrogram = "Waveform/spectrogram", Tools = "Tools", WordLists = "Word lists", SsaStyle = "SSA Style", @@ -1162,6 +1162,8 @@ can edit in same subtitle file (collaboration)", WaveFormTextColor = "Text color", WaveFormsFolderEmpty = "Empty 'WaveForms' folder", WaveFormsFolderInfo = "'WaveForms' folder contains {0} files ({1:0.00} MB)", + Spectrogram = "Spectrogram", + GenerateSpectrogram = "Generate spectrogram", SubStationAlphaStyle = "Sub Station Alpha style", ChooseFont = "Choose font", ChooseColor = "Choose color", @@ -1414,6 +1416,9 @@ can edit in same subtitle file (collaboration)", MergeWithPrevious = "Merge with previous", MergeWithNext = "Merge with next", PlaySelection = "Play selection", + ShowWaveformAndSpectrogram = "Show waveform and spectrogram", + ShowWaveformOnly = "Show waveform only", + ShowSpectrogramOnly = "Show spectrogram only", }; } diff --git a/src/Logic/LanguageStructure.cs b/src/Logic/LanguageStructure.cs index 8593e1774..ae0c16927 100644 --- a/src/Logic/LanguageStructure.cs +++ b/src/Logic/LanguageStructure.cs @@ -1026,7 +1026,7 @@ public string General { get; set; } public string Toolbar { get; set; } public string VideoPlayer { get; set; } - public string WaveForm { get; set; } + public string WaveformAndSpectrogram { get; set; } public string Tools { get; set; } public string WordLists { get; set; } public string SsaStyle { get; set; } @@ -1096,6 +1096,8 @@ public string WaveFormTextColor { get; set; } public string WaveFormsFolderEmpty { get; set; } public string WaveFormsFolderInfo { get; set; } + public string Spectrogram { get; set; } + public string GenerateSpectrogram { get; set; } public string SubStationAlphaStyle { get; set; } public string ChooseFont { get; set; } public string ChooseColor { get; set; } @@ -1348,6 +1350,9 @@ public string MergeWithPrevious { get; set; } public string MergeWithNext { get; set; } public string PlaySelection { get; set; } + public string ShowWaveformAndSpectrogram { get; set; } + public string ShowWaveformOnly { get; set; } + public string ShowSpectrogramOnly { get; set; } } } diff --git a/src/Logic/Settings.cs b/src/Logic/Settings.cs index 5dcca73b4..b1ebb650a 100644 --- a/src/Logic/Settings.cs +++ b/src/Logic/Settings.cs @@ -259,7 +259,6 @@ namespace Nikse.SubtitleEdit.Logic public int SmallDelayMilliseconds { get; set; } public int LargeDelayMilliseconds { get; set; } public bool ShowOriginalAsPreviewIfAvailable { get; set; } - public bool GenerateSpectrogram { get; set; } public GeneralSettings() { @@ -337,7 +336,8 @@ namespace Nikse.SubtitleEdit.Logic public Color WaveFormTextColor { get; set; } public string WaveFormDoubleClickOnNonParagraphAction { get; set; } public string WaveFormRightClickOnNonParagraphAction { get; set; } - public bool WaveFormMouseWheelScrollUpIsForward { get; set; } + public bool WaveFormMouseWheelScrollUpIsForward { get; set; } + public bool GenerateSpectrogram { get; set; } public VideoControlsSettings() { @@ -783,9 +783,6 @@ namespace Nikse.SubtitleEdit.Logic subNode = node.SelectSingleNode("ShowOriginalAsPreviewIfAvailable"); if (subNode != null) settings.General.ShowOriginalAsPreviewIfAvailable = Convert.ToBoolean(subNode.InnerText); - subNode = node.SelectSingleNode("GenerateSpectrogram"); - if (subNode != null) - settings.General.GenerateSpectrogram = Convert.ToBoolean(subNode.InnerText); settings.Tools = new Nikse.SubtitleEdit.Logic.ToolsSettings(); node = doc.DocumentElement.SelectSingleNode("Tools"); @@ -977,7 +974,10 @@ namespace Nikse.SubtitleEdit.Logic settings.VideoControls.WaveFormRightClickOnNonParagraphAction = subNode.InnerText; subNode = node.SelectSingleNode("WaveFormMouseWheelScrollUpIsForward"); if (subNode != null) - settings.VideoControls.WaveFormMouseWheelScrollUpIsForward = Convert.ToBoolean(subNode.InnerText); + settings.VideoControls.WaveFormMouseWheelScrollUpIsForward = Convert.ToBoolean(subNode.InnerText); + subNode = node.SelectSingleNode("GenerateSpectrogram"); + if (subNode != null) + settings.VideoControls.GenerateSpectrogram = Convert.ToBoolean(subNode.InnerText); settings.NetworkSettings = new NetworkSettings(); node = doc.DocumentElement.SelectSingleNode("NetworkSettings"); @@ -1198,7 +1198,6 @@ namespace Nikse.SubtitleEdit.Logic textWriter.WriteElementString("SmallDelayMilliseconds", settings.General.SmallDelayMilliseconds.ToString()); textWriter.WriteElementString("LargeDelayMilliseconds", settings.General.LargeDelayMilliseconds.ToString()); textWriter.WriteElementString("ShowOriginalAsPreviewIfAvailable", settings.General.ShowOriginalAsPreviewIfAvailable.ToString()); - textWriter.WriteElementString("GenerateSpectrogram", settings.General.GenerateSpectrogram.ToString()); textWriter.WriteEndElement(); textWriter.WriteStartElement("Tools", ""); @@ -1274,8 +1273,8 @@ namespace Nikse.SubtitleEdit.Logic textWriter.WriteElementString("WaveFormTextColor", settings.VideoControls.WaveFormTextColor.ToArgb().ToString()); textWriter.WriteElementString("WaveFormDoubleClickOnNonParagraphAction", settings.VideoControls.WaveFormDoubleClickOnNonParagraphAction); textWriter.WriteElementString("WaveFormRightClickOnNonParagraphAction", settings.VideoControls.WaveFormRightClickOnNonParagraphAction); - textWriter.WriteElementString("WaveFormMouseWheelScrollUpIsForward", settings.VideoControls.WaveFormMouseWheelScrollUpIsForward.ToString()); - + textWriter.WriteElementString("WaveFormMouseWheelScrollUpIsForward", settings.VideoControls.WaveFormMouseWheelScrollUpIsForward.ToString()); + textWriter.WriteElementString("GenerateSpectrogram", settings.VideoControls.GenerateSpectrogram.ToString()); textWriter.WriteEndElement(); textWriter.WriteStartElement("NetworkSettings", ""); diff --git a/src/SubtitleEdit.csproj b/src/SubtitleEdit.csproj index 7e2633061..8a51877a3 100644 --- a/src/SubtitleEdit.csproj +++ b/src/SubtitleEdit.csproj @@ -46,7 +46,7 @@ prompt 4 true - x86 + x64 pdbonly @@ -58,6 +58,7 @@ true x86 true + Off false