diff options
author | chriszero <zerov83@gmail.com> | 2015-12-15 22:15:35 +0100 |
---|---|---|
committer | chriszero <zerov83@gmail.com> | 2015-12-15 22:15:35 +0100 |
commit | 7b64bf5062f3eb6ddff5d7606e44367bd5077e4c (patch) | |
tree | 258cbbc0d4edbe3bcabf58c6dee495d19384ed14 /device.cpp | |
parent | 135ed5d0ce1613f70f4b2ddcb9e8bca721ffca9e (diff) | |
download | vdr-plugin-plex-7b64bf5062f3eb6ddff5d7606e44367bd5077e4c.tar.gz vdr-plugin-plex-7b64bf5062f3eb6ddff5d7606e44367bd5077e4c.tar.bz2 |
Added SSL support, started support for remote
resources (servers). Browsing remote servers is
working. plex.tv login is mandatory.
Diffstat (limited to 'device.cpp')
-rw-r--r-- | device.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
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<Poco::XML::NamedNodeMap> 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<Poco::XML::NamedNodeMap> 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(); + } +} + + +} |