diff options
Diffstat (limited to 'plexOsd.h')
-rw-r--r-- | plexOsd.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/plexOsd.h b/plexOsd.h new file mode 100644 index 0000000..d6a14f4 --- /dev/null +++ b/plexOsd.h @@ -0,0 +1,82 @@ +#ifndef CPLEXOSD_H +#define CPLEXOSD_H + +#include <vdr/osdbase.h> + +#include <iostream> +#include <string> +#include <vector> +#include <iterator> +#include <algorithm> +#include <memory> + +#include "Config.h" +#include "Plexservice.h" + +#include "plexgdm.h" +#include "cPlexOsdItem.h" +#include "hlsPlayerControl.h" + +enum menuShow { + MAIN, + BROWSER, + INFO +}; + + +/* + * Plex Browser + */ + +class cPlexBrowser :public cOsdMenu +{ +private: + std::shared_ptr<plexclient::Plexservice> pService; + std::shared_ptr<plexclient::MediaContainer> pCont; + std::vector<plexclient::Video> *v_Vid; + std::vector<plexclient::Directory> *v_Dir; + std::vector<std::string> m_vStack; + std::string m_sSection; + std::string m_sActualPos; + /// Create a browser menu for current directory + void CreateMenu(); + /// Handle menu level up + eOSState LevelUp(void); + /// Handle menu item selection + eOSState ProcessSelected(); + + static std::shared_ptr<plexclient::Plexservice> pLastService; + static int lastCurrentItem; + +public: + cPlexBrowser(const char *title, std::shared_ptr<plexclient::Plexservice> Service); + virtual eOSState ProcessKey(eKeys); + + static cPlexBrowser* RecoverLastState(); + +}; + +class cPlexInfo : public cOsdMenu +{ + +public: + cPlexInfo(plexclient::Video* video); + virtual eOSState ProcessKey(eKeys Keys); +}; + +/** +** Play plugin menu class. +*/ +class cPlexMenu:public cOsdMenu +{ + +private: +public: + cPlexMenu(const char *, int = 0, int = 0, int = 0, int = 0, int = 0); + virtual eOSState ProcessKey(eKeys); + + static cOsdMenu* ProcessMenu(); + static menuShow eShow; +}; + +#endif // CPLEXOSD_H |