summaryrefslogtreecommitdiff
path: root/osd_status.h
diff options
context:
space:
mode:
authorJasmin Jessich <jasmin@anw.at>2017-05-14 23:57:33 +0200
committerJasmin Jessich <jasmin@anw.at>2017-05-18 23:33:01 +0200
commit95625cfeb04659d9419b12642458e3d5a139a899 (patch)
tree884dc5252a2dbc68b72c2a08299d6cd1bea34938 /osd_status.h
parentbe4f333e60a6d992e11610d9918ca745db23902b (diff)
downloadvdr-plugin-live-95625cfeb04659d9419b12642458e3d5a139a899.tar.gz
vdr-plugin-live-95625cfeb04659d9419b12642458e3d5a139a899.tar.bz2
Patched with osd-patch.txt
From http://www.vdr-portal.de/board16-video-disk-recorder/board55-vdr-plugins/p1234887-live-patch-f%C3%BCr-osd-ohne-ausgabeplugin/#post1234887
Diffstat (limited to 'osd_status.h')
-rw-r--r--osd_status.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/osd_status.h b/osd_status.h
new file mode 100644
index 0000000..f84b1ef
--- /dev/null
+++ b/osd_status.h
@@ -0,0 +1,84 @@
+#ifndef VDR_LIVE_OSD_STATUS_H
+#define VDR_LIVE_OSD_STATUS_H
+
+#include <string>
+#include <vdr/status.h>
+#include <time.h>
+
+namespace vdrlive {
+
+class cLiveOsdItem: public cListObject {
+ private:
+ std::string text;
+ bool selected;
+ public:
+ std::string Text() const { return text; }
+ int isSelected() const {return selected;}
+ void Select(const bool doSelect) { selected= doSelect; };
+ void Update(const char* Text) { text = Text ? Text : ""; };
+ cLiveOsdItem(const char* Text):text(),selected(false) { text = Text ? Text : ""; };
+ ~cLiveOsdItem() { }
+};
+
+class OsdStatusMonitor: public cStatus
+{
+ friend OsdStatusMonitor& LiveOsdStatusMonitor();
+public:
+ enum { MaxTabs = 6 };
+private:
+ OsdStatusMonitor();
+ OsdStatusMonitor( OsdStatusMonitor const& );
+
+ std::string title;
+ std::string message;
+ std::string red;
+ std::string green;
+ std::string yellow;
+ std::string blue;
+ std::string text;
+ int selected;
+ cList<cLiveOsdItem> items;
+ unsigned short tabs[MaxTabs];
+ clock_t lastUpdate;
+
+protected:
+// static void append(char *&tail, char type, const char *src, int max);
+public:
+
+ std::string const GetTitle() const {return title;}
+ std::string const GetMessage() const {return message;}
+ std::string const GetRed() const {return red;}
+ std::string const GetGreen() const {return green;}
+ std::string const GetYellow() const {return yellow;}
+ std::string const GetBlue() const {return blue;}
+ std::string const GetText() const {return text;}
+
+ virtual std::string const GetHtml();
+ virtual std::string const GetTitleHtml();
+ virtual std::string const GetMessageHtml();
+ virtual std::string const GetRedHtml();
+ virtual std::string const GetGreenHtml();
+ virtual std::string const GetYellowHtml();
+ virtual std::string const GetBlueHtml();
+ virtual std::string const GetTextHtml();
+ virtual std::string const GetButtonsHtml();
+ virtual std::string const GetItemsHtml();
+
+ virtual void OsdClear();
+ virtual void OsdTitle(const char *Title);
+ virtual void OsdStatusMessage(const char *Message);
+ virtual void OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue);
+ virtual void OsdTextItem(const char *Text, bool Scroll);
+ virtual void OsdItem(const char *Text, int Index);
+ virtual void OsdCurrentItem(const char *Text);
+
+ virtual ~OsdStatusMonitor();
+
+ std::string const EncodeHtml(const std::string& html);
+};
+
+OsdStatusMonitor& LiveOsdStatusMonitor();
+
+} // namespace vdrlive
+
+#endif // VDR_LIVE_STATUS_H