From 7b64bf5062f3eb6ddff5d7606e44367bd5077e4c Mon Sep 17 00:00:00 2001 From: chriszero Date: Tue, 15 Dec 2015 22:15:35 +0100 Subject: Added SSL support, started support for remote resources (servers). Browsing remote servers is working. plex.tv login is mandatory. --- device.cpp | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 device.cpp (limited to 'device.cpp') diff --git a/device.cpp b/device.cpp new file mode 100644 index 0000000..8acf688 --- /dev/null +++ b/device.cpp @@ -0,0 +1,62 @@ +#include "device.h" + +namespace plexclient +{ + +Connection::Connection(Poco::XML::Node* pNode, Device* parent) +{ + m_pParent = parent; + + NodeIterator it(pNode, Poco::XML::NodeFilter::SHOW_ALL); + Poco::XML::Node* pChildNode = it.nextNode(); + + while(pChildNode) { + if(Poco::icompare(pChildNode->nodeName(), "Connection") == 0) { + Poco::XML::AutoPtr pAttribs = pChildNode->attributes(); + + m_sProtocol = GetNodeValue(pAttribs->getNamedItem("protocol")); + m_sAddress = GetNodeValue(pAttribs->getNamedItem("address")); + m_iPort = GetNodeValueAsInt(pAttribs->getNamedItem("port")); + m_sUri = GetNodeValue(pAttribs->getNamedItem("uri")); + m_bLocal = GetNodeValueAsBool(pAttribs->getNamedItem("local")); + + pAttribs->release(); + } + pChildNode = it.nextNode(); + } +} + +Device::Device(Poco::XML::Node* pNode, MediaContainer* parent) +{ + m_pParent = parent; + + NodeIterator it(pNode, Poco::XML::NodeFilter::SHOW_ALL); + Poco::XML::Node* pChildNode = it.nextNode(); + std::cout << "Found Device "; + + while(pChildNode) { + if(Poco::icompare(pChildNode->nodeName(), "Device") == 0) { + Poco::XML::AutoPtr pAttribs = pChildNode->attributes(); + + m_sName = GetNodeValue(pAttribs->getNamedItem("name")); + m_sProduct = GetNodeValue(pAttribs->getNamedItem("product")); + m_sProvides = GetNodeValue(pAttribs->getNamedItem("provides")); + m_sClientIdentifier = GetNodeValue(pAttribs->getNamedItem("clientIdentifier")); + m_bOwned = GetNodeValueAsBool(pAttribs->getNamedItem("owned")); + m_sAccessToken = GetNodeValue(pAttribs->getNamedItem("accessToken")); + m_bHttpsRequired = GetNodeValueAsBool(pAttribs->getNamedItem("httpsRequired")); + m_bPublicAddressMatches = GetNodeValueAsBool(pAttribs->getNamedItem("publicAddressMatches")); + m_bPresence = GetNodeValueAsBool(pAttribs->getNamedItem("presence")); + m_sSourceTitle = GetNodeValue(pAttribs->getNamedItem("sourceTitle")); + + pAttribs->release(); + } else if(Poco::icompare(pChildNode->nodeName(), "Connection") == 0) { + m_vConnections.push_back(Connection(pChildNode, this)); + } + + pChildNode = it.nextNode(); + } +} + + +} -- cgit v1.2.3 From 1d624e296ee8b6a13abf0a4012a5e07b2354970e Mon Sep 17 00:00:00 2001 From: chriszero Date: Wed, 16 Dec 2015 21:02:47 +0100 Subject: Early remote server playback. Please test. --- device.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'device.cpp') diff --git a/device.cpp b/device.cpp index 8acf688..8ff82a7 100644 --- a/device.cpp +++ b/device.cpp @@ -32,7 +32,6 @@ Device::Device(Poco::XML::Node* pNode, MediaContainer* parent) NodeIterator it(pNode, Poco::XML::NodeFilter::SHOW_ALL); Poco::XML::Node* pChildNode = it.nextNode(); - std::cout << "Found Device "; while(pChildNode) { if(Poco::icompare(pChildNode->nodeName(), "Device") == 0) { -- cgit v1.2.3