From e63b1337cb98ddfa136de78628f5048b682276ff Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 8 Mar 2016 22:14:49 +0100 Subject: Skindesigner "DetailView" in development --- Config.cpp | 2 + Config.h | 3 + Directory.cpp | 4 +- Makefile | 3 +- MediaContainer.cpp | 2 + MediaContainer.h | 3 + PVideo.cpp | 30 +++++-- PVideo.h | 3 + Stream.cpp | 6 +- XmlObject.cpp | 64 ++++++++++++--- XmlObject.h | 8 +- browserGrid.cpp | 7 +- detailView.cpp | 166 +++++++++++++++++++++++++++++++++++++- detailView.h | 30 ++++++- hlsPlayer.cpp | 4 +- hlsPlayerControl.cpp | 6 +- plex.cpp | 27 ++++++- plexSdOsd.cpp | 188 ++++++++++++++++++++++++++++++++++--------- plexSdOsd.h | 9 +++ templates/plug-plex-root.xml | 2 +- tokendefinitions.h | 27 +++++-- viewGridNavigator.h | 1 - 22 files changed, 506 insertions(+), 89 deletions(-) diff --git a/Config.cpp b/Config.cpp index 62728ba..30baac8 100644 --- a/Config.cpp +++ b/Config.cpp @@ -17,6 +17,8 @@ Config::Config() { ListGridRows = 12; DetailGridColumns = 1; DetailGridRows = 4; + ExtrasGridColumns = 4; + ExtrasGridRows = 1; UseMpv = false; UseAc3 = true; diff --git a/Config.h b/Config.h index 9673503..0a31ae1 100644 --- a/Config.h +++ b/Config.h @@ -57,6 +57,9 @@ public: int DetailGridColumns; int DetailGridRows; + + int ExtrasGridColumns; + int ExtrasGridRows; ViewMode DefaultViewMode; diff --git a/Directory.cpp b/Directory.cpp index 100b830..d4cbb09 100644 --- a/Directory.cpp +++ b/Directory.cpp @@ -65,7 +65,7 @@ std::string Directory::GetTitle() seriesTitle = m_pParent->m_sParentTitle; switch(m_eType) { - case SEASON: + case MediaType::SEASON: return Poco::format(tr("%s - Season %d"), seriesTitle, m_iIndex); default: return m_sTitle; @@ -78,7 +78,7 @@ void Directory::AddTokens(std::shared_ptr grid, bo if(clear) grid->ClearTokens(); grid->AddIntToken((int)(eTokenGridInt::viewmode), Config::GetInstance().DefaultViewMode); grid->AddStringToken((int)(eTokenGridStr::title), m_sTitle.c_str()); - grid->AddIntToken((int)(eTokenGridInt::viewgroup), m_pParent->m_eViewGroup); + grid->AddIntToken((int)(eTokenGridInt::viewgroup), (int)m_pParent->m_eViewGroup); // Thumb, Cover, Episodepicture bool cached = false; diff --git a/Makefile b/Makefile index 53cc053..1eed6d1 100644 --- a/Makefile +++ b/Makefile @@ -94,7 +94,8 @@ OBJS = $(PLUGIN).o \ Stream.o \ Media.o \ plexOsd.o \ - device.o + device.o \ + playlist.o ifneq ($(DISABLESKINDESIGNER),1) OBJS += plexSdOsd.o \ diff --git a/MediaContainer.cpp b/MediaContainer.cpp index 4ad2a52..c7d4e5c 100644 --- a/MediaContainer.cpp +++ b/MediaContainer.cpp @@ -50,6 +50,8 @@ MediaContainer::MediaContainer(std::istream* response, PlexServer* Server) m_vVideos.push_back(Video(pNode, m_pServer, this)); } else if(Poco::icompare(pNode->nodeName(), "Device") == 0) { m_vDevices.push_back(Device(pNode, this)); + } else if(Poco::icompare(pNode->nodeName(), "Playlist") == 0) { + m_vPlaylists.push_back(Playlist(pNode, this)); } pNode = it.nextNode(); diff --git a/MediaContainer.h b/MediaContainer.h index 978311c..0f385be 100644 --- a/MediaContainer.h +++ b/MediaContainer.h @@ -20,6 +20,7 @@ #include "PlexServer.h" #include "Config.h" #include "device.h" +#include "playlist.h" using Poco::XML::DOMParser; using Poco::XML::InputSource; @@ -35,6 +36,7 @@ namespace plexclient class Video; class Directory; class Device; +class Playlist; class MediaContainer: XmlObject { @@ -49,6 +51,7 @@ public: std::vector m_vDirectories; std::vector