summaryrefslogtreecommitdiff
path: root/device.cpp
diff options
context:
space:
mode:
authorChristian <zerov83@googlemail.com>2015-12-20 18:55:27 +0100
committerChristian <zerov83@googlemail.com>2015-12-20 18:55:27 +0100
commit2a112bcf6f15603d46ab904eabb13bd8ee062a91 (patch)
treeb948261300ea449823485305b2d980504190b11d /device.cpp
parent135ed5d0ce1613f70f4b2ddcb9e8bca721ffca9e (diff)
parent4775c62bf44ba6d757722611313f53d6dd2a0b56 (diff)
downloadvdr-plugin-plex-2a112bcf6f15603d46ab904eabb13bd8ee062a91.tar.gz
vdr-plugin-plex-2a112bcf6f15603d46ab904eabb13bd8ee062a91.tar.bz2
Merge pull request #2 from chriszero/remoteserverremoteserver
merge remoteserver branch
Diffstat (limited to 'device.cpp')
-rw-r--r--device.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/device.cpp b/device.cpp
new file mode 100644
index 0000000..8ff82a7
--- /dev/null
+++ b/device.cpp
@@ -0,0 +1,61 @@
+#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();
+
+ 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();
+ }
+}
+
+
+}