summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.c16
-rw-r--r--config.h8
-rw-r--r--displaymenu.c295
-rw-r--r--displaymenu.h56
-rw-r--r--po/de_DE.po29
-rw-r--r--setup.c47
6 files changed, 433 insertions, 18 deletions
diff --git a/config.c b/config.c
index cd90eda..1321f88 100644
--- a/config.c
+++ b/config.c
@@ -6,6 +6,14 @@ cLCARSNGConfig Config;
cLCARSNGConfig::cLCARSNGConfig(void)
{
Margin = 2;
+ displInfoMenuEPG = 0;
+ displInfoMenuTimer = 0;
+ displInfoMenuRec = 0;
+ waitTimeFadein = 1000;
+ waitTimeScroll = 1000;
+ fadeinTime = 300;
+ scrollPixel = 2;
+ framesPerSecond = 25;
mcUndefinedScaled = efullscreen;
mcUnknownScaled = efullscreen;
mcMainScaled = efullscreen;
@@ -42,6 +50,14 @@ cLCARSNGConfig::cLCARSNGConfig(void)
bool cLCARSNGConfig::SetupParse(const char *Name, const char *Value)
{
if (!strcasecmp(Name, "Margin")) Margin = atoi(Value);
+ else if (!strcasecmp(Name, "DisplInfoMenuEPG")) displInfoMenuEPG = atoi(Value);
+ else if (!strcasecmp(Name, "DisplInfoMenuTimer")) displInfoMenuTimer = atoi(Value);
+ else if (!strcasecmp(Name, "DisplInfoMenuRec")) displInfoMenuRec = atoi(Value);
+ else if (!strcasecmp(Name, "WaitTimeFadein")) waitTimeFadein = atoi(Value);
+ else if (!strcasecmp(Name, "WaitTimeScroll")) waitTimeScroll = atoi(Value);
+ else if (!strcasecmp(Name, "FadeInTime")) fadeinTime = atoi(Value);
+ else if (!strcasecmp(Name, "ScrollPixel")) scrollPixel = atoi(Value);
+ else if (!strcasecmp(Name, "FramesPerSecond")) framesPerSecond = atoi(Value);
else if (!strcasecmp(Name, "MainMenue")) mcMainScaled = atoi(Value);
else if (!strcasecmp(Name, "ScheduleMenue")) mcScheduleScaled = atoi(Value);
else if (!strcasecmp(Name, "ChannelMenue")) mcChannelScaled = atoi(Value);
diff --git a/config.h b/config.h
index 3441fd3..b014bed 100644
--- a/config.h
+++ b/config.h
@@ -8,6 +8,14 @@ enum viewMode {
class cLCARSNGConfig {
public:
int Margin;
+ int displInfoMenuEPG;
+ int displInfoMenuTimer;
+ int displInfoMenuRec;
+ int waitTimeFadein;
+ int waitTimeScroll;
+ int fadeinTime;
+ int scrollPixel;
+ int framesPerSecond;
int mcUndefinedScaled;
int mcUnknownScaled;
int mcMainScaled;
diff --git a/displaymenu.c b/displaymenu.c
index ab1cd0d..87f5d13 100644
--- a/displaymenu.c
+++ b/displaymenu.c
@@ -15,6 +15,7 @@ cLCARSNGDisplayMenu::cLCARSNGDisplayMenu(void)
{
tallFont = cFont::CreateFont(Setup.FontOsd, Setup.FontOsdSize * 1.6);
initial = true;
+ message = false;
viewmode = efullscreen;
zoom = 0;
lastMode = cmUnknown;
@@ -47,6 +48,7 @@ cLCARSNGDisplayMenu::cLCARSNGDisplayMenu(void)
textColorBg = Theme.Color(clrMenuTextBg);
currentIndex = -1;
Margin = Config.Margin;
+ drawDescription = NULL;
// The outer frame:
d = 5 * lineHeight;
@@ -85,6 +87,7 @@ cLCARSNGDisplayMenu::cLCARSNGDisplayMenu(void)
cLCARSNGDisplayMenu::~cLCARSNGDisplayMenu()
{
+ delete drawDescription;
delete tallFont;
delete tinyFont;
delete osd;
@@ -321,7 +324,6 @@ void cLCARSNGDisplayMenu::SetMenuCategory(eMenuCategory MenuCategory)
default:
viewmode = Config.mcDefaultScaled;
}
-
if (MenuCategory == mcChannel && viewmode == esmalscreen) {
SetCoordinateY(yt06);
osd->DrawRectangle(xa00, yt00, xa09 - 1, yb15 - 1, clrTransparent);
@@ -1249,6 +1251,11 @@ int cLCARSNGDisplayMenu::MaxItems(void)
void cLCARSNGDisplayMenu::Clear(void)
{
+ DELETENULL(drawDescription);
+ animatedInfo.Event = NULL;
+ animatedInfo.Timer = NULL;
+ animatedInfo.Recording = NULL;
+ animatedInfo.Channel = NULL;
textScroller.Reset();
osd->DrawRectangle(xi00, yi00, xi03 - 1, yi01 - 1, Theme.Color(clrBackground));
}
@@ -1305,6 +1312,8 @@ void cLCARSNGDisplayMenu::SetButtons(const char *Red, const char *Green, const c
void cLCARSNGDisplayMenu::SetMessage(eMessageType Type, const char *Text)
{
if (Text) {
+ DELETENULL(drawDescription);
+ message = true;
tColor ColorFg = Theme.Color(clrMessageStatusFg + 2 * Type);
tColor ColorBg = Theme.Color(clrMessageStatusBg + 2 * Type);
int x0, x1, y0, y1, lx, ly;
@@ -1318,8 +1327,61 @@ void cLCARSNGDisplayMenu::SetMessage(eMessageType Type, const char *Text)
DrawRectangleOutline(osd, x0, y0, x1, y1, ColorFg, ColorBg, 15);
osd->DrawText(x0 + Margin, y0 + Margin, Text, ColorFg, ColorBg, cFont::GetFont(fontSml), lx, ly, taCenter);
}
- else
+ else {
osd->RestoreRegion();
+ message = false;
+ }
+}
+bool cLCARSNGDisplayMenu::SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch, bool TimerActive)
+{
+ if (animatedInfo.Event == Event && !Current) {
+ DELETENULL(drawDescription);
+ animatedInfo.Event = NULL;
+ }
+ if (Current) {
+ animatedInfo.Event = Event;
+ animatedInfo.Index = Index;
+ animatedInfo.Current = Current;
+ animatedInfo.Selectable = Selectable;
+ animatedInfo.Channel = Channel;
+ animatedInfo.WithDate = WithDate;
+ animatedInfo.TimerMatch = TimerMatch;
+ animatedInfo.TimerActive = TimerActive;
+ }
+ return false;
+}
+
+bool cLCARSNGDisplayMenu::SetItemTimer(const cTimer *Timer, int Index, bool Current, bool Selectable)
+{
+ if (animatedInfo.Timer == Timer && !Current) {
+ DELETENULL(drawDescription);
+ animatedInfo.Timer = NULL;
+ }
+ if (Current) {
+ animatedInfo.Timer = Timer;
+ animatedInfo.Index = Index;
+ animatedInfo.Current = Current;
+ animatedInfo.Selectable = Selectable;
+ }
+ return false;
+}
+
+bool cLCARSNGDisplayMenu::SetItemRecording(const cRecording *Recording, int Index, bool Current, bool Selectable, int Level, int Total, int New)
+{
+ if (animatedInfo.Recording == Recording && !Current) {
+ DELETENULL(drawDescription);
+ animatedInfo.Recording = NULL;
+ }
+ if (Current && !Total) {
+ animatedInfo.Recording = Recording;
+ animatedInfo.Index = Index;
+ animatedInfo.Current = Current;
+ animatedInfo.Selectable = Selectable;
+ animatedInfo.Level = Level;
+ animatedInfo.Total = Total;
+ animatedInfo.New = New;
+ }
+ return false;
}
void cLCARSNGDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable)
@@ -1491,6 +1553,9 @@ void cLCARSNGDisplayMenu::Flush(void)
else
availableRect = cDevice::PrimaryDevice()->CanScaleVideo(cRect::Null);
}
+ if (drawDescription) {
+ drawDescription->StopFlush();
+ }
DrawFrameDisplay();
switch (MenuCategory()) {
case mcMain:
@@ -1527,5 +1592,231 @@ void cLCARSNGDisplayMenu::Flush(void)
if (initial) {
cDevice::PrimaryDevice()->ScaleVideo(availableRect);
}
+ if (!message && !drawDescription) {
+ if ((Config.displInfoMenuEPG && (MenuCategory() == mcSchedule || MenuCategory() == mcScheduleNow || MenuCategory() == mcScheduleNext) && animatedInfo.Event != NULL)
+ || (Config.displInfoMenuTimer && MenuCategory() == mcTimer && animatedInfo.Timer != NULL)
+ || (Config.displInfoMenuRec && MenuCategory() == mcRecording && animatedInfo.Recording != NULL)) {
+ animatedInfo.x0 = xs00;
+ animatedInfo.x1 = xs11;
+ animatedInfo.y0 = yi00;
+ animatedInfo.y1 = yi00 + (int)((yi01 - yi00) / lineHeight) * lineHeight;
+ animatedInfo.viewmode = viewmode;
+ animatedInfo.textColorBg = textColorBg;
+ animatedInfo.titleColorFg = Theme.Color(clrEventTitle);
+ animatedInfo.shortTextColorFg = Theme.Color(clrEventShortText);
+ animatedInfo.descriptionColorFg = Theme.Color(clrEventDescription);
+ animatedInfo.frameColorBr = frameColorBr;
+ drawDescription = new cDrawDescription(osd, animatedInfo);
+ }
+ }
+ if (drawDescription) {
+ drawDescription->StartFlush();
+ }
initial = false;
}
+
+// --- cDrawDescription ----------------------------------------------------
+
+cDrawDescription::cDrawDescription(cOsd *osd, AnimatedInfo_t animatedInfo) : cThread("LCARS DisplDesc")
+{
+ this->osd = osd;
+ aI = animatedInfo;
+ lineHeight = cFont::GetFont(fontSml)->Height();
+
+ Start();
+}
+
+cDrawDescription::~cDrawDescription()
+{
+ isAnimated = true;
+ Cancel(2);
+ if (ScrollPixmap)
+ osd->DestroyPixmap(ScrollPixmap);
+ if (BracketPixmap)
+ osd->DestroyPixmap(BracketPixmap);
+ if (BackgroundPixmap)
+ osd->DestroyPixmap(BackgroundPixmap);
+}
+
+void cDrawDescription::DrawBracket(void)
+{
+ int x0 = aI.x0;
+ int x1 = aI.x1;
+ int y0 = aI.y0;
+ int y1 = aI.y1;
+ BackgroundPixmap = osd->CreatePixmap(-1, cRect(x0, y0, x1 - x0, y1 - y0));
+ BackgroundPixmap->SetAlpha(0);
+ BackgroundPixmap->Fill((aI.viewmode == escaledvideo) ? Theme.Color(clrBackground) : aI.textColorBg);
+ BracketPixmap = osd->CreatePixmap(-1, cRect(x0, y0, x1 - x0, y1 - y0));
+ BracketPixmap->SetAlpha(0);
+ BracketPixmap->Fill(clrTransparent);
+ tColor Color = Theme.Color(clrMenuMainBracket);
+ int lineHeight = cFont::GetFont(fontOsd)->Height("A");
+ int x00, x01, x02, y00, y01, y02, y03, y04;
+ x00 = 0;
+ x01 = x00 + lineHeight;
+ x02 = x1 - x01;
+ y00 = 0;
+ y01 = y00 + lineHeight / 2;
+ y02 = y01 + lineHeight / 2;
+ y04 = y1 - y0;
+ y03 = y04 - lineHeight;
+ BracketPixmap->DrawRectangle(cRect(x01, y00, x02, lineHeight / 2), Color);
+ BracketPixmap->DrawEllipse (cRect(x00, y00, lineHeight, y02), Color, 2);
+ BracketPixmap->DrawEllipse (cRect(x01, y01, lineHeight / 2, lineHeight / 2), Color, -2);
+ BracketPixmap->DrawRectangle(cRect(x00, y02, lineHeight, y03 - y02), Color);
+ BracketPixmap->DrawEllipse (cRect(x00, y03, lineHeight, lineHeight), Color, 3);
+ BracketPixmap->DrawEllipse (cRect(x01, y03, lineHeight / 2, lineHeight / 2), Color, -3);
+ BracketPixmap->DrawRectangle(cRect(x01, y04 - lineHeight / 2, x02, lineHeight / 2), Color);
+}
+
+void cDrawDescription::Draw(void)
+{
+ const cEvent *Event = NULL;
+ const cTimer *Timer = NULL;
+ const cRecording *Recording = NULL;
+ const cRecordingInfo *Info = NULL;
+
+ if (aI.Recording) {
+ Recording = aI.Recording;
+ Info = Recording->Info();
+ if (!Info->Description())
+ return;
+ } else if (aI.Event) {
+ Event = aI.Event;
+ if (!Event->Description())
+ return;
+ } else if (aI.Timer) {
+ Timer = aI.Timer;
+ Event = Timer->Event();
+ if (!Event->Description())
+ return;
+ } else
+ return;
+
+ const char *titel = NULL;
+ const char *shortText = NULL;
+ const char *s = NULL;
+ const cFont *Font = cFont::GetFont(fontSml);
+ BackgroundPixmap->SetAlpha(0);
+ BracketPixmap->SetAlpha(0);
+ tColor textColorBg = clrTransparent;
+
+ if (Recording) {
+ s = Info->Description(); // text
+ titel = Info->ChannelName();
+ shortText = Info->ShortText();
+ }
+ else {
+ s = Event->Description(); // text
+ titel = Event->Title();
+ shortText = Event->ShortText();
+ }
+ int x0 = aI.x0 + 1.5 * lineHeight; // text left
+ int x1 = aI.x1; // text right
+ int y0 = aI.y0 + 1.3 * lineHeight; // text top
+ int y1 = aI.y1 - 1.3 * lineHeight; // text bottom
+
+ int textwidth = x1 - x0 - lineHeight / 2;
+
+ int x00 = 1.5 * lineHeight;
+ int y00 = 1.3 * lineHeight;
+ if (!isempty(titel)) {
+ BracketPixmap->DrawText(cPoint(x00 + Config.Margin + Gap, y00), titel, aI.titleColorFg, textColorBg, Font, textwidth); // title
+ y00 = y00 + 1.3 * lineHeight;
+ y0 = y0 + 1.3 * lineHeight;
+ }
+
+ if (!isempty(shortText)) {
+ BracketPixmap->DrawText(cPoint(x00 + Config.Margin + Gap, y00), shortText, aI.shortTextColorFg, textColorBg, Font, textwidth); // shorttext
+ y0 = y0 + 1.3 * lineHeight;
+ }
+
+ y0 = y0 + 0.4 * lineHeight;
+
+ wrapper.Set(s, Font, textwidth);
+ int l0 = wrapper.Lines(); // textlines
+
+ int height = y1 - y0; // max height
+ int lines = (int)(height / lineHeight); // visible lines
+
+ int l1 = min(l0, lines); // visible textlines -> scrollwindow
+
+ int pixmapwidth = x1 - x0;
+ int pixmapHeigh = l1 * lineHeight;
+ ScrollPixmap = osd->CreatePixmap(-1, cRect(x0, y0, pixmapwidth, pixmapHeigh), cRect(0, 0, pixmapwidth, l0 * lineHeight));
+ ScrollPixmap->Lock();
+ ScrollPixmap->Fill(clrTransparent);
+ ScrollPixmap->SetAlpha(0);
+
+ for (int i = 0; i < l0; i++) {
+ ScrollPixmap->DrawText(cPoint(Config.Margin + Gap, i * lineHeight), wrapper.GetLine(i), aI.descriptionColorFg, textColorBg, Font, textwidth); // description
+ }
+
+ ScrollPixmap->Unlock();
+ MoveStart = ScrollPixmap->DrawPort().Point();
+
+ int h0 = l0 * lineHeight; // text height in pixel
+ int y = (pixmapHeigh - h0); // pixel to scroll
+
+ MoveEnd.Set(0, min(0, y));
+ isAnimated = false;
+}
+
+void cDrawDescription::Action(void)
+{
+ DrawBracket();
+ Draw();
+ if (isAnimated)
+ return;
+
+ bool faded = false;
+ int j = 0;
+ int y = Config.scrollPixel;
+ int z = 0;
+ int step = (Config.fadeinTime) ? (255 * Config.framesPerSecond / Config.fadeinTime) : 255;
+ uint64_t Now;
+ uint64_t StartTime = cTimeMs::Now();
+
+ while (Running()) {
+ Now = cTimeMs::Now();
+ if ((int)(Now - StartTime) > Config.waitTimeFadein) {
+ if (ScrollPixmap && !isAnimated) {
+ if (!faded) {
+ BackgroundPixmap->SetLayer(0);
+ BracketPixmap->SetLayer(1);
+ ScrollPixmap->SetLayer(2);
+ z = z + step;
+ if (z <= (255 + step)) {
+ int alpha = min(z, 255);
+ BackgroundPixmap->SetAlpha(alpha);
+ BracketPixmap->SetAlpha(alpha);
+ ScrollPixmap->SetAlpha(alpha);
+ } else {
+ faded = true;
+ StartTime = cTimeMs::Now();
+ }
+ }
+ if (faded && (int)(Now - StartTime) > Config.waitTimeScroll) {
+ if (j <= MoveEnd.Y()) {
+ isAnimated = true;
+ } else {
+ ScrollPixmap->Scroll(cPoint(0, -y));
+ j = j - y;
+ }
+ }
+ }
+ }
+ int count = 0;
+ while (!isAnimated && !doflush && count < 200) {
+ cCondWait::SleepMs(10);
+ count++;
+ }
+ if (osd)
+ osd->Flush();
+ if (isAnimated)
+ break;
+ int Rest = (int)(1000 / Config.framesPerSecond) - ((int)(cTimeMs::Now() - Now));
+ cCondWait::SleepMs(max(2, Rest));
+ }
+}
diff --git a/displaymenu.h b/displaymenu.h
index e95a374..5c1bc45 100644
--- a/displaymenu.h
+++ b/displaymenu.h
@@ -1,3 +1,50 @@
+typedef struct {
+ const cEvent *Event = NULL;
+ const cTimer *Timer = NULL;
+ const cRecording *Recording = NULL;
+ const cChannel *Channel = NULL;
+ int Index = -1;
+ bool Current = false;
+ bool Selectable = false;
+ bool WithDate = false;
+ eTimerMatch TimerMatch = tmNone;
+ bool TimerActive = false;
+ int Level = -1;
+ int Total = -1;
+ int New = -1;
+ int x0 = 0;
+ int x1 = 0;
+ int y0 = 0;
+ int y1 = 0;
+ int viewmode = 0;
+ tColor textColorBg, titleColorFg, shortTextColorFg, descriptionColorFg, frameColorBr;
+} AnimatedInfo_t;
+
+class cDrawDescription : public cThread {
+private:
+ cOsd *osd;
+ AnimatedInfo_t aI;
+ int lineHeight;
+ bool stop = false;
+ bool doflush = false;
+ bool isAnimated = true;
+ cPixmap *BackgroundPixmap = NULL;
+ cPixmap *BracketPixmap = NULL;
+ cPixmap *MovePixmap = NULL;
+ cPixmap *ScrollPixmap = NULL;
+ cPoint MoveStart, MoveEnd;
+ cTextWrapper wrapper;
+ void DrawBracket(void);
+ void Draw(void);
+ void Action(void);
+public:
+ cDrawDescription(cOsd *osd, AnimatedInfo_t animatedInfo);
+ virtual ~cDrawDescription();
+ bool IsRunning(void) { return Running(); };
+ void StartFlush(void) { doflush = true; };
+ void StopFlush(void) { doflush = false; };
+ };
+
// --- cLCARSNGDisplayMenu -------------------------------------------------
class cLCARSNGDisplayMenu : public cSkinDisplayMenu {
@@ -35,6 +82,7 @@ private:
cVector<int> lastSignalStrength;
cVector<int> lastSignalQuality;
bool initial;
+ bool message;
int viewmode;
int zoom;
enum eCurrentMode { cmUnknown, cmLive, cmPlay };
@@ -60,9 +108,11 @@ private:
cString lastChannelName;
const cEvent *lastEvent;
const cRecording *lastRecording;
+ AnimatedInfo_t animatedInfo;
cString lastHeader;
int lastSeen;
int Margin;
+ cDrawDescription *drawDescription;
static cBitmap bmArrowUp, bmArrowDown, bmTransferMode;
void SetCoordinateY(int y);
void DrawMainFrameUpper(tColor Color, tColor ColorBg);
@@ -92,6 +142,9 @@ private:
void DrawSeen(int Current, int Total);
void DrawTextScrollbar(void);
public:
+#ifdef DEPRECATED_SKIN_SETITEMEVENT
+ using cSkinDisplayMenu::SetItemEvent;
+#endif
cLCARSNGDisplayMenu(void);
virtual ~cLCARSNGDisplayMenu();
virtual void Scroll(bool Up, bool Page);
@@ -101,6 +154,9 @@ public:
virtual void SetTitle(const char *Title);
virtual void SetButtons(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL);
virtual void SetMessage(eMessageType Type, const char *Text);
+ virtual bool SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch, bool TimerActive);
+ virtual bool SetItemTimer(const cTimer *Timer, int Index, bool Current, bool Selectable);
+ virtual bool SetItemRecording(const cRecording *Recording, int Index, bool Current, bool Selectable, int Level, int Total, int New);
virtual void SetItem(const char *Text, int Index, bool Current, bool Selectable);
virtual void SetScrollbar(int Total, int Offset);
virtual void SetEvent(const cEvent *Event);
diff --git a/po/de_DE.po b/po/de_DE.po
index 718a516..98d4294 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: SkinLcarsng 0.0.2\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2020-04-01 14:50+0200\n"
+"POT-Creation-Date: 2021-04-20 11:41+0200\n"
"PO-Revision-Date: 2017-10-18 12:01+0200\n"
"Last-Translator: Karl Melscher <kamel5@gmx.net>\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -63,6 +63,33 @@ msgstr "Schmales Bild"
msgid "Margin"
msgstr "Rand"
+msgid "Display description:"
+msgstr "Beschreibung anzeigen:"
+
+msgid "In menu epg"
+msgstr "In Menü EPG"
+
+msgid "In menu timer"
+msgstr "In Menü Timer"
+
+msgid "In menu recording"
+msgstr "In Menü Recording"
+
+msgid "Waiting period Fade-in (ms)"
+msgstr "Einblendwartezeit (ms)"
+
+msgid "Waiting period Scroll (ms)"
+msgstr "Scrollwartezeit (ms)"
+
+msgid "Fade-in time (ms)"
+msgstr "Einblendzeit (ms)"
+
+msgid "ScrollPixel"
+msgstr "Pixel pro Schritt"
+
+msgid "Refreshrate (Frames/s)"
+msgstr "Wiederholrate (Bilder/s)"
+
msgid "Menue view:"
msgstr "Menü Ansicht"
diff --git a/setup.c b/setup.c
index 20ffe6f..d02537c 100644
--- a/setup.c
+++ b/setup.c
@@ -16,23 +16,32 @@ cLCARSNGSetup::cLCARSNGSetup() {
menuView[2] = tr("split screen");
menuView[3] = tr("thin screen");
- Add(new cMenuEditIntItem(tr("Margin"), &tmpConfig.Margin, 0, 5));
+ Add(new cMenuEditIntItem(tr("Margin"), &tmpConfig.Margin, 0, 5));
- Add(new cOsdItem(tr("Menue view:"), osUnknown, false));
+ Add(new cOsdItem(tr("Display description:"), osUnknown, false));
+ Add(new cMenuEditBoolItem(tr("In menu epg"), &tmpConfig.displInfoMenuEPG));
+ Add(new cMenuEditBoolItem(tr("In menu timer"), &tmpConfig.displInfoMenuTimer));
+ Add(new cMenuEditBoolItem(tr("In menu recording"), &tmpConfig.displInfoMenuRec));
+ Add(new cMenuEditIntItem(tr("Waiting period Fade-in (ms)"), &tmpConfig.waitTimeFadein, 0, 5000, trVDR("off")));
+ Add(new cMenuEditIntItem(tr("Waiting period Scroll (ms)"), &tmpConfig.waitTimeScroll, 0, 5000, trVDR("off")));
+ Add(new cMenuEditIntItem(tr("Fade-in time (ms)"), &tmpConfig.fadeinTime, 0, 1000, trVDR("off")));
+ Add(new cMenuEditIntItem(tr("ScrollPixel"), &tmpConfig.scrollPixel, 1, 10));
+ Add(new cMenuEditIntItem(tr("Refreshrate (Frames/s)"), &tmpConfig.framesPerSecond, 10, 60));
- Add(new cMenuEditStraItem(tr("main menue"), &tmpConfig.mcMainScaled, 2, menuView));
- Add(new cMenuEditStraItem(tr("schedule menue"), &tmpConfig.mcScheduleScaled, 3, menuView));
- Add(new cMenuEditStraItem(tr("event menue"), &tmpConfig.mcEventScaled, 3, menuView));
- Add(new cMenuEditStraItem(tr("channel menue"), &tmpConfig.mcChannelScaled, 4, menuView));
- Add(new cMenuEditStraItem(tr("timer menue"), &tmpConfig.mcTimerScaled, 3, menuView));
- Add(new cMenuEditStraItem(tr("recording menue"), &tmpConfig.mcRecordingScaled, 3, menuView));
- Add(new cMenuEditStraItem(tr("setup menue"), &tmpConfig.mcSetupScaled, 3, menuView));
- Add(new cMenuEditStraItem(tr("command menue"), &tmpConfig.mcCommandScaled, 3, menuView));
- Add(new cMenuEditStraItem(tr("plugin menue"), &tmpConfig.mcPluginScaled, 3, menuView));
-// Add(new cMenuEditStraItem(tr("Text menue"), &tmpConfig.mcTextScaled));
-// Add(new cMenuEditStraItem(tr("Folder menue"), &tmpConfig.mcFolderScaled));
-// Add(new cMenuEditStraItem(tr("Cam menue"), &tmpConfig.mcCamScaled));
- Add(new cMenuEditStraItem(tr("Default view"), &tmpConfig.mcDefaultScaled, 3, menuView));
+ Add(new cOsdItem(tr("Menue view:"), osUnknown, false));
+ Add(new cMenuEditStraItem(tr("main menue"), &tmpConfig.mcMainScaled, 2, menuView));
+ Add(new cMenuEditStraItem(tr("schedule menue"), &tmpConfig.mcScheduleScaled, 3, menuView));
+ Add(new cMenuEditStraItem(tr("event menue"), &tmpConfig.mcEventScaled, 3, menuView));
+ Add(new cMenuEditStraItem(tr("channel menue"), &tmpConfig.mcChannelScaled, 4, menuView));
+ Add(new cMenuEditStraItem(tr("timer menue"), &tmpConfig.mcTimerScaled, 3, menuView));
+ Add(new cMenuEditStraItem(tr("recording menue"), &tmpConfig.mcRecordingScaled, 3, menuView));
+ Add(new cMenuEditStraItem(tr("setup menue"), &tmpConfig.mcSetupScaled, 3, menuView));
+ Add(new cMenuEditStraItem(tr("command menue"), &tmpConfig.mcCommandScaled, 3, menuView));
+ Add(new cMenuEditStraItem(tr("plugin menue"), &tmpConfig.mcPluginScaled, 3, menuView));
+// Add(new cMenuEditStraItem(tr("Text menue"), &tmpConfig.mcTextScaled));
+// Add(new cMenuEditStraItem(tr("Folder menue"), &tmpConfig.mcFolderScaled));
+// Add(new cMenuEditStraItem(tr("Cam menue"), &tmpConfig.mcCamScaled));
+ Add(new cMenuEditStraItem(tr("Default view"), &tmpConfig.mcDefaultScaled, 3, menuView));
SetCurrent(Get(currentItem));
Display();
@@ -42,6 +51,14 @@ cLCARSNGSetup::cLCARSNGSetup() {
void cLCARSNGSetup::Store(void) {
Config = tmpConfig;
SetupStore("Margin", Config.Margin);
+ SetupStore("DisplInfoMenuEPG", Config.displInfoMenuEPG);
+ SetupStore("DisplInfoMenuTimer", Config.displInfoMenuTimer);
+ SetupStore("DisplInfoMenuRec", Config.displInfoMenuRec);
+ SetupStore("WaitTimeFadein", Config.waitTimeFadein);
+ SetupStore("WaitTimeScroll", Config.waitTimeScroll);
+ SetupStore("FadeInTime", Config.fadeinTime);
+ SetupStore("ScrollPixel", Config.scrollPixel);
+ SetupStore("FramesPerSecond", Config.framesPerSecond);
SetupStore("MainMenue", Config.mcMainScaled);
SetupStore("ScheduleMenue", Config.mcScheduleScaled);
SetupStore("ChannelMenue", Config.mcChannelScaled);