summaryrefslogtreecommitdiff
path: root/plexOsd.h
diff options
context:
space:
mode:
authorchriszero <zerov83@gmail.com>2015-03-15 12:46:04 +0100
committerchriszero <zerov83@gmail.com>2015-03-15 12:46:04 +0100
commit5ffd91556f73336f91e1fc96da2af36e6e7e5660 (patch)
treee397497642a9a154a1ef4fde82c8265c3cd4331d /plexOsd.h
parent2788b2cbe68b4b481f3a080658cc433d2927b4fb (diff)
downloadvdr-plugin-plex-5ffd91556f73336f91e1fc96da2af36e6e7e5660.tar.gz
vdr-plugin-plex-5ffd91556f73336f91e1fc96da2af36e6e7e5660.tar.bz2
Refactoring0.1.4
Own files for OsdMenus Bump version to 0.1.4
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