diff options
author | dakkar <dakkar@thenautilus.net> | 2021-12-30 18:31:05 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2021-12-30 18:31:05 +0000 |
commit | b0cd3f90fb18b8913a274daf4a52ac27aedbcc27 (patch) | |
tree | 5d1d1f7f8c4077c23e75c9ade85196d443973d1d /lib/Vlc | |
parent | simpler one-shot browse (diff) | |
download | media-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.rakumod | 18 |
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); } } |