summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--displaychannel.c14
-rw-r--r--displaychannel.h1
-rw-r--r--displaychannelview.c20
-rw-r--r--displaychannelview.h10
-rw-r--r--displaymenu.c20
-rw-r--r--displaymenu.h2
-rw-r--r--displaymenuview.c12
-rw-r--r--displaymenuview.h13
8 files changed, 37 insertions, 55 deletions
diff --git a/displaychannel.c b/displaychannel.c
index ac7bae7..208cb88 100644
--- a/displaychannel.c
+++ b/displaychannel.c
@@ -17,13 +17,8 @@ cNopacityDisplayChannel::cNopacityDisplayChannel(bool WithInfo) {
FadeTime = config.GetValue("channelFadeTime");
FrameTime = FadeTime / 10;
- channelView = new cNopacityDisplayChannelView();
- channelView->createOsd();
- channelView->CreatePixmaps();
- channelView->DrawBackground();
- if (config.GetValue("displaySignalStrength")) {
- channelView->DrawSignalMeter();
- }
+ osd = CreateOsd(geoManager->osdLeft, geoManager->osdTop, geoManager->osdWidth, geoManager->osdHeight);
+ channelView = new cNopacityDisplayChannelView(osd);
}
cNopacityDisplayChannel::~cNopacityDisplayChannel() {
@@ -31,6 +26,7 @@ cNopacityDisplayChannel::~cNopacityDisplayChannel() {
while (Active())
cCondWait::SleepMs(10);
delete channelView;
+ delete osd;
}
void cNopacityDisplayChannel::SetChannel(const cChannel *Channel, int Number) {
@@ -139,7 +135,7 @@ void cNopacityDisplayChannel::Flush(void) {
}
initial = false;
channelChange = false;
- channelView->Flush();
+ osd->Flush();
}
void cNopacityDisplayChannel::Action(void) {
@@ -152,7 +148,7 @@ void cNopacityDisplayChannel::Action(void) {
channelView->SetAlpha(Alpha);
cPixmap::Unlock();
if (Running())
- channelView->Flush();
+ osd->Flush();
int Delta = cTimeMs::Now() - Now;
if (Running() && (Delta < FrameTime))
cCondWait::SleepMs(FrameTime - Delta);
diff --git a/displaychannel.h b/displaychannel.h
index 98ea0a8..7a906d5 100644
--- a/displaychannel.h
+++ b/displaychannel.h
@@ -6,6 +6,7 @@
class cNopacityDisplayChannel : public cSkinDisplayChannel, cThread {
private:
+ cOsd *osd;
cNopacityDisplayChannelView *channelView;
int FrameTime;
int FadeTime;
diff --git a/displaychannelview.c b/displaychannelview.c
index 503c518..2663aff 100644
--- a/displaychannelview.c
+++ b/displaychannelview.c
@@ -7,8 +7,8 @@
#include "imageloader.h"
#include <vdr/menu.h>
-cNopacityDisplayChannelView::cNopacityDisplayChannelView(void) {
- osd = NULL;
+cNopacityDisplayChannelView::cNopacityDisplayChannelView(cOsd *osd) {
+ this->osd = osd;
lastDate = "";
isRadioChannel = false;
statusIconBorder = 5;
@@ -25,6 +25,11 @@ cNopacityDisplayChannelView::cNopacityDisplayChannelView(void) {
pixmapSignalLabel = NULL;
pixmapPoster = NULL;
messageBox = NULL;
+ CreatePixmaps();
+ DrawBackground();
+ if (config.GetValue("displaySignalStrength")) {
+ DrawSignalMeter();
+ }
}
cNopacityDisplayChannelView::~cNopacityDisplayChannelView() {
@@ -50,17 +55,6 @@ cNopacityDisplayChannelView::~cNopacityDisplayChannelView() {
if (pixmapPoster)
osd->DestroyPixmap(pixmapPoster);
delete messageBox;
- delete osd;
-}
-
-bool cNopacityDisplayChannelView::createOsd(void) {
- osd = CreateOsd(geoManager->osdLeft,
- geoManager->osdTop,
- geoManager->osdWidth,
- geoManager->osdHeight);
- if (!osd)
- return false;
- return true;
}
void cNopacityDisplayChannelView::CreatePixmaps(void) {
diff --git a/displaychannelview.h b/displaychannelview.h
index f4c4935..a686486 100644
--- a/displaychannelview.h
+++ b/displaychannelview.h
@@ -36,13 +36,13 @@ private:
tColor DrawProgressbarProgress(int left, int top, int width, int height);
cString GetScreenResolutionIcon(void);
std::string GetChannelSep(const cChannel *channel, bool prev);
+ void CreatePixmaps(void);
+ void DrawBackground(void);
+ void DrawSignalMeter(void);
public:
- cNopacityDisplayChannelView(void);
+ cNopacityDisplayChannelView(cOsd *osd);
virtual ~cNopacityDisplayChannelView(void);
- bool createOsd(void);
- void CreatePixmaps(void);
void SetAlpha(int alpha);
- void DrawBackground(void);
void DrawChannelLogo(const cChannel *Channel);
void ClearChannelLogo(void);
void DrawChannelName(cString number, cString name);
@@ -58,7 +58,6 @@ public:
void DrawScreenResolution(void);
void ClearStatusIcons(void);
void DrawPoster(const cEvent *event, bool initial, bool channelchange);
- void DrawSignalMeter(void);
void DrawSignal(void);
void ShowSignalMeter(void);
void HideSignalMeter(void);
@@ -66,6 +65,5 @@ public:
void DrawSourceInfo(void);
void ClearSourceInfo(void);
void DisplayMessage(eMessageType Type, const char *Text);
- void Flush(void) { osd->Flush(); };
};
#endif //__NOPACITY_DISPLAYCHANNELVIEW_H
diff --git a/displaymenu.c b/displaymenu.c
index da3ae7b..e960b13 100644
--- a/displaymenu.c
+++ b/displaymenu.c
@@ -23,12 +23,8 @@ cNopacityDisplayMenu::cNopacityDisplayMenu(void) {
currentNumItems = 0;
detailView = NULL;
SetButtonPositions();
- menuView = new cNopacityDisplayMenuView();
- osd = menuView->createOsd();
- menuView->SetDescriptionTextWindowSize();
- menuView->CreatePixmaps();
- menuView->DrawHeaderLogo();
- menuView->DrawBorderDecoration();
+ osd = CreateOsd(geoManager->osdLeft, geoManager->osdTop, geoManager->osdWidth, geoManager->osdHeight);
+ menuView = new cNopacityDisplayMenuView(osd);
currentFeed = 0;
SetTabs(0);
}
@@ -37,11 +33,11 @@ cNopacityDisplayMenu::~cNopacityDisplayMenu(void) {
Cancel(-1);
while (Active())
cCondWait::SleepMs(10);
- delete menuView;
- menuItems.clear();
if (detailView) {
delete detailView;
}
+ delete menuView;
+ menuItems.clear();
timers.Clear();
delete osd;
cDevice::PrimaryDevice()->ScaleVideo(cRect::Null);
@@ -204,10 +200,7 @@ int cNopacityDisplayMenu::MaxItems(void) {
}
void cNopacityDisplayMenu::Clear(void) {
- if (detailView) {
- delete detailView;
- detailView = NULL;
- }
+ DELETENULL(detailView);
menuItems.clear();
}
@@ -245,6 +238,9 @@ void cNopacityDisplayMenu::SetMenuCategory(eMenuCategory MenuCategory) {
*/
menuCategoryLast = this->MenuCategory();
cSkinDisplayMenu::SetMenuCategory(MenuCategory);
+ if ((MenuCategory != mcRecordingInfo) && (MenuCategory != mcEvent && MenuCategory != mcText)) {
+ DELETENULL(detailView);
+ }
if ((menuCategoryLast == mcMain) && (MenuCategory != mcMain)) {
if (config.GetValue("showDiscUsage")) {
menuView->ShowDiskUsage(false);
diff --git a/displaymenu.h b/displaymenu.h
index 4ae59bf..890ffa5 100644
--- a/displaymenu.h
+++ b/displaymenu.h
@@ -11,9 +11,9 @@
class cNopacityDisplayMenu : public cSkinDisplayMenu , cThread {
private:
+ cOsd *osd;
cNopacityDisplayMenuView *menuView;
cNopacityDetailView *detailView;
- cOsd *osd;
eMenuCategory menuCategoryLast;
int FrameTime;
int FadeTime;
diff --git a/displaymenuview.c b/displaymenuview.c
index cd18b83..972ab3f 100644
--- a/displaymenuview.c
+++ b/displaymenuview.c
@@ -1,9 +1,14 @@
#include "displaymenuview.h"
-cNopacityDisplayMenuView::cNopacityDisplayMenuView(void) {
+cNopacityDisplayMenuView::cNopacityDisplayMenuView(cOsd *osd) {
+ this->osd = osd;
diskUsageAlert = 95;
pixmapHeaderIcon = NULL;
messageBox = NULL;
+ SetDescriptionTextWindowSize();
+ CreatePixmaps();
+ DrawHeaderLogo();
+ DrawBorderDecoration();
}
cNopacityDisplayMenuView::~cNopacityDisplayMenuView(void) {
@@ -25,11 +30,6 @@ cNopacityDisplayMenuView::~cNopacityDisplayMenuView(void) {
delete messageBox;
}
-cOsd *cNopacityDisplayMenuView::createOsd(void) {
- osd = CreateOsd(geoManager->osdLeft, geoManager->osdTop, geoManager->osdWidth, geoManager->osdHeight);
- return osd;
-}
-
void cNopacityDisplayMenuView::SetDescriptionTextWindowSize(void) {
int xSchedules, xRecordings, xChannels, xTimers;
int widthSchedules, widthRecordings, widthChannels, widthTimers;
diff --git a/displaymenuview.h b/displaymenuview.h
index 725d39f..98fdd74 100644
--- a/displaymenuview.h
+++ b/displaymenuview.h
@@ -38,12 +38,13 @@ class cNopacityDisplayMenuView {
cRect textWindowSizeChannels;
cRect textWindowSizeTimers;
int GetContentWidth(eMenuCategory menuCat);
- public:
- cNopacityDisplayMenuView(void);
- virtual ~cNopacityDisplayMenuView(void);
- cOsd *createOsd(void);
void SetDescriptionTextWindowSize(void);
void CreatePixmaps(void);
+ void DrawHeaderLogo(void);
+ void DrawBorderDecoration(void);
+ public:
+ cNopacityDisplayMenuView(cOsd *osd);
+ virtual ~cNopacityDisplayMenuView(void);
void SetPixmapAlpha(int Alpha);
void GetMenuItemSize(eMenuCategory menuCat, cPoint *itemSize);
int GetMenuTop(int numItems, int itemHeight);
@@ -56,9 +57,7 @@ class cNopacityDisplayMenuView {
const cFont *GetTextAreaFont(bool FixedFont);
cRect *GetDescriptionTextWindowSize(eMenuCategory menuCat);
void AdjustContentBackground(eMenuCategory menuCat, eMenuCategory menuCatLast, cRect & vidWin);
- void DrawBorderDecoration(void);
int ShowHeaderLogo(bool show);
- void DrawHeaderLogo(void);
int DrawHeaderIcon(eMenuCategory menuCat);
int ShowHeaderIconChannelLogo(const char *Title);
void DestroyHeaderIcon(void);
@@ -79,6 +78,4 @@ class cNopacityDisplayMenuView {
cPixmap *GetPixmapScrollbarBack(void) { return pixmapScrollbarBack; };
};
-
-
#endif //__NOPACITY_DISPLAYMENUVIEW_H