summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--displaymessage.c47
-rw-r--r--displaymessage.h16
-rw-r--r--lcarsng.c57
4 files changed, 65 insertions, 57 deletions
diff --git a/Makefile b/Makefile
index 3c4678a..624e978 100644
--- a/Makefile
+++ b/Makefile
@@ -54,7 +54,7 @@ DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
### The object files (add further files here):
-OBJS = displaychannel.o displaymenu.o displayreplay.o displaytracks.o lcarsng.o $(PLUGIN).o
+OBJS = displaychannel.o displaymenu.o displaymessage.o displayreplay.o displaytracks.o lcarsng.o $(PLUGIN).o
### The main target:
diff --git a/displaymessage.c b/displaymessage.c
new file mode 100644
index 0000000..e2f07ef
--- /dev/null
+++ b/displaymessage.c
@@ -0,0 +1,47 @@
+#include "lcarsng.h"
+#include "displaymessage.h"
+#include <vdr/font.h>
+
+// --- cLCARSNGDisplayMessage ----------------------------------------------
+
+cLCARSNGDisplayMessage::cLCARSNGDisplayMessage(void)
+{
+ const cFont *font = cFont::GetFont(fontOsd);
+ int lineHeight = font->Height();
+ x0 = 0;
+ x1 = lineHeight / 2;
+ x2 = lineHeight;
+ x3 = x2 + Gap;
+ x7 = cOsd::OsdWidth();
+ x6 = x7 - lineHeight / 2;
+ x5 = x6 - lineHeight / 2;
+ x4 = x5 - Gap;
+ y0 = 0;
+ y1 = lineHeight;
+ osd = CreateOsd(cOsd::OsdLeft(), cOsd::OsdTop() + cOsd::OsdHeight() - y1, x0, y0, x7 - 1, y1 - 1);
+}
+
+cLCARSNGDisplayMessage::~cLCARSNGDisplayMessage()
+{
+ delete osd;
+ cDevice::PrimaryDevice()->ScaleVideo(cRect::Null);
+}
+
+void cLCARSNGDisplayMessage::SetMessage(eMessageType Type, const char *Text)
+{
+ tColor ColorFg = Theme.Color(clrMessageStatusFg + 2 * Type);
+ tColor ColorBg = Theme.Color(clrMessageStatusBg + 2 * Type);
+ osd->DrawRectangle(x0, y0, x7 - 1, y1 - 1, Theme.Color(clrBackground));
+ osd->DrawRectangle(x0, y0, x1 - 1, y1 - 1, clrTransparent);
+ osd->DrawEllipse (x0, y0, x1 - 1, y1 - 1, ColorBg, 7);
+ osd->DrawRectangle(x1, y0, x2 - 1, y1 - 1, ColorBg);
+ osd->DrawText(x3, y0, Text, ColorFg, ColorBg, cFont::GetFont(fontSml), x4 - x3, y1 - y0, taCenter);
+ osd->DrawRectangle(x5, y0, x6 - 1, y1 - 1, ColorBg);
+ osd->DrawRectangle(x6, y0, x7 - 1, y1 - 1, clrTransparent);
+ osd->DrawEllipse (x6, y0, x7 - 1, y1 - 1, ColorBg, 5);
+}
+
+void cLCARSNGDisplayMessage::Flush(void)
+{
+ osd->Flush();
+}
diff --git a/displaymessage.h b/displaymessage.h
new file mode 100644
index 0000000..854a359
--- /dev/null
+++ b/displaymessage.h
@@ -0,0 +1,16 @@
+#include "lcarsng.h"
+#include <vdr/font.h>
+
+// --- cLCARSNGDisplayMessage ----------------------------------------------
+
+class cLCARSNGDisplayMessage : public cSkinDisplayMessage {
+private:
+ cOsd *osd;
+ int x0, x1, x2, x3, x4, x5, x6, x7;
+ int y0, y1;
+public:
+ cLCARSNGDisplayMessage(void);
+ virtual ~cLCARSNGDisplayMessage();
+ virtual void SetMessage(eMessageType Type, const char *Text);
+ virtual void Flush(void);
+ };
diff --git a/lcarsng.c b/lcarsng.c
index 2e88fd7..1e7a570 100644
--- a/lcarsng.c
+++ b/lcarsng.c
@@ -26,6 +26,7 @@
#include "lcarsng.h"
#include "displaychannel.h"
#include "displaymenu.h"
+#include "displaymessage.h"
#include "displayreplay.h"
#include "displaytracks.h"
#include <vdr/font.h>
@@ -340,62 +341,6 @@ void cLCARSNGDisplayVolume::Flush(void)
osd->Flush();
}
-// --- cLCARSNGDisplayMessage ----------------------------------------------
-
-class cLCARSNGDisplayMessage : public cSkinDisplayMessage {
-private:
- cOsd *osd;
- int x0, x1, x2, x3, x4, x5, x6, x7;
- int y0, y1;
-public:
- cLCARSNGDisplayMessage(void);
- virtual ~cLCARSNGDisplayMessage();
- virtual void SetMessage(eMessageType Type, const char *Text);
- virtual void Flush(void);
- };
-
-cLCARSNGDisplayMessage::cLCARSNGDisplayMessage(void)
-{
- const cFont *font = cFont::GetFont(fontOsd);
- int lineHeight = font->Height();
- x0 = 0;
- x1 = lineHeight / 2;
- x2 = lineHeight;
- x3 = x2 + Gap;
- x7 = cOsd::OsdWidth();
- x6 = x7 - lineHeight / 2;
- x5 = x6 - lineHeight / 2;
- x4 = x5 - Gap;
- y0 = 0;
- y1 = lineHeight;
- osd = CreateOsd(cOsd::OsdLeft(), cOsd::OsdTop() + cOsd::OsdHeight() - y1, x0, y0, x7 - 1, y1 - 1);
-}
-
-cLCARSNGDisplayMessage::~cLCARSNGDisplayMessage()
-{
- delete osd;
- cDevice::PrimaryDevice()->ScaleVideo(cRect::Null);
-}
-
-void cLCARSNGDisplayMessage::SetMessage(eMessageType Type, const char *Text)
-{
- tColor ColorFg = Theme.Color(clrMessageStatusFg + 2 * Type);
- tColor ColorBg = Theme.Color(clrMessageStatusBg + 2 * Type);
- osd->DrawRectangle(x0, y0, x7 - 1, y1 - 1, Theme.Color(clrBackground));
- osd->DrawRectangle(x0, y0, x1 - 1, y1 - 1, clrTransparent);
- osd->DrawEllipse (x0, y0, x1 - 1, y1 - 1, ColorBg, 7);
- osd->DrawRectangle(x1, y0, x2 - 1, y1 - 1, ColorBg);
- osd->DrawText(x3, y0, Text, ColorFg, ColorBg, cFont::GetFont(fontSml), x4 - x3, y1 - y0, taCenter);
- osd->DrawRectangle(x5, y0, x6 - 1, y1 - 1, ColorBg);
- osd->DrawRectangle(x6, y0, x7 - 1, y1 - 1, clrTransparent);
- osd->DrawEllipse (x6, y0, x7 - 1, y1 - 1, ColorBg, 5);
-}
-
-void cLCARSNGDisplayMessage::Flush(void)
-{
- osd->Flush();
-}
-
// --- cLCARSNG ------------------------------------------------------------
cLCARSNG::cLCARSNG(void)