2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-23 20:52:13 +00:00

71_PHILIPS_AUDIO: fixed crash of fhem server while shutdown/restart

git-svn-id: https://svn.fhem.de/fhem/trunk@14029 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
ra666ack 2017-04-18 18:08:36 +00:00
parent b4c23d30bb
commit 2e9fdbcab5

View File

@ -258,33 +258,23 @@ sub PHILIPS_AUDIO_Set
my @favoriteList;
my @favoriteNumber;
foreach my $readings (keys % {$hash->{READINGS}})
{
# $1 $2
if($readings =~ m/(.inetRadioFavorite_)(..)$/)
{
push @favoriteList, $2."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25);
push @favoriteNumber, $2;
}
push @favoriteList,$1."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25) if($readings =~ m/^.inetRadioFavorite_(..)$/);
push @favoriteNumber, $1 if($readings =~ m/^.inetRadioFavorite_(..)/);
}
(s/\*/\[asterisk\]/g) for @favoriteList; # '*' not shown correctly
(s/#/\[hash\]/g) for @favoriteList; # '#' not shown correctly
(s/[\\]//g) for @favoriteList; # Replace \
(s/[\\]//g) for @favoriteList;
(s/[ :;,']/_/g) for @favoriteList; # Replace not allowed characters
my @presetList;
my @presetNumber;
foreach my $readings (keys % {$hash->{READINGS}})
{
# $1 $2
if($readings =~ m/(.inetRadioPreset_)(..)$/)
{
push @presetList, $2."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25);
push @presetNumber, $2;
}
push @presetList, $1."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25) if($readings =~ m/^.inetRadioPreset_(..)/);
push @presetNumber, $1 if($readings =~ m/^.inetRadioPreset_(..)/);
}
(s/\*/\[asterisk\]/g) for @presetList; # '*' not shown correctly
@ -295,8 +285,7 @@ sub PHILIPS_AUDIO_Set
$usage .= "selectFavorite:" .join(",",("---",(sort @favoriteList))) . " ";
$usage .= "selectPreset:" .join(",",("---",(sort @presetList))) . " ";
$usage .= "selectPresetByNumber:" .join(",",("---",(sort @presetNumber))) . " ";
$usage .= "selectFavoriteByNumber:".join(",",("---",(sort @favoriteNumber))). " ";
$usage .= "selectFavoriteByNumber:".join(",",("---",(sort @favoriteNumber))) . " ";
# Direct stream selection if any
my @selectStream;
@ -309,14 +298,13 @@ sub PHILIPS_AUDIO_Set
foreach my $readings (keys % {$hash->{READINGS}})
{
# $1 $2
push @selectStream, $2."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25) if($readings =~ m/(listItem_)(...)$/);
push @selectStream,$1."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25) if($readings =~ m/^listItem_(.*)/);
}
(s/\*/\[asterisk\]/g) for @selectStream; # '*' not shown correctly
(s/#/\[hash\]/g) for @selectStream; # '#' not shown correctly
(s/[\\]//g) for @selectStream; # Replace \
(s/[ :;,']/_/g) for @selectStream; # Replace not allowed characters
@selectStream = sort map{s/\*/\[asterisk\]/g;$_;} grep/._..*$/, @selectStream; # Replace *
@selectStream = sort map{s/#/\[hash\]/g;$_;} grep/._..*$/, @selectStream; # Replace #
@selectStream = sort map{s/[\\]//g;$_;} grep/._..*$/, @selectStream; # Replace not allowed characters
@selectStream = sort map{s/[ :;,']/_/g;$_;} grep/._..*$/, @selectStream; # Replace not allowed characters
$usage .= "selectStream:".join(",",("---",(sort @selectStream))) . " ";