Skip to content

Commit

Permalink
v7.1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
stax76 committed Feb 3, 2024
1 parent 23ed145 commit 2f73521
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 102 deletions.
5 changes: 3 additions & 2 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@

# v7.1.0.1 Beta (2024-??-??)
# v7.1.1.0 (2024-02-03)

- Chinese and Japanese translation updated. Thanks to the translation team!
- Fix command line arguments being ingnored in some situations.


# v7.1.0.0 Beta (2024-01-12)
# v7.1.0.0 (2024-01-12)

- The menu item that shows profiles was moved into the menu item that lists profiles.
- Fix geometry not working when used from mpv.conf and the conf editor.
Expand Down
6 changes: 3 additions & 3 deletions src/MpvNet.Windows/MpvNet.Windows.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
<UseWindowsForms>true</UseWindowsForms>
<ApplicationIcon>mpv-icon.ico</ApplicationIcon>
<Product>mpv.net</Product>
<FileVersion>7.1.0.0</FileVersion>
<AssemblyVersion>7.1.0.0</AssemblyVersion>
<InformationalVersion>7.1.0.0</InformationalVersion>
<FileVersion>7.1.1.0</FileVersion>
<AssemblyVersion>7.1.1.0</AssemblyVersion>
<InformationalVersion>7.1.1.0</InformationalVersion>
<Nullable>enable</Nullable>
</PropertyGroup>

Expand Down
6 changes: 3 additions & 3 deletions src/MpvNet.Windows/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ static void Main()
else if (App.CommandLine.Contains("--o="))
{
App.AutoLoadFolder = false;
Player.Init(IntPtr.Zero);
Player.ProcessCommandLineArgsPost();
Player.ProcessCommandLineFiles();
Player.Init(IntPtr.Zero, true);
CommandLine.ProcessCommandLineArgsPostInit();
CommandLine.ProcessCommandLineFiles();
Player.SetPropertyString("idle", "no");
Player.EventLoop();
Player.Destroy();
Expand Down
53 changes: 24 additions & 29 deletions src/MpvNet.Windows/WinForms/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,30 @@ public MainForm()
GuiCommand.Current.WindowScaleNet += GuiCommand_WindowScaleNet;
GuiCommand.Current.ShowMenu += GuiCommand_ShowMenu;

Init();
Player.Init(Handle, true);

// bool methods not working correctly
Player.ObserveProperty("window-maximized", PropChangeWindowMaximized);
Player.ObserveProperty("window-minimized", PropChangeWindowMinimized);

Player.ObservePropertyBool("border", PropChangeBorder);
Player.ObservePropertyBool("fullscreen", PropChangeFullscreen);
Player.ObservePropertyBool("keepaspect-window", value => Player.KeepaspectWindow = value);
Player.ObservePropertyBool("ontop", PropChangeOnTop);
Player.ObservePropertyBool("title-bar", PropChangeTitleBar);

Player.ObservePropertyString("sid", PropChangeSid);
Player.ObservePropertyString("aid", PropChangeAid);
Player.ObservePropertyString("vid", PropChangeVid);

Player.ObservePropertyString("title", PropChangeTitle);

Player.ObservePropertyInt("edition", PropChangeEdition);

Player.ObservePropertyDouble("window-scale", PropChangeWindowScale);

CommandLine.ProcessCommandLineArgsPostInit();
CommandLine.ProcessCommandLineFiles();

_taskbarButtonCreatedMessage = RegisterWindowMessage("TaskbarButtonCreated");

Expand Down Expand Up @@ -145,34 +168,6 @@ void Player_PlaylistPosChanged(int pos)
SetTitle();
}

