#ifndef PLEX_H #define PLEX_H #include #include #include #include #include #include #include #include #include "Config.h" #include "Plexservice.h" #include "plexgdm.h" #include "cPlexOsdItem.h" #include "hlsPlayerControl.h" #include #include #include #include #include #include /// vdr-plugin version number. /// Makefile extracts the version number for generating the file name /// for the distribution archive. static const char *const VERSION = "0.1.0" #ifdef GIT_REV "-GIT" GIT_REV #endif ; static const char *const DESCRIPTION = "Plex for VDR Plugin"; static const char *const MAINMENUENTRY = "Plex for VDR"; /* * Plex Browser */ class cPlexBrowser :public cOsdMenu { private: std::shared_ptr pService; std::shared_ptr pCont; std::vector *v_Vid; std::vector *v_Dir; std::vector 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(); public: cPlexBrowser(const char *title, std::shared_ptr Service); virtual eOSState ProcessKey(eKeys); }; class cPlexInfo : public cOsdMenu { public: cPlexInfo(plexclient::Video* video); virtual eOSState ProcessKey(eKeys Keys); }; /** ** Play plugin menu class. */ class cPlayMenu:public cOsdMenu { private: public: cPlayMenu(const char *, int = 0, int = 0, int = 0, int = 0, int = 0); virtual ~ cPlayMenu(); virtual eOSState ProcessKey(eKeys); }; class cMyPlugin:public cPlugin { public: cMyPlugin(void); virtual ~ cMyPlugin(void); virtual const char *Version(void); virtual const char *Description(void); virtual bool Initialize(void); virtual void MainThreadHook(void); virtual const char *MainMenuEntry(void); virtual cOsdObject *MainMenuAction(void); virtual cMenuSetupPage *SetupMenu(void); virtual bool SetupParse(const char *, const char *); }; #endif