diff options
author | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2020-01-30 11:06:05 +0100 |
---|---|---|
committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2020-03-21 11:14:38 +0100 |
commit | 774dff988acf05e377ec54222ad0ec59110120da (patch) | |
tree | 0ccb520474c8a726453b677cedfe1a05621c1d3d /displayreplay.c | |
parent | d149e04f55ae284c4122716d1da7b75f23b11904 (diff) | |
download | skin-lcarsng-774dff988acf05e377ec54222ad0ec59110120da.tar.gz skin-lcarsng-774dff988acf05e377ec54222ad0ec59110120da.tar.bz2 |
Correct display cLCARSNGDisplayReplay::SetMessage
Diffstat (limited to 'displayreplay.c')
-rw-r--r-- | displayreplay.c | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/displayreplay.c b/displayreplay.c index d57bda1..04ea6c0 100644 --- a/displayreplay.c +++ b/displayreplay.c @@ -62,6 +62,7 @@ cLCARSNGDisplayReplay::cLCARSNGDisplayReplay(bool ModeOnly):cThread("LCARS Displ initial = true; lastOn = false; On = false; + message = false; isRecording = false; timshiftMode = false; fps = DEFAULTFRAMESPERSECOND; @@ -160,6 +161,9 @@ void cLCARSNGDisplayReplay::DrawTrack(void) void cLCARSNGDisplayReplay::DrawBlinkingRec(void) { + if (message) + return; + bool rec = cRecordControls::Active(); if (rec) { @@ -293,11 +297,24 @@ void cLCARSNGDisplayReplay::SetJump(const char *Jump) void cLCARSNGDisplayReplay::SetMessage(eMessageType Type, const char *Text) { if (Text) { - osd->SaveRegion(xp06, yp08, xp13 - 1, yp09 - 1); - osd->DrawText(xp06, yp08, Text, Theme.Color(clrMessageStatusFg + 2 * Type), Theme.Color(clrMessageStatusBg + 2 * Type), cFont::GetFont(fontSml), xp13 - xp06, yp09 - yp08, taCenter); + tColor ColorFg = Theme.Color(clrMessageStatusFg + 2 * Type); + tColor ColorBg = Theme.Color(clrMessageStatusBg + 2 * Type); + int x0, x1, y0, y1, lx, ly; + x0 = xp06; + x1 = xp13 - 1; + y0 = yp08; + y1 = yp09 - 1; + lx = x1 - x0 - 2 * Margin; + ly = y1 - y0 - 2 * Margin; + message = true; + osd->SaveRegion(x0, y0, x1, y1); + DrawRectangleOutline(osd, x0, y0, x1, y1, ColorFg, ColorBg, 15); + osd->DrawText(x0 + Margin, y0 + Margin, Text, ColorFg, ColorBg, cFont::GetFont(fontSml), lx, ly, taCenter); } - else + else { osd->RestoreRegion(); + message = false; + } } void cLCARSNGDisplayReplay::Action(void) @@ -306,7 +323,7 @@ void cLCARSNGDisplayReplay::Action(void) while (Running()) { i++; - if (i > 9) { + if (message || i > 9) { i = 0; On = !On; DrawBlinkingRec(); @@ -321,7 +338,8 @@ void cLCARSNGDisplayReplay::Flush(void) if (!modeOnly) { DrawDate(); DrawTrack(); - DrawBlinkingRec(); + if (initial) + DrawBlinkingRec(); } osd->Flush(); initial = false; |