-
This commit is contained in:
@@ -114,59 +114,83 @@ namespace mpvnet
|
||||
|
||||
public static void show_info(string[] args)
|
||||
{
|
||||
var fileInfo = new FileInfo(mp.get_property_string("path"));
|
||||
|
||||
using (var mediaInfo = new MediaInfo(fileInfo.FullName))
|
||||
try
|
||||
{
|
||||
string width = mediaInfo.GetInfo(MediaInfoStreamKind.Video, "Width");
|
||||
var fileInfo = new FileInfo(mp.get_property_string("path"));
|
||||
|
||||
if (width == "")
|
||||
using (var mediaInfo = new MediaInfo(fileInfo.FullName))
|
||||
{
|
||||
string performer = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Performer");
|
||||
string title = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Title");
|
||||
string album = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Album");
|
||||
string genre = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Genre");
|
||||
string date = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Recorded_Date");
|
||||
string duration = mediaInfo.GetInfo(MediaInfoStreamKind.Audio, "Duration/String");
|
||||
string width = mediaInfo.GetInfo(MediaInfoStreamKind.Video, "Width");
|
||||
|
||||
string text = "";
|
||||
if (width == "")
|
||||
{
|
||||
string performer = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Performer");
|
||||
string title = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Title");
|
||||
string album = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Album");
|
||||
string genre = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Genre");
|
||||
string date = mediaInfo.GetInfo(MediaInfoStreamKind.General, "Recorded_Date");
|
||||
string duration = mediaInfo.GetInfo(MediaInfoStreamKind.Audio, "Duration/String");
|
||||
|
||||
if (performer != "") text += "Artist: " + performer + "\n";
|
||||
if (title != "") text += "Title: " + title + "\n";
|
||||
if (album != "") text += "Album: " + album + "\n";
|
||||
if (genre != "") text += "Genre: " + genre + "\n";
|
||||
if (date != "") text += "Year: " + date + "\n";
|
||||
if (duration != "") text += "Length: " + duration + "\n";
|
||||
string text = "";
|
||||
|
||||
mp.commandv("show-text", text, "5000");
|
||||
if (performer != "") text += "Artist: " + performer + "\n";
|
||||
if (title != "") text += "Title: " + title + "\n";
|
||||
if (album != "") text += "Album: " + album + "\n";
|
||||
if (genre != "") text += "Genre: " + genre + "\n";
|
||||
if (date != "") text += "Year: " + date + "\n";
|
||||
if (duration != "") text += "Length: " + duration + "\n";
|
||||
|
||||
mp.commandv("show-text", text, "5000");
|
||||
}
|
||||
else
|
||||
{
|
||||
string height = mediaInfo.GetInfo(MediaInfoStreamKind.Video, "Height");
|
||||
TimeSpan position = TimeSpan.FromSeconds(mp.get_property_number("time-pos"));
|
||||
TimeSpan duration = TimeSpan.FromSeconds(mp.get_property_number("duration"));
|
||||
string bitrate = mediaInfo.GetInfo(MediaInfoStreamKind.Video, "BitRate");
|
||||
|
||||
if (bitrate == "")
|
||||
bitrate = "0";
|
||||
|
||||
var bitrate2 = Convert.ToDouble(bitrate) / 1000.0 / 1000.0;
|
||||
var videoCodec = mp.get_property_string("video-format").ToUpper();
|
||||
var filename = fileInfo.Name;
|
||||
|
||||
var text =
|
||||
FormatTime(position.TotalMinutes) + ":" +
|
||||
FormatTime(position.Seconds) + " / " +
|
||||
FormatTime(duration.TotalMinutes) + ":" +
|
||||
FormatTime(duration.Seconds) + "\n" +
|
||||
Convert.ToInt32(fileInfo.Length / 1024 / 1024).ToString() +
|
||||
$" MB - {width} x {height}\n{videoCodec} - {bitrate2.ToString("f1")} Mb/s" + "\n" + filename;
|
||||
|
||||
mp.commandv("show-text", text, "5000");
|
||||
}
|
||||
|
||||
string FormatTime(double value) => ((int)value).ToString("00");
|
||||
}
|
||||
else
|
||||
{
|
||||
string height = mediaInfo.GetInfo(MediaInfoStreamKind.Video, "Height");
|
||||
TimeSpan position = TimeSpan.FromSeconds(mp.get_property_number("time-pos"));
|
||||
TimeSpan duration = TimeSpan.FromSeconds(mp.get_property_number("duration"));
|
||||
string bitrate = mediaInfo.GetInfo(MediaInfoStreamKind.Video, "BitRate");
|
||||
|
||||
if (bitrate == "")
|
||||
bitrate = "0";
|
||||
|
||||
var bitrate2 = Convert.ToDouble(bitrate) / 1000.0 / 1000.0;
|
||||
var videoCodec = mp.get_property_string("video-format").ToUpper();
|
||||
var filename = fileInfo.Name;
|
||||
|
||||
var text =
|
||||
FormatTime(position.TotalMinutes) + ":" +
|
||||
FormatTime(position.Seconds) + " / " +
|
||||
FormatTime(duration.TotalMinutes) + ":" +
|
||||
FormatTime(duration.Seconds) + "\n" +
|
||||
Convert.ToInt32(fileInfo.Length / 1024 / 1024).ToString() +
|
||||
$" MB - {width} x {height}\n{videoCodec} - {bitrate2.ToString("f1")} Mb/s" + "\n" + filename;
|
||||
|
||||
mp.commandv("show-text", text, "5000");
|
||||
}
|
||||
|
||||
string FormatTime(double value) => ((int)value).ToString("00");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public static void execute_mpv_command(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
string command = Microsoft.VisualBasic.Interaction.InputBox("Enter a mpv command to be executed.");
|
||||
if (string.IsNullOrEmpty(command)) return;
|
||||
mp.command_string(command, false);
|
||||
}));
|
||||
}
|
||||
|
||||
public static void open_url(string[] args)
|
||||
{
|
||||
MainForm.Instance.Invoke(new Action(() => {
|
||||
string command = Microsoft.VisualBasic.Interaction.InputBox("Enter URL to be opened.");
|
||||
if (string.IsNullOrEmpty(command)) return;
|
||||
mp.LoadURL(command);
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace mpvnet
|
||||
{
|
||||
public static class Extensions
|
||||
{
|
||||
public static string Join(this IEnumerable<string> instance, string delimiter, bool removeEmpty = false)
|
||||
{
|
||||
if (instance == null)
|
||||
return null;
|
||||
|
||||
bool containsEmpty = false;
|
||||
|
||||
foreach (var i in instance)
|
||||
{
|
||||
if (string.IsNullOrEmpty(i))
|
||||
{
|
||||
containsEmpty = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (containsEmpty && removeEmpty)
|
||||
instance = instance.Where(arg => !string.IsNullOrEmpty(arg));
|
||||
|
||||
return string.Join(delimiter, instance);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -296,16 +296,17 @@ namespace mpvnet
|
||||
{
|
||||
base.OnDragEnter(e);
|
||||
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop) || e.Data.GetDataPresent(DataFormats.Text))
|
||||
e.Effect = DragDropEffects.Copy;
|
||||
}
|
||||
|
||||
protected override void OnDragDrop(DragEventArgs e)
|
||||
{
|
||||
base.OnDragDrop(e);
|
||||
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||
mp.LoadFiles(e.Data.GetData(DataFormats.FileDrop) as String[]);
|
||||
if (e.Data.GetDataPresent(DataFormats.Text))
|
||||
mp.LoadURL(e.Data.GetData(DataFormats.Text).ToString());
|
||||
}
|
||||
|
||||
protected override void OnMouseDown(MouseEventArgs e)
|
||||
|
||||
@@ -10,10 +10,8 @@ namespace mpvnet
|
||||
{
|
||||
public static readonly string[] FileTypes = "264 265 3gp aac ac3 avc avi avs bmp divx dts dtshd dtshr dtsma eac3 evo flac flv h264 h265 hevc hvc jpg jpeg m2t m2ts m2v m4a m4v mka mkv mlp mov mp2 mp3 mp4 mpa mpeg mpg mpv mts ogg ogm opus pcm png pva raw rmvb thd thd+ac3 true-hd truehd ts vdr vob vpy w64 wav webm wmv y4m".Split(' ');
|
||||
|
||||
public static string GetFilter(IEnumerable<string> values)
|
||||
{
|
||||
return "*." + values.Join(";*.") + "|*." + values.Join(";*.") + "|All Files|*.*";
|
||||
}
|
||||
public static string GetFilter(IEnumerable<string> values) => "*." +
|
||||
String.Join(";*.", values) + "|*." + String.Join(";*.", values) + "|All Files|*.*";
|
||||
}
|
||||
|
||||
public class StringLogicalComparer : IComparer, IComparer<string>
|
||||
@@ -27,13 +25,13 @@ namespace mpvnet
|
||||
int IComparer<string>.Compare(string x, string y) => IComparerOfString_Compare(x, y);
|
||||
}
|
||||
|
||||
//public class OSVersion
|
||||
//{
|
||||
// public static float Windows7 { get; } = 6.1f;
|
||||
// public static float Windows8 { get; } = 6.2f;
|
||||
// public static float Windows81 { get; } = 6.3f;
|
||||
// public static float Windows10 { get; } = 10f;
|
||||
public class OSVersion
|
||||
{
|
||||
public static float Windows7 { get; } = 6.1f;
|
||||
public static float Windows8 { get; } = 6.2f;
|
||||
public static float Windows81 { get; } = 6.3f;
|
||||
public static float Windows10 { get; } = 10f;
|
||||
|
||||
// public static float Current => Environment.OSVersion.Version.Major + Environment.OSVersion.Version.Minor / 10f;
|
||||
//}
|
||||
public static float Current => Environment.OSVersion.Version.Major + Environment.OSVersion.Version.Minor / 10f;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
# mpv.net key bindings, mouse bindings and context menu configuration
|
||||
|
||||
o script-message mpv.net open-files #menu: O ; Open Files...
|
||||
o script-message mpv.net open-files #menu: O ; Open > Open Files...
|
||||
u script-message mpv.net open-url #menu: U ; Open > Open URL...
|
||||
_ ignore #menu: _ ; -
|
||||
Space cycle pause #menu: Space, Enter ; Play/Pause
|
||||
Enter cycle pause
|
||||
@@ -113,6 +114,7 @@
|
||||
Ctrl+H cycle-values hwdec "auto" "no" #menu: Ctrl+H ; Tools > Cycle Hardware Decoding
|
||||
F8 show-text ${playlist} 5000 #menu: F8 ; Tools > Show Playlist
|
||||
F9 show-text ${track-list} 5000 #menu: F9 ; Tools > Show Audio/Video/Subtitle List
|
||||
_ script-message mpv.net execute-mpv-command #menu: _ ; Tools > Enter a mpv command for execution...
|
||||
|
||||
_ script-message mpv.net shell-execute https://mpv.io/manual/stable/ #menu: _ ; Help > Show mpv manual
|
||||
_ script-message mpv.net shell-execute https://github.com/mpv-player/mpv/blob/master/etc/input.conf #menu: _ ; Help > Show mpv default keys
|
||||
|
||||
@@ -418,6 +418,8 @@ namespace mpvnet
|
||||
foreach (string i in args)
|
||||
if (!i.StartsWith("--") && File.Exists(i))
|
||||
mp.commandv("loadfile", i, "append");
|
||||
else if (!i.StartsWith("--") && i.StartsWith("http"))
|
||||
mp.LoadURL(i);
|
||||
|
||||
mp.set_property_string("playlist-pos", "0");
|
||||
|
||||
@@ -437,6 +439,15 @@ namespace mpvnet
|
||||
}
|
||||
}
|
||||
|
||||
public static void LoadURL(string url)
|
||||
{
|
||||
int count = mp.get_property_int("playlist-count");
|
||||
mp.commandv("loadfile", url, "append");
|
||||
mp.set_property_int("playlist-pos", count);
|
||||
for (int i = 0; i < count; i++)
|
||||
mp.commandv("playlist-remove", "0");
|
||||
}
|
||||
|
||||
public static void LoadFiles(string[] files)
|
||||
{
|
||||
int count = mp.get_property_int("playlist-count");
|
||||
|
||||
@@ -118,6 +118,7 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>IronPython\Microsoft.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualBasic" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
<Reference Include="System.Core" />
|
||||
@@ -131,7 +132,6 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Addon.cs" />
|
||||
<Compile Include="Extensions.cs" />
|
||||
<Compile Include="MediaInfo.cs" />
|
||||
<Compile Include="Menu.cs">
|
||||
<SubType>Component</SubType>
|
||||
|
||||
Reference in New Issue
Block a user