diff --git a/src/Forms/Main.cs b/src/Forms/Main.cs index b65eb84aa..40ab7ebc6 100644 --- a/src/Forms/Main.cs +++ b/src/Forms/Main.cs @@ -9648,22 +9648,71 @@ namespace Nikse.SubtitleEdit.Forms } else if (mediaPlayer != null && mediaPlayer.VideoPlayer != null && e.KeyData == _video100MsLeft) { - mediaPlayer.CurrentPosition -= 0.1; + if (mediaPlayer.IsPaused && Configuration.Settings.General.MoveVideo100Or500MsPlaySmallSample) + { + double p = mediaPlayer.CurrentPosition - 0.1; + mediaPlayer.CurrentPosition = p; + mediaPlayer.Play(); + System.Threading.Thread.Sleep(99); + mediaPlayer.Stop(); + mediaPlayer.CurrentPosition = p; + } + else + { + mediaPlayer.CurrentPosition -= 0.1; + } e.SuppressKeyPress = true; } else if (mediaPlayer != null && mediaPlayer.VideoPlayer != null && e.KeyData == _video100MsRight) { - mediaPlayer.CurrentPosition += 0.1; + if (mediaPlayer.IsPaused && Configuration.Settings.General.MoveVideo100Or500MsPlaySmallSample) + { + double p = mediaPlayer.CurrentPosition + 0.1; + mediaPlayer.CurrentPosition = p; + mediaPlayer.Play(); + System.Threading.Thread.Sleep(99); + mediaPlayer.Stop(); + mediaPlayer.CurrentPosition = p; + } + else + { + mediaPlayer.CurrentPosition += 0.1; + } e.SuppressKeyPress = true; } else if (mediaPlayer != null && mediaPlayer.VideoPlayer != null && e.KeyData == _video500MsLeft) { - mediaPlayer.CurrentPosition -= 0.5; + if (mediaPlayer.IsPaused && Configuration.Settings.General.MoveVideo100Or500MsPlaySmallSample) + { + double p = mediaPlayer.CurrentPosition - 0.5; + mediaPlayer.CurrentPosition = p; + mediaPlayer.Play(); + System.Threading.Thread.Sleep(99); + mediaPlayer.Stop(); + mediaPlayer.CurrentPosition = p; + } + else + { + mediaPlayer.CurrentPosition -= 0.5; + } e.SuppressKeyPress = true; + } else if (mediaPlayer != null && mediaPlayer.VideoPlayer != null && e.KeyData == _video500MsRight) { - mediaPlayer.CurrentPosition += 0.5; + if (mediaPlayer.IsPaused && Configuration.Settings.General.MoveVideo100Or500MsPlaySmallSample) + { + double p = mediaPlayer.CurrentPosition + 0.5; + mediaPlayer.CurrentPosition = p; + mediaPlayer.Play(); + System.Threading.Thread.Sleep(99); + mediaPlayer.Stop(); + mediaPlayer.CurrentPosition = p; + } + else + { + mediaPlayer.CurrentPosition += 0.5; + } e.SuppressKeyPress = true; } else if (_mainToolsBeamer == e.KeyData) diff --git a/src/Logic/Settings.cs b/src/Logic/Settings.cs index 934e35d30..55228ac3d 100644 --- a/src/Logic/Settings.cs +++ b/src/Logic/Settings.cs @@ -425,8 +425,9 @@ namespace Nikse.SubtitleEdit.Logic public string VlcLocation { get; set; } public bool UseTimeFormatHHMMSSFF { get; set; } public int ClearStatusBarAfterSeconds { get; set; } - public bool ShowBetaStuff { get; set; } public string Company { get; set; } + public bool MoveVideo100Or500MsPlaySmallSample { get; set; } + public bool ShowBetaStuff { get; set; } public GeneralSettings() { @@ -500,6 +501,7 @@ namespace Nikse.SubtitleEdit.Logic VlcWaveTranscodeSettings = "acodec=s16l"; // "acodec=s16l,channels=1,ab=64,samplerate=8000"; UseTimeFormatHHMMSSFF = false; ClearStatusBarAfterSeconds = 10; + MoveVideo100Or500MsPlaySmallSample = false; ShowBetaStuff = false; } @@ -1251,12 +1253,15 @@ namespace Nikse.SubtitleEdit.Logic subNode = node.SelectSingleNode("ClearStatusBarAfterSeconds"); if (subNode != null) settings.General.ClearStatusBarAfterSeconds = Convert.ToInt32(subNode.InnerText.Trim()); - subNode = node.SelectSingleNode("ShowBetaStuff"); - if (subNode != null) - settings.General.ShowBetaStuff = Convert.ToBoolean(subNode.InnerText.Trim()); subNode = node.SelectSingleNode("Company"); if (subNode != null) settings.General.Company = subNode.InnerText; + subNode = node.SelectSingleNode("ShowBetaStuff"); + if (subNode != null) + settings.General.ShowBetaStuff = Convert.ToBoolean(subNode.InnerText.Trim()); + subNode = node.SelectSingleNode("MoveVideo100Or500MsPlaySmallSample"); + if (subNode != null) + settings.General.MoveVideo100Or500MsPlaySmallSample = Convert.ToBoolean(subNode.InnerText.Trim()); settings.Tools = new ToolsSettings(); node = doc.DocumentElement.SelectSingleNode("Tools"); @@ -2247,8 +2252,9 @@ namespace Nikse.SubtitleEdit.Logic textWriter.WriteElementString("VlcLocation", settings.General.VlcLocation); textWriter.WriteElementString("UseTimeFormatHHMMSSFF", settings.General.UseTimeFormatHHMMSSFF.ToString(CultureInfo.InvariantCulture)); textWriter.WriteElementString("ClearStatusBarAfterSeconds", settings.General.ClearStatusBarAfterSeconds.ToString(CultureInfo.InvariantCulture)); - textWriter.WriteElementString("ShowBetaStuff", settings.General.ShowBetaStuff.ToString()); textWriter.WriteElementString("Company", settings.General.Company); + textWriter.WriteElementString("MoveVideo100Or500MsPlaySmallSample", settings.General.MoveVideo100Or500MsPlaySmallSample.ToString()); + textWriter.WriteElementString("ShowBetaStuff", settings.General.ShowBetaStuff.ToString()); textWriter.WriteEndElement();