summaryrefslogtreecommitdiff
path: root/browserGrid.h
diff options
context:
space:
mode:
authorchriszero <zerov83@gmail.com>2015-03-27 09:32:27 +0100
committerchriszero <zerov83@gmail.com>2015-03-27 09:32:27 +0100
commitb3a59b06a977129bd773ff46f4fd66e0057fb9cd (patch)
tree25f7bcd960eb5a444982190002af6c56e436163f /browserGrid.h
parent5ffd91556f73336f91e1fc96da2af36e6e7e5660 (diff)
downloadvdr-plugin-plex-b3a59b06a977129bd773ff46f4fd66e0057fb9cd.tar.gz
vdr-plugin-plex-b3a59b06a977129bd773ff46f4fd66e0057fb9cd.tar.bz2
develop skindesigner support
Diffstat (limited to 'browserGrid.h')
-rw-r--r--browserGrid.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/browserGrid.h b/browserGrid.h
new file mode 100644
index 0000000..36fac5c
--- /dev/null
+++ b/browserGrid.h
@@ -0,0 +1,54 @@
+#ifndef CBROWSERGRID_H
+#define CBROWSERGRID_H
+
+#include <memory>
+#include <vector>
+#include "Plexservice.h"
+#include "plexgdm.h"
+#include "PlexServer.h"
+#include "viewGridNavigator.h"
+#include "libskindesigner/osdelements.h"
+
+class cDummyElement : public cGridElement
+{
+public:
+ virtual std::string GetTitle();
+ virtual void AddTokens(std::shared_ptr<cViewGrid> grid);
+};
+
+class cServerElement : public cGridElement
+{
+private:
+ plexclient::PlexServer* m_pServer;
+ std::string m_sStartPath;
+ std::string m_sStartName;
+public:
+ cServerElement(plexclient::PlexServer* server, std::string startPath, std::string startName);
+ virtual std::string GetTitle();
+ virtual void AddTokens(std::shared_ptr<cViewGrid> grid);
+ std::string StartPath() { return m_sStartPath; }
+ plexclient::PlexServer* Server() { return m_pServer; }
+};
+
+class cBrowserGrid : public cViewGridNavigator
+{
+private:
+ bool m_bServersAreRoot;
+ std::vector<cServerElement> m_vServerElements;
+
+ std::shared_ptr<plexclient::MediaContainer> m_pContainer;
+ std::shared_ptr<plexclient::Plexservice> m_pService;
+ cDummyElement m_Dummy;
+
+ void ProcessData();
+ void SetServerElements();
+
+public:
+ cBrowserGrid(cViewGrid* viewGrid);
+ cBrowserGrid(cViewGrid* viewGrid, std::shared_ptr<plexclient::Plexservice> service);
+
+ virtual eOSState NavigateSelect();
+ virtual eOSState NavigateBack();
+};
+
+#endif // CBROWSERGRID_H