diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | displaymessage.c | 47 | ||||
-rw-r--r-- | displaymessage.h | 16 | ||||
-rw-r--r-- | lcarsng.c | 57 |
4 files changed, 65 insertions, 57 deletions
@@ -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); + }; @@ -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) |