summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xfrikanalen/bin/scheduler29
1 files changed, 11 insertions, 18 deletions
diff --git a/frikanalen/bin/scheduler b/frikanalen/bin/scheduler
index 550aa6f..7420822 100755
--- a/frikanalen/bin/scheduler
+++ b/frikanalen/bin/scheduler
@@ -330,6 +330,7 @@ sub vlc_start {
} else {
$vlc->{url} = "http://localhost:8080/";
$vlc->{pid} = $pid;
+ $vlc->{loop} = 0;
# sleep 5; # Give VLC some time to start
return $vlc;
}
@@ -349,28 +350,20 @@ sub vlc_play {
$file =~ s#/#%2F#g;
+ my @cmds = ();
+ push(@cmds, [$vlc->{url} ."requests/status.xml?command=pl_empty", undef]);
+ push(@cmds, [$vlc->{url} ."requests/status.xml?command=in_play&input=$file",
+ undef]);
+ push(@cmds, [$vlc->{url} . "requests/status.xml?command=pl_repeat",
+ sub { my $vlc = shift; $vlc->{loop} = ! $vlc->{loop}; }]);
- my $url = $vlc->{url} . "requests/status.xml?command=pl_empty";
- unless (lwp_get($url)) {
- print "Failed to contact VLC\n";
- }
- $url = $vlc->{url} . "requests/status.xml?command=in_play&input=$file";
- unless (lwp_get($url)) {
- print "Failed to contact VLC\n";
- }
- if ($loop && !$vlc->{loop}) {
- my $url = $vlc->{url} . "requests/status.xml?command=pl_repeat";
- $vlc->{loop} = 1;
- unless (lwp_get($url)) {
- print "Failed to contact VLC\n";
- }
+ for my $cmdref (@cmds) {
+ my ($url, $postfunc) = @{$cmdref};
- } else {
- my $url = $vlc->{url} . "requests/status.xml?command=pl_repeat";
- $vlc->{loop} = 0;
unless (lwp_get($url)) {
print "Failed to contact VLC\n";
+ } elsif (defined $postfunc) {
+ $postfunc->($vlc, $url);
}
-
}
}