summaryrefslogtreecommitdiff
path: root/hlsPlayerControl.cpp
diff options
context:
space:
mode:
authorchriszero <zerov83@gmail.com>2015-02-05 21:32:55 +0100
committerchriszero <zerov83@gmail.com>2015-02-05 21:32:55 +0100
commit312c13f4f6b299a976787542869f96b1e66549cf (patch)
tree7ee2732eaec79d50e0c9718960fd58e2436f10f6 /hlsPlayerControl.cpp
parent1ecdb2a5d9e05e0d30dae89e3d675218ca4c255e (diff)
downloadvdr-plugin-plex-312c13f4f6b299a976787542869f96b1e66549cf.tar.gz
vdr-plugin-plex-312c13f4f6b299a976787542869f96b1e66549cf.tar.bz2
Plex remote support.
Control via Plexapps (Android, IOS...)
Diffstat (limited to 'hlsPlayerControl.cpp')
-rw-r--r--hlsPlayerControl.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/hlsPlayerControl.cpp b/hlsPlayerControl.cpp
index 168c60e..17bbc12 100644
--- a/hlsPlayerControl.cpp
+++ b/hlsPlayerControl.cpp
@@ -12,20 +12,26 @@ cControl* cHlsPlayerControl::Create(plexclient::Video* Video)
{
if(!Video->m_pServer)
return NULL;
+
+ // Stop already playing stream
+ cHlsPlayerControl* c = dynamic_cast<cHlsPlayerControl*>(cControl::Control(true));
+ if(c) {
+ c->Stop();
+ }
// get Metadata
std::string uri = Video->m_pServer->GetUri() + Video->m_sKey;
plexclient::MediaContainer *pmcontainer = plexclient::Plexservice::GetMediaContainer(uri);
- std::string transcodeUri = plexclient::Plexservice::GetUniversalTranscodeUrl(&pmcontainer->m_vVideos[0]);
-
- cHlsPlayerControl* playerControl = new cHlsPlayerControl(new cHlsPlayer(transcodeUri, &pmcontainer->m_vVideos[0]), pmcontainer);
+ std::string transcodeUri = plexclient::Plexservice::GetUniversalTranscodeUrl(&pmcontainer->m_vVideos[0], Video->m_iMyPlayOffset);
+ cHlsPlayerControl* playerControl = new cHlsPlayerControl(new cHlsPlayer(transcodeUri, &pmcontainer->m_vVideos[0], Video->m_iMyPlayOffset), pmcontainer);
playerControl->m_title = pmcontainer->m_vVideos[0].m_sTitle;
return playerControl;
}
cHlsPlayerControl::cHlsPlayerControl(cHlsPlayer* Player, plexclient::MediaContainer* Container) :cControl(Player)
{
+ dsyslog("[plex]: '%s'", __FUNCTION__);
player = Player;
m_pVideo = &Container->m_vVideos[0];
//m_title = title;
@@ -192,6 +198,13 @@ void cHlsPlayerControl::Stop(void)
player->Stop();
}
+void cHlsPlayerControl::SeekTo(int offset)
+{
+ if (player) {
+ player->JumpTo(offset);
+ }
+}
+
void cHlsPlayerControl::ShowMode(void)
{
//dsyslog("[plex]: '%s'\n", __FUNCTION__);