sub notify ($$) {
my ($head, $body) = @_;
+ $body =~ s:\&:&:g;
+ $body =~ s:\<:<:g;
+ $body =~ s:\>:>:g;
my $kid = fork;
defined $kid or return;
if (!$kid) {
for (;;) {
open my $log, "-|", "disorder", "log";
+ my $startp = 1;
+ my $stateinfo = undef;
LINE: while (<$log>) {
chomp;
my @f = ();
push @f, $t if defined $t;
my $what = $f[1];
- if ($what eq "state") {
+ if ($what eq "volume" && $startp) {
+ $startp = 0;
+ notify "DisOrder state", "Connected: $startinfo";
+ now_playing;
+ } elsif ($what eq "state") {
my $st = $f[2];
my $msg;
my $np = 0;
elsif ($st eq "pause") { $msg = "paused"; }
elsif ($st eq "resume") { $msg = "playing"; $np = 1; }
else { next LINE; }
- notify "DisOrder state", ucfirst $msg;
- now_playing if $np;
+ if (!$startp) {
+ notify "DisOrder state", ucfirst $msg;
+ now_playing if $np;
+ } else {
+ if (defined $startinfo) { $startinfo .= "; " . $msg; }
+ else { $startinfo = $msg; }
}
+ } elsif ($what eq "scratched") {
+ notify "DisOrder state", "Scratched playing track";
} elsif ($what eq "playing") {
now_playing $f[2];
}