Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 20 additions & 16 deletions src/MpvNet/Player.cs
Original file line number Diff line number Diff line change
Expand Up @@ -643,14 +643,14 @@ public List<StringPair> AudioDevices {

_audioDevices = [];
string json = GetPropertyString("audio-device-list");
var enumerator = JsonDocument.Parse(json).RootElement.EnumerateArray();

foreach (var element in enumerator)
{
string name = element.GetProperty("name").GetString()!;
string description = element.GetProperty("description").GetString()!;
_audioDevices.Add(new StringPair(name, description));
}
using (var doc = JsonDocument.Parse(json))
foreach (var element in doc.RootElement.EnumerateArray())
{
string name = element.GetProperty("name").GetString()!;
string description = element.GetProperty("description").GetString()!;
_audioDevices.Add(new StringPair(name, description));
}

return _audioDevices;
}
Expand Down Expand Up @@ -1059,7 +1059,9 @@ public string[] ProfileNames

string[] ignore = ["builtin-pseudo-gui", "encoding", "libmpv", "pseudo-gui", "default"];
string json = GetPropertyString("profile-list");
return _profileNames = JsonDocument.Parse(json).RootElement.EnumerateArray()

using var doc = JsonDocument.Parse(json);
return _profileNames = doc.RootElement.EnumerateArray()
.Select(it => it.GetProperty("name").GetString())
.Where(it => !ignore.Contains(it)).ToArray()!;
}
Expand All @@ -1070,22 +1072,24 @@ public string GetProfiles()
string json = GetPropertyString("profile-list");
StringBuilder sb = new StringBuilder();

foreach (var profile in JsonDocument.Parse(json).RootElement.EnumerateArray())
{
sb.Append(profile.GetProperty("name").GetString() + BR2);
using (var doc = JsonDocument.Parse(json))
foreach (var profile in doc.RootElement.EnumerateArray())
{
sb.Append(profile.GetProperty("name").GetString() + BR2);

foreach (var it in profile.GetProperty("options").EnumerateArray())
sb.AppendLine($" {it.GetProperty("key").GetString()} = {it.GetProperty("value").GetString()}");
foreach (var it in profile.GetProperty("options").EnumerateArray())
sb.AppendLine($" {it.GetProperty("key").GetString()} = {it.GetProperty("value").GetString()}");

sb.Append(BR);
}
sb.Append(BR);
}

return sb.ToString();
}

public string GetDecoders()
{
var list = JsonDocument.Parse(GetPropertyString("decoder-list")).RootElement.EnumerateArray()
using var doc = JsonDocument.Parse(GetPropertyString("decoder-list"));
var list = doc.RootElement.EnumerateArray()
.Select(it => $"{it.GetProperty("codec").GetString()} - {it.GetProperty("description").GetString()}")
.OrderBy(it => it);

Expand Down