summaryrefslogtreecommitdiff
path: root/plexOsd.h
diff options
context:
space:
mode:
Diffstat (limited to 'plexOsd.h')
-rw-r--r--plexOsd.h82
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