diff options
author | chriszero <zerov83@gmail.com> | 2015-03-27 09:32:27 +0100 |
---|---|---|
committer | chriszero <zerov83@gmail.com> | 2015-03-27 09:32:27 +0100 |
commit | b3a59b06a977129bd773ff46f4fd66e0057fb9cd (patch) | |
tree | 25f7bcd960eb5a444982190002af6c56e436163f /browserGrid.h | |
parent | 5ffd91556f73336f91e1fc96da2af36e6e7e5660 (diff) | |
download | vdr-plugin-plex-b3a59b06a977129bd773ff46f4fd66e0057fb9cd.tar.gz vdr-plugin-plex-b3a59b06a977129bd773ff46f4fd66e0057fb9cd.tar.bz2 |
develop skindesigner support
Diffstat (limited to 'browserGrid.h')
-rw-r--r-- | browserGrid.h | 54 |
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 |