From 7561c793fc7feb18f132519dec6b9661af8098db Mon Sep 17 00:00:00 2001 From: justme1968 Date: Sun, 22 May 2016 18:01:17 +0000 Subject: [PATCH] 37_plex.pm: fix mediatype for playback commands git-svn-id: https://svn.fhem.de/fhem/trunk@11501 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/37_plex.pm | 52 +++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/fhem/FHEM/37_plex.pm b/fhem/FHEM/37_plex.pm index 72762100d..5ac990707 100644 --- a/fhem/FHEM/37_plex.pm +++ b/fhem/FHEM/37_plex.pm @@ -962,7 +962,12 @@ plex_Set($$@) } - plex_sendApiCmd( $hash, "http://$ip:$entry->{port}/player/playback/$cmd?type=video", "playback" ); + my $type = $params[0]; + $type = $hash->{currentMediaType} if( !$type ); + $type = "type=$type" if( $type ); + $type = "" if( !$type ); + + plex_sendApiCmd( $hash, "http://$ip:$entry->{port}/player/playback/$cmd?$type", "playback" ); return undef; } elsif( $cmd eq 'seekTo' ) { @@ -970,7 +975,12 @@ plex_Set($$@) return "usage: $cmd " if( !defined($params[0]) ); $params[0] =~ s/[^\d]//g; - plex_sendApiCmd( $hash, "http://$ip:$entry->{port}/player/playback/seekTo?type=video&offset=$params[0]", "parameters" ); + my $type = $params[1]; + $type = $hash->{currentMediaType} if( !$type ); + $type = "type=$type" if( $type ); + $type = "" if( !$type ); + + plex_sendApiCmd( $hash, "http://$ip:$entry->{port}/player/playback/seekTo?$type&offset=$params[0]", "parameters" ); return undef; } elsif( $cmd eq 'volume' || $cmd eq 'shuffle' || $cmd eq 'repeat' ) { @@ -981,7 +991,12 @@ plex_Set($$@) return "usage: $cmd [0/1/2]" if( $cmd eq 'repeat' && ($params[0] < 0 || $params[0] > 2) ); return "usage: $cmd [0-100]" if( $cmd eq 'volume' && ($params[0] < 0 || $params[0] > 100) ); - plex_sendApiCmd( $hash, "http://$ip:$entry->{port}/player/playback/setParameters?type=video&$cmd=$params[0]", "parameters" ); + my $type = $params[1]; + $type = $hash->{currentMediaType} if( !$type ); + $type = "type=$type" if( $type ); + $type = "" if( !$type ); + + plex_sendApiCmd( $hash, "http://$ip:$entry->{port}/player/playback/setParameters?$type&$cmd=$params[0]", "parameters" ); return undef; } elsif( $cmd eq 'home' || $cmd eq 'music' ) { @@ -2181,6 +2196,7 @@ plex_disappeared($$$) if( my $chash = $modules{plex}{defptr}{$machineIdentifier} ) { delete $chash->{controllable}; + delete $chash->{currentMediaType}; readingsBeginUpdate($chash); readingsBulkUpdate($chash, 'presence', 'absent' ); @@ -2285,6 +2301,12 @@ plex_parseTimeline($$$) if( $state =~ '\w*:(\w*) \w*:(\w*) .*:(\w*)' ) { $state = $1 if( $1 eq $2 && $2 eq $3 ); } + + if( $state =~ '(\w*):\w*' ) { + $chash->{currentMediaType} = $1; + } else { + delete $chash->{currentMediaType}; + } plex_readingsBulkUpdateIfChanged($chash, 'state', $state ); readingsEndUpdate($chash, 1); } @@ -3284,16 +3306,16 @@ Log 1, "!!!!!!!!!!";
  • resume [<server>] <item>]
  • -
  • pause
  • -
  • stop
  • -
  • skipNext
  • -
  • skipPrevious
  • -
  • stepBack
  • -
  • stepForward
  • -
  • seekTo <value>
  • -
  • volume <value>
  • -
  • shuffle 0|1
  • -
  • repeat 0|1|2
  • +
  • pause [<type>]
  • +
  • stop [<type>]
  • +
  • skipNext [<type>]
  • +
  • skipPrevious [<type>]
  • +
  • stepBack [<type>]
  • +
  • stepForward [<type>]
  • +
  • seekTo <value> [<type>]
  • +
  • volume <value> [<type>]
  • +
  • shuffle 0|1 [<type>]
  • +
  • repeat 0|1|2 [<type>]
  • mirror [<server>] <item>
    show preplay screen for <item>
  • home
  • @@ -3343,8 +3365,8 @@ Log 1, "!!!!!!!!!!"; ...
    get <plex> ls /library/metadata/133999/children -
    ...

    -
    if used from fhemweb album art ist displayed and keys and other items are klickable.
    +
      ...

    +
    if used from fhemweb album art can be displayed and keys and other items are klickable.