From 33cd881ae686376248de34a91b6142616921a4d4 Mon Sep 17 00:00:00 2001 From: Frank Skare Date: Thu, 16 Sep 2021 16:02:59 +0200 Subject: [PATCH] #321 new auto-play option --- docs/Changelog.md | 4 ++++ src/Misc/App.cs | 38 ++++++++++++++++++----------------- src/Misc/Commands.cs | 2 +- src/Misc/CorePlayer.cs | 2 +- src/Resources/editor_conf.txt | 10 +++++++++ 5 files changed, 36 insertions(+), 20 deletions(-) diff --git a/docs/Changelog.md b/docs/Changelog.md index 3d34caa..17c07ae 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -1,6 +1,10 @@ 5.5.0.3 Beta (202?-??-??) +- New mpv.net option auto-play which sets pause=no on file load and + selecting from the playlist. Disabled by default. + + 5.5.0.2 Beta (2021-09-15) - Fix of keepaspect-window=no. diff --git a/src/Misc/App.cs b/src/Misc/App.cs index 6790c5a..30e79fb 100644 --- a/src/Misc/App.cs +++ b/src/Misc/App.cs @@ -21,12 +21,13 @@ namespace mpvnet public static string LightTheme { get; set; } = "light"; public static string StartSize { get; set; } = "height-session"; - public static bool RememberWindowPosition { get; set; } + public static bool AutoLoadFolder { get; set; } = true; + public static bool AutoPlay { get; set; } public static bool DebugMode { get; set; } public static bool IsTerminalAttached { get; } = Environment.GetEnvironmentVariable("_started_from_console") == "yes"; - public static bool RememberVolume { get; set; } = true; - public static bool AutoLoadFolder { get; set; } = true; public static bool Queue { get; set; } + public static bool RememberVolume { get; set; } = true; + public static bool RememberWindowPosition { get; set; } public static bool UpdateCheck { get; set; } public static int StartThreshold { get; set; } = 1500; @@ -213,23 +214,24 @@ namespace mpvnet { switch (name) { - case "remember-window-position": RememberWindowPosition = value == "yes"; return true; - case "debug-mode": DebugMode = value == "yes"; return true; - case "remember-volume": RememberVolume = value == "yes"; return true; - case "queue": Queue = value == "yes"; return true; - case "auto-load-folder": AutoLoadFolder = value == "yes"; return true; - case "update-check": UpdateCheck = value == "yes"; return true; - case "start-size": StartSize = value; return true; - case "process-instance": ProcessInstance = value; return true; - case "dark-mode": DarkMode = value; return true; - case "start-threshold": StartThreshold = value.ToInt(); return true; - case "recent-count": RecentCount = value.ToInt(); return true; - case "minimum-aspect-ratio": MinimumAspectRatio = value.ToFloat(); return true; - case "dark-theme": DarkTheme = value.Trim('\'', '"'); return true; - case "light-theme": LightTheme = value.Trim('\'', '"'); return true; - case "video-file-extensions": CorePlayer.VideoTypes = value.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); return true; case "audio-file-extensions": CorePlayer.AudioTypes = value.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); return true; + case "auto-load-folder": AutoLoadFolder = value == "yes"; return true; + case "auto-play": AutoPlay = value == "yes"; return true; + case "dark-mode": DarkMode = value; return true; + case "dark-theme": DarkTheme = value.Trim('\'', '"'); return true; + case "debug-mode": DebugMode = value == "yes"; return true; case "image-file-extensions": CorePlayer.ImageTypes = value.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); return true; + case "light-theme": LightTheme = value.Trim('\'', '"'); return true; + case "minimum-aspect-ratio": MinimumAspectRatio = value.ToFloat(); return true; + case "process-instance": ProcessInstance = value; return true; + case "queue": Queue = value == "yes"; return true; + case "recent-count": RecentCount = value.ToInt(); return true; + case "remember-volume": RememberVolume = value == "yes"; return true; + case "remember-window-position": RememberWindowPosition = value == "yes"; return true; + case "start-size": StartSize = value; return true; + case "start-threshold": StartThreshold = value.ToInt(); return true; + case "update-check": UpdateCheck = value == "yes"; return true; + case "video-file-extensions": CorePlayer.VideoTypes = value.Split(" ,;".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); return true; default: if (writeError) Terminal.WriteError($"unknown mpvnet.conf property: {name}"); diff --git a/src/Misc/Commands.cs b/src/Misc/Commands.cs index 60a3283..eb7fccf 100644 --- a/src/Misc/Commands.cs +++ b/src/Misc/Commands.cs @@ -388,7 +388,7 @@ namespace mpvnet Action = () => { Core.SetPropertyInt("playlist-pos", index); - if (Core.Paused) + if (App.AutoPlay && Core.Paused) Core.SetPropertyBool("pause", false); } }; diff --git a/src/Misc/CorePlayer.cs b/src/Misc/CorePlayer.cs index a76633f..2f66d7c 100644 --- a/src/Misc/CorePlayer.cs +++ b/src/Misc/CorePlayer.cs @@ -1134,7 +1134,7 @@ namespace mpvnet { CommandV("loadfile", file); - if (Paused) + if (App.AutoPlay && Paused) SetPropertyBool("pause", false); } else diff --git a/src/Resources/editor_conf.txt b/src/Resources/editor_conf.txt index 25bd9c0..d574a2b 100644 --- a/src/Resources/editor_conf.txt +++ b/src/Resources/editor_conf.txt @@ -516,6 +516,16 @@ option = yes If the current file ends, go to the next file, keep the last fi option = no If the current file ends, go to the next file. option = always Playback will never automatically advance to the next file. +[setting] +name = auto-play +file = mpvnet +default = no +filter = Playback +help = Sets pause=no on file load and selecting from the playlist. (mpv.net specific setting) + +option = yes +option = no + [setting] name = loop-file file = mpv