use mpvnet instead of mpv to create playlist from folder

This commit is contained in:
stax76
2022-07-08 12:20:36 +02:00
parent e970f0b4e4
commit 07809d882f
2 changed files with 33 additions and 15 deletions

View File

@@ -518,6 +518,9 @@ namespace mpvnet
Action = () => Core.SetPropertyInt("playlist-pos", index)
};
if (string.IsNullOrEmpty(item.Text))
item.Text = file;
items.Add(item);
if (currentPath.ToLowerEx() == file.ToLowerEx())

View File

@@ -1194,22 +1194,36 @@ namespace mpvnet
{
string file = files[i];
if (string.IsNullOrEmpty(file))
continue;
if (file.Contains("|"))
file = file.Substring(0, file.IndexOf("|"));
if (file.Ext() == "avs")
string ext = file.Ext();
if (ext == "avs")
LoadAviSynth();
if (file.Ext() == "iso")
if (ext == "iso")
LoadISO(file);
else if(SubtitleTypes.Contains(file.Ext()))
else if(SubtitleTypes.Contains(ext))
CommandV("sub-add", file);
else if (file.Ext().Length != 3 && File.Exists(System.IO.Path.Combine(file, "BDMV\\index.bdmv")))
else if (ext == "" && !file.Contains("://") && Directory.Exists(file))
{
Command("stop");
Thread.Sleep(500);
SetPropertyString("bluray-device", file);
CommandV("loadfile", @"bd://");
if (File.Exists(System.IO.Path.Combine(file, "BDMV\\index.bdmv")))
{
Command("stop");
Thread.Sleep(500);
SetPropertyString("bluray-device", file);
CommandV("loadfile", @"bd://");
}
else
{
files = GetMediaFiles(Directory.GetFiles(file, "*.*", SearchOption.AllDirectories)).ToArray();
LoadFiles(files, loadFolder, append);
return;
}
}
else
{
@@ -1300,13 +1314,7 @@ namespace mpvnet
if (path.Contains("\\"))
dir = System.IO.Path.GetDirectoryName(path);
List<string> files = Directory.GetFiles(dir).ToList();
files = files.Where(file =>
VideoTypes.Contains(file.Ext()) ||
AudioTypes.Contains(file.Ext()) ||
ImageTypes.Contains(file.Ext())).ToList();
List<string> files = GetMediaFiles(Directory.GetFiles(dir)).ToList();
files.Sort(new StringLogicalComparer());
int index = files.IndexOf(path);
files.Remove(path);
@@ -1319,6 +1327,13 @@ namespace mpvnet
}
}
IEnumerable<string> GetMediaFiles(IEnumerable<string> files)
{
return files.Where(i => VideoTypes.Contains(i.Ext()) ||
AudioTypes.Contains(i.Ext()) ||
ImageTypes.Contains(i.Ext()));
}
bool WasAviSynthLoaded;
void LoadAviSynth()