Support for encoding mode and thumbfast and some other new features and improvements
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
the .NET 6 platform. There are user scripts as replacement:
|
the .NET 6 platform. There are user scripts as replacement:
|
||||||
[command_palette](https://github.com/stax76/mpv-scripts#command_palette) or
|
[command_palette](https://github.com/stax76/mpv-scripts#command_palette) or
|
||||||
[search_menu](https://github.com/stax76/mpv-scripts#search_menu).
|
[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.
|
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 blue mpv.net logo was removed for better mpv compatibility.
|
||||||
- Fix message box exceding working area size.
|
- Fix message box exceding working area size.
|
||||||
- C# and PowerShell scripting was removed because of a compatibility problem
|
- C# and PowerShell scripting was removed because of a compatibility problem
|
||||||
@@ -25,8 +25,14 @@
|
|||||||
- Various improvements and fixes in the input bindings editor.
|
- Various improvements and fixes in the input bindings editor.
|
||||||
- Automated nightly portable builds (thx to dyphire).
|
- Automated nightly portable builds (thx to dyphire).
|
||||||
- Various new or changed default bindings.
|
- Various new or changed default bindings.
|
||||||
- Context menu and message boxes are available in the languages German,
|
- Context menu and message boxes are available in the languages Chinese and German.
|
||||||
it can be enabled with the new option `language`.
|
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:
|
||||||
|
user-data/frontend/name=mpv.net
|
||||||
|
user-data/frontend/version=7.0.0.0
|
||||||
|
user-data/frontend/process-path=the process path
|
||||||
|
- MediaInfo 23.11
|
||||||
- libmpv zhongfly 2023-11-03.
|
- libmpv zhongfly 2023-11-03.
|
||||||
|
|
||||||
# v6.0.3.2 Beta (2022-10-14)
|
# v6.0.3.2 Beta (2022-10-14)
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ Shows the about dialog.
|
|||||||
Shows available audio devices in a message box.
|
Shows available audio devices in a message box.
|
||||||
|
|
||||||
### show-commands
|
### show-commands
|
||||||
Shows available mpv input commands.
|
Shows available [mpv input commands](https://mpv.io/manual/master/#list-of-input-commands).
|
||||||
|
|
||||||
### show-conf-editor
|
### show-conf-editor
|
||||||
Shows the conf editor.
|
Shows the conf editor.
|
||||||
@@ -286,6 +286,15 @@ Shows media info with raw property names.
|
|||||||
### show-menu
|
### show-menu
|
||||||
Shows the context menu.
|
Shows the context menu.
|
||||||
|
|
||||||
|
### show-playlist
|
||||||
|
Shows the playlist in a message box. For a playlist menu
|
||||||
|
the following user scripts exist:
|
||||||
|
|
||||||
|
- https://github.com/stax76/mpv-scripts#command_palette
|
||||||
|
- https://github.com/stax76/mpv-scripts#search_menu
|
||||||
|
- https://github.com/tomasklaen/uosc
|
||||||
|
- https://github.com/jonniek/mpv-playlistmanager
|
||||||
|
|
||||||
### show-profiles
|
### show-profiles
|
||||||
Shows available profiles with a message box.
|
Shows available profiles with a message box.
|
||||||
|
|
||||||
@@ -432,6 +441,9 @@ Enable this only when a developer asks for it. Default: no
|
|||||||
User interface display language.
|
User interface display language.
|
||||||
mpv.net must be restarted after a change.
|
mpv.net must be restarted after a change.
|
||||||
|
|
||||||
|
Interested joining our translation team?:
|
||||||
|
https://app.transifex.com/stax76/teams/
|
||||||
|
|
||||||
#### --dark-mode=\<value\>
|
#### --dark-mode=\<value\>
|
||||||
|
|
||||||
Enables a dark theme.
|
Enables a dark theme.
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
|
|
||||||
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Globalization;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Windows.Interop;
|
using System.Windows.Interop;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Globalization;
|
|
||||||
|
|
||||||
using MpvNet.ExtensionMethod;
|
using MpvNet.ExtensionMethod;
|
||||||
using MpvNet.Help;
|
|
||||||
using MpvNet.Windows.WinForms;
|
using MpvNet.Windows.WinForms;
|
||||||
using MpvNet.Windows.WPF.Views;
|
using MpvNet.Windows.WPF.Views;
|
||||||
using MpvNet.Windows.WPF;
|
using MpvNet.Windows.WPF;
|
||||||
@@ -20,7 +20,6 @@ public class GuiCommand
|
|||||||
|
|
||||||
public event Action<float>? ScaleWindow;
|
public event Action<float>? ScaleWindow;
|
||||||
public event Action<string>? MoveWindow;
|
public event Action<string>? MoveWindow;
|
||||||
public event Action<double>? WindowScaleMpv;
|
|
||||||
public event Action<float>? WindowScaleNet;
|
public event Action<float>? WindowScaleNet;
|
||||||
public event Action? ShowMenu;
|
public event Action? ShowMenu;
|
||||||
|
|
||||||
@@ -45,14 +44,13 @@ public class GuiCommand
|
|||||||
["window-scale"] = args => WindowScaleNet?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
["window-scale"] = args => WindowScaleNet?.Invoke(float.Parse(args[0], CultureInfo.InvariantCulture)),
|
||||||
["show-menu"] = args => ShowMenu?.Invoke(),
|
["show-menu"] = args => ShowMenu?.Invoke(),
|
||||||
["show-bindings"] = args => ShowBindings(),
|
["show-bindings"] = args => ShowBindings(),
|
||||||
|
["show-playlist"] = args => ShowPlaylist(),
|
||||||
|
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
["show-info"] = args => ShowMediaInfo(new[] { "osd" }), // deprecated
|
["show-info"] = args => ShowMediaInfo(new[] { "osd" }), // deprecated
|
||||||
["quick-bookmark"] = args => QuickBookmark(), // deprecated
|
["quick-bookmark"] = args => QuickBookmark(), // deprecated
|
||||||
["show-commands"] = args => ShowCommands(), // deprecated
|
|
||||||
["show-history"] = args => ShowHistory(), // deprecated
|
["show-history"] = args => ShowHistory(), // deprecated
|
||||||
["show-playlist"] = args => ShowPlaylist(), // deprecated
|
|
||||||
["show-command-palette"] = args => ShowCommandPalette(), // deprecated
|
["show-command-palette"] = args => ShowCommandPalette(), // deprecated
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -250,7 +248,7 @@ public class GuiCommand
|
|||||||
text = text.TrimEx();
|
text = text.TrimEx();
|
||||||
|
|
||||||
if (editor)
|
if (editor)
|
||||||
ShowTextWithEditor("media-info", text);
|
Command.ShowTextWithEditor("media-info", text);
|
||||||
else if (osd)
|
else if (osd)
|
||||||
Command.ShowText(text.Replace("\r", ""), 5000, 16);
|
Command.ShowText(text.Replace("\r", ""), 5000, 16);
|
||||||
else
|
else
|
||||||
@@ -263,53 +261,62 @@ public class GuiCommand
|
|||||||
|
|
||||||
public static string FormatTime(double value) => ((int)value).ToString("00");
|
public static string FormatTime(double value) => ((int)value).ToString("00");
|
||||||
|
|
||||||
public void ShowTextWithEditor(string name, string text)
|
public void ShowBindings() => Command.ShowTextWithEditor("Bindings", Player.UsedInputConfContent);
|
||||||
|
|
||||||
|
public void ShowPlaylist()
|
||||||
{
|
{
|
||||||
string file = Path.Combine(Path.GetTempPath(), name + ".txt");
|
var count = Player.GetPropertyInt("playlist-count");
|
||||||
App.TempFiles.Add(file);
|
|
||||||
File.WriteAllText(file, BR + text.Trim() + BR);
|
if (count < 1)
|
||||||
ProcessHelp.ShellExecute(file);
|
return;
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
for (int i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
string name = Player.GetPropertyString($"playlist/{i}/title");
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(name))
|
||||||
|
name = Player.GetPropertyString($"playlist/{i}/filename").FileName();
|
||||||
|
|
||||||
|
sb.AppendLine(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ShowBindings()
|
string header = BR + "For a playlist menu the following user scripts exist:" + BR2 +
|
||||||
{
|
"https://github.com/stax76/mpv-scripts#command_palette" + BR +
|
||||||
string info = "# mpv.net might modify the input.conf content before it is passed to mpv." + BR +
|
"https://github.com/stax76/mpv-scripts#search_menu" + BR +
|
||||||
"# Below are the bindings as they were passed to mpv." + BR2;
|
"https://github.com/tomasklaen/uosc" + BR +
|
||||||
|
"https://github.com/jonniek/mpv-playlistmanager" + BR2;
|
||||||
|
|
||||||
ShowTextWithEditor("Bindings", info + Player.UsedInputConfContent);
|
Msg.ShowInfo(header + sb.ToString().TrimEnd());
|
||||||
}
|
}
|
||||||
|
|
||||||
//public void ShowCommandPalette()
|
|
||||||
//{
|
|
||||||
// MainForm.Instance?.BeginInvoke(() => {
|
|
||||||
// CommandPalette.Instance.SetItems(CommandPalette.GetItems());
|
|
||||||
// MainForm.Instance.ShowCommandPalette();
|
|
||||||
// CommandPalette.Instance.SelectFirst();
|
|
||||||
// });
|
|
||||||
//}
|
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
public void QuickBookmark() =>
|
public void QuickBookmark() =>
|
||||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
||||||
"https://github.com/stax76/mpv-scripts/blob/main/misc.lua");
|
"https://github.com/stax76/mpv-scripts/blob/main/misc.lua");
|
||||||
|
|
||||||
// deprecated
|
|
||||||
public void ShowCommands() =>
|
|
||||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
|
||||||
"https://github.com/stax76/mpv-scripts#command_palette");
|
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
public void ShowHistory() =>
|
public void ShowHistory() =>
|
||||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
||||||
"https://github.com/stax76/mpv-scripts/blob/main/history.lua");
|
"https://github.com/stax76/mpv-scripts/blob/main/history.lua");
|
||||||
|
|
||||||
// deprecated
|
|
||||||
public void ShowPlaylist() =>
|
|
||||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
|
||||||
"https://github.com/stax76/mpv-scripts#command_palette");
|
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
public void ShowCommandPalette() =>
|
public void ShowCommandPalette() =>
|
||||||
Msg.ShowInfo("This feature was moved to a user script,\nwhich can be found here:\n\n" +
|
Msg.ShowInfo(
|
||||||
"https://github.com/stax76/mpv-scripts#command_palette");
|
"This feature was removed but is still available in the form of user scripts:" + BR2 +
|
||||||
|
"https://github.com/stax76/mpv-scripts#command_palette" + BR +
|
||||||
|
"https://github.com/stax76/mpv-scripts#search_menu" + BR +
|
||||||
|
"https://github.com/tomasklaen/uosc");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//public void ShowCommandPalette()
|
||||||
|
//{
|
||||||
|
// MainForm.Instance?.BeginInvoke(() => {
|
||||||
|
// CommandPalette.Instance.SetItems(CommandPalette.GetItems());
|
||||||
|
// MainForm.Instance.ShowCommandPalette();
|
||||||
|
// CommandPalette.Instance.SelectFirst();
|
||||||
|
// });
|
||||||
|
//}
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
using System.Globalization;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
@@ -8,6 +7,7 @@ using MpvNet.Help;
|
|||||||
using MpvNet.Windows.UI;
|
using MpvNet.Windows.UI;
|
||||||
using MpvNet.Windows.Help;
|
using MpvNet.Windows.Help;
|
||||||
using MpvNet.Windows.WPF;
|
using MpvNet.Windows.WPF;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace MpvNet.Windows;
|
namespace MpvNet.Windows;
|
||||||
|
|
||||||
@@ -42,8 +42,12 @@ static class Program
|
|||||||
Theme.Init();
|
Theme.Init();
|
||||||
Mutex mutex = new Mutex(true, StringHelp.GetMD5Hash(App.ConfPath), out bool isFirst);
|
Mutex mutex = new Mutex(true, StringHelp.GetMD5Hash(App.ConfPath), out bool isFirst);
|
||||||
|
|
||||||
if (Control.ModifierKeys.HasFlag(Keys.Shift))
|
if (Control.ModifierKeys.HasFlag(Keys.Shift) ||
|
||||||
|
App.CommandLine.Contains("--process-instance=multi") ||
|
||||||
|
App.CommandLine.Contains("--o="))
|
||||||
|
{
|
||||||
App.ProcessInstance = "multi";
|
App.ProcessInstance = "multi";
|
||||||
|
}
|
||||||
|
|
||||||
if ((App.ProcessInstance == "single" || App.ProcessInstance == "queue") && !isFirst)
|
if ((App.ProcessInstance == "single" || App.ProcessInstance == "queue") && !isFirst)
|
||||||
{
|
{
|
||||||
@@ -93,6 +97,16 @@ static class Program
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (App.CommandLine.Contains("--o="))
|
||||||
|
{
|
||||||
|
App.AutoLoadFolder = false;
|
||||||
|
Player.Init(IntPtr.Zero);
|
||||||
|
Player.ProcessCommandLine(false);
|
||||||
|
Player.SetPropertyString("idle", "no");
|
||||||
|
Player.EventLoop();
|
||||||
|
Player.Destroy();
|
||||||
|
}
|
||||||
|
else
|
||||||
Application.Run(new WinForms.MainForm());
|
Application.Run(new WinForms.MainForm());
|
||||||
|
|
||||||
if (App.IsTerminalAttached)
|
if (App.IsTerminalAttached)
|
||||||
|
|||||||
@@ -522,7 +522,8 @@ name = language
|
|||||||
file = mpvnet
|
file = mpvnet
|
||||||
default = system
|
default = system
|
||||||
directory = UI
|
directory = UI
|
||||||
help = User interface display language.\nmpv.net must be restarted after a change.
|
help = User interface display language.\nmpv.net must be restarted after a change.\nInterested joining our translation team?:
|
||||||
|
url = https://app.transifex.com/stax76/teams/
|
||||||
option = system
|
option = system
|
||||||
option = english
|
option = english
|
||||||
option = chinese-china
|
option = chinese-china
|
||||||
|
|||||||
@@ -9,10 +9,8 @@ namespace MpvNet.Windows.WPF;
|
|||||||
|
|
||||||
public class HyperlinkEx : Hyperlink
|
public class HyperlinkEx : Hyperlink
|
||||||
{
|
{
|
||||||
void HyperLinkEx_RequestNavigate(object sender, RequestNavigateEventArgs e)
|
void HyperLinkEx_RequestNavigate(object sender, RequestNavigateEventArgs e) =>
|
||||||
{
|
|
||||||
ProcessHelp.ShellExecute(e.Uri.AbsoluteUri);
|
ProcessHelp.ShellExecute(e.Uri.AbsoluteUri);
|
||||||
}
|
|
||||||
|
|
||||||
public void SetURL(string? url)
|
public void SetURL(string? url)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,8 +3,18 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:hc="clr-namespace:HandyControl.Controls"
|
xmlns:hc="clr-namespace:HandyControl.Controls"
|
||||||
xmlns:o="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
|
xmlns:o="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
|
||||||
|
xmlns:local="clr-namespace:MpvNet.Windows.WPF"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
<Style TargetType="local:HyperlinkEx">
|
||||||
|
<Style.Triggers>
|
||||||
|
<Trigger Property="IsMouseOver" Value="True">
|
||||||
|
<Setter Property="Foreground" Value="CornflowerBlue" />
|
||||||
|
<Setter Property="TextBlock.TextDecorations" Value="Underline" />
|
||||||
|
</Trigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
|
||||||
<Style TargetType="Button">
|
<Style TargetType="Button">
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
|
|
||||||
using CommunityToolkit.Mvvm.Messaging;
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
using Microsoft.VisualBasic;
|
|
||||||
using MpvNet.ExtensionMethod;
|
using MpvNet.ExtensionMethod;
|
||||||
using MpvNet.Help;
|
using MpvNet.Help;
|
||||||
using MpvNet.MVVM;
|
using MpvNet.MVVM;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
|
|
||||||
namespace MpvNet;
|
namespace MpvNet;
|
||||||
|
|
||||||
public class AppClass
|
public class AppClass
|
||||||
{
|
{
|
||||||
public List<string> TempFiles { get; } = new List<string>();
|
public List<string> TempFiles { get; } = new ();
|
||||||
|
public Dictionary<string, string> CommandLineArguments { get; } = new ();
|
||||||
|
|
||||||
public string ConfPath { get => Player.ConfigFolder + "mpvnet.conf"; }
|
public string ConfPath { get => Player.ConfigFolder + "mpvnet.conf"; }
|
||||||
public string ProcessInstance { get; set; } = "single";
|
public string ProcessInstance { get; set; } = "single";
|
||||||
@@ -19,6 +19,7 @@ public class AppClass
|
|||||||
public string LightTheme { get; set; } = "light";
|
public string LightTheme { get; set; } = "light";
|
||||||
public string StartSize { get; set; } = "height-session";
|
public string StartSize { get; set; } = "height-session";
|
||||||
public string Language { get; set; } = "system";
|
public string Language { get; set; } = "system";
|
||||||
|
public string CommandLine { get; set; } = Environment.CommandLine;
|
||||||
|
|
||||||
public bool AutoLoadFolder { get; set; } = true;
|
public bool AutoLoadFolder { get; set; } = true;
|
||||||
public bool DebugMode { get; set; }
|
public bool DebugMode { get; set; }
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.Json;
|
||||||
using MpvNet.Help;
|
using MpvNet.Help;
|
||||||
|
|
||||||
namespace MpvNet;
|
namespace MpvNet;
|
||||||
@@ -17,15 +18,16 @@ public class Command
|
|||||||
["play-pause"] = PlayPause,
|
["play-pause"] = PlayPause,
|
||||||
["shell-execute"] = args => ProcessHelp.ShellExecute(args[0]),
|
["shell-execute"] = args => ProcessHelp.ShellExecute(args[0]),
|
||||||
["show-text"] = args => ShowText(args[0], Convert.ToInt32(args[1]), Convert.ToInt32(args[2])),
|
["show-text"] = args => ShowText(args[0], Convert.ToInt32(args[1]), Convert.ToInt32(args[2])),
|
||||||
|
["show-commands"] = args => ShowCommands(),
|
||||||
|
["cycle-audio"] = args => CycleAudio(),
|
||||||
|
["cycle-subtitles"] = args => CycleSubtitles(),
|
||||||
|
["playlist-first"] = args => PlaylistFirst(),
|
||||||
|
["playlist-last"] = args => PlaylistLast(),
|
||||||
|
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
["playlist-add"] = args => PlaylistAdd(Convert.ToInt32(args[0])), // deprecated
|
["playlist-add"] = args => PlaylistAdd(Convert.ToInt32(args[0])), // deprecated
|
||||||
["show-progress"] = args => ShowProgress(), // deprecated
|
["show-progress"] = args => ShowProgress(), // deprecated
|
||||||
["cycle-audio"] = args => CycleAudio(), // deprecated
|
|
||||||
["cycle-subtitles"] = args => CycleSubtitles(), // deprecated
|
|
||||||
["playlist-first"] = args => PlaylistFirst(), // deprecated
|
|
||||||
["playlist-last"] = args => PlaylistLast(), // deprecated
|
|
||||||
["playlist-random"] = args => PlaylistRandom(), // deprecated
|
["playlist-random"] = args => PlaylistRandom(), // deprecated
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -50,6 +52,37 @@ public class Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void ShowCommands()
|
||||||
|
{
|
||||||
|
string json = Core.GetPropertyString("command-list");
|
||||||
|
var enumerator = JsonDocument.Parse(json).RootElement.EnumerateArray();
|
||||||
|
var commands = enumerator.OrderBy(it => it.GetProperty("name").GetString());
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
foreach (var cmd in commands)
|
||||||
|
{
|
||||||
|
sb.AppendLine();
|
||||||
|
sb.AppendLine(cmd.GetProperty("name").GetString());
|
||||||
|
|
||||||
|
foreach (var args in cmd.GetProperty("args").EnumerateArray())
|
||||||
|
{
|
||||||
|
string value = args.GetProperty("name").GetString() + " <" +
|
||||||
|
args.GetProperty("type").GetString()!.ToLower() + ">";
|
||||||
|
|
||||||
|
if (args.GetProperty("optional").GetBoolean())
|
||||||
|
value = "[" + value + "]";
|
||||||
|
|
||||||
|
sb.AppendLine(" " + value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string header = BR +
|
||||||
|
"https://mpv.io/manual/master/#list-of-input-commands" + BR2 +
|
||||||
|
"https://github.com/stax76/mpv-scripts#command_palette" + BR;
|
||||||
|
|
||||||
|
ShowTextWithEditor("Input Commands", header + sb.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
public static void ShowText(string text, int duration = 0, int fontSize = 0)
|
public static void ShowText(string text, int duration = 0, int fontSize = 0)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(text))
|
if (string.IsNullOrEmpty(text))
|
||||||
@@ -65,42 +98,14 @@ public class Command
|
|||||||
"}${osd-ass-cc/1}" + text + "\" " + duration);
|
"}${osd-ass-cc/1}" + text + "\" " + duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
// deprecated
|
public static void ShowTextWithEditor(string name, string text)
|
||||||
public static void PlaylistAdd(int value)
|
|
||||||
{
|
{
|
||||||
int pos = Player.PlaylistPos;
|
string file = Path.Combine(Path.GetTempPath(), name + ".txt");
|
||||||
int count = Player.GetPropertyInt("playlist-count");
|
App.TempFiles.Add(file);
|
||||||
|
File.WriteAllText(file, BR + text.Trim() + BR);
|
||||||
if (count < 2)
|
ProcessHelp.ShellExecute(file);
|
||||||
return;
|
|
||||||
|
|
||||||
pos += value;
|
|
||||||
|
|
||||||
if (pos < 0)
|
|
||||||
pos = count - 1;
|
|
||||||
|
|
||||||
if (pos > count - 1)
|
|
||||||
pos = 0;
|
|
||||||
|
|
||||||
Player.SetPropertyInt("playlist-pos", pos);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// deprecated
|
|
||||||
public void ShowProgress()
|
|
||||||
{
|
|
||||||
TimeSpan position = TimeSpan.FromSeconds(Player.GetPropertyDouble("time-pos"));
|
|
||||||
TimeSpan duration = TimeSpan.FromSeconds(Player.GetPropertyDouble("duration"));
|
|
||||||
|
|
||||||
string text = FormatTime(position.TotalMinutes) + ":" +
|
|
||||||
FormatTime(position.Seconds) + " / " +
|
|
||||||
FormatTime(duration.TotalMinutes) + ":" +
|
|
||||||
FormatTime(duration.Seconds) + " " +
|
|
||||||
DateTime.Now.ToString("H:mm dddd d MMMM", CultureInfo.InvariantCulture);
|
|
||||||
|
|
||||||
Player.CommandV("show-text", text, "5000");
|
|
||||||
}
|
|
||||||
|
|
||||||
// deprecated
|
|
||||||
public static void CycleAudio()
|
public static void CycleAudio()
|
||||||
{
|
{
|
||||||
Player.UpdateExternalTracks();
|
Player.UpdateExternalTracks();
|
||||||
@@ -129,7 +134,6 @@ public class Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// deprecated
|
|
||||||
public static void CycleSubtitles()
|
public static void CycleSubtitles()
|
||||||
{
|
{
|
||||||
Player.UpdateExternalTracks();
|
Player.UpdateExternalTracks();
|
||||||
@@ -162,13 +166,31 @@ public class Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// deprecated
|
// deprecated
|
||||||
|
public static void PlaylistAdd(int value)
|
||||||
|
{
|
||||||
|
int pos = Player.PlaylistPos;
|
||||||
|
int count = Player.GetPropertyInt("playlist-count");
|
||||||
|
|
||||||
|
if (count < 2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
pos += value;
|
||||||
|
|
||||||
|
if (pos < 0)
|
||||||
|
pos = count - 1;
|
||||||
|
|
||||||
|
if (pos > count - 1)
|
||||||
|
pos = 0;
|
||||||
|
|
||||||
|
Player.SetPropertyInt("playlist-pos", pos);
|
||||||
|
}
|
||||||
|
|
||||||
public static void PlaylistFirst()
|
public static void PlaylistFirst()
|
||||||
{
|
{
|
||||||
if (Player.PlaylistPos != 0)
|
if (Player.PlaylistPos != 0)
|
||||||
Player.SetPropertyInt("playlist-pos", 0);
|
Player.SetPropertyInt("playlist-pos", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// deprecated
|
|
||||||
public static void PlaylistLast()
|
public static void PlaylistLast()
|
||||||
{
|
{
|
||||||
int count = Player.GetPropertyInt("playlist-count");
|
int count = Player.GetPropertyInt("playlist-count");
|
||||||
@@ -183,4 +205,19 @@ public class Command
|
|||||||
int count = Player.GetPropertyInt("playlist-count");
|
int count = Player.GetPropertyInt("playlist-count");
|
||||||
Player.SetPropertyInt("playlist-pos", new Random().Next(count));
|
Player.SetPropertyInt("playlist-pos", new Random().Next(count));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deprecated
|
||||||
|
public void ShowProgress()
|
||||||
|
{
|
||||||
|
TimeSpan position = TimeSpan.FromSeconds(Player.GetPropertyDouble("time-pos"));
|
||||||
|
TimeSpan duration = TimeSpan.FromSeconds(Player.GetPropertyDouble("duration"));
|
||||||
|
|
||||||
|
string text = FormatTime(position.TotalMinutes) + ":" +
|
||||||
|
FormatTime(position.Seconds) + " / " +
|
||||||
|
FormatTime(duration.TotalMinutes) + ":" +
|
||||||
|
FormatTime(duration.Seconds) + " " +
|
||||||
|
DateTime.Now.ToString("H:mm dddd d MMMM", CultureInfo.InvariantCulture);
|
||||||
|
|
||||||
|
Player.CommandV("show-text", text, "5000");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,16 +6,18 @@ namespace MpvNet;
|
|||||||
|
|
||||||
public class InputConf
|
public class InputConf
|
||||||
{
|
{
|
||||||
string? _content;
|
string? _path;
|
||||||
|
|
||||||
public InputConf(string path) { Path = path; }
|
public InputConf(string path) { Path = path; }
|
||||||
|
|
||||||
public string Path { get; }
|
public string Content { get; set; } = "";
|
||||||
|
|
||||||
public string Content
|
public string Path {
|
||||||
{
|
get => _path ?? "";
|
||||||
get => _content ??= FileHelp.ReadTextFile(Path);
|
set {
|
||||||
set => _content = value;
|
_path = value;
|
||||||
|
Content = File.Exists(_path) ? FileHelp.ReadTextFile(_path) : "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool HasMenu => Content.Contains("#menu:") || Content.Contains("#! ");
|
public bool HasMenu => Content.Contains("#menu:") || Content.Contains("#! ");
|
||||||
|
|||||||
@@ -20,10 +20,16 @@ public static class InputHelp
|
|||||||
new (_("File"), _("Recent Files")),
|
new (_("File"), _("Recent Files")),
|
||||||
new (_("File"), "-"),
|
new (_("File"), "-"),
|
||||||
new (_("File"), _("Exit"), "quit", "Esc"),
|
new (_("File"), _("Exit"), "quit", "Esc"),
|
||||||
|
|
||||||
new (_("Playback"), _("Play/Pause"), "script-message-to mpvnet play-pause", "Space"),
|
new (_("Playback"), _("Play/Pause"), "script-message-to mpvnet play-pause", "Space"),
|
||||||
new (_("Playback"), _("Stop"), "stop", "Ctrl+s"),
|
new (_("Playback"), _("Stop"), "stop", "Ctrl+s"),
|
||||||
|
|
||||||
new (_("Navigate"), _("Previous File"), "playlist-prev", "F11"),
|
new (_("Navigate"), _("Previous File"), "playlist-prev", "F11"),
|
||||||
new (_("Navigate"), _("Next File"), "playlist-next", "F12"),
|
new (_("Navigate"), _("Next File"), "playlist-next", "F12"),
|
||||||
|
new (_("Navigate"), "-"),
|
||||||
|
new (_("Navigate"), _("First File"), "script-message-to mpvnet playlist-first", "Home"),
|
||||||
|
new (_("Navigate"), _("Last File"), "script-message-to mpvnet playlist-last", "End"),
|
||||||
|
|
||||||
new (_("Navigate"), "-"),
|
new (_("Navigate"), "-"),
|
||||||
new (_("Navigate"), _("Next Chapter"), "add chapter 1", "PGUP"),
|
new (_("Navigate"), _("Next Chapter"), "add chapter 1", "PGUP"),
|
||||||
new (_("Navigate"), _("Previous Chapter"), "add chapter -1", "PGDWN"),
|
new (_("Navigate"), _("Previous Chapter"), "add chapter -1", "PGDWN"),
|
||||||
@@ -42,6 +48,7 @@ public static class InputHelp
|
|||||||
new (_("Navigate"), "-"),
|
new (_("Navigate"), "-"),
|
||||||
new (_("Navigate"), _("Title")),
|
new (_("Navigate"), _("Title")),
|
||||||
new (_("Navigate"), _("Chapter")),
|
new (_("Navigate"), _("Chapter")),
|
||||||
|
|
||||||
new (_("Pan & Scan"), _("Decrease Size"), "add video-zoom -0.1", "Ctrl+-"),
|
new (_("Pan & Scan"), _("Decrease Size"), "add video-zoom -0.1", "Ctrl+-"),
|
||||||
new (_("Pan & Scan"), _("Increase Size"), "add video-zoom 0.1", "Ctrl++"),
|
new (_("Pan & Scan"), _("Increase Size"), "add video-zoom 0.1", "Ctrl++"),
|
||||||
new (_("Pan & Scan"), "-"),
|
new (_("Pan & Scan"), "-"),
|
||||||
@@ -55,6 +62,7 @@ public static class InputHelp
|
|||||||
new (_("Pan & Scan"), _("Increase Height"), "add panscan 0.1", "W"),
|
new (_("Pan & Scan"), _("Increase Height"), "add panscan 0.1", "W"),
|
||||||
new (_("Pan & Scan"), "-"),
|
new (_("Pan & Scan"), "-"),
|
||||||
new (_("Pan & Scan"), _("Reset"), "set video-zoom 0; set video-pan-x 0; set video-pan-y 0", "Ctrl+BS"),
|
new (_("Pan & Scan"), _("Reset"), "set video-zoom 0; set video-pan-x 0; set video-pan-y 0", "Ctrl+BS"),
|
||||||
|
|
||||||
new (_("Video"), _("Decrease Contrast"), "add contrast -1", "Ctrl+1"),
|
new (_("Video"), _("Decrease Contrast"), "add contrast -1", "Ctrl+1"),
|
||||||
new (_("Video"), _("Increase Contrast"), "add contrast 1", "Ctrl+2"),
|
new (_("Video"), _("Increase Contrast"), "add contrast 1", "Ctrl+2"),
|
||||||
new (_("Video"), "-"),
|
new (_("Video"), "-"),
|
||||||
@@ -72,11 +80,13 @@ public static class InputHelp
|
|||||||
new (_("Video"), _("Toggle Deinterlace"), "cycle deinterlace", "d"),
|
new (_("Video"), _("Toggle Deinterlace"), "cycle deinterlace", "d"),
|
||||||
new (_("Video"), _("Change Aspect Ratio"), "cycle-values video-aspect-override 16:9 4:3 2.35:1 -1", "a"),
|
new (_("Video"), _("Change Aspect Ratio"), "cycle-values video-aspect-override 16:9 4:3 2.35:1 -1", "a"),
|
||||||
new (_("Video"), _("Rotate Video"), "cycle-values video-rotate 90 180 270 0", "Ctrl+r"),
|
new (_("Video"), _("Rotate Video"), "cycle-values video-rotate 90 180 270 0", "Ctrl+r"),
|
||||||
new (_("Audio"), _("Next Track"), "cycle audio", "KP7"),
|
|
||||||
|
new (_("Audio"), _("Next Track"), "script-message-to mpvnet cycle-audio", "KP7"),
|
||||||
new (_("Audio"), "-"),
|
new (_("Audio"), "-"),
|
||||||
new (_("Audio"), _("Delay +0.1"), "add audio-delay 0.1", "Ctrl+d"),
|
new (_("Audio"), _("Delay +0.1"), "add audio-delay 0.1", "Ctrl+d"),
|
||||||
new (_("Audio"), _("Delay -0.1"), "add audio-delay -0.1", "Ctrl+D"),
|
new (_("Audio"), _("Delay -0.1"), "add audio-delay -0.1", "Ctrl+D"),
|
||||||
new (_("Subtitle"), _("Next Track"), "cycle sub", "KP8"),
|
|
||||||
|
new (_("Subtitle"), _("Next Track"), "script-message-to mpvnet cycle-subtitles", "KP8"),
|
||||||
new (_("Subtitle"), _("Toggle Visibility"), "cycle sub-visibility", "v"),
|
new (_("Subtitle"), _("Toggle Visibility"), "cycle sub-visibility", "v"),
|
||||||
new (_("Subtitle"), "-"),
|
new (_("Subtitle"), "-"),
|
||||||
new (_("Subtitle"), _("Delay -0.1"), "add sub-delay -0.1", "z"),
|
new (_("Subtitle"), _("Delay -0.1"), "add sub-delay -0.1", "z"),
|
||||||
@@ -89,11 +99,14 @@ public static class InputHelp
|
|||||||
new (_("Subtitle"), _("Increase Font Size"), "add sub-scale 0.1", "G"),
|
new (_("Subtitle"), _("Increase Font Size"), "add sub-scale 0.1", "G"),
|
||||||
new (_("Subtitle"), "-"),
|
new (_("Subtitle"), "-"),
|
||||||
new (_("Subtitle") + " > " + _("More"), _("Toggle overriding SSA/ASS styles with normal styles"), "cycle-values sub-ass-override force no", "u"),
|
new (_("Subtitle") + " > " + _("More"), _("Toggle overriding SSA/ASS styles with normal styles"), "cycle-values sub-ass-override force no", "u"),
|
||||||
|
|
||||||
new ("", _("Track")),
|
new ("", _("Track")),
|
||||||
|
|
||||||
new (_("Volume"), _("Up"), "add volume 2", "+"),
|
new (_("Volume"), _("Up"), "add volume 2", "+"),
|
||||||
new (_("Volume"), _("Down"), "add volume -2", "-"),
|
new (_("Volume"), _("Down"), "add volume -2", "-"),
|
||||||
new (_("Volume"), "-"),
|
new (_("Volume"), "-"),
|
||||||
new (_("Volume"), _("Mute"), "cycle mute", "m"),
|
new (_("Volume"), _("Mute"), "cycle mute", "m"),
|
||||||
|
|
||||||
new (_("Speed"), _("-10%"), "multiply speed 1/1.1", "["),
|
new (_("Speed"), _("-10%"), "multiply speed 1/1.1", "["),
|
||||||
new (_("Speed"), _("+10%"), "multiply speed 1.1", "]"),
|
new (_("Speed"), _("+10%"), "multiply speed 1.1", "]"),
|
||||||
new (_("Speed"), "-"),
|
new (_("Speed"), "-"),
|
||||||
@@ -101,6 +114,8 @@ public static class InputHelp
|
|||||||
new (_("Speed"), _("Double"), "multiply speed 2.0", "}"),
|
new (_("Speed"), _("Double"), "multiply speed 2.0", "}"),
|
||||||
new (_("Speed"), "-"),
|
new (_("Speed"), "-"),
|
||||||
new (_("Speed"), _("Reset"), "set speed 1", "BS"),
|
new (_("Speed"), _("Reset"), "set speed 1", "BS"),
|
||||||
|
|
||||||
|
new (_("View"), _("Show Playlist"), "script-message-to mpvnet show-playlist", "F8"),
|
||||||
new (_("View"), _("Show Profiles"), "script-message-to mpvnet show-profiles", "Ctrl+P"),
|
new (_("View"), _("Show Profiles"), "script-message-to mpvnet show-profiles", "Ctrl+P"),
|
||||||
new (_("View"), _("Toggle Statistics"), "script-binding stats/display-stats-toggle", "t"),
|
new (_("View"), _("Toggle Statistics"), "script-binding stats/display-stats-toggle", "t"),
|
||||||
new (_("View"), _("Toggle OSC Visibility"), "script-binding osc/visibility", "Del"),
|
new (_("View"), _("Toggle OSC Visibility"), "script-binding osc/visibility", "Del"),
|
||||||
@@ -109,10 +124,11 @@ public static class InputHelp
|
|||||||
new (_("View"), _("Show Progress"), "show-progress", "p"),
|
new (_("View"), _("Show Progress"), "show-progress", "p"),
|
||||||
new (_("View") + " > " + _("More"), _("Show Console"), "script-binding console/enable", "`"),
|
new (_("View") + " > " + _("More"), _("Show Console"), "script-binding console/enable", "`"),
|
||||||
new (_("View") + " > " + _("More"), _("Show Audio Devices"), "script-message-to mpvnet show-audio-devices"),
|
new (_("View") + " > " + _("More"), _("Show Audio Devices"), "script-message-to mpvnet show-audio-devices"),
|
||||||
new (_("View") + " > " + _("More"), _("Show Commands"), "script-message-to mpvnet show-commands", "C"),
|
new (_("View") + " > " + _("More"), _("Show Commands"), "script-message-to mpvnet show-commands", "F2"),
|
||||||
new (_("View") + " > " + _("More"), _("Show Demuxers"), "script-message-to mpvnet show-demuxers"),
|
new (_("View") + " > " + _("More"), _("Show Demuxers"), "script-message-to mpvnet show-demuxers"),
|
||||||
new (_("View") + " > " + _("More"), _("Show Decoders"), "script-message-to mpvnet show-decoders"),
|
new (_("View") + " > " + _("More"), _("Show Decoders"), "script-message-to mpvnet show-decoders"),
|
||||||
new (_("View") + " > " + _("More"), _("Show Bindings"), "script-message-to mpvnet show-bindings"),
|
new (_("View") + " > " + _("More"), _("Show Bindings"), "script-message-to mpvnet show-bindings"),
|
||||||
|
|
||||||
new (_("Window"), _("Fullscreen"), "cycle fullscreen", "Enter"),
|
new (_("Window"), _("Fullscreen"), "cycle fullscreen", "Enter"),
|
||||||
new (_("Window") + " > " + _("Zoom"), _("Enlarge"), "script-message-to mpvnet scale-window 1.2", "Alt++"),
|
new (_("Window") + " > " + _("Zoom"), _("Enlarge"), "script-message-to mpvnet scale-window 1.2", "Alt++"),
|
||||||
new (_("Window") + " > " + _("Zoom"), _("Shrink"), "script-message-to mpvnet scale-window 0.8", "Alt+-"),
|
new (_("Window") + " > " + _("Zoom"), _("Shrink"), "script-message-to mpvnet scale-window 0.8", "Alt+-"),
|
||||||
@@ -128,7 +144,9 @@ public static class InputHelp
|
|||||||
new (_("Window") + " > " + _("Move"), _("Center"), "script-message-to mpvnet move-window center", "Alt+BS"),
|
new (_("Window") + " > " + _("Move"), _("Center"), "script-message-to mpvnet move-window center", "Alt+BS"),
|
||||||
new (_("Window"), _("Toggle Border"), "cycle border", "b"),
|
new (_("Window"), _("Toggle Border"), "cycle border", "b"),
|
||||||
new (_("Window"), _("Toggle On Top"), "cycle ontop", "Ctrl+t"),
|
new (_("Window"), _("Toggle On Top"), "cycle ontop", "Ctrl+t"),
|
||||||
|
|
||||||
new ("", _("Profile")),
|
new ("", _("Profile")),
|
||||||
|
|
||||||
new (_("Settings"), _("Show Config Editor"), "script-message-to mpvnet show-conf-editor", "Ctrl+,"),
|
new (_("Settings"), _("Show Config Editor"), "script-message-to mpvnet show-conf-editor", "Ctrl+,"),
|
||||||
new (_("Settings"), _("Show Input Editor"), "script-message-to mpvnet show-input-editor", "Ctrl+i"),
|
new (_("Settings"), _("Show Input Editor"), "script-message-to mpvnet show-input-editor", "Ctrl+i"),
|
||||||
new (_("Settings"), _("Open Config Folder"), "script-message-to mpvnet open-conf-folder", "Ctrl+f"),
|
new (_("Settings"), _("Open Config Folder"), "script-message-to mpvnet open-conf-folder", "Ctrl+f"),
|
||||||
@@ -136,20 +154,24 @@ public static class InputHelp
|
|||||||
new (_("Settings") + " > " + _("Setup"), _("Register audio file associations"), "script-message-to mpvnet reg-file-assoc audio"),
|
new (_("Settings") + " > " + _("Setup"), _("Register audio file associations"), "script-message-to mpvnet reg-file-assoc audio"),
|
||||||
new (_("Settings") + " > " + _("Setup"), _("Register image file associations"), "script-message-to mpvnet reg-file-assoc image"),
|
new (_("Settings") + " > " + _("Setup"), _("Register image file associations"), "script-message-to mpvnet reg-file-assoc image"),
|
||||||
new (_("Settings") + " > " + _("Setup"), _("Unregister file associations"), "script-message-to mpvnet reg-file-assoc unreg"),
|
new (_("Settings") + " > " + _("Setup"), _("Unregister file associations"), "script-message-to mpvnet reg-file-assoc unreg"),
|
||||||
|
|
||||||
new (_("Tools"), _("Set/clear A-B loop points"), "ab-loop", "l"),
|
new (_("Tools"), _("Set/clear A-B loop points"), "ab-loop", "l"),
|
||||||
new (_("Tools"), _("Toggle infinite file looping"), "cycle-values loop-file inf no", "L"),
|
new (_("Tools"), _("Toggle infinite file looping"), "cycle-values loop-file inf no", "L"),
|
||||||
new (_("Tools"), _("Shuffle Playlist"), "playlist-shuffle"),
|
new (_("Tools"), _("Shuffle Playlist"), "playlist-shuffle"),
|
||||||
new (_("Tools"), _("Toggle Hardware Decoding"), "cycle-values hwdec auto no", "Ctrl+h"),
|
new (_("Tools"), _("Toggle Hardware Decoding"), "cycle-values hwdec auto no", "Ctrl+h"),
|
||||||
new (_("Tools"), _("Exit Watch Later"), "quit-watch-later", "Q"),
|
new (_("Tools"), _("Exit Watch Later"), "quit-watch-later", "Q"),
|
||||||
|
|
||||||
new ("", _("Custom")),
|
new ("", _("Custom")),
|
||||||
|
|
||||||
new (_("Help"), _("Website mpv"), "script-message-to mpvnet shell-execute https://mpv.io", "Ctrl+Home"),
|
new (_("Help"), _("Website mpv"), "script-message-to mpvnet shell-execute https://mpv.io", "Ctrl+Home"),
|
||||||
new (_("Help"), _("Website mpv.net"), "script-message-to mpvnet shell-execute https://github.com/mpvnet-player/mpv.net", "Home"),
|
new (_("Help"), _("Website mpv.net"), "script-message-to mpvnet shell-execute https://github.com/mpvnet-player/mpv.net"),
|
||||||
new (_("Help"), "-"),
|
new (_("Help"), "-"),
|
||||||
new (_("Help"), _("Manual mpv"), "script-message-to mpvnet shell-execute https://mpv.io/manual/stable", "Ctrl+F1"),
|
new (_("Help"), _("Manual mpv"), "script-message-to mpvnet shell-execute https://mpv.io/manual/stable", "Ctrl+F1"),
|
||||||
new (_("Help"), _("Manual mpv.net"), "script-message-to mpvnet shell-execute https://github.com/mpvnet-player/mpv.net/blob/main/docs/manual.md", "Ctrl+F2"),
|
new (_("Help"), _("Manual mpv.net"), "script-message-to mpvnet shell-execute https://github.com/mpvnet-player/mpv.net/blob/main/docs/manual.md", "Ctrl+F2"),
|
||||||
new (_("Help"), "-"),
|
new (_("Help"), "-"),
|
||||||
new (_("Help"), _("awesome-mpv"), "script-message-to mpvnet shell-execute https://github.com/stax76/awesome-mpv", "Ctrl+a"),
|
new (_("Help"), _("awesome-mpv"), "script-message-to mpvnet shell-execute https://github.com/stax76/awesome-mpv", "Ctrl+a"),
|
||||||
new (_("Help"), _("About mpv.net"), "script-message-to mpvnet show-about"),
|
new (_("Help"), _("About mpv.net"), "script-message-to mpvnet show-about"),
|
||||||
|
|
||||||
new ("", "", "quit", "q", _("Exit")),
|
new ("", "", "quit", "q", _("Exit")),
|
||||||
new ("", "", "script-message-to mpvnet show-menu", "MBTN_Right", _("Show Menu")),
|
new ("", "", "script-message-to mpvnet show-menu", "MBTN_Right", _("Show Menu")),
|
||||||
new ("", "", "quit", "Power", _("Exit")),
|
new ("", "", "quit", "Power", _("Exit")),
|
||||||
@@ -183,6 +205,8 @@ public static class InputHelp
|
|||||||
new ("", "", "no-osd sub-seek 1", "Ctrl+Shift+Right", _("Seek to next subtitle")),
|
new ("", "", "no-osd sub-seek 1", "Ctrl+Shift+Right", _("Seek to next subtitle")),
|
||||||
new ("", "", "no-osd seek 5", "Ctrl+Wheel_Up", _("Seek Forward")),
|
new ("", "", "no-osd seek 5", "Ctrl+Wheel_Up", _("Seek Forward")),
|
||||||
new ("", "", "no-osd seek -5", "Ctrl+Wheel_Down", _("Seek Backward")),
|
new ("", "", "no-osd seek -5", "Ctrl+Wheel_Down", _("Seek Backward")),
|
||||||
|
new ("", "", "quit 4", "Esc", _("Quit encoding")),
|
||||||
|
new ("", "", "quit 4", "q", _("Quit encoding")),
|
||||||
//new (_("Command Palette"), _("Commands"), "script-message-to mpvnet show-command-palette", "F1"),
|
//new (_("Command Palette"), _("Commands"), "script-message-to mpvnet show-command-palette", "F1"),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ public class MainPlayer : MpvClient
|
|||||||
|
|
||||||
mpv_request_log_messages(MainHandle, "no");
|
mpv_request_log_messages(MainHandle, "no");
|
||||||
|
|
||||||
|
if (formHandle != IntPtr.Zero)
|
||||||
TaskHelp.Run(MainEventLoop);
|
TaskHelp.Run(MainEventLoop);
|
||||||
|
|
||||||
if (MainHandle == IntPtr.Zero)
|
if (MainHandle == IntPtr.Zero)
|
||||||
@@ -89,7 +90,9 @@ public class MainPlayer : MpvClient
|
|||||||
SetPropertyString("input-terminal", "yes");
|
SetPropertyString("input-terminal", "yes");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (formHandle != IntPtr.Zero)
|
||||||
SetPropertyLong("wid", formHandle.ToInt64());
|
SetPropertyLong("wid", formHandle.ToInt64());
|
||||||
|
|
||||||
SetPropertyInt("osd-duration", 2000);
|
SetPropertyInt("osd-duration", 2000);
|
||||||
|
|
||||||
SetPropertyBool("input-default-bindings", true);
|
SetPropertyBool("input-default-bindings", true);
|
||||||
@@ -102,17 +105,36 @@ public class MainPlayer : MpvClient
|
|||||||
SetPropertyString("force-window", "yes");
|
SetPropertyString("force-window", "yes");
|
||||||
SetPropertyString("config-dir", ConfigFolder);
|
SetPropertyString("config-dir", ConfigFolder);
|
||||||
SetPropertyString("config", "yes");
|
SetPropertyString("config", "yes");
|
||||||
SetPropertyString("input-conf", @"memory://" + (UsedInputConfContent = App.InputConf.GetContent()));
|
|
||||||
|
UsedInputConfContent = App.InputConf.GetContent();
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(UsedInputConfContent))
|
||||||
|
SetPropertyString("input-conf", @"memory://" + UsedInputConfContent);
|
||||||
|
|
||||||
ProcessCommandLine(true);
|
ProcessCommandLine(true);
|
||||||
|
|
||||||
Environment.SetEnvironmentVariable("MPVNET_VERSION", AppInfo.Version.ToString());
|
if (App.CommandLineArguments.ContainsKey("config-dir"))
|
||||||
|
{
|
||||||
|
string configDir = App.CommandLineArguments["config-dir"];
|
||||||
|
string fullPath = System.IO.Path.GetFullPath(configDir);
|
||||||
|
App.InputConf.Path = fullPath.AddSep() + "input.conf";
|
||||||
|
string content = App.InputConf.GetContent();
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(content))
|
||||||
|
SetPropertyString("input-conf", @"memory://" + content);
|
||||||
|
}
|
||||||
|
|
||||||
|
Environment.SetEnvironmentVariable("MPVNET_VERSION", AppInfo.Version.ToString()); // deprecated
|
||||||
|
|
||||||
mpv_error err = mpv_initialize(MainHandle);
|
mpv_error err = mpv_initialize(MainHandle);
|
||||||
|
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
throw new Exception("mpv_initialize error" + BR2 + GetError(err) + BR);
|
throw new Exception("mpv_initialize error" + BR2 + GetError(err) + BR);
|
||||||
|
|
||||||
|
SetPropertyString("user-data/frontend/name", "mpv.net");
|
||||||
|
SetPropertyString("user-data/frontend/version", AppInfo.Version.ToString());
|
||||||
|
SetPropertyString("user-data/frontend/process-path", Environment.ProcessPath!);
|
||||||
|
|
||||||
string idle = GetPropertyString("idle");
|
string idle = GetPropertyString("idle");
|
||||||
App.Exit = idle == "no" || idle == "once";
|
App.Exit = idle == "no" || idle == "once";
|
||||||
|
|
||||||
@@ -123,6 +145,7 @@ public class MainPlayer : MpvClient
|
|||||||
|
|
||||||
mpv_request_log_messages(Handle, "info");
|
mpv_request_log_messages(Handle, "info");
|
||||||
|
|
||||||
|
if (formHandle != IntPtr.Zero)
|
||||||
TaskHelp.Run(EventLoop);
|
TaskHelp.Run(EventLoop);
|
||||||
|
|
||||||
// otherwise shutdown is raised before media files are loaded,
|
// otherwise shutdown is raised before media files are loaded,
|
||||||
@@ -389,13 +412,6 @@ public class MainPlayer : MpvClient
|
|||||||
bool shuffle = false;
|
bool shuffle = false;
|
||||||
var args = Environment.GetCommandLineArgs().Skip(1);
|
var args = Environment.GetCommandLineArgs().Skip(1);
|
||||||
|
|
||||||
//string[] preInitProperties = { "input-terminal", "terminal", "input-file", "config",
|
|
||||||
// "config-dir", "input-conf", "load-scripts", "scripts", "player-operation-mode",
|
|
||||||
// "idle", "log-file", "msg-color", "dump-stats", "msg-level", "really-quiet" };
|
|
||||||
|
|
||||||
//string[] preInitProperties = Array.Empty<string>();
|
|
||||||
string[] postInitProperties = Array.Empty<string>();
|
|
||||||
|
|
||||||
foreach (string i in args)
|
foreach (string i in args)
|
||||||
{
|
{
|
||||||
string arg = i;
|
string arg = i;
|
||||||
@@ -453,6 +469,9 @@ public class MainPlayer : MpvClient
|
|||||||
string left = arg[2..arg.IndexOf("=")];
|
string left = arg[2..arg.IndexOf("=")];
|
||||||
string right = arg[(left.Length + 3)..];
|
string right = arg[(left.Length + 3)..];
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(left))
|
||||||
|
continue;
|
||||||
|
|
||||||
switch (left)
|
switch (left)
|
||||||
{
|
{
|
||||||
case "script": left = "scripts"; break;
|
case "script": left = "scripts"; break;
|
||||||
@@ -464,21 +483,13 @@ public class MainPlayer : MpvClient
|
|||||||
if (left == "shuffle" && right == "yes")
|
if (left == "shuffle" && right == "yes")
|
||||||
shuffle = true;
|
shuffle = true;
|
||||||
|
|
||||||
if (preInit && !postInitProperties.Contains(left))
|
App.CommandLineArguments[left] = right;
|
||||||
{
|
|
||||||
ProcessProperty(left, right);
|
ProcessProperty(left, right);
|
||||||
|
|
||||||
if (!App.ProcessProperty(left, right))
|
if (!App.ProcessProperty(left, right))
|
||||||
SetPropertyString(left, right);
|
SetPropertyString(left, right);
|
||||||
}
|
}
|
||||||
else if (!preInit && postInitProperties.Contains(left))
|
|
||||||
{
|
|
||||||
ProcessProperty(left, right);
|
|
||||||
|
|
||||||
if (!App.ProcessProperty(left, right))
|
|
||||||
SetPropertyString(left, right);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!preInit)
|
if (!preInit)
|
||||||
|
|||||||
Reference in New Issue
Block a user