summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY2
-rw-r--r--displayreplay.c17
-rw-r--r--displayreplay.h3
-rw-r--r--geometrymanager.c4
-rw-r--r--geometrymanager.h2
5 files changed, 26 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index 8b945b9..363c6bc 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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;