aboutsummaryrefslogtreecommitdiff
path: root/lib/Vlc
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2021-12-30 18:31:05 +0000
committerdakkar <dakkar@thenautilus.net>2021-12-30 18:31:05 +0000
commitb0cd3f90fb18b8913a274daf4a52ac27aedbcc27 (patch)
tree5d1d1f7f8c4077c23e75c9ade85196d443973d1d /lib/Vlc
parentsimpler one-shot browse (diff)
downloadmedia-control-b0cd3f90fb18b8913a274daf4a52ac27aedbcc27.tar.gz
media-control-b0cd3f90fb18b8913a274daf4a52ac27aedbcc27.tar.bz2
media-control-b0cd3f90fb18b8913a274daf4a52ac27aedbcc27.zip
some better vlc controls / status
Diffstat (limited to 'lib/Vlc')
-rw-r--r--lib/Vlc/Client.rakumod18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/Vlc/Client.rakumod b/lib/Vlc/Client.rakumod
index 8951c60..0860df4 100644
--- a/lib/Vlc/Client.rakumod
+++ b/lib/Vlc/Client.rakumod
@@ -49,6 +49,22 @@ class Vlc::Client {
method status() {
my $res = await self!call-vlc('status.xml');
my XML::Document $status = await $res.body;
- return Promise.kept({:status(xml-to-hash($status.root))})
+ return Promise.kept(xml-to-hash($status.root));
+ }
+
+ method playlist() {
+ my $res = await self!call-vlc('playlist.xml');
+ my XML::Document $playlist = await $res.body;
+ my @playlist-items = $playlist.elements()
+ .grep(*.attribs<name> eq 'Playlist').first
+ .elements().map(
+ -> $leaf {
+ %(
+ $leaf.attribs<name id duration uri>:p.Slip,
+ current => $leaf.attribs<current>:exists,
+ )
+ },
+ );
+ return Promise.kept(@playlist-items);
}
}