mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
70_XBMC: added streamdetail readings
git-svn-id: https://svn.fhem.de/fhem/trunk@8522 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
6cf840a06c
commit
c78ced89aa
@ -340,6 +340,11 @@ sub XBMC_ResetMediaReadings($)
|
|||||||
readingsBulkUpdate($hash, "currentTrack", "" );
|
readingsBulkUpdate($hash, "currentTrack", "" );
|
||||||
|
|
||||||
readingsEndUpdate($hash, 1);
|
readingsEndUpdate($hash, 1);
|
||||||
|
|
||||||
|
# delete streamdetails readings
|
||||||
|
# NOTE: we actually delete the readings (unlike the other readings)
|
||||||
|
# because they are stream count dependent
|
||||||
|
fhem("deletereading $hash->{NAME} sd_.*");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub XBMC_ResetPlayerReadings($)
|
sub XBMC_ResetPlayerReadings($)
|
||||||
@ -424,7 +429,7 @@ sub XBMC_PlayerOnPlay($$)
|
|||||||
"params" => {
|
"params" => {
|
||||||
"movieid" => $obj->{params}->{data}->{item}->{id},
|
"movieid" => $obj->{params}->{data}->{item}->{id},
|
||||||
#http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6#Video.Fields.Movie
|
#http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6#Video.Fields.Movie
|
||||||
"properties" => ["title","file","year","originaltitle"]
|
"properties" => ["title","file","year","originaltitle","streamdetails"]
|
||||||
},
|
},
|
||||||
"id" => $id
|
"id" => $id
|
||||||
};
|
};
|
||||||
@ -579,7 +584,7 @@ sub XBMC_ProcessResponse($$)
|
|||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub XBMC_is3DFile($$) {
|
sub XBMC_Is3DFile($$) {
|
||||||
my ($hash, $filename) = @_;
|
my ($hash, $filename) = @_;
|
||||||
|
|
||||||
return ($filename =~ /([-. _]3d[-. _]|.*3dbd.*)/i);
|
return ($filename =~ /([-. _]3d[-. _]|.*3dbd.*)/i);
|
||||||
@ -622,18 +627,31 @@ sub XBMC_CreateReading($$$) {
|
|||||||
elsif($key eq 'file') {
|
elsif($key eq 'file') {
|
||||||
$key = 'currentMedia';
|
$key = 'currentMedia';
|
||||||
|
|
||||||
my $is3D = XBMC_is3DFile($hash, $value);
|
readingsBulkUpdate($hash,'3dfile', XBMC_Is3DFile($hash, $value) ? "on" : "off");
|
||||||
XBMC_CreateReading($hash, "3dfile", $is3D ? "on" : "off");
|
|
||||||
}
|
}
|
||||||
elsif($key =~ /(album|artist|track|title)/) {
|
elsif($key =~ /(album|artist|track|title)/) {
|
||||||
$key = 'current' . ucfirst($key);
|
$key = 'current' . ucfirst($key);
|
||||||
}
|
}
|
||||||
|
elsif($key eq 'streamdetails') {
|
||||||
|
foreach my $mediakey (keys %{$value}) {
|
||||||
|
my $arrRef = $value->{$mediakey};
|
||||||
|
for (my $i = 0; $i <= $#$arrRef; $i++) {
|
||||||
|
my $propRef = $arrRef->[$i];
|
||||||
|
foreach my $propkey (keys %{$propRef}) {
|
||||||
|
readingsBulkUpdate($hash, "sd_" . $mediakey . $i . $propkey, $propRef->{$propkey});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# we dont want to create a "streamdetails" reading
|
||||||
|
$key = undef;
|
||||||
|
}
|
||||||
if(ref($value) eq 'ARRAY') {
|
if(ref($value) eq 'ARRAY') {
|
||||||
if(int(@$value)) {
|
if(int(@$value)) {
|
||||||
$value = join(',',@$value);
|
$value = join(',',@$value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
readingsBulkUpdate($hash,$key,$value);
|
readingsBulkUpdate($hash,$key,$value) if defined $key;
|
||||||
}
|
}
|
||||||
|
|
||||||
#Parses a given string and returns ($msg,$tail). If the string contains a complete message
|
#Parses a given string and returns ($msg,$tail). If the string contains a complete message
|
||||||
@ -1487,6 +1505,7 @@ sub XBMC_HTTP_Request($$@)
|
|||||||
<li><b>volume</b> - value between 0 and 100 stating the current volume setting</li>
|
<li><b>volume</b> - value between 0 and 100 stating the current volume setting</li>
|
||||||
<li><b>year</b> - year of the movie being played</li>
|
<li><b>year</b> - year of the movie being played</li>
|
||||||
<li><b>3dfile</b> - is a 3D movie according to filename</li>
|
<li><b>3dfile</b> - is a 3D movie according to filename</li>
|
||||||
|
<li><b>sd_<type><n>_<reading></b> - stream details of the current medium. type can be video, audio or subtitle, n is the stream index (a stream can have multiple audio/video streams)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<br><br>
|
<br><br>
|
||||||
<u>Remarks on the events</u><br><br>
|
<u>Remarks on the events</u><br><br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user