diff options
Diffstat (limited to 'textwindow.c')
-rw-r--r-- | textwindow.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/textwindow.c b/textwindow.c index 5ead0e9..0849305 100644 --- a/textwindow.c +++ b/textwindow.c @@ -172,6 +172,8 @@ void cNopacityTextWindow::CreatePixmap(void) { pixmapBackground->Fill(Theme.Color(clrMenuBorder)); pixmapBackground->DrawRectangle(cRect(1, 1, geometry->Width(), geometry->Height()), clrBlack); pixmap->Fill(Theme.Color(clrMenuBack)); + if (config.GetValue("menuEPGWindowFadeTime")) + SetAlpha(); cPixmap::Unlock(); } @@ -419,7 +421,8 @@ void cNopacityTextWindow::Action(void) { if (! *text) return; - DoSleep(config.GetValue("menuInfoTextDelay")*1000); + int initialSleepTime = (initial) ? config.GetValue("menuFadeTime") : 0; + DoSleep(initialSleepTime + config.GetValue("menuInfoTextDelay") * 1000); if (config.GetValue("scalePicture") == 2) { ScaleVideoWindow(); @@ -440,16 +443,17 @@ void cNopacityTextWindow::Action(void) { if (Running() && (hasPoster || hasManualPoster)) { DrawPoster(border); } + //FadeIn if (config.GetValue("menuEPGWindowFadeTime")) { - uint64_t Start = cTimeMs::Now(); int FadeTime = config.GetValue("menuEPGWindowFadeTime"); int FadeFrameTime = FadeTime / 10; + uint64_t Start = cTimeMs::Now(); while (Running()) { uint64_t Now = cTimeMs::Now(); - cPixmap::Lock(); double t = std::min(double(Now - Start) / FadeTime, 1.0); int Alpha = t * ALPHA_OPAQUE; + cPixmap::Lock(); SetAlpha(Alpha); cPixmap::Unlock(); if (Running()) @@ -482,7 +486,7 @@ void cNopacityTextWindow::Action(void) { drawPortY = pixmap->DrawPort().Y(); drawPortY -= 1; cPixmap::Unlock(); - if (abs(drawPortY) > maxY) { + if (std::abs(drawPortY) > maxY) { doSleep = true; DoSleep(scrollDelay); drawPortY = 0; |