diff options
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | displayreplay.c | 17 | ||||
-rw-r--r-- | displayreplay.h | 3 | ||||
-rw-r--r-- | geometrymanager.c | 4 | ||||
-rw-r--r-- | geometrymanager.h | 2 |
5 files changed, 26 insertions, 2 deletions
@@ -403,3 +403,5 @@ Version 1.0.3 DisplayMessages (closes Tickets 1659 and 1696) - Fixed a bug with xine as output plugin that VDR crashes if xine plugin gets closed (closes Ticket 1675) +- Fixed bug that messages are not displayed during replay of a recording + if DisplayReplay is active (closes Ticket 1698) diff --git a/displayreplay.c b/displayreplay.c index 4ffb537..6e42cea 100644 --- a/displayreplay.c +++ b/displayreplay.c @@ -31,6 +31,7 @@ cNopacityDisplayReplay::~cNopacityDisplayReplay() { osd->DestroyPixmap(pixmapScreenResBackground); osd->DestroyPixmap(pixmapScreenRes); osd->DestroyPixmap(pixmapJump); + osd->DestroyPixmap(pixmapMessage); } osd->DestroyPixmap(pixmapControls); osd->DestroyPixmap(pixmapRew); @@ -102,6 +103,10 @@ void cNopacityDisplayReplay::CreatePixmaps(void) { geoManager->replayJumpY, geoManager->replayJumpWidth, geoManager->replayJumpHeight)); + pixmapMessage = osd->CreatePixmap(4, cRect(0, + geoManager->replayMessageY, + geoManager->replayMessageWidth, + geoManager->replayMessageHeight)); } int controlY = geoManager->replayHeaderHeight @@ -154,6 +159,7 @@ void cNopacityDisplayReplay::CreatePixmaps(void) { pixmapScreenResBackground->SetAlpha(0); pixmapScreenRes->SetAlpha(0); pixmapJump->SetAlpha(0); + pixmapMessage->SetAlpha(0); } pixmapControls->SetAlpha(0); pixmapRew->SetAlpha(0); @@ -212,6 +218,7 @@ void cNopacityDisplayReplay::DrawBackground(void) { pixmapScreenResBackground->Fill(clrTransparent); pixmapScreenRes->Fill(clrTransparent); pixmapJump->Fill(clrTransparent); + pixmapMessage->Fill(clrTransparent); } else { pixmapControls->Fill(Theme.Color(clrMenuBorder)); pixmapControls->DrawRectangle(cRect(2, 2, pixmapControls->ViewPort().Width() - 4, pixmapControls->ViewPort().Height() - 4),Theme.Color(clrReplayBackground)); @@ -462,6 +469,14 @@ void cNopacityDisplayReplay::SetJump(const char *Jump) { } void cNopacityDisplayReplay::SetMessage(eMessageType Type, const char *Text) { + pixmapMessage->Fill(clrTransparent); + if (!Text) + return; + pixmapMessage->DrawText(cPoint(geoManager->replayMessageHeight/2, 0), + Text, + Theme.Color(clrReplayHead), + clrTransparent, + fontManager->replayHeader); } void cNopacityDisplayReplay::Flush(void) { @@ -496,6 +511,8 @@ void cNopacityDisplayReplay::Action(void) { pixmapScreenResBackground->SetAlpha(Alpha); pixmapScreenRes->SetAlpha(Alpha); pixmapJump->SetAlpha(Alpha); + pixmapMessage->SetAlpha(Alpha); + } pixmapControls->SetAlpha(Alpha); pixmapRew->SetAlpha(Alpha); diff --git a/displayreplay.h b/displayreplay.h index 33ed2ca..9ada0fc 100644 --- a/displayreplay.h +++ b/displayreplay.h @@ -14,7 +14,6 @@ private: cString lastDate; int FrameTime; int FadeTime; - //cPixmap *pixmapHeader; cPixmap *pixmapBackground; cPixmap *pixmapTop; cPixmap *pixmapInfo; @@ -31,7 +30,7 @@ private: cPixmap *pixmapPlay; cPixmap *pixmapFwd; cPixmap *pixmapJump; - //cPixmap *pixmapFooter; + cPixmap *pixmapMessage; virtual void Action(void); void createOSD(void); void CreatePixmaps(void); diff --git a/geometrymanager.c b/geometrymanager.c index 5cc7a9f..c82b7b2 100644 --- a/geometrymanager.c +++ b/geometrymanager.c @@ -196,6 +196,10 @@ void cGeometryManager::SetDisplayReplaySizes(void) { replayIconBorder = 5; replayIconSize = min(replayControlsHeight - 2*replayIconBorder, 128); + + replayMessageY = replayHeight - replayFooterHeight; + replayMessageWidth = replayWidth * 75 / 100; + replayMessageHeight = replayFooterHeight; } void cGeometryManager::SetDisplayMessageSizes(void) { diff --git a/geometrymanager.h b/geometrymanager.h index 3c4cf28..f553dfd 100644 --- a/geometrymanager.h +++ b/geometrymanager.h @@ -96,6 +96,8 @@ class cGeometryManager { int replayResolutionX, replayResolutionY; int replayJumpX, replayJumpY; int replayJumpWidth, replayJumpHeight; + int replayMessageY; + int replayMessageWidth, replayMessageHeight; //DisplayMessage Sizes int messageWidth; int messageHeight; |