diff options
-rw-r--r-- | displaychannel.c | 14 | ||||
-rw-r--r-- | displaychannel.h | 1 | ||||
-rw-r--r-- | displaychannelview.c | 20 | ||||
-rw-r--r-- | displaychannelview.h | 10 | ||||
-rw-r--r-- | displaymenu.c | 20 | ||||
-rw-r--r-- | displaymenu.h | 2 | ||||
-rw-r--r-- | displaymenuview.c | 12 | ||||
-rw-r--r-- | displaymenuview.h | 13 |
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 |