Fixed a bug in the regular expressions used to fetch number of players, and changed the loop to fetch mac adresses for each player

This commit is contained in:
Magnus Møller Petersen
2011-05-11 15:23:49 +02:00
parent 5d70687e04
commit 8bc82b415a
+11 -11
View File
@@ -137,7 +137,7 @@ $volume = ( (defined( $volume ) && $volume && $volume =~ m/^[0-9]+/ && $volume >
if (defined($squeeze) && $squeeze) {
my $players;
my @details;
my @details = ();
my $response;
my $socket = IO::Socket::INET -> new (
@@ -159,19 +159,19 @@ if (defined($squeeze) && $squeeze) {
print "WARN: Disabling Squeezebox Server integration\n";
undef $squeeze;
} else {
$players = ( $response =~ m/^player count ([0-9]+)$/ );
$response =~ m/^player count ([0-9]+)$/;
$players = $1;
print $socket "players 0 $players\n";
$response = <$socket>;
@details = split( /playerindex%3A/ , $response );
my @responseArray = split( / / , $response );
close( $socket );
shift( @details );
for( my $n = 0; $n <= scalar( @details ); $n++ ) {
if( defined( $details[ $n ] ) ) {
my $address = $details[ $n ];
$address =~ s/^.*playerid%3A([[:xdigit:]%]+)\s.*$/$1/;
$address =~ s/%3A/:/g;
chomp $address;
$details[ $n ] = $address;
for( my $n = 0; $n <= scalar( @responseArray ); $n++ ) {
if ( $responseArray[ $n ] =~ m/playerid%3A/) {
my $address = $responseArray[ $n ];
$address =~ s/^playerid%3A([[:xdigit:]%]+)$/$1/;
$address =~ s/%3A/:/g;
chomp $address;
$details[@details] = $address;
}
}
print "Discovered players: $players\n" if $verbose;