diff options
author | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2019-03-23 11:12:04 +0100 |
---|---|---|
committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2019-03-23 11:15:49 +0100 |
commit | 0981ec3b82a2fc2f115555370d0fe47f017bb0e6 (patch) | |
tree | 6ba025c663966a80817eea891022ad71858bd41c | |
parent | 25d7fd8cd5378a524723cf00a990c8d2d87eac88 (diff) | |
download | skin-lcarsng-0981ec3b82a2fc2f115555370d0fe47f017bb0e6.tar.gz skin-lcarsng-0981ec3b82a2fc2f115555370d0fe47f017bb0e6.tar.bz2 |
Optimize "DrawBlinkingRec"
-rw-r--r-- | displaychannel.c | 35 | ||||
-rw-r--r-- | displayreplay.c | 24 |
2 files changed, 36 insertions, 23 deletions
diff --git a/displaychannel.c b/displaychannel.c index 2a13f06..e1e70b8 100644 --- a/displaychannel.c +++ b/displaychannel.c @@ -236,22 +236,22 @@ void cLCARSNGDisplayChannel::DrawBlinkingRec(void) { bool rec = cRecordControls::Active(); - if (initial || On != lastOn) { - int x = xc13; - x -= bmRecording.Width() + SymbolSpacing; - osd->DrawBitmap(x, yc11 + (yc12 - yc11 - bmRecording.Height()) / 2, bmRecording, Theme.Color(rec ? On ? clrChannelSymbolRecFg : clrChannelSymbolOff : clrChannelSymbolOff), rec ? On ? Theme.Color(clrChannelSymbolRecBg) : frameColor : frameColor); - lastOn = On; - } - if (rec) { - if (!Running()) + if (!Running()) { Start(); + On = true; + } } else { - if (Running()) { + if (Running()) Cancel(3); - On = false; - } + On = false; + } + if (initial || On != lastOn) { + int x = xc13; + x -= bmRecording.Width() + SymbolSpacing; + osd->DrawBitmap(x, yc11 + (yc12 - yc11 - bmRecording.Height()) / 2, bmRecording, Theme.Color(rec ? On ? clrChannelSymbolRecFg : clrChannelSymbolOff : clrChannelSymbolOff), rec ? On ? Theme.Color(clrChannelSymbolRecBg) : frameColor : frameColor); + lastOn = On; } } @@ -443,11 +443,16 @@ void cLCARSNGDisplayChannel::SetPositioner(const cPositioner *Positioner) void cLCARSNGDisplayChannel::Action(void) { + int i = 0; while (Running()) { - On = !On; - DrawBlinkingRec(); - if (osd) osd->Flush(); - cCondWait::SleepMs(1000); + i++; + if (i > 9) { + i = 0; + On = !On; + DrawBlinkingRec(); + if (osd) osd->Flush(); + } + cCondWait::SleepMs(100); } } diff --git a/displayreplay.c b/displayreplay.c index 34d95a9..d995ef6 100644 --- a/displayreplay.c +++ b/displayreplay.c @@ -142,15 +142,17 @@ void cLCARSNGDisplayReplay::DrawTrack(void) void cLCARSNGDisplayReplay::DrawBlinkingRec(void) { bool rec = cRecordControls::Active(); + if (rec) { - if (!Running()) + if (!Running()) { Start(); + On = true; + } } else { - if (Running()) { + if (Running()) Cancel(3); - On = false; - } + On = false; } if (initial || On != lastOn) { int x = xp13; @@ -232,11 +234,17 @@ void cLCARSNGDisplayReplay::SetMessage(eMessageType Type, const char *Text) void cLCARSNGDisplayReplay::Action(void) { + int i = 0; + while (Running()) { - On = !On; - DrawBlinkingRec(); - osd->Flush(); - cCondWait::SleepMs(1000); + i++; + if (i > 9) { + i = 0; + On = !On; + DrawBlinkingRec(); + if (osd) osd->Flush(); + } + cCondWait::SleepMs(100); } } |