void Init()
{
Player.Init(Handle);

// bool methods not working correctly
Player.ObserveProperty("window-maximized", PropChangeWindowMaximized);
Player.ObserveProperty("window-minimized", PropChangeWindowMinimized);

Player.ObservePropertyBool("border", PropChangeBorder);
Player.ObservePropertyBool("fullscreen", PropChangeFullscreen);
Player.ObservePropertyBool("keepaspect-window", value => Player.KeepaspectWindow = value);
Player.ObservePropertyBool("ontop", PropChangeOnTop);
Player.ObservePropertyBool("title-bar", PropChangeTitleBar);

Player.ObservePropertyString("sid", PropChangeSid);
Player.ObservePropertyString("aid", PropChangeAid);
Player.ObservePropertyString("vid", PropChangeVid);

Player.ObservePropertyString("title", PropChangeTitle);

Player.ObservePropertyInt("edition", PropChangeEdition);

Player.ObservePropertyDouble("window-scale", PropChangeWindowScale);

Player.ProcessCommandLineArgsPost();
Player.ProcessCommandLineFiles();
}

void PropChangeWindowScale(double scale)
{
if (!WasShown)
Expand Down
77 changes: 77 additions & 0 deletions src/MpvNet/CommandLine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ public class CommandLine
{
static List<StringPair>? _arguments;

static string[] _preInitProperties { get; } = {
"input-terminal", "terminal", "input-file", "config", "o",
"config-dir", "input-conf", "load-scripts", "scripts", "player-operation-mode",
"idle", "log-file", "msg-color", "dump-stats", "msg-level", "really-quiet" };

public static List<StringPair> Arguments
{
get
Expand Down Expand Up @@ -53,6 +58,78 @@ public static List<StringPair> Arguments
}
}

public static void ProcessCommandLineArgsPreInit()
{
foreach (var pair in Arguments)
{
if (pair.Name.EndsWith("-add") ||
pair.Name.EndsWith("-set") ||
pair.Name.EndsWith("-pre") ||
pair.Name.EndsWith("-clr") ||
pair.Name.EndsWith("-append") ||
pair.Name.EndsWith("-remove") ||
pair.Name.EndsWith("-toggle"))
{
continue;
}

Player.ProcessProperty(pair.Name, pair.Value);

if (!App.ProcessProperty(pair.Name, pair.Value))
Player.SetPropertyString(pair.Name, pair.Value);
}
}

public static void ProcessCommandLineArgsPostInit()
{
foreach (var pair in Arguments)
{
if (_preInitProperties.Contains(pair.Name))
continue;

if (pair.Name.EndsWith("-add"))
Player.CommandV("change-list", pair.Name[..^4], "add", pair.Value);
else if (pair.Name.EndsWith("-set"))
Player.CommandV("change-list", pair.Name[..^4], "set", pair.Value);
else if (pair.Name.EndsWith("-append"))
Player.CommandV("change-list", pair.Name[..^7], "append", pair.Value);
else if (pair.Name.EndsWith("-pre"))
Player.CommandV("change-list", pair.Name[..^4], "pre", pair.Value);
else if (pair.Name.EndsWith("-clr"))
Player.CommandV("change-list", pair.Name[..^4], "clr", "");
else if (pair.Name.EndsWith("-remove"))
Player.CommandV("change-list", pair.Name[..^7], "remove", pair.Value);
else if (pair.Name.EndsWith("-toggle"))
Player.CommandV("change-list", pair.Name[..^7], "toggle", pair.Value);
else
{
Player.ProcessProperty(pair.Name, pair.Value);

if (!App.ProcessProperty(pair.Name, pair.Value))
Player.SetPropertyString(pair.Name, pair.Value);
}
}
}

public static void ProcessCommandLineFiles()
{
List<string> files = new List<string>();

foreach (string arg in Environment.GetCommandLineArgs().Skip(1))
if (!arg.StartsWith("--") && (arg == "-" || arg.Contains("://") ||
arg.Contains(":\\") || arg.StartsWith("\\\\") || File.Exists(arg)))

files.Add(arg);

Player.LoadFiles(files.ToArray(), !App.Queue, App.Queue);

if (App.CommandLine.Contains("--shuffle"))
{
Player.Command("playlist-shuffle");
Player.SetPropertyInt("playlist-pos", 0);
}
}

public static bool Contains(string name)
{
foreach (StringPair pair in Arguments)
Expand Down
71 changes: 6 additions & 65 deletions src/MpvNet/Player.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public class MainPlayer : MpvClient
public event Action<int>? PlaylistPosChanged;
public event Action<Size>? VideoSizeChanged;

public void Init(IntPtr formHandle, bool processCommandLineArguments = true)
public void Init(IntPtr formHandle, bool processCommandLine)
{
App.ApplyShowMenuFix();

Expand All @@ -93,7 +93,10 @@ public void Init(IntPtr formHandle, bool processCommandLineArguments = true)
}

if (formHandle != IntPtr.Zero)
{
SetPropertyString("force-window", "yes");
SetPropertyLong("wid", formHandle.ToInt64());
}

SetPropertyInt("osd-duration", 2000);

Expand All @@ -104,7 +107,6 @@ public void Init(IntPtr formHandle, bool processCommandLineArguments = true)
SetPropertyString("screenshot-directory", "~~desktop/");
SetPropertyString("osd-playing-msg", "${media-title}");
SetPropertyString("osc", "yes");
SetPropertyString("force-window", "yes");
SetPropertyString("config-dir", ConfigFolder);
SetPropertyString("config", "yes");

Expand All @@ -113,8 +115,8 @@ public void Init(IntPtr formHandle, bool processCommandLineArguments = true)
if (!string.IsNullOrEmpty(UsedInputConfContent))
SetPropertyString("input-conf", @"memory://" + UsedInputConfContent);

if (processCommandLineArguments)
ProcessCommandLineArgs();
if (processCommandLine)
CommandLine.ProcessCommandLineArgsPreInit();

if (CommandLine.Contains("config-dir"))
{
Expand Down Expand Up @@ -415,67 +417,6 @@ void ProcessBluRayLogMessage(string msg)

public void SetBluRayTitle(int id) => LoadFiles(new[] { @"bd://" + id }, false, false);

public void ProcessCommandLineArgs()
{
foreach (var pair in CommandLine.Arguments)
{
if (pair.Name.EndsWith("-add") ||
pair.Name.EndsWith("-set") ||
pair.Name.EndsWith("-pre") ||
pair.Name.EndsWith("-clr") ||
pair.Name.EndsWith("-append") ||
pair.Name.EndsWith("-remove") ||
pair.Name.EndsWith("-toggle"))

continue;

ProcessProperty(pair.Name, pair.Value);

if (!App.ProcessProperty(pair.Name, pair.Value))
SetPropertyString(pair.Name, pair.Value);
}
}

public void ProcessCommandLineArgsPost()
{
foreach (var pair in CommandLine.Arguments)
{
if (pair.Name.EndsWith("-add"))
CommandV("change-list", pair.Name[..^4], "add", pair.Value);
else if (pair.Name.EndsWith("-set"))
CommandV("change-list", pair.Name[..^4], "set", pair.Value);
else if (pair.Name.EndsWith("-append"))
CommandV("change-list", pair.Name[..^7], "append", pair.Value);
else if (pair.Name.EndsWith("-pre"))
CommandV("change-list", pair.Name[..^4], "pre", pair.Value);
else if (pair.Name.EndsWith("-clr"))
CommandV("change-list", pair.Name[..^4], "clr", "");
else if (pair.Name.EndsWith("-remove"))
CommandV("change-list", pair.Name[..^7], "remove", pair.Value);
else if (pair.Name.EndsWith("-toggle"))
CommandV("change-list", pair.Name[..^7], "toggle", pair.Value);
}
}

public void ProcessCommandLineFiles()
{
List<string> files = new List<string>();

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, App.Queue);

if (App.CommandLine.Contains("--shuffle"))
{
Command("playlist-shuffle");
SetPropertyInt("playlist-pos", 0);
}
}

public DateTime LastLoad;

public void LoadFiles(string[]? files, bool loadFolder, bool append)
Expand Down

0 comments on commit 2f73521

Please sign in to comment.