summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY4
-rw-r--r--Makefile2
-rw-r--r--baserender.h2
-rw-r--r--displaychannel.c39
-rw-r--r--displaychannel.h2
-rw-r--r--displaymenu.c75
-rw-r--r--displaymenu.h5
-rw-r--r--displayreplay.c49
-rw-r--r--displayreplay.h2
-rw-r--r--displaytracks.c1
-rw-r--r--displayvolume.c5
-rw-r--r--displayvolume.h2
-rw-r--r--flat.c31
-rw-r--r--flat.h4
-rw-r--r--icons/default/recording_cutted_extra.pngbin0 -> 1888 bytes
-rw-r--r--imagecache.c34
-rw-r--r--imagecache.h11
-rw-r--r--imageloader.c2
-rw-r--r--imageloader.h8
-rw-r--r--po/de_DE.po5
-rw-r--r--setup.c3
-rw-r--r--skinflatplus.c3
22 files changed, 230 insertions, 59 deletions
diff --git a/HISTORY b/HISTORY
index 22995e24..90f9ceb8 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3,8 +3,12 @@ VDR Plugin 'skinflatplus' Revision History
2014-XX-XX: Version 0.2.1
- [fix] epgsearch progessbar in SetItemEvent, if start time is after now (2 minutes tolerance)
+- [fix] channel logo in topbar in program menu
+- [update] imagecache, pre load images after skin is loaded
+ menu item under general to show the amount of cached images
- [add] theme color clrMenuItemExtraTextCurrentFont
- [add] logo background for channel logos (filename: logo_background.png)
+- [add] show cutted length of recording in replay info
2014-02-22: Version 0.2.0
- [fix] load user decor settings
diff --git a/Makefile b/Makefile
index ba9e3495..2797a1ae 100644
--- a/Makefile
+++ b/Makefile
@@ -25,7 +25,7 @@ PLUGIN = skinflatplus
# vdrlogo_yavdr
VDRLOGO = vdrlogo_default
-# -DDEBUGIMAGELOADTIME
+# -DDEBUGIMAGELOADTIME
### The version number of this plugin (taken from the main source file):
diff --git a/baserender.h b/baserender.h
index 82e552c8..e113777a 100644
--- a/baserender.h
+++ b/baserender.h
@@ -1,8 +1,8 @@
#pragma once
-#include "flat.h"
#include "imageloader.h"
#include <list>
+#include "flat.h"
enum eBorder {
BorderMenuItem,
diff --git a/displaychannel.c b/displaychannel.c
index a2d007c7..0212ba24 100644
--- a/displaychannel.c
+++ b/displaychannel.c
@@ -1,4 +1,5 @@
#include "displaychannel.h"
+#include "flat.h"
cFlatDisplayChannel::cFlatDisplayChannel(bool WithInfo) {
if (firstDisplay) {
@@ -488,3 +489,41 @@ void cFlatDisplayChannel::Flush(void) {
TopBarUpdate();
osd->Flush();
}
+
+void cFlatDisplayChannel::PreLoadImages(void) {
+ int height = (fontHeight*2) + (fontSmlHeight*2) + marginItem - marginItem*2;
+ imgLoader.LoadIcon("logo_background", height, height);
+ imgLoader.LoadIcon("radio", height, height);
+ imgLoader.LoadIcon("tv", height, height);
+
+ int index = 0;
+ height = ((fontHeight*2) + (fontSmlHeight*2) + marginItem) - marginItem*2;
+ cImage *img = NULL;
+ for(cChannel *Channel = Channels.First(); Channel && index < LOGO_PRE_CACHE; Channel = Channels.Next(Channel) )
+ {
+ img = imgLoader.LoadLogo(Channel->Name(), height, height);
+ if( img )
+ index++;
+ }
+
+ height = max(fontSmlHeight, Config.decorProgressSignalSize);
+ imgLoader.LoadIcon("crypted", 999, height);
+ imgLoader.LoadIcon("uncrypted", 999, height);
+ imgLoader.LoadIcon("unknown_asp", 999, height);
+ imgLoader.LoadIcon("43", 999, height);
+ imgLoader.LoadIcon("169", 999, height);
+ imgLoader.LoadIcon("221", 999, height);
+ imgLoader.LoadIcon("1920x1080", 999, height);
+ imgLoader.LoadIcon("1440x1080", 999, height);
+ imgLoader.LoadIcon("1280x720", 999, height);
+ imgLoader.LoadIcon("960x720", 999, height);
+ imgLoader.LoadIcon("704x576", 999, height);
+ imgLoader.LoadIcon("720x576", 999, height);
+ imgLoader.LoadIcon("544x576", 999, height);
+ imgLoader.LoadIcon("528x576", 999, height);
+ imgLoader.LoadIcon("480x576", 999, height);
+ imgLoader.LoadIcon("352x576", 999, height);
+ imgLoader.LoadIcon("unknown_res", 999, height);
+ imgLoader.LoadIcon("hd", 999, height);
+ imgLoader.LoadIcon("sd", 999, height);
+}
diff --git a/displaychannel.h b/displaychannel.h
index 584c8836..1ef652c2 100644
--- a/displaychannel.h
+++ b/displaychannel.h
@@ -38,4 +38,6 @@ class cFlatDisplayChannel : public cFlatBaseRender, public cSkinDisplayChannel {
virtual void SetEvents(const cEvent *Present, const cEvent *Following);
virtual void SetMessage(eMessageType Type, const char *Text);
virtual void Flush(void);
+
+ void PreLoadImages(void);
};
diff --git a/displaymenu.c b/displaymenu.c
index 3c7d2eec..c5951410 100644
--- a/displaymenu.c
+++ b/displaymenu.c
@@ -10,6 +10,7 @@
#include "symbols/1080/Cclock.xpm"
#include "symbols/1080/Cclocksml.xpm"
#include "symbols/1080/Cvpssml.xpm"
+#include "flat.h"
cBitmap cFlatDisplayMenu::bmCNew(Cnew_xpm);
cBitmap cFlatDisplayMenu::bmCArrowTurn(Carrowturn_xpm);
@@ -1170,36 +1171,11 @@ bool cFlatDisplayMenu::SetItemEvent(const cEvent *Event, int Index, bool Current
int w = 0;
if( !Channel ) {
- int CurrentChannelNr = cDevice::CurrentChannel();
- cChannel *ChannelLogo = Channels.GetByNumber(CurrentChannelNr);
-
- cImage *img;
- img = imgLoader.LoadLogo(ChannelLogo->Name(), 999, topBarHeight - marginItem*2);
- if( img ) {
- TopBarSetMenuLogo( ChannelLogo->Name() );
- } else {
- bool isRadioChannel = ( (!ChannelLogo->Vpid()) && (ChannelLogo->Apid(0)) ) ? true : false;
-
- if( isRadioChannel ) {
- img = imgLoader.LoadIcon("radio", 999, topBarHeight - marginItem*2);
- if( img ) {
- TopBarSetMenuLogo( ChannelLogo->Name() );
- }
- } else if( ChannelLogo->GroupSep() ) {
- img = imgLoader.LoadIcon("changroup", 999, topBarHeight - marginItem*2);
- if( img ) {
- TopBarSetMenuIcon( ChannelLogo->Name() );
- }
- } else {
- img = imgLoader.LoadIcon("tv", 999, topBarHeight - marginItem*2);
- if( img ) {
- TopBarSetMenuLogo( ChannelLogo->Name() );
- }
- }
- }
+ TopBarSetMenuLogo( ItemEventLastChannelName );
}
if( Channel ) {
+ ItemEventLastChannelName = Channel->Name();
cString ws = cString::sprintf("%d", Channels.MaxNumber());
w = font->Width(ws);
if( !Channel->GroupSep() ) {
@@ -2444,3 +2420,48 @@ const char * cFlatDisplayMenu::GetRecordingName(const cRecording *Recording, int
return recNamePart.c_str();
}
+
+void cFlatDisplayMenu::PreLoadImages(void) {
+ // menu icons
+ cString Path = cString::sprintf("%s%s/menuIcons", *Config.iconPath, Setup.OSDTheme);
+ cReadDir d(Path);
+ struct dirent *e;
+ while ((e = d.Next()) != NULL) {
+ cString FileName = cString::sprintf("menuIcons/%s", GetFilenameWithoutext(e->d_name));
+ imgLoader.LoadIcon(*FileName, fontHeight - marginItem*2, fontHeight - marginItem*2);
+ }
+
+ imgLoader.LoadIcon("menuIcons/blank", fontHeight - marginItem*2, fontHeight - marginItem*2);
+
+ int imageHeight = fontHeight;
+ imgLoader.LoadIcon("logo_background", imageHeight, imageHeight);
+ imgLoader.LoadIcon("radio", imageHeight, imageHeight);
+ imgLoader.LoadIcon("changroup", imageHeight, imageHeight);
+ imgLoader.LoadIcon("tv", imageHeight, imageHeight);
+ imgLoader.LoadIcon("timerInactive", imageHeight, imageHeight);
+ imgLoader.LoadIcon("timerRecording", imageHeight, imageHeight);
+ imgLoader.LoadIcon("timerActive", imageHeight, imageHeight);
+
+ int index = 0;
+ cImage *img = NULL;
+ for(cChannel *Channel = Channels.First(); Channel && index < LOGO_PRE_CACHE; Channel = Channels.Next(Channel))
+ {
+ img = imgLoader.LoadLogo(Channel->Name(), fontHeight - marginItem*2, fontHeight - marginItem*2);
+ if( img )
+ index++;
+ }
+
+ imgLoader.LoadIcon("radio", 999, topBarHeight - marginItem*2);
+ imgLoader.LoadIcon("changroup", 999, topBarHeight - marginItem*2);
+ imgLoader.LoadIcon("tv", 999, topBarHeight - marginItem*2);
+
+ imgLoader.LoadIcon("timer_full", imageHeight, imageHeight);
+ imgLoader.LoadIcon("timer_partial", imageHeight, imageHeight);
+ imgLoader.LoadIcon("vps", imageHeight, imageHeight);
+
+ imgLoader.LoadIcon("recording_new", fontHeight, fontHeight);
+ imgLoader.LoadIcon("recording_new", fontSmlHeight, fontSmlHeight);
+ imgLoader.LoadIcon("recording_cutted", fontHeight, fontHeight);
+ imgLoader.LoadIcon("recording", fontHeight, fontHeight);
+ imgLoader.LoadIcon("folder", fontHeight, fontHeight);
+}
diff --git a/displaymenu.h b/displaymenu.h
index ecc106d5..ac003d52 100644
--- a/displaymenu.h
+++ b/displaymenu.h
@@ -8,7 +8,6 @@
#include <iomanip>
using namespace std;
-
class cFlatDisplayMenu : public cFlatBaseRender, public cSkinDisplayMenu {
private:
cPixmap *menuPixmap;
@@ -37,6 +36,8 @@ class cFlatDisplayMenu : public cFlatBaseRender, public cSkinDisplayMenu {
bool isScrolling;
bool ShowEvent, ShowRecording, ShowText;
+ cString ItemEventLastChannelName;
+
void ItemBorderInsertUnique(sDecorBorder ib);
void ItemBorderDrawAllWithScrollbar(void);
void ItemBorderDrawAllWithoutScrollbar(void);
@@ -87,4 +88,6 @@ class cFlatDisplayMenu : public cFlatBaseRender, public cSkinDisplayMenu {
virtual int GetTextAreaWidth(void) const;
virtual const cFont *GetTextAreaFont(bool FixedFont) const;
virtual void Flush(void);
+
+ void PreLoadImages(void);
};
diff --git a/displayreplay.c b/displayreplay.c
index 52c1c12d..5d574457 100644
--- a/displayreplay.c
+++ b/displayreplay.c
@@ -1,4 +1,5 @@
#include "displayreplay.h"
+#include "flat.h"
cFlatDisplayReplay::cFlatDisplayReplay(bool ModeOnly) {
labelHeight = fontHeight + fontSmlHeight;
@@ -149,11 +150,8 @@ void cFlatDisplayReplay::UpdateInfo(void) {
cMarks marks;
bool hasMarks = marks.Load(recording->FileName(), recording->FramesPerSecond(), recording->IsPesRecording()) && marks.Count();
cIndexFile *index = new cIndexFile(recording->FileName(), false, recording->IsPesRecording());
- int lastIndex = 0;
-
int cuttedLength = 0;
long cutinframe = 0;
- unsigned long long recsize = 0;
unsigned long long recsizecutted = 0;
unsigned long long cutinoffset = 0;
unsigned long long filesize[100000];
@@ -178,11 +176,9 @@ void cFlatDisplayReplay::UpdateInfo(void) {
else {
if (ENOENT != errno) {
esyslog ("skinflatplus: error determining file size of \"%s\" %d (%s)", (const char *)filename, errno, strerror(errno));
- recsize = 0;
}
}
} while( i <= imax && !rc );
- recsize = filesize[i-1];
if (hasMarks && index) {
uint16_t FileNumber;
@@ -212,7 +208,6 @@ void cFlatDisplayReplay::UpdateInfo(void) {
}
}
if (index) {
- lastIndex = index->Last();
if (hasMarks) {
cutted = IndexToHMSF(cuttedLength, false, recording->FramesPerSecond());
iscutted = true;
@@ -221,26 +216,19 @@ void cFlatDisplayReplay::UpdateInfo(void) {
delete index;
}
if( iscutted ) {
- cImage *imgRecCut = imgLoader.LoadIcon("recording_cutted", fontHeight, fontHeight);
+ cImage *imgRecCut = imgLoader.LoadIcon("recording_cutted_extra", fontHeight, fontHeight);
int imgWidth = 0;
if( imgRecCut )
imgWidth = imgRecCut->Width();
- int right = osdWidth - Config.decorBorderReplaySize*2 - font->Width(total) - marginItem*2 - imgWidth - font->Width(" ()") - font->Width(cutted);
+ int right = osdWidth - Config.decorBorderReplaySize*2 - font->Width(total) - marginItem - imgWidth - font->Width(" ") - font->Width(cutted);
labelPixmap->DrawText(cPoint(right - marginItem, 0), total, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(total), fontHeight);
right += font->Width(total);
right += font->Width(" ");
- labelPixmap->DrawText(cPoint(right - marginItem, 0), "(", Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width("("), fontHeight);
- right += font->Width("(");
if( imgRecCut ) {
iconsPixmap->DrawImage( cPoint(right, 0), *imgRecCut );
right += imgRecCut->Width() + marginItem*2;
}
- labelPixmap->DrawText(cPoint(right - marginItem, 0), cutted, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(cutted), fontHeight);
- right += font->Width(cutted);
- labelPixmap->DrawText(cPoint(right - marginItem, 0), ")", Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(")"), fontHeight);
-
-
-
+ labelPixmap->DrawText(cPoint(right - marginItem, 0), cutted, Theme.Color(clrMenuItemExtraTextFont), Theme.Color(clrReplayBg), font, font->Width(cutted), fontHeight);
} else {
int right = osdWidth - Config.decorBorderReplaySize*2 - font->Width(total);
labelPixmap->DrawText(cPoint(right - marginItem, 0), total, Theme.Color(clrReplayFont), Theme.Color(clrReplayBg), font, font->Width(total), fontHeight);
@@ -389,3 +377,32 @@ void cFlatDisplayReplay::Flush(void) {
osd->Flush();
}
+
+void cFlatDisplayReplay::PreLoadImages(void) {
+ imgLoader.LoadIcon("rewind", fontHeight, fontHeight);
+ imgLoader.LoadIcon("pause", fontHeight, fontHeight);
+ imgLoader.LoadIcon("play_sel", fontHeight, fontHeight);
+ imgLoader.LoadIcon("forward", fontHeight, fontHeight);
+ imgLoader.LoadIcon("pause_sel", fontHeight, fontHeight);
+ imgLoader.LoadIcon("forward_sel", fontHeight, fontHeight);
+ imgLoader.LoadIcon("rewind_sel", fontHeight, fontHeight);
+ imgLoader.LoadIcon("pause_sel", fontHeight, fontHeight);
+ imgLoader.LoadIcon("recording_cutted", fontHeight, fontHeight);
+
+ imgLoader.LoadIcon("43", 999, fontSmlHeight);
+ imgLoader.LoadIcon("169", 999, fontSmlHeight);
+ imgLoader.LoadIcon("221", 999, fontSmlHeight);
+ imgLoader.LoadIcon("1920x1080", 999, fontSmlHeight);
+ imgLoader.LoadIcon("1440x1080", 999, fontSmlHeight);
+ imgLoader.LoadIcon("1280x720", 999, fontSmlHeight);
+ imgLoader.LoadIcon("960x720", 999, fontSmlHeight);
+ imgLoader.LoadIcon("704x576", 999, fontSmlHeight);
+ imgLoader.LoadIcon("720x576", 999, fontSmlHeight);
+ imgLoader.LoadIcon("544x576", 999, fontSmlHeight);
+ imgLoader.LoadIcon("528x576", 999, fontSmlHeight);
+ imgLoader.LoadIcon("480x576", 999, fontSmlHeight);
+ imgLoader.LoadIcon("352x576", 999, fontSmlHeight);
+ imgLoader.LoadIcon("unknown_res", 999, fontSmlHeight);
+ imgLoader.LoadIcon("hd", 999, fontSmlHeight);
+ imgLoader.LoadIcon("sd", 999, fontSmlHeight);
+}
diff --git a/displayreplay.h b/displayreplay.h
index 4a86a1fe..a5ce2541 100644
--- a/displayreplay.h
+++ b/displayreplay.h
@@ -32,4 +32,6 @@ class cFlatDisplayReplay : public cFlatBaseRender, public cSkinDisplayReplay {
virtual void SetJump(const char *Jump);
virtual void SetMessage(eMessageType Type, const char *Text);
virtual void Flush(void);
+
+ void PreLoadImages(void);
};
diff --git a/displaytracks.c b/displaytracks.c
index 2bbcaac1..e53e0142 100644
--- a/displaytracks.c
+++ b/displaytracks.c
@@ -1,4 +1,5 @@
#include "displaytracks.h"
+#include "flat.h"
cFlatDisplayTracks::cFlatDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks) {
diff --git a/displayvolume.c b/displayvolume.c
index f9daaf1d..1db43294 100644
--- a/displayvolume.c
+++ b/displayvolume.c
@@ -1,4 +1,5 @@
#include "displayvolume.h"
+#include "flat.h"
cFlatDisplayVolume::cFlatDisplayVolume(void) {
muted = false;
@@ -69,3 +70,7 @@ void cFlatDisplayVolume::Flush(void) {
TopBarUpdate();
osd->Flush();
}
+
+void cFlatDisplayVolume::PreLoadImages(void) {
+ imgLoader.LoadIcon("mute", fontHeight, fontHeight);
+}
diff --git a/displayvolume.h b/displayvolume.h
index c98b293c..5ccbefce 100644
--- a/displayvolume.h
+++ b/displayvolume.h
@@ -16,4 +16,6 @@ class cFlatDisplayVolume : public cFlatBaseRender, public cSkinDisplayVolume {
virtual void SetVolume(int Current, int Total, bool Mute);
//virtual void SetAudioChannel(int AudioChannel);
virtual void Flush(void);
+
+ void PreLoadImages(void);
};
diff --git a/flat.c b/flat.c
index 29c82303..72172f10 100644
--- a/flat.c
+++ b/flat.c
@@ -51,3 +51,34 @@ cSkinDisplayTracks *cFlat::DisplayTracks(const char *Title, int NumTracks, const
cSkinDisplayMessage *cFlat::DisplayMessage(void) {
return new cFlatDisplayMessage;
}
+
+
+char * substr(char * string, int start, int end)
+{
+ char * p = &string[start];
+ char * buf = (char*) malloc(strlen(p) + 1);
+ char * ptr = buf;
+ if(!buf) return NULL;
+
+ while(*p != '\0' && start < end) {
+ *ptr ++ = *p++;
+ start ++;
+ }
+ *ptr++ = '\0';
+
+ return buf;
+}
+
+char *GetFilenameWithoutext(char * fullfilename)
+{
+ int i, size;
+ i = size = 0;
+
+ while(fullfilename[i] != '\0') {
+ if(fullfilename[i] == '.') {
+ size = i;
+ }
+ i++;
+ }
+ return substr(fullfilename, 0, size);
+}
diff --git a/flat.h b/flat.h
index b74501ef..d50bdc75 100644
--- a/flat.h
+++ b/flat.h
@@ -5,6 +5,7 @@
#include <time.h>
#include <unistd.h>
#include <stdint.h>
+#include <string.h>
#include <vdr/skins.h>
#include <vdr/videodir.h>
@@ -188,6 +189,9 @@ class cFlat : public cSkin {
virtual cSkinDisplayMessage *DisplayMessage(void);
};
+char * substr(char * string, int start, int end);
+char *GetFilenameWithoutext(char * fullfilename);
+
static inline uint32_t GetMsTicks(void)
{
#ifdef CLOCK_MONOTONIC
diff --git a/icons/default/recording_cutted_extra.png b/icons/default/recording_cutted_extra.png
new file mode 100644
index 00000000..62eaa105
--- /dev/null
+++ b/icons/default/recording_cutted_extra.png
Binary files differ
diff --git a/imagecache.c b/imagecache.c
index 5453d7e2..61606476 100644
--- a/imagecache.c
+++ b/imagecache.c
@@ -1,7 +1,17 @@
#include "imagecache.h"
+#include "config.h"
+
+
+#include "displaychannel.h"
+#include "displaymenu.h"
+#include "displaymessage.h"
+#include "displayreplay.h"
+#include "displaytracks.h"
+#include "displayvolume.h"
-cImageCache::cImageCache() {
+cImageCache::cImageCache() {
+ Overflow = false;
}
cImageCache::~cImageCache() {
@@ -46,6 +56,28 @@ void cImageCache::InsertImage(cImage *Image, std::string Name, int Width, int He
InsertIndex++;
if( InsertIndex >= MAX_IMAGE_CACHE ) {
+ isyslog("skinflatplus: imagecache overflow, increase MAX_IMAGE_CACHE");
InsertIndex = 0;
+ Overflow = true;
}
}
+
+void cImageCache::PreLoadImage(void) {
+ uint32_t tick1 = GetMsTicks();
+
+ cFlatDisplayChannel DisplayChannel(false);
+ DisplayChannel.PreLoadImages();
+
+ cFlatDisplayMenu DisplayMenu;
+ DisplayMenu.PreLoadImages();
+
+ cFlatDisplayReplay DisplayReplay(false);
+ DisplayReplay.PreLoadImages();
+
+ cFlatDisplayVolume DisplayVolume;
+ DisplayVolume.PreLoadImages();
+
+ uint32_t tick2 = GetMsTicks();
+ dsyslog("skinflatplus imagecache pre load images time: %d ms", tick2 - tick1);
+ dsyslog("skinflatplus imagecache pre loaded images %d / %d", getCacheCount(), MAX_IMAGE_CACHE);
+}
diff --git a/imagecache.h b/imagecache.h
index edeb8f41..00ee007d 100644
--- a/imagecache.h
+++ b/imagecache.h
@@ -4,6 +4,10 @@
#include <string>
#define MAX_IMAGE_CACHE 999
+#define LOGO_PRE_CACHE 200
+// note MAX_LOGO_PRE_CACHE is used twice
+// one for displaychannel and one for menu
+// you must double the value for the real amount of pre cached logos
class cImageCache {
private:
@@ -13,13 +17,18 @@ private:
int CacheHeight[MAX_IMAGE_CACHE];
int InsertIndex;
+ bool Overflow;
public:
cImageCache();
~cImageCache();
void Create(void);
void Clear(void);
-
+
+ int getCacheCount(void) { if(Overflow) return MAX_IMAGE_CACHE; return InsertIndex+1; }
+
cImage *GetImage(std::string Name, int Width, int Height);
void InsertImage(cImage *Image, std::string Name, int Width, int Height);
+
+ void PreLoadImage(void);
};
diff --git a/imageloader.c b/imageloader.c
index 5dafd953..d1b52984 100644
--- a/imageloader.c
+++ b/imageloader.c
@@ -3,10 +3,10 @@
#include <string>
#include <dirent.h>
#include <iostream>
+#include "flat.h"
using namespace Magick;
-
cImageLoader::cImageLoader() {
InitializeMagick(NULL);
logoExtension = "png";
diff --git a/imageloader.h b/imageloader.h
index b7ffb243..bdcfc787 100644
--- a/imageloader.h
+++ b/imageloader.h
@@ -9,8 +9,6 @@
#include <Magick++.h>
#include "imagemagickwrapper.h"
-#include "flat.h"
-
using namespace Magick;
class cImageLoader : public cImageMagickWrapper {
@@ -21,12 +19,6 @@ public:
cImage* LoadLogo(const char *logo, int width, int height);
cImage* LoadIcon(const char *cIcon, int width, int height, bool preserveAspect = true);
- //cImage GetImage();
- //cImage GetImage(int width, int height, bool preserveAspect = true);
-
- //bool LoadIcon(const char *cIcon, int size = -1);
- //bool LoadIcon2(const char *cIcon);
-
private:
int epgImageWidthLarge, epgImageHeightLarge;
int epgImageWidth, epgImageHeight;
diff --git a/po/de_DE.po b/po/de_DE.po
index 20b76d2f..b96c7aa2 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: vdr-skinflat 0.2.0\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2014-02-18 18:04+0100\n"
+"POT-Creation-Date: 2014-03-13 20:26+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -207,6 +207,9 @@ msgstr "Tasten Rand Typ"
msgid "Button border size"
msgstr "Tasten Rand Größe"
+msgid "Imagecache entries"
+msgstr "Imagecache Einträge"
+
msgid "Show Channelinfo icons"
msgstr "Zeige Kanalinfo Icons"
diff --git a/setup.c b/setup.c
index 08b77541..9814864f 100644
--- a/setup.c
+++ b/setup.c
@@ -261,6 +261,9 @@ void cFlatSetupGeneral::Setup(void) {
Add(new cMenuEditStraItem(tr("Button border type"), &SetupConfig->decorBorderButtonTypeUser, Bordertypes.Size(), &Bordertypes[0]));
Add(new cMenuEditIntItem(tr("Button border size"), &SetupConfig->decorBorderButtonSizeUser));
}
+
+ cString ImageCache = cString::sprintf("%s:\t%d / %d", tr("Imagecache entries"), imgCache.getCacheCount(), MAX_IMAGE_CACHE);
+ Add(new cOsdItem(ImageCache, osUnknown, true));
if( ItemLastSel >= 0 ) {
SetCurrent(Get(ItemLastSel));
diff --git a/skinflatplus.c b/skinflatplus.c
index d89bbe93..7fed342a 100644
--- a/skinflatplus.c
+++ b/skinflatplus.c
@@ -89,7 +89,8 @@ bool cPluginFlat::Start(void) {
dsyslog("skinflatplus: TrueColor OSD found");
imgCache.Create();
-
+ imgCache.PreLoadImage();
+
flat = new cFlat;
return flat;
}