Working on waveform/spectrogram

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@465 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
niksedk 2011-06-07 06:25:18 +00:00
parent cce271875e
commit 87b6e781b2
9 changed files with 192 additions and 112 deletions

View File

@ -36,11 +36,11 @@ namespace Nikse.SubtitleEdit.Controls
private Subtitle _subtitle = null; private Subtitle _subtitle = null;
private bool _noClear = false; private bool _noClear = false;
private List<Bitmap> _spectrumBitmaps = new List<Bitmap>(); private List<Bitmap> _spectrogramBitmaps = new List<Bitmap>();
private string _spectrogramDirectory; private string _spectrogramDirectory;
private double _sampleDuration = 0; private double _sampleDuration = 0;
private double _totalDuration = 0; private double _totalDuration = 0;
private const int SpectrumBitmapWidth = 1024; private const int SpectrogramBitmapWidth = 1024;
public delegate void ParagraphChangedHandler(Paragraph paragraph); public delegate void ParagraphChangedHandler(Paragraph paragraph);
public event ParagraphChangedHandler OnNewSelectionRightClicked; public event ParagraphChangedHandler OnNewSelectionRightClicked;
@ -81,11 +81,11 @@ namespace Nikse.SubtitleEdit.Controls
} }
} }
public bool IsSpectrumAvailable public bool IsSpectrogramAvailable
{ {
get get
{ {
return _spectrumBitmaps != null && _spectrumBitmaps.Count > 0; return _spectrogramBitmaps != null && _spectrogramBitmaps.Count > 0;
} }
} }
public bool ShowSpectrogram { get; set; } public bool ShowSpectrogram { get; set; }
@ -162,7 +162,7 @@ namespace Nikse.SubtitleEdit.Controls
public void ResetSpectrogram() public void ResetSpectrogram()
{ {
_spectrumBitmaps = new List<Bitmap>(); _spectrogramBitmaps = new List<Bitmap>();
} }
public void ClearSelection() public void ClearSelection()
@ -282,7 +282,7 @@ namespace Nikse.SubtitleEdit.Controls
int x = 0; int x = 0;
int y = Height / 2; int y = Height / 2;
if (IsSpectrumAvailable && ShowSpectrogram) if (IsSpectrogramAvailable && ShowSpectrogram)
{ {
DrawSpectrogramBitmap(StartPositionSeconds, graphics); DrawSpectrogramBitmap(StartPositionSeconds, graphics);
if (ShowWaveform) if (ShowWaveform)
@ -1067,7 +1067,7 @@ namespace Nikse.SubtitleEdit.Controls
public void InitializeSpectrogram(string spectrogramDirectory) public void InitializeSpectrogram(string spectrogramDirectory)
{ {
_spectrumBitmaps = new List<Bitmap>(); _spectrogramBitmaps = new List<Bitmap>();
ShowSpectrogram = false; ShowSpectrogram = false;
if (System.IO.Directory.Exists(spectrogramDirectory)) if (System.IO.Directory.Exists(spectrogramDirectory))
{ {
@ -1094,14 +1094,14 @@ namespace Nikse.SubtitleEdit.Controls
while (System.IO.File.Exists(System.IO.Path.Combine(_spectrogramDirectory, count + ".gif"))) while (System.IO.File.Exists(System.IO.Path.Combine(_spectrogramDirectory, count + ".gif")))
{ {
Bitmap bmp = new Bitmap(System.IO.Path.Combine(_spectrogramDirectory, count + ".gif")); Bitmap bmp = new Bitmap(System.IO.Path.Combine(_spectrogramDirectory, count + ".gif"));
_spectrumBitmaps.Add(bmp); _spectrogramBitmaps.Add(bmp);
count++; count++;
} }
} }
public void InitializeSpectrogram(List<Bitmap> spectrumBitmaps, string spectrogramDirectory) public void InitializeSpectrogram(List<Bitmap> spectrogramBitmaps, string spectrogramDirectory)
{ {
_spectrumBitmaps = spectrumBitmaps; _spectrogramBitmaps = spectrogramBitmaps;
XmlDocument doc = new XmlDocument(); XmlDocument doc = new XmlDocument();
string xmlInfoFileName = System.IO.Path.Combine(spectrogramDirectory, "Info.xml"); string xmlInfoFileName = System.IO.Path.Combine(spectrogramDirectory, "Info.xml");
@ -1127,19 +1127,19 @@ namespace Nikse.SubtitleEdit.Controls
Graphics gfx = Graphics.FromImage(bmpDestination); Graphics gfx = Graphics.FromImage(bmpDestination);
double startRow = seconds / (_sampleDuration); double startRow = seconds / (_sampleDuration);
int bitmapIndex = (int)(startRow / SpectrumBitmapWidth); int bitmapIndex = (int)(startRow / SpectrogramBitmapWidth);
int subtractValue = (int)startRow % SpectrumBitmapWidth; int subtractValue = (int)startRow % SpectrogramBitmapWidth;
int i = 0; int i = 0;
while (i * SpectrumBitmapWidth < width && i + bitmapIndex < _spectrumBitmaps.Count) while (i * SpectrogramBitmapWidth < width && i + bitmapIndex < _spectrogramBitmaps.Count)
{ {
var bmp = _spectrumBitmaps[i + bitmapIndex]; var bmp = _spectrogramBitmaps[i + bitmapIndex];
gfx.DrawImage(bmp, new Point(bmp.Width * i - subtractValue, 0)); gfx.DrawImage(bmp, new Point(bmp.Width * i - subtractValue, 0));
i++; i++;
} }
if (i + bitmapIndex < _spectrumBitmaps.Count && subtractValue > 0) if (i + bitmapIndex < _spectrogramBitmaps.Count && subtractValue > 0)
{ {
var bmp = _spectrumBitmaps[i + bitmapIndex]; var bmp = _spectrogramBitmaps[i + bitmapIndex];
gfx.DrawImage(bmp, new Point(bmp.Width * i - subtractValue, 0)); gfx.DrawImage(bmp, new Point(bmp.Width * i - subtractValue, 0));
i++; i++;
} }

View File

@ -13,8 +13,8 @@ namespace Nikse.SubtitleEdit.Forms
public string SourceVideoFileName { get; private set; } public string SourceVideoFileName { get; private set; }
private bool _cancel = false; private bool _cancel = false;
private string _wavFileName = null; private string _wavFileName = null;
private string _spectrumDirectory; private string _spectrogramDirectory;
public List<Bitmap> SpectrumBitmaps { get; private set; } public List<Bitmap> SpectrogramBitmaps { get; private set; }
public AddWareForm() public AddWareForm()
{ {
@ -25,7 +25,7 @@ namespace Nikse.SubtitleEdit.Forms
public WavePeakGenerator WavePeak { get; private set; } public WavePeakGenerator WavePeak { get; private set; }
public void Initialize(string videoFile, string spectrumDirectory) public void Initialize(string videoFile, string spectrogramDirectory)
{ {
Text = Configuration.Settings.Language.AddWaveForm.Title; Text = Configuration.Settings.Language.AddWaveForm.Title;
buttonRipWave.Text = Configuration.Settings.Language.AddWaveForm.GenerateWaveFormData; buttonRipWave.Text = Configuration.Settings.Language.AddWaveForm.GenerateWaveFormData;
@ -33,7 +33,7 @@ namespace Nikse.SubtitleEdit.Forms
labelVideoFileName.Text = videoFile; labelVideoFileName.Text = videoFile;
buttonCancel.Text = Configuration.Settings.Language.General.Cancel; buttonCancel.Text = Configuration.Settings.Language.General.Cancel;
labelSourcevideoFile.Text = Configuration.Settings.Language.AddWaveForm.SourceVideoFile; labelSourcevideoFile.Text = Configuration.Settings.Language.AddWaveForm.SourceVideoFile;
_spectrumDirectory = spectrumDirectory; _spectrogramDirectory = spectrogramDirectory;
} }
private void buttonRipWave_Click(object sender, EventArgs e) private void buttonRipWave_Click(object sender, EventArgs e)
@ -137,8 +137,8 @@ namespace Nikse.SubtitleEdit.Forms
{ {
labelProgress.Text = Configuration.Settings.Language.AddWaveForm.GeneratingSpectrogram; labelProgress.Text = Configuration.Settings.Language.AddWaveForm.GeneratingSpectrogram;
this.Refresh(); this.Refresh();
System.IO.Directory.CreateDirectory(_spectrumDirectory); System.IO.Directory.CreateDirectory(_spectrogramDirectory);
SpectrumBitmaps = waveFile.GenerateFourierData(256, _spectrumDirectory); SpectrogramBitmaps = waveFile.GenerateFourierData(256, _spectrogramDirectory);
} }
labelPleaseWait.Visible = false; labelPleaseWait.Visible = false;

View File

@ -7010,11 +7010,12 @@ namespace Nikse.SubtitleEdit.Forms
labelVideoInfo.Text = Path.GetFileName(fileName) + " " + videoInfo.Width + "x" + videoInfo.Height + " " + videoInfo.VideoCodec; labelVideoInfo.Text = Path.GetFileName(fileName) + " " + videoInfo.Width + "x" + videoInfo.Height + " " + videoInfo.VideoCodec;
string peakWaveFileName = GetPeakWaveFileName(fileName); string peakWaveFileName = GetPeakWaveFileName(fileName);
string spectrogramFolder = GetSpectrogramFolder(fileName);
if (File.Exists(peakWaveFileName)) if (File.Exists(peakWaveFileName))
{ {
AudioWaveForm.WavePeaks = new WavePeakGenerator(peakWaveFileName); AudioWaveForm.WavePeaks = new WavePeakGenerator(peakWaveFileName);
AudioWaveForm.ResetSpectrogram(); AudioWaveForm.ResetSpectrogram();
AudioWaveForm.InitializeSpectrogram(peakWaveFileName.Substring(0, peakWaveFileName.Length-4)); AudioWaveForm.InitializeSpectrogram(spectrogramFolder);
toolStripComboBoxWaveForm_SelectedIndexChanged(null, null); toolStripComboBoxWaveForm_SelectedIndexChanged(null, null);
AudioWaveForm.WavePeaks.GenerateAllSamples(); AudioWaveForm.WavePeaks.GenerateAllSamples();
AudioWaveForm.WavePeaks.Close(); AudioWaveForm.WavePeaks.Close();
@ -8409,6 +8410,19 @@ namespace Nikse.SubtitleEdit.Forms
return wavePeakName; return wavePeakName;
} }
private string GetSpectrogramFolder(string videoFileName)
{
string dir = Configuration.SpectrogramsFolder.TrimEnd(Path.DirectorySeparatorChar);
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
FileInfo fi = new FileInfo(videoFileName);
string name = Sha256Hash(Path.GetFileName(videoFileName) + fi.Length.ToString() + fi.CreationTimeUtc.ToShortDateString());
name = name.Replace("=", string.Empty).Replace("/", string.Empty).Replace(",", string.Empty).Replace("?", string.Empty).Replace("*", string.Empty).Replace("+", string.Empty).Replace("\\", string.Empty);
name = Path.Combine(dir, name);
return name;
}
private void AudioWaveForm_Click(object sender, EventArgs e) private void AudioWaveForm_Click(object sender, EventArgs e)
{ {
if (AudioWaveForm.WavePeaks == null) if (AudioWaveForm.WavePeaks == null)
@ -8422,16 +8436,16 @@ namespace Nikse.SubtitleEdit.Forms
AddWareForm addWaveForm = new AddWareForm(); AddWareForm addWaveForm = new AddWareForm();
string peakWaveFileName = GetPeakWaveFileName(_videoFileName); string peakWaveFileName = GetPeakWaveFileName(_videoFileName);
string spectrumFileName = peakWaveFileName.Substring(0, peakWaveFileName.Length - 4); string spectrogramFolder = GetSpectrogramFolder(_videoFileName);
addWaveForm.Initialize(_videoFileName, spectrumFileName); addWaveForm.Initialize(_videoFileName, spectrogramFolder);
if (addWaveForm.ShowDialog() == System.Windows.Forms.DialogResult.OK) if (addWaveForm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{ {
addWaveForm.WavePeak.WritePeakSamples(peakWaveFileName); addWaveForm.WavePeak.WritePeakSamples(peakWaveFileName);
var audioPeakWave = new WavePeakGenerator(peakWaveFileName); var audioPeakWave = new WavePeakGenerator(peakWaveFileName);
audioPeakWave.GenerateAllSamples(); audioPeakWave.GenerateAllSamples();
AudioWaveForm.WavePeaks = audioPeakWave; AudioWaveForm.WavePeaks = audioPeakWave;
if (addWaveForm.SpectrumBitmaps != null) if (addWaveForm.SpectrogramBitmaps != null)
AudioWaveForm.InitializeSpectrogram(addWaveForm.SpectrumBitmaps, spectrumFileName); AudioWaveForm.InitializeSpectrogram(addWaveForm.SpectrogramBitmaps, spectrogramFolder);
timerWaveForm.Start(); timerWaveForm.Start();
} }
} }
@ -10261,7 +10275,7 @@ namespace Nikse.SubtitleEdit.Forms
private void contextMenuStripWaveForm_Opening(object sender, System.ComponentModel.CancelEventArgs e) private void contextMenuStripWaveForm_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{ {
if (AudioWaveForm.IsSpectrumAvailable) if (AudioWaveForm.IsSpectrogramAvailable)
{ {
if (AudioWaveForm.ShowSpectrogram && AudioWaveForm.ShowWaveform) if (AudioWaveForm.ShowSpectrogram && AudioWaveForm.ShowWaveform)
{ {

View File

@ -125,6 +125,8 @@
this.radioButtonVideoPlayerDirectShow = new System.Windows.Forms.RadioButton(); this.radioButtonVideoPlayerDirectShow = new System.Windows.Forms.RadioButton();
this.radioButtonVideoPlayerManagedDirectX = new System.Windows.Forms.RadioButton(); this.radioButtonVideoPlayerManagedDirectX = new System.Windows.Forms.RadioButton();
this.tabPageWaveForm = new System.Windows.Forms.TabPage(); this.tabPageWaveForm = new System.Windows.Forms.TabPage();
this.groupBoxSpectrogram = new System.Windows.Forms.GroupBox();
this.checkBoxGenerateSpectrogram = new System.Windows.Forms.CheckBox();
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
this.buttonWaveFormsFolderEmpty = new System.Windows.Forms.Button(); this.buttonWaveFormsFolderEmpty = new System.Windows.Forms.Button();
this.labelWaveFormsFolderInfo = new System.Windows.Forms.Label(); this.labelWaveFormsFolderInfo = new System.Windows.Forms.Label();
@ -210,8 +212,8 @@
this.colorDialogSSAStyle = new System.Windows.Forms.ColorDialog(); this.colorDialogSSAStyle = new System.Windows.Forms.ColorDialog();
this.fontDialogSSAStyle = new System.Windows.Forms.FontDialog(); this.fontDialogSSAStyle = new System.Windows.Forms.FontDialog();
this.labelStatus = new System.Windows.Forms.Label(); this.labelStatus = new System.Windows.Forms.Label();
this.groupBoxSpectrogram = new System.Windows.Forms.GroupBox(); this.buttonSpectrogramsFolderEmpty = new System.Windows.Forms.Button();
this.checkBoxGenerateSpectrogram = new System.Windows.Forms.CheckBox(); this.labelSpectrogramsFolderInfo = new System.Windows.Forms.Label();
this.tabControlSettings.SuspendLayout(); this.tabControlSettings.SuspendLayout();
this.tabPageGenerel.SuspendLayout(); this.tabPageGenerel.SuspendLayout();
this.groupBoxMiscellaneous.SuspendLayout(); this.groupBoxMiscellaneous.SuspendLayout();
@ -233,6 +235,7 @@
this.groupBoxVideoPlayerDefault.SuspendLayout(); this.groupBoxVideoPlayerDefault.SuspendLayout();
this.groupBoxVideoEngine.SuspendLayout(); this.groupBoxVideoEngine.SuspendLayout();
this.tabPageWaveForm.SuspendLayout(); this.tabPageWaveForm.SuspendLayout();
this.groupBoxSpectrogram.SuspendLayout();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
this.groupBoxWaveFormAppearence.SuspendLayout(); this.groupBoxWaveFormAppearence.SuspendLayout();
this.tabPageTools.SuspendLayout(); this.tabPageTools.SuspendLayout();
@ -252,7 +255,6 @@
this.groupBoxProxyAuthentication.SuspendLayout(); this.groupBoxProxyAuthentication.SuspendLayout();
this.tabPageShortcuts.SuspendLayout(); this.tabPageShortcuts.SuspendLayout();
this.groupBoxShortcuts.SuspendLayout(); this.groupBoxShortcuts.SuspendLayout();
this.groupBoxSpectrogram.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// buttonOK // buttonOK
@ -355,7 +357,7 @@
this.checkBoxPromptDeleteLines.AutoSize = true; this.checkBoxPromptDeleteLines.AutoSize = true;
this.checkBoxPromptDeleteLines.Location = new System.Drawing.Point(436, 319); this.checkBoxPromptDeleteLines.Location = new System.Drawing.Point(436, 319);
this.checkBoxPromptDeleteLines.Name = "checkBoxPromptDeleteLines"; this.checkBoxPromptDeleteLines.Name = "checkBoxPromptDeleteLines";
this.checkBoxPromptDeleteLines.Size = new System.Drawing.Size(142, 17); this.checkBoxPromptDeleteLines.Size = new System.Drawing.Size(138, 17);
this.checkBoxPromptDeleteLines.TabIndex = 40; this.checkBoxPromptDeleteLines.TabIndex = 40;
this.checkBoxPromptDeleteLines.Text = "Prompt for deleting lines"; this.checkBoxPromptDeleteLines.Text = "Prompt for deleting lines";
this.checkBoxPromptDeleteLines.UseVisualStyleBackColor = true; this.checkBoxPromptDeleteLines.UseVisualStyleBackColor = true;
@ -365,7 +367,7 @@
this.checkBoxAutoWrapWhileTyping.AutoSize = true; this.checkBoxAutoWrapWhileTyping.AutoSize = true;
this.checkBoxAutoWrapWhileTyping.Location = new System.Drawing.Point(193, 146); this.checkBoxAutoWrapWhileTyping.Location = new System.Drawing.Point(193, 146);
this.checkBoxAutoWrapWhileTyping.Name = "checkBoxAutoWrapWhileTyping"; this.checkBoxAutoWrapWhileTyping.Name = "checkBoxAutoWrapWhileTyping";
this.checkBoxAutoWrapWhileTyping.Size = new System.Drawing.Size(137, 17); this.checkBoxAutoWrapWhileTyping.Size = new System.Drawing.Size(132, 17);
this.checkBoxAutoWrapWhileTyping.TabIndex = 4; this.checkBoxAutoWrapWhileTyping.TabIndex = 4;
this.checkBoxAutoWrapWhileTyping.Text = "Auto-wrap while typing"; this.checkBoxAutoWrapWhileTyping.Text = "Auto-wrap while typing";
this.checkBoxAutoWrapWhileTyping.UseVisualStyleBackColor = true; this.checkBoxAutoWrapWhileTyping.UseVisualStyleBackColor = true;
@ -393,7 +395,7 @@
this.checkBoxAllowEditOfOriginalSubtitle.AutoSize = true; this.checkBoxAllowEditOfOriginalSubtitle.AutoSize = true;
this.checkBoxAllowEditOfOriginalSubtitle.Location = new System.Drawing.Point(436, 296); this.checkBoxAllowEditOfOriginalSubtitle.Location = new System.Drawing.Point(436, 296);
this.checkBoxAllowEditOfOriginalSubtitle.Name = "checkBoxAllowEditOfOriginalSubtitle"; this.checkBoxAllowEditOfOriginalSubtitle.Name = "checkBoxAllowEditOfOriginalSubtitle";
this.checkBoxAllowEditOfOriginalSubtitle.Size = new System.Drawing.Size(160, 17); this.checkBoxAllowEditOfOriginalSubtitle.Size = new System.Drawing.Size(155, 17);
this.checkBoxAllowEditOfOriginalSubtitle.TabIndex = 24; this.checkBoxAllowEditOfOriginalSubtitle.TabIndex = 24;
this.checkBoxAllowEditOfOriginalSubtitle.Text = "Allow edit of original subtitle"; this.checkBoxAllowEditOfOriginalSubtitle.Text = "Allow edit of original subtitle";
this.checkBoxAllowEditOfOriginalSubtitle.UseVisualStyleBackColor = true; this.checkBoxAllowEditOfOriginalSubtitle.UseVisualStyleBackColor = true;
@ -561,7 +563,7 @@
this.checkBoxRememberWindowPosition.AutoSize = true; this.checkBoxRememberWindowPosition.AutoSize = true;
this.checkBoxRememberWindowPosition.Location = new System.Drawing.Point(436, 101); this.checkBoxRememberWindowPosition.Location = new System.Drawing.Point(436, 101);
this.checkBoxRememberWindowPosition.Name = "checkBoxRememberWindowPosition"; this.checkBoxRememberWindowPosition.Name = "checkBoxRememberWindowPosition";
this.checkBoxRememberWindowPosition.Size = new System.Drawing.Size(223, 17); this.checkBoxRememberWindowPosition.Size = new System.Drawing.Size(222, 17);
this.checkBoxRememberWindowPosition.TabIndex = 15; this.checkBoxRememberWindowPosition.TabIndex = 15;
this.checkBoxRememberWindowPosition.Text = "Remember main window position and size"; this.checkBoxRememberWindowPosition.Text = "Remember main window position and size";
this.checkBoxRememberWindowPosition.UseVisualStyleBackColor = true; this.checkBoxRememberWindowPosition.UseVisualStyleBackColor = true;
@ -608,7 +610,7 @@
this.checkBoxStartInSourceView.AutoSize = true; this.checkBoxStartInSourceView.AutoSize = true;
this.checkBoxStartInSourceView.Location = new System.Drawing.Point(436, 124); this.checkBoxStartInSourceView.Location = new System.Drawing.Point(436, 124);
this.checkBoxStartInSourceView.Name = "checkBoxStartInSourceView"; this.checkBoxStartInSourceView.Name = "checkBoxStartInSourceView";
this.checkBoxStartInSourceView.Size = new System.Drawing.Size(121, 17); this.checkBoxStartInSourceView.Size = new System.Drawing.Size(119, 17);
this.checkBoxStartInSourceView.TabIndex = 16; this.checkBoxStartInSourceView.TabIndex = 16;
this.checkBoxStartInSourceView.Text = "Start in source view"; this.checkBoxStartInSourceView.Text = "Start in source view";
this.checkBoxStartInSourceView.UseVisualStyleBackColor = true; this.checkBoxStartInSourceView.UseVisualStyleBackColor = true;
@ -618,7 +620,7 @@
this.checkBoxReopenLastOpened.AutoSize = true; this.checkBoxReopenLastOpened.AutoSize = true;
this.checkBoxReopenLastOpened.Location = new System.Drawing.Point(444, 52); this.checkBoxReopenLastOpened.Location = new System.Drawing.Point(444, 52);
this.checkBoxReopenLastOpened.Name = "checkBoxReopenLastOpened"; this.checkBoxReopenLastOpened.Name = "checkBoxReopenLastOpened";
this.checkBoxReopenLastOpened.Size = new System.Drawing.Size(145, 17); this.checkBoxReopenLastOpened.Size = new System.Drawing.Size(140, 17);
this.checkBoxReopenLastOpened.TabIndex = 13; this.checkBoxReopenLastOpened.TabIndex = 13;
this.checkBoxReopenLastOpened.Text = "Start with last file loaded"; this.checkBoxReopenLastOpened.Text = "Start with last file loaded";
this.checkBoxReopenLastOpened.UseVisualStyleBackColor = true; this.checkBoxReopenLastOpened.UseVisualStyleBackColor = true;
@ -628,7 +630,7 @@
this.checkBoxRememberRecentFiles.AutoSize = true; this.checkBoxRememberRecentFiles.AutoSize = true;
this.checkBoxRememberRecentFiles.Location = new System.Drawing.Point(436, 28); this.checkBoxRememberRecentFiles.Location = new System.Drawing.Point(436, 28);
this.checkBoxRememberRecentFiles.Name = "checkBoxRememberRecentFiles"; this.checkBoxRememberRecentFiles.Name = "checkBoxRememberRecentFiles";
this.checkBoxRememberRecentFiles.Size = new System.Drawing.Size(195, 17); this.checkBoxRememberRecentFiles.Size = new System.Drawing.Size(188, 17);
this.checkBoxRememberRecentFiles.TabIndex = 12; this.checkBoxRememberRecentFiles.TabIndex = 12;
this.checkBoxRememberRecentFiles.Text = "Remember recent files (for reopen)"; this.checkBoxRememberRecentFiles.Text = "Remember recent files (for reopen)";
this.checkBoxRememberRecentFiles.UseVisualStyleBackColor = true; this.checkBoxRememberRecentFiles.UseVisualStyleBackColor = true;
@ -639,7 +641,7 @@
this.checkBoxSubtitleFontBold.AutoSize = true; this.checkBoxSubtitleFontBold.AutoSize = true;
this.checkBoxSubtitleFontBold.Location = new System.Drawing.Point(193, 269); this.checkBoxSubtitleFontBold.Location = new System.Drawing.Point(193, 269);
this.checkBoxSubtitleFontBold.Name = "checkBoxSubtitleFontBold"; this.checkBoxSubtitleFontBold.Name = "checkBoxSubtitleFontBold";
this.checkBoxSubtitleFontBold.Size = new System.Drawing.Size(46, 17); this.checkBoxSubtitleFontBold.Size = new System.Drawing.Size(47, 17);
this.checkBoxSubtitleFontBold.TabIndex = 8; this.checkBoxSubtitleFontBold.TabIndex = 8;
this.checkBoxSubtitleFontBold.Text = "Bold"; this.checkBoxSubtitleFontBold.Text = "Bold";
this.checkBoxSubtitleFontBold.UseVisualStyleBackColor = true; this.checkBoxSubtitleFontBold.UseVisualStyleBackColor = true;
@ -743,7 +745,7 @@
this.checkBoxShowFrameRate.AutoSize = true; this.checkBoxShowFrameRate.AutoSize = true;
this.checkBoxShowFrameRate.Location = new System.Drawing.Point(16, 29); this.checkBoxShowFrameRate.Location = new System.Drawing.Point(16, 29);
this.checkBoxShowFrameRate.Name = "checkBoxShowFrameRate"; this.checkBoxShowFrameRate.Name = "checkBoxShowFrameRate";
this.checkBoxShowFrameRate.Size = new System.Drawing.Size(154, 17); this.checkBoxShowFrameRate.Size = new System.Drawing.Size(149, 17);
this.checkBoxShowFrameRate.TabIndex = 34; this.checkBoxShowFrameRate.TabIndex = 34;
this.checkBoxShowFrameRate.Text = "Show frame rate in toolbar"; this.checkBoxShowFrameRate.Text = "Show frame rate in toolbar";
this.checkBoxShowFrameRate.UseVisualStyleBackColor = true; this.checkBoxShowFrameRate.UseVisualStyleBackColor = true;
@ -809,7 +811,7 @@
this.checkBoxHelp.AutoSize = true; this.checkBoxHelp.AutoSize = true;
this.checkBoxHelp.Location = new System.Drawing.Point(596, 80); this.checkBoxHelp.Location = new System.Drawing.Point(596, 80);
this.checkBoxHelp.Name = "checkBoxHelp"; this.checkBoxHelp.Name = "checkBoxHelp";
this.checkBoxHelp.Size = new System.Drawing.Size(55, 17); this.checkBoxHelp.Size = new System.Drawing.Size(56, 17);
this.checkBoxHelp.TabIndex = 31; this.checkBoxHelp.TabIndex = 31;
this.checkBoxHelp.Text = "Visible"; this.checkBoxHelp.Text = "Visible";
this.checkBoxHelp.UseVisualStyleBackColor = true; this.checkBoxHelp.UseVisualStyleBackColor = true;
@ -836,7 +838,7 @@
this.checkBoxSettings.AutoSize = true; this.checkBoxSettings.AutoSize = true;
this.checkBoxSettings.Location = new System.Drawing.Point(532, 80); this.checkBoxSettings.Location = new System.Drawing.Point(532, 80);
this.checkBoxSettings.Name = "checkBoxSettings"; this.checkBoxSettings.Name = "checkBoxSettings";
this.checkBoxSettings.Size = new System.Drawing.Size(55, 17); this.checkBoxSettings.Size = new System.Drawing.Size(56, 17);
this.checkBoxSettings.TabIndex = 28; this.checkBoxSettings.TabIndex = 28;
this.checkBoxSettings.Text = "Visible"; this.checkBoxSettings.Text = "Visible";
this.checkBoxSettings.UseVisualStyleBackColor = true; this.checkBoxSettings.UseVisualStyleBackColor = true;
@ -863,7 +865,7 @@
this.checkBoxSpellCheck.AutoSize = true; this.checkBoxSpellCheck.AutoSize = true;
this.checkBoxSpellCheck.Location = new System.Drawing.Point(464, 80); this.checkBoxSpellCheck.Location = new System.Drawing.Point(464, 80);
this.checkBoxSpellCheck.Name = "checkBoxSpellCheck"; this.checkBoxSpellCheck.Name = "checkBoxSpellCheck";
this.checkBoxSpellCheck.Size = new System.Drawing.Size(55, 17); this.checkBoxSpellCheck.Size = new System.Drawing.Size(56, 17);
this.checkBoxSpellCheck.TabIndex = 26; this.checkBoxSpellCheck.TabIndex = 26;
this.checkBoxSpellCheck.Text = "Visible"; this.checkBoxSpellCheck.Text = "Visible";
this.checkBoxSpellCheck.UseVisualStyleBackColor = true; this.checkBoxSpellCheck.UseVisualStyleBackColor = true;
@ -890,7 +892,7 @@
this.checkBoxVisualSync.AutoSize = true; this.checkBoxVisualSync.AutoSize = true;
this.checkBoxVisualSync.Location = new System.Drawing.Point(398, 80); this.checkBoxVisualSync.Location = new System.Drawing.Point(398, 80);
this.checkBoxVisualSync.Name = "checkBoxVisualSync"; this.checkBoxVisualSync.Name = "checkBoxVisualSync";
this.checkBoxVisualSync.Size = new System.Drawing.Size(55, 17); this.checkBoxVisualSync.Size = new System.Drawing.Size(56, 17);
this.checkBoxVisualSync.TabIndex = 19; this.checkBoxVisualSync.TabIndex = 19;
this.checkBoxVisualSync.Text = "Visible"; this.checkBoxVisualSync.Text = "Visible";
this.checkBoxVisualSync.UseVisualStyleBackColor = true; this.checkBoxVisualSync.UseVisualStyleBackColor = true;
@ -917,7 +919,7 @@
this.checkBoxReplace.AutoSize = true; this.checkBoxReplace.AutoSize = true;
this.checkBoxReplace.Location = new System.Drawing.Point(335, 80); this.checkBoxReplace.Location = new System.Drawing.Point(335, 80);
this.checkBoxReplace.Name = "checkBoxReplace"; this.checkBoxReplace.Name = "checkBoxReplace";
this.checkBoxReplace.Size = new System.Drawing.Size(55, 17); this.checkBoxReplace.Size = new System.Drawing.Size(56, 17);
this.checkBoxReplace.TabIndex = 16; this.checkBoxReplace.TabIndex = 16;
this.checkBoxReplace.Text = "Visible"; this.checkBoxReplace.Text = "Visible";
this.checkBoxReplace.UseVisualStyleBackColor = true; this.checkBoxReplace.UseVisualStyleBackColor = true;
@ -944,7 +946,7 @@
this.checkBoxToolbarFind.AutoSize = true; this.checkBoxToolbarFind.AutoSize = true;
this.checkBoxToolbarFind.Location = new System.Drawing.Point(272, 80); this.checkBoxToolbarFind.Location = new System.Drawing.Point(272, 80);
this.checkBoxToolbarFind.Name = "checkBoxToolbarFind"; this.checkBoxToolbarFind.Name = "checkBoxToolbarFind";
this.checkBoxToolbarFind.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarFind.Size = new System.Drawing.Size(56, 17);
this.checkBoxToolbarFind.TabIndex = 13; this.checkBoxToolbarFind.TabIndex = 13;
this.checkBoxToolbarFind.Text = "Visible"; this.checkBoxToolbarFind.Text = "Visible";
this.checkBoxToolbarFind.UseVisualStyleBackColor = true; this.checkBoxToolbarFind.UseVisualStyleBackColor = true;
@ -971,7 +973,7 @@
this.checkBoxToolbarSaveAs.AutoSize = true; this.checkBoxToolbarSaveAs.AutoSize = true;
this.checkBoxToolbarSaveAs.Location = new System.Drawing.Point(209, 80); this.checkBoxToolbarSaveAs.Location = new System.Drawing.Point(209, 80);
this.checkBoxToolbarSaveAs.Name = "checkBoxToolbarSaveAs"; this.checkBoxToolbarSaveAs.Name = "checkBoxToolbarSaveAs";
this.checkBoxToolbarSaveAs.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarSaveAs.Size = new System.Drawing.Size(56, 17);
this.checkBoxToolbarSaveAs.TabIndex = 10; this.checkBoxToolbarSaveAs.TabIndex = 10;
this.checkBoxToolbarSaveAs.Text = "Visible"; this.checkBoxToolbarSaveAs.Text = "Visible";
this.checkBoxToolbarSaveAs.UseVisualStyleBackColor = true; this.checkBoxToolbarSaveAs.UseVisualStyleBackColor = true;
@ -998,7 +1000,7 @@
this.checkBoxToolbarSave.AutoSize = true; this.checkBoxToolbarSave.AutoSize = true;
this.checkBoxToolbarSave.Location = new System.Drawing.Point(146, 80); this.checkBoxToolbarSave.Location = new System.Drawing.Point(146, 80);
this.checkBoxToolbarSave.Name = "checkBoxToolbarSave"; this.checkBoxToolbarSave.Name = "checkBoxToolbarSave";
this.checkBoxToolbarSave.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarSave.Size = new System.Drawing.Size(56, 17);
this.checkBoxToolbarSave.TabIndex = 7; this.checkBoxToolbarSave.TabIndex = 7;
this.checkBoxToolbarSave.Text = "Visible"; this.checkBoxToolbarSave.Text = "Visible";
this.checkBoxToolbarSave.UseVisualStyleBackColor = true; this.checkBoxToolbarSave.UseVisualStyleBackColor = true;
@ -1025,7 +1027,7 @@
this.checkBoxToolbarOpen.AutoSize = true; this.checkBoxToolbarOpen.AutoSize = true;
this.checkBoxToolbarOpen.Location = new System.Drawing.Point(83, 80); this.checkBoxToolbarOpen.Location = new System.Drawing.Point(83, 80);
this.checkBoxToolbarOpen.Name = "checkBoxToolbarOpen"; this.checkBoxToolbarOpen.Name = "checkBoxToolbarOpen";
this.checkBoxToolbarOpen.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarOpen.Size = new System.Drawing.Size(56, 17);
this.checkBoxToolbarOpen.TabIndex = 4; this.checkBoxToolbarOpen.TabIndex = 4;
this.checkBoxToolbarOpen.Text = "Visible"; this.checkBoxToolbarOpen.Text = "Visible";
this.checkBoxToolbarOpen.UseVisualStyleBackColor = true; this.checkBoxToolbarOpen.UseVisualStyleBackColor = true;
@ -1052,7 +1054,7 @@
this.checkBoxToolbarNew.AutoSize = true; this.checkBoxToolbarNew.AutoSize = true;
this.checkBoxToolbarNew.Location = new System.Drawing.Point(20, 80); this.checkBoxToolbarNew.Location = new System.Drawing.Point(20, 80);
this.checkBoxToolbarNew.Name = "checkBoxToolbarNew"; this.checkBoxToolbarNew.Name = "checkBoxToolbarNew";
this.checkBoxToolbarNew.Size = new System.Drawing.Size(55, 17); this.checkBoxToolbarNew.Size = new System.Drawing.Size(56, 17);
this.checkBoxToolbarNew.TabIndex = 1; this.checkBoxToolbarNew.TabIndex = 1;
this.checkBoxToolbarNew.Text = "Visible"; this.checkBoxToolbarNew.Text = "Visible";
this.checkBoxToolbarNew.UseVisualStyleBackColor = true; this.checkBoxToolbarNew.UseVisualStyleBackColor = true;
@ -1163,7 +1165,7 @@
this.checkBoxVideoPlayerShowStopButton.AutoSize = true; this.checkBoxVideoPlayerShowStopButton.AutoSize = true;
this.checkBoxVideoPlayerShowStopButton.Location = new System.Drawing.Point(9, 19); this.checkBoxVideoPlayerShowStopButton.Location = new System.Drawing.Point(9, 19);
this.checkBoxVideoPlayerShowStopButton.Name = "checkBoxVideoPlayerShowStopButton"; this.checkBoxVideoPlayerShowStopButton.Name = "checkBoxVideoPlayerShowStopButton";
this.checkBoxVideoPlayerShowStopButton.Size = new System.Drawing.Size(111, 17); this.checkBoxVideoPlayerShowStopButton.Size = new System.Drawing.Size(109, 17);
this.checkBoxVideoPlayerShowStopButton.TabIndex = 10; this.checkBoxVideoPlayerShowStopButton.TabIndex = 10;
this.checkBoxVideoPlayerShowStopButton.Text = "Show stop button"; this.checkBoxVideoPlayerShowStopButton.Text = "Show stop button";
this.checkBoxVideoPlayerShowStopButton.UseVisualStyleBackColor = true; this.checkBoxVideoPlayerShowStopButton.UseVisualStyleBackColor = true;
@ -1230,7 +1232,7 @@
this.radioButtonVideoPlayerVLC.AutoSize = true; this.radioButtonVideoPlayerVLC.AutoSize = true;
this.radioButtonVideoPlayerVLC.Location = new System.Drawing.Point(10, 46); this.radioButtonVideoPlayerVLC.Location = new System.Drawing.Point(10, 46);
this.radioButtonVideoPlayerVLC.Name = "radioButtonVideoPlayerVLC"; this.radioButtonVideoPlayerVLC.Name = "radioButtonVideoPlayerVLC";
this.radioButtonVideoPlayerVLC.Size = new System.Drawing.Size(43, 17); this.radioButtonVideoPlayerVLC.Size = new System.Drawing.Size(45, 17);
this.radioButtonVideoPlayerVLC.TabIndex = 4; this.radioButtonVideoPlayerVLC.TabIndex = 4;
this.radioButtonVideoPlayerVLC.TabStop = true; this.radioButtonVideoPlayerVLC.TabStop = true;
this.radioButtonVideoPlayerVLC.Text = "VLC"; this.radioButtonVideoPlayerVLC.Text = "VLC";
@ -1286,7 +1288,7 @@
this.radioButtonVideoPlayerDirectShow.AutoSize = true; this.radioButtonVideoPlayerDirectShow.AutoSize = true;
this.radioButtonVideoPlayerDirectShow.Location = new System.Drawing.Point(10, 23); this.radioButtonVideoPlayerDirectShow.Location = new System.Drawing.Point(10, 23);
this.radioButtonVideoPlayerDirectShow.Name = "radioButtonVideoPlayerDirectShow"; this.radioButtonVideoPlayerDirectShow.Name = "radioButtonVideoPlayerDirectShow";
this.radioButtonVideoPlayerDirectShow.Size = new System.Drawing.Size(82, 17); this.radioButtonVideoPlayerDirectShow.Size = new System.Drawing.Size(83, 17);
this.radioButtonVideoPlayerDirectShow.TabIndex = 1; this.radioButtonVideoPlayerDirectShow.TabIndex = 1;
this.radioButtonVideoPlayerDirectShow.TabStop = true; this.radioButtonVideoPlayerDirectShow.TabStop = true;
this.radioButtonVideoPlayerDirectShow.Text = "DirectShow "; this.radioButtonVideoPlayerDirectShow.Text = "DirectShow ";
@ -1297,7 +1299,7 @@
this.radioButtonVideoPlayerManagedDirectX.AutoSize = true; this.radioButtonVideoPlayerManagedDirectX.AutoSize = true;
this.radioButtonVideoPlayerManagedDirectX.Location = new System.Drawing.Point(10, 90); this.radioButtonVideoPlayerManagedDirectX.Location = new System.Drawing.Point(10, 90);
this.radioButtonVideoPlayerManagedDirectX.Name = "radioButtonVideoPlayerManagedDirectX"; this.radioButtonVideoPlayerManagedDirectX.Name = "radioButtonVideoPlayerManagedDirectX";
this.radioButtonVideoPlayerManagedDirectX.Size = new System.Drawing.Size(106, 17); this.radioButtonVideoPlayerManagedDirectX.Size = new System.Drawing.Size(108, 17);
this.radioButtonVideoPlayerManagedDirectX.TabIndex = 6; this.radioButtonVideoPlayerManagedDirectX.TabIndex = 6;
this.radioButtonVideoPlayerManagedDirectX.TabStop = true; this.radioButtonVideoPlayerManagedDirectX.TabStop = true;
this.radioButtonVideoPlayerManagedDirectX.Text = "Managed DirectX"; this.radioButtonVideoPlayerManagedDirectX.Text = "Managed DirectX";
@ -1316,8 +1318,30 @@
this.tabPageWaveForm.Text = "Waveform/spectrogram"; this.tabPageWaveForm.Text = "Waveform/spectrogram";
this.tabPageWaveForm.UseVisualStyleBackColor = true; this.tabPageWaveForm.UseVisualStyleBackColor = true;
// //
// groupBoxSpectrogram
//
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(131, 17);
this.checkBoxGenerateSpectrogram.TabIndex = 11;
this.checkBoxGenerateSpectrogram.Text = "Generate spectrogram";
this.checkBoxGenerateSpectrogram.UseVisualStyleBackColor = true;
//
// groupBox1 // groupBox1
// //
this.groupBox1.Controls.Add(this.buttonSpectrogramsFolderEmpty);
this.groupBox1.Controls.Add(this.labelSpectrogramsFolderInfo);
this.groupBox1.Controls.Add(this.buttonWaveFormsFolderEmpty); this.groupBox1.Controls.Add(this.buttonWaveFormsFolderEmpty);
this.groupBox1.Controls.Add(this.labelWaveFormsFolderInfo); this.groupBox1.Controls.Add(this.labelWaveFormsFolderInfo);
this.groupBox1.Location = new System.Drawing.Point(6, 325); this.groupBox1.Location = new System.Drawing.Point(6, 325);
@ -1498,7 +1522,7 @@
this.checkBoxSpellCheckAutoChangeNames.AutoSize = true; this.checkBoxSpellCheckAutoChangeNames.AutoSize = true;
this.checkBoxSpellCheckAutoChangeNames.Location = new System.Drawing.Point(15, 20); this.checkBoxSpellCheckAutoChangeNames.Location = new System.Drawing.Point(15, 20);
this.checkBoxSpellCheckAutoChangeNames.Name = "checkBoxSpellCheckAutoChangeNames"; this.checkBoxSpellCheckAutoChangeNames.Name = "checkBoxSpellCheckAutoChangeNames";
this.checkBoxSpellCheckAutoChangeNames.Size = new System.Drawing.Size(216, 17); this.checkBoxSpellCheckAutoChangeNames.Size = new System.Drawing.Size(209, 17);
this.checkBoxSpellCheckAutoChangeNames.TabIndex = 0; this.checkBoxSpellCheckAutoChangeNames.TabIndex = 0;
this.checkBoxSpellCheckAutoChangeNames.Text = "Auto fix names where only casing differ"; this.checkBoxSpellCheckAutoChangeNames.Text = "Auto fix names where only casing differ";
this.checkBoxSpellCheckAutoChangeNames.UseVisualStyleBackColor = true; this.checkBoxSpellCheckAutoChangeNames.UseVisualStyleBackColor = true;
@ -1522,7 +1546,7 @@
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.AutoSize = true; this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.AutoSize = true;
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Location = new System.Drawing.Point(15, 115); this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Location = new System.Drawing.Point(15, 115);
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Name = "checkBoxFixCommonOcrErrorsUsingHardcodedRules"; this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Name = "checkBoxFixCommonOcrErrorsUsingHardcodedRules";
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Size = new System.Drawing.Size(268, 17); this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Size = new System.Drawing.Size(264, 17);
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.TabIndex = 2; this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.TabIndex = 2;
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Text = "Fix common OCR errors - also use hardcoded rules"; this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.Text = "Fix common OCR errors - also use hardcoded rules";
this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.UseVisualStyleBackColor = true; this.checkBoxFixCommonOcrErrorsUsingHardcodedRules.UseVisualStyleBackColor = true;
@ -1805,7 +1829,7 @@
this.checkBoxNamesEtcOnline.AutoSize = true; this.checkBoxNamesEtcOnline.AutoSize = true;
this.checkBoxNamesEtcOnline.Location = new System.Drawing.Point(7, 22); this.checkBoxNamesEtcOnline.Location = new System.Drawing.Point(7, 22);
this.checkBoxNamesEtcOnline.Name = "checkBoxNamesEtcOnline"; this.checkBoxNamesEtcOnline.Name = "checkBoxNamesEtcOnline";
this.checkBoxNamesEtcOnline.Size = new System.Drawing.Size(163, 17); this.checkBoxNamesEtcOnline.Size = new System.Drawing.Size(162, 17);
this.checkBoxNamesEtcOnline.TabIndex = 26; this.checkBoxNamesEtcOnline.TabIndex = 26;
this.checkBoxNamesEtcOnline.Text = "Use online names etc xml file"; this.checkBoxNamesEtcOnline.Text = "Use online names etc xml file";
this.checkBoxNamesEtcOnline.UseVisualStyleBackColor = true; this.checkBoxNamesEtcOnline.UseVisualStyleBackColor = true;
@ -2189,7 +2213,7 @@
this.checkBoxShortcutsShift.Enabled = false; this.checkBoxShortcutsShift.Enabled = false;
this.checkBoxShortcutsShift.Location = new System.Drawing.Point(243, 366); this.checkBoxShortcutsShift.Location = new System.Drawing.Point(243, 366);
this.checkBoxShortcutsShift.Name = "checkBoxShortcutsShift"; this.checkBoxShortcutsShift.Name = "checkBoxShortcutsShift";
this.checkBoxShortcutsShift.Size = new System.Drawing.Size(48, 17); this.checkBoxShortcutsShift.Size = new System.Drawing.Size(47, 17);
this.checkBoxShortcutsShift.TabIndex = 3; this.checkBoxShortcutsShift.TabIndex = 3;
this.checkBoxShortcutsShift.Text = "Shift"; this.checkBoxShortcutsShift.Text = "Shift";
this.checkBoxShortcutsShift.UseVisualStyleBackColor = true; this.checkBoxShortcutsShift.UseVisualStyleBackColor = true;
@ -2200,7 +2224,7 @@
this.checkBoxShortcutsAlt.Enabled = false; this.checkBoxShortcutsAlt.Enabled = false;
this.checkBoxShortcutsAlt.Location = new System.Drawing.Point(174, 366); this.checkBoxShortcutsAlt.Location = new System.Drawing.Point(174, 366);
this.checkBoxShortcutsAlt.Name = "checkBoxShortcutsAlt"; this.checkBoxShortcutsAlt.Name = "checkBoxShortcutsAlt";
this.checkBoxShortcutsAlt.Size = new System.Drawing.Size(39, 17); this.checkBoxShortcutsAlt.Size = new System.Drawing.Size(38, 17);
this.checkBoxShortcutsAlt.TabIndex = 2; this.checkBoxShortcutsAlt.TabIndex = 2;
this.checkBoxShortcutsAlt.Text = "Alt"; this.checkBoxShortcutsAlt.Text = "Alt";
this.checkBoxShortcutsAlt.UseVisualStyleBackColor = true; this.checkBoxShortcutsAlt.UseVisualStyleBackColor = true;
@ -2211,7 +2235,7 @@
this.checkBoxShortcutsControl.Enabled = false; this.checkBoxShortcutsControl.Enabled = false;
this.checkBoxShortcutsControl.Location = new System.Drawing.Point(87, 367); this.checkBoxShortcutsControl.Location = new System.Drawing.Point(87, 367);
this.checkBoxShortcutsControl.Name = "checkBoxShortcutsControl"; this.checkBoxShortcutsControl.Name = "checkBoxShortcutsControl";
this.checkBoxShortcutsControl.Size = new System.Drawing.Size(61, 17); this.checkBoxShortcutsControl.Size = new System.Drawing.Size(59, 17);
this.checkBoxShortcutsControl.TabIndex = 1; this.checkBoxShortcutsControl.TabIndex = 1;
this.checkBoxShortcutsControl.Text = "Control"; this.checkBoxShortcutsControl.Text = "Control";
this.checkBoxShortcutsControl.UseVisualStyleBackColor = true; this.checkBoxShortcutsControl.UseVisualStyleBackColor = true;
@ -2254,25 +2278,24 @@
this.labelStatus.TabIndex = 3; this.labelStatus.TabIndex = 3;
this.labelStatus.Text = "labelStatus"; this.labelStatus.Text = "labelStatus";
// //
// groupBoxSpectrogram // buttonSpectrogramsFolderEmpty
// //
this.groupBoxSpectrogram.Controls.Add(this.checkBoxGenerateSpectrogram); this.buttonSpectrogramsFolderEmpty.Location = new System.Drawing.Point(341, 35);
this.groupBoxSpectrogram.Location = new System.Drawing.Point(6, 216); this.buttonSpectrogramsFolderEmpty.Name = "buttonSpectrogramsFolderEmpty";
this.groupBoxSpectrogram.Name = "groupBoxSpectrogram"; this.buttonSpectrogramsFolderEmpty.Size = new System.Drawing.Size(188, 23);
this.groupBoxSpectrogram.Size = new System.Drawing.Size(786, 103); this.buttonSpectrogramsFolderEmpty.TabIndex = 3;
this.groupBoxSpectrogram.TabIndex = 4; this.buttonSpectrogramsFolderEmpty.Text = "Empty \'Spectrograms\' folder";
this.groupBoxSpectrogram.TabStop = false; this.buttonSpectrogramsFolderEmpty.UseVisualStyleBackColor = true;
this.groupBoxSpectrogram.Text = "Spectrogram"; this.buttonSpectrogramsFolderEmpty.Click += new System.EventHandler(this.buttonSpectrogramsFolderEmpty_Click);
// //
// checkBoxGenerateSpectrogram // labelSpectrogramsFolderInfo
// //
this.checkBoxGenerateSpectrogram.AutoSize = true; this.labelSpectrogramsFolderInfo.AutoSize = true;
this.checkBoxGenerateSpectrogram.Location = new System.Drawing.Point(10, 20); this.labelSpectrogramsFolderInfo.Location = new System.Drawing.Point(338, 18);
this.checkBoxGenerateSpectrogram.Name = "checkBoxGenerateSpectrogram"; this.labelSpectrogramsFolderInfo.Name = "labelSpectrogramsFolderInfo";
this.checkBoxGenerateSpectrogram.Size = new System.Drawing.Size(134, 17); this.labelSpectrogramsFolderInfo.Size = new System.Drawing.Size(216, 13);
this.checkBoxGenerateSpectrogram.TabIndex = 11; this.labelSpectrogramsFolderInfo.TabIndex = 2;
this.checkBoxGenerateSpectrogram.Text = "Generate spectrogram"; this.labelSpectrogramsFolderInfo.Text = "\'Spectrograms\' folder contains x files (x mb)";
this.checkBoxGenerateSpectrogram.UseVisualStyleBackColor = true;
// //
// Settings // Settings
// //
@ -2318,6 +2341,8 @@
this.groupBoxVideoEngine.ResumeLayout(false); this.groupBoxVideoEngine.ResumeLayout(false);
this.groupBoxVideoEngine.PerformLayout(); this.groupBoxVideoEngine.PerformLayout();
this.tabPageWaveForm.ResumeLayout(false); this.tabPageWaveForm.ResumeLayout(false);
this.groupBoxSpectrogram.ResumeLayout(false);
this.groupBoxSpectrogram.PerformLayout();
this.groupBox1.ResumeLayout(false); this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout(); this.groupBox1.PerformLayout();
this.groupBoxWaveFormAppearence.ResumeLayout(false); this.groupBoxWaveFormAppearence.ResumeLayout(false);
@ -2351,8 +2376,6 @@
this.tabPageShortcuts.ResumeLayout(false); this.tabPageShortcuts.ResumeLayout(false);
this.groupBoxShortcuts.ResumeLayout(false); this.groupBoxShortcuts.ResumeLayout(false);
this.groupBoxShortcuts.PerformLayout(); this.groupBoxShortcuts.PerformLayout();
this.groupBoxSpectrogram.ResumeLayout(false);
this.groupBoxSpectrogram.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@ -2544,5 +2567,7 @@
private System.Windows.Forms.CheckBox checkBoxPromptDeleteLines; private System.Windows.Forms.CheckBox checkBoxPromptDeleteLines;
private System.Windows.Forms.GroupBox groupBoxSpectrogram; private System.Windows.Forms.GroupBox groupBoxSpectrogram;
private System.Windows.Forms.CheckBox checkBoxGenerateSpectrogram; private System.Windows.Forms.CheckBox checkBoxGenerateSpectrogram;
private System.Windows.Forms.Button buttonSpectrogramsFolderEmpty;
private System.Windows.Forms.Label labelSpectrogramsFolderInfo;
} }
} }

View File

@ -238,9 +238,10 @@ namespace Nikse.SubtitleEdit.Forms
buttonWaveFormBackgroundColor.Text = language.WaveFormBackgroundColor; buttonWaveFormBackgroundColor.Text = language.WaveFormBackgroundColor;
groupBoxSpectrogram.Text = language.Spectrogram; groupBoxSpectrogram.Text = language.Spectrogram;
checkBoxGenerateSpectrogram.Text = language.GenerateSpectrogram; checkBoxGenerateSpectrogram.Text = language.GenerateSpectrogram;
buttonSpectrogramsFolderEmpty.Text = language.SpectrogramsFolderEmpty;
buttonWaveFormsFolderEmpty.Text = language.WaveFormsFolderEmpty; buttonWaveFormsFolderEmpty.Text = language.WaveFormsFolderEmpty;
InitializeWaveFormsFolderEmpty(language); InitializeWaveformsAndSpectrogramsFolderEmpty(language);
groupBoxSsaStyle.Text = language.SubStationAlphaStyle; groupBoxSsaStyle.Text = language.SubStationAlphaStyle;
@ -501,16 +502,41 @@ namespace Nikse.SubtitleEdit.Forms
} }
} }
private void InitializeWaveFormsFolderEmpty(LanguageStructure.Settings language) private void InitializeWaveformsAndSpectrogramsFolderEmpty(LanguageStructure.Settings language)
{ {
string waveFormsFolder = Configuration.WaveFormsFolder.TrimEnd(Path.DirectorySeparatorChar); string waveFormsFolder = Configuration.WaveFormsFolder.TrimEnd(Path.DirectorySeparatorChar);
string spectrogramsFolder = Configuration.SpectrogramsFolder.TrimEnd(Path.DirectorySeparatorChar);
long bytes = 0;
int count = 0;
if (Directory.Exists(waveFormsFolder)) if (Directory.Exists(waveFormsFolder))
{ {
long bytes = 0;
int count = 0;
DirectoryInfo di = new DirectoryInfo(waveFormsFolder); DirectoryInfo di = new DirectoryInfo(waveFormsFolder);
// spectrum data // waveform data
bytes = 0;
count = 0;
foreach (FileInfo fi in di.GetFiles("*.wav"))
{
bytes += fi.Length;
count++;
}
labelWaveFormsFolderInfo.Text = string.Format(language.WaveFormsFolderInfo, count, bytes / 1024.0 / 1024.0);
buttonWaveFormsFolderEmpty.Enabled = count > 0;
}
else
{
buttonWaveFormsFolderEmpty.Enabled = false;
labelWaveFormsFolderInfo.Text = string.Format(language.WaveFormsFolderInfo, 0, 0);
}
if (Directory.Exists(spectrogramsFolder))
{
DirectoryInfo di = new DirectoryInfo(spectrogramsFolder);
// spectrogram data
bytes = 0;
count = 0;
foreach (DirectoryInfo dir in di.GetDirectories()) foreach (DirectoryInfo dir in di.GetDirectories())
{ {
DirectoryInfo spectrogramDir = new DirectoryInfo(dir.FullName); DirectoryInfo spectrogramDir = new DirectoryInfo(dir.FullName);
@ -527,20 +553,13 @@ namespace Nikse.SubtitleEdit.Forms
count++; count++;
} }
} }
labelSpectrogramsFolderInfo.Text = string.Format(language.SpectrogramsFolderInfo, count, bytes / 1024.0 / 1024.0);
// waveform data buttonSpectrogramsFolderEmpty.Enabled = count > 0;
foreach (FileInfo fi in di.GetFiles("*.wav"))
{
bytes += fi.Length;
count++;
}
labelWaveFormsFolderInfo.Text = string.Format(language.WaveFormsFolderInfo, count, bytes / 1024.0 / 1024.0);
buttonWaveFormsFolderEmpty.Enabled = count > 0;
} }
else else
{ {
buttonWaveFormsFolderEmpty.Enabled = false; buttonSpectrogramsFolderEmpty.Enabled = false;
labelWaveFormsFolderInfo.Text = string.Format(language.WaveFormsFolderInfo, 0, 0); labelSpectrogramsFolderInfo.Text = string.Format(language.SpectrogramsFolderInfo, 0, 0);
} }
} }
@ -1535,19 +1554,6 @@ namespace Nikse.SubtitleEdit.Forms
{ {
DirectoryInfo di = new DirectoryInfo(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")) foreach (FileInfo fileName in di.GetFiles("*.wav"))
{ {
try try
@ -1560,7 +1566,7 @@ namespace Nikse.SubtitleEdit.Forms
} }
} }
} }
InitializeWaveFormsFolderEmpty(Configuration.Settings.Language.Settings); InitializeWaveformsAndSpectrogramsFolderEmpty(Configuration.Settings.Language.Settings);
} }
private void checkBoxRememberRecentFiles_CheckedChanged(object sender, EventArgs e) private void checkBoxRememberRecentFiles_CheckedChanged(object sender, EventArgs e)
@ -1705,5 +1711,28 @@ namespace Nikse.SubtitleEdit.Forms
} }
} }
private void buttonSpectrogramsFolderEmpty_Click(object sender, EventArgs e)
{
string spectrogramsFolder = Configuration.SpectrogramsFolder.TrimEnd(Path.DirectorySeparatorChar);
if (Directory.Exists(spectrogramsFolder))
{
DirectoryInfo di = new DirectoryInfo(spectrogramsFolder);
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);
}
}
InitializeWaveformsAndSpectrogramsFolderEmpty(Configuration.Settings.Language.Settings);
}
} }
} }

View File

@ -69,6 +69,14 @@ namespace Nikse.SubtitleEdit.Logic
} }
} }
public static string SpectrogramsFolder
{
get
{
return DataDirectory + "Spectrograms" + Path.DirectorySeparatorChar;
}
}
public static string AutoBackupFolder public static string AutoBackupFolder
{ {
get get

View File

@ -1162,6 +1162,8 @@ can edit in same subtitle file (collaboration)",
WaveFormTextColor = "Text color", WaveFormTextColor = "Text color",
WaveFormsFolderEmpty = "Empty 'WaveForms' folder", WaveFormsFolderEmpty = "Empty 'WaveForms' folder",
WaveFormsFolderInfo = "'WaveForms' folder contains {0} files ({1:0.00} MB)", WaveFormsFolderInfo = "'WaveForms' folder contains {0} files ({1:0.00} MB)",
SpectrogramsFolderEmpty = "Empty 'Spectrograms' folder",
SpectrogramsFolderInfo = "'Spectrograms' folder contains {0} files ({1:0.00} MB)",
Spectrogram = "Spectrogram", Spectrogram = "Spectrogram",
GenerateSpectrogram = "Generate spectrogram", GenerateSpectrogram = "Generate spectrogram",
SubStationAlphaStyle = "Sub Station Alpha style", SubStationAlphaStyle = "Sub Station Alpha style",

View File

@ -1096,6 +1096,8 @@
public string WaveFormTextColor { get; set; } public string WaveFormTextColor { get; set; }
public string WaveFormsFolderEmpty { get; set; } public string WaveFormsFolderEmpty { get; set; }
public string WaveFormsFolderInfo { get; set; } public string WaveFormsFolderInfo { get; set; }
public string SpectrogramsFolderEmpty { get; set; }
public string SpectrogramsFolderInfo { get; set; }
public string Spectrogram { get; set; } public string Spectrogram { get; set; }
public string GenerateSpectrogram { get; set; } public string GenerateSpectrogram { get; set; }
public string SubStationAlphaStyle { get; set; } public string SubStationAlphaStyle { get; set; }

View File

@ -366,7 +366,7 @@ namespace Nikse.SubtitleEdit.Logic
//////////////////////////////////////// SPECTRUM /////////////////////////////////////////////////////////// //////////////////////////////////////// SPECTRUM ///////////////////////////////////////////////////////////
public List<Bitmap> GenerateFourierData(int NFFT, string spectrumDirectory) public List<Bitmap> GenerateFourierData(int NFFT, string spectrogramDirectory)
{ {
List<Bitmap> bitmaps = new List<Bitmap>(); List<Bitmap> bitmaps = new List<Bitmap>();
@ -421,7 +421,7 @@ namespace Nikse.SubtitleEdit.Logic
for (int k = 0; k < sampleSize; k++) for (int k = 0; k < sampleSize; k++)
samplesAsReal[k] = samples[k] / divider; samplesAsReal[k] = samples[k] / divider;
Bitmap bmp = DrawSpectrogram(NFFT, samplesAsReal, f, palette); Bitmap bmp = DrawSpectrogram(NFFT, samplesAsReal, f, palette);
bmp.Save(Path.Combine(spectrumDirectory, count + ".gif"), System.Drawing.Imaging.ImageFormat.Gif); bmp.Save(Path.Combine(spectrogramDirectory, count + ".gif"), System.Drawing.Imaging.ImageFormat.Gif);
bitmaps.Add(bmp); // save serialized gif instead???? bitmaps.Add(bmp); // save serialized gif instead????
samples = new List<int>(); samples = new List<int>();
count++; count++;
@ -437,7 +437,7 @@ namespace Nikse.SubtitleEdit.Logic
for (int k = 0; k < sampleSize && k < samples.Count; k++) for (int k = 0; k < sampleSize && k < samples.Count; k++)
samplesAsReal[k] = samples[k] / divider; samplesAsReal[k] = samples[k] / divider;
Bitmap bmp = DrawSpectrogram(NFFT, samplesAsReal, f, palette); Bitmap bmp = DrawSpectrogram(NFFT, samplesAsReal, f, palette);
bmp.Save(Path.Combine(spectrumDirectory, count + ".gif"), System.Drawing.Imaging.ImageFormat.Gif); bmp.Save(Path.Combine(spectrogramDirectory, count + ".gif"), System.Drawing.Imaging.ImageFormat.Gif);
bitmaps.Add(bmp); // save serialized gif instead???? bitmaps.Add(bmp); // save serialized gif instead????
} }
@ -447,7 +447,7 @@ namespace Nikse.SubtitleEdit.Logic
double totalDuration = Header.LengthInSeconds; double totalDuration = Header.LengthInSeconds;
doc.DocumentElement.SelectSingleNode("SampleDuration").InnerText = sampleDuration.ToString(); doc.DocumentElement.SelectSingleNode("SampleDuration").InnerText = sampleDuration.ToString();
doc.DocumentElement.SelectSingleNode("TotalDuration").InnerText = totalDuration.ToString(); doc.DocumentElement.SelectSingleNode("TotalDuration").InnerText = totalDuration.ToString();
doc.Save(System.IO.Path.Combine(spectrumDirectory, "Info.xml")); doc.Save(System.IO.Path.Combine(spectrogramDirectory, "Info.xml"));
return bitmaps; return bitmaps;
} }