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();
}
}