From 8e45cdb47d2c27e56e003f0de777f432d7faff47 Mon Sep 17 00:00:00 2001 From: stax76 Date: Mon, 11 Dec 2023 11:38:36 +0100 Subject: [PATCH] release v7.0.0.1 Beta --- docs/changelog.md | 16 +- src/MpvNet.Windows/MpvNet.Windows.csproj | 5 +- src/MpvNet.Windows/Program.cs | 2 +- src/MpvNet.Windows/Release.ps1 | 21 --- src/MpvNet.Windows/WPF/InputWindow.xaml.cs | 4 - src/MpvNet.Windows/WinForms/MainForm.cs | 2 +- src/MpvNet/InputConf.cs | 11 -- src/MpvNet/Player.cs | 188 ++++++++++----------- 8 files changed, 101 insertions(+), 148 deletions(-) delete mode 100644 src/MpvNet.Windows/Release.ps1 diff --git a/docs/changelog.md b/docs/changelog.md index c927ad4..6543a52 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,14 +1,14 @@ -# v7.0.0.0 Beta (2023-??-??) +# v7.0.0.1 Beta (2023-12-11) - [.NET 6 is a new requirement](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) (Windows 7 is still supported) - The command palette was removed because of a compatibility problem with - the .NET 6 platform. There are user scripts as replacement: - [command_palette](https://github.com/stax76/mpv-scripts#command_palette) or - [search_menu](https://github.com/stax76/mpv-scripts#search_menu). - Unfortunately the user scripts don't support IME mode which is a problem for Asian users. -- The blue mpv.net logo was removed for better mpv compatibility. + the .NET 6 platform. There are user scripts with similar functionality: + - [command_palette](https://github.com/stax76/mpv-scripts#command_palette) + - [search_menu](https://github.com/stax76/mpv-scripts#search_menu) + - [uosc](https://github.com/tomasklaen/uosc) +- The blue mpv.net logo was removed for better OSC compatibility. - Fix message box exceding working area size. - C# and PowerShell scripting was removed because of a compatibility problem with the .NET 6 platform. .NET extensions are supported with a new host @@ -28,9 +28,9 @@ - Context menu and message boxes are available in the languages Chinese and German. Interested joining our translation team?: https://app.transifex.com/stax76/teams/ - Support for encoding mode and thumbfast. -- For script authors the following info is available in user-data: +- For script authors, the following info is available in user-data: user-data/frontend/name=mpv.net - user-data/frontend/version=7.0.0.0 + user-data/frontend/version=version name user-data/frontend/process-path=the process path - MediaInfo 23.11 - libmpv zhongfly 2023-11-03. diff --git a/src/MpvNet.Windows/MpvNet.Windows.csproj b/src/MpvNet.Windows/MpvNet.Windows.csproj index b815d1d..beb00e9 100644 --- a/src/MpvNet.Windows/MpvNet.Windows.csproj +++ b/src/MpvNet.Windows/MpvNet.Windows.csproj @@ -5,13 +5,14 @@ net6.0-windows MpvNet.Windows false + true mpvnet true true mpv-icon.ico mpv.net - 7.0.0.0 - 7.0.0.0 + 7.0.0.1 + 7.0.0.1 enable diff --git a/src/MpvNet.Windows/Program.cs b/src/MpvNet.Windows/Program.cs index 8312558..48f81bb 100644 --- a/src/MpvNet.Windows/Program.cs +++ b/src/MpvNet.Windows/Program.cs @@ -101,7 +101,7 @@ static class Program { App.AutoLoadFolder = false; Player.Init(IntPtr.Zero); - Player.ProcessCommandLine(false); + Player.ProcessCommandLineFiles(); Player.SetPropertyString("idle", "no"); Player.EventLoop(); Player.Destroy(); diff --git a/src/MpvNet.Windows/Release.ps1 b/src/MpvNet.Windows/Release.ps1 deleted file mode 100644 index dd43b17..0000000 --- a/src/MpvNet.Windows/Release.ps1 +++ /dev/null @@ -1,21 +0,0 @@ - -$tmpDir = 'D:\Work' -$exePath = $PSScriptRoot + '\bin\mpvnet.exe' -$versionInfo = [Diagnostics.FileVersionInfo]::GetVersionInfo($exePath) -$7z = 'C:\Program Files\7-Zip\7z.exe' - -$targetDir = $tmpDir + "\mpvnet-$($versionInfo.FileVersion)-beta" -Copy-Item $PSScriptRoot\bin $targetDir -Recurse -Exclude System.Management.Automation.xml - -$folders = 'Debug', 'Release', 'x64', 'x86', 'Arm' - -foreach ($folder in $folders) { - Remove-Item (Join-Path $targetDir $folder) -Recurse -ErrorAction SilentlyContinue -} - -& $7z a -tzip -mx9 "$targetDir.zip" -r "$targetDir\*" - -if ($LastExitCode) - { throw $LastExitCode } - -Write-Host 'successfully finished' -ForegroundColor Green diff --git a/src/MpvNet.Windows/WPF/InputWindow.xaml.cs b/src/MpvNet.Windows/WPF/InputWindow.xaml.cs index 7154412..fa2a079 100644 --- a/src/MpvNet.Windows/WPF/InputWindow.xaml.cs +++ b/src/MpvNet.Windows/WPF/InputWindow.xaml.cs @@ -105,15 +105,11 @@ public partial class InputWindow : Window return; if (App.InputConf.HasMenu) - { - App.InputConf.CreateBackup(); File.WriteAllText(App.InputConf.Path, App.InputConf.Content = newContent); - } else { newContent = InputHelp.ConvertToString(InputHelp.GetReducedBindings(Bindings)); newContent = newContent.Replace("#menu: ", "# "); - App.InputConf.CreateBackup(); File.WriteAllText(App.InputConf.Path, App.InputConf.Content = newContent); } diff --git a/src/MpvNet.Windows/WinForms/MainForm.cs b/src/MpvNet.Windows/WinForms/MainForm.cs index 744711f..3a872bc 100644 --- a/src/MpvNet.Windows/WinForms/MainForm.cs +++ b/src/MpvNet.Windows/WinForms/MainForm.cs @@ -163,7 +163,7 @@ public partial class MainForm : Form Player.ObservePropertyDouble("window-scale", PropChangeWindowScale); - Player.ProcessCommandLine(false); + Player.ProcessCommandLineFiles(); } void PropChangeWindowScale(double scale) diff --git a/src/MpvNet/InputConf.cs b/src/MpvNet/InputConf.cs index b26761e..f86387c 100644 --- a/src/MpvNet/InputConf.cs +++ b/src/MpvNet/InputConf.cs @@ -73,15 +73,4 @@ public class InputConf return InputHelp.ConvertToString(defaults); } } - - public void CreateBackup() - { - if (!File.Exists(Path)) - return; - - string targetPath = System.IO.Path.GetTempPath().AddSep() + - "mpv.net input.conf backup " + Guid.NewGuid() + ".conf"; - - File.Copy(Path, targetPath); - } } diff --git a/src/MpvNet/Player.cs b/src/MpvNet/Player.cs index 8873042..d595732 100644 --- a/src/MpvNet/Player.cs +++ b/src/MpvNet/Player.cs @@ -111,7 +111,7 @@ public class MainPlayer : MpvClient if (!string.IsNullOrEmpty(UsedInputConfContent)) SetPropertyString("input-conf", @"memory://" + UsedInputConfContent); - ProcessCommandLine(true); + ProcessCommandLineArgs(); if (App.CommandLineArguments.ContainsKey("config-dir")) { @@ -407,114 +407,102 @@ public class MainPlayer : MpvClient public void SetBluRayTitle(int id) => LoadFiles(new[] { @"bd://" + id }, false, false); - public void ProcessCommandLine(bool preInit) + public void ProcessCommandLineArgs() { - bool shuffle = false; - var args = Environment.GetCommandLineArgs().Skip(1); - - foreach (string i in args) + foreach (string i in Environment.GetCommandLineArgs().Skip(1)) { string arg = i; - if (arg.StartsWith("-") && arg.Length > 1) + if (!arg.StartsWith("--")) + continue; + + if (arg == "--profile=help") { - if (!preInit) - { - if (arg == "--profile=help") - { - Console.WriteLine(GetProfiles()); - continue; - } - else if (arg == "--vd=help" || arg == "--ad=help") - { - Console.WriteLine(GetDecoders()); - continue; - } - else if (arg == "--audio-device=help") - { - Console.WriteLine(GetPropertyOsdString("audio-device-list")); - continue; - } - else if (arg == "--version") - { - Console.WriteLine(AppClass.About); - continue; - } - else if (arg == "--input-keylist") - { - Console.WriteLine(GetPropertyString("input-key-list").Replace(",", BR)); - continue; - } - else if (arg.StartsWith("--command=")) - { - Command(arg[10..]); - continue; - } - } - - if (!arg.StartsWith("--")) - arg = "-" + arg; - - if (!arg.Contains('=')) - { - if (arg.Contains("--no-")) - { - arg = arg.Replace("--no-", "--"); - arg += "=no"; - } - else - arg += "=yes"; - } - - string left = arg[2..arg.IndexOf("=")]; - string right = arg[(left.Length + 3)..]; - - if (string.IsNullOrEmpty(left)) - continue; - - switch (left) - { - case "script": left = "scripts"; break; - case "audio-file": left = "audio-files"; break; - case "sub-file": left = "sub-files"; break; - case "external-file": left = "external-files"; break; - } - - if (left == "shuffle" && right == "yes") - shuffle = true; - - App.CommandLineArguments[left] = right; - - ProcessProperty(left, right); - - if (!App.ProcessProperty(left, right)) - SetPropertyString(left, right); + Console.WriteLine(GetProfiles()); + continue; } + else if (arg == "--vd=help" || arg == "--ad=help") + { + Console.WriteLine(GetDecoders()); + continue; + } + else if (arg == "--audio-device=help") + { + Console.WriteLine(GetPropertyOsdString("audio-device-list")); + continue; + } + else if (arg == "--version") + { + Console.WriteLine(AppClass.About); + continue; + } + else if (arg == "--input-keylist") + { + Console.WriteLine(GetPropertyString("input-key-list").Replace(",", BR)); + continue; + } + else if (arg.StartsWith("--command=")) + { + Command(arg[10..]); + continue; + } + + if (!arg.Contains('=')) + { + if (arg.Contains("--no-")) + { + arg = arg.Replace("--no-", "--"); + arg += "=no"; + } + else + arg += "=yes"; + } + + string left = arg[2..arg.IndexOf("=")]; + string right = arg[(left.Length + 3)..]; + + if (string.IsNullOrEmpty(left)) + continue; + + switch (left) + { + case "script": left = "scripts"; break; + case "audio-file": left = "audio-files"; break; + case "sub-file": left = "sub-files"; break; + case "external-file": left = "external-files"; break; + } + + App.CommandLineArguments[left] = right; + + ProcessProperty(left, right); + + if (!App.ProcessProperty(left, right)) + SetPropertyString(left, right); + } + } + + public void ProcessCommandLineFiles() + { + List files = new List(); + + foreach (string arg in Environment.GetCommandLineArgs().Skip(1)) + if (!arg.StartsWith("--") && (arg == "-" || arg.Contains("://") || + arg.Contains(":\\") || arg.StartsWith("\\\\") || File.Exists(arg))) + + files.Add(arg); + + LoadFiles(files.ToArray(), !App.Queue, false || App.Queue); + + if (App.CommandLine.Contains("--shuffle")) + { + Command("playlist-shuffle"); + SetPropertyInt("playlist-pos", 0); } - if (!preInit) + if (files.Count == 0 || files[0].Contains("://")) { - List files = new List(); - - foreach (string arg in args) - if (!arg.StartsWith("--") && (arg == "-" || arg.Contains("://") || - arg.Contains(":\\") || arg.StartsWith("\\\\") || File.Exists(arg))) - - files.Add(arg); - - LoadFiles(files.ToArray(), !App.Queue, false || App.Queue); - - if (shuffle) - { - Command("playlist-shuffle"); - SetPropertyInt("playlist-pos", 0); - } - - if (files.Count == 0 || files[0].Contains("://")) - { - VideoSizeChanged?.Invoke(VideoSize); - VideoSizeAutoResetEvent.Set(); - } + VideoSizeChanged?.Invoke(VideoSize); + VideoSizeAutoResetEvent.Set(); } }