diff --git a/HISTORY b/HISTORY index 701ba15..2ffb07e 100644 --- a/HISTORY +++ b/HISTORY @@ -40,3 +40,4 @@ VDR Plugin 'tvguide' Revision History - Display of Main Menu Entry configurable - Eliminated setup option "Number of channels to jump", directly jump number of channel columns / rows with green / yellow +- Added setup option to switch functionality of keys "Blue" and "OK" diff --git a/config.c b/config.c index 9b032cb..e98a26d 100644 --- a/config.c +++ b/config.c @@ -46,6 +46,7 @@ cTvguideConfig::cTvguideConfig() { hugeStepHours = 24; channelJumpMode = eNumJump; jumpChannels = 0; + blueKeyMode = 0; hideLastGroup = 0; hideChannelLogos = 0; logoWidthRatio = 13; @@ -254,6 +255,7 @@ bool cTvguideConfig::SetupParse(const char *Name, const char *Value) { else if (strcmp(Name, "bigStepHours") == 0) bigStepHours = atoi(Value); else if (strcmp(Name, "hugeStepHours") == 0) hugeStepHours = atoi(Value); else if (strcmp(Name, "channelJumpMode") == 0) channelJumpMode = atoi(Value); + else if (strcmp(Name, "blueKeyMode") == 0) blueKeyMode = atoi(Value); else if (strcmp(Name, "hideLastGroup") == 0) hideLastGroup = atoi(Value); else if (strcmp(Name, "hideEpgImages") == 0) hideEpgImages = atoi(Value); else if (strcmp(Name, "epgImageWidth") == 0) epgImageWidth = atoi(Value); diff --git a/config.h b/config.h index 6895581..bdf1e32 100644 --- a/config.h +++ b/config.h @@ -46,6 +46,7 @@ class cTvguideConfig { int hugeStepHours; int channelJumpMode; int jumpChannels; + int blueKeyMode; int hideLastGroup; int hideChannelLogos; int logoWidthRatio; diff --git a/footer.c b/footer.c index cbda6f8..4c26336 100644 --- a/footer.c +++ b/footer.c @@ -63,7 +63,11 @@ void cFooter::drawYellowButton(const char *text) { } void cFooter::drawBlueButton() { - cString text(tr("Switch to Channel")); + cString text; + if (tvguideConfig.blueKeyMode == 0) + text = tr("Switch to Channel"); + else if (tvguideConfig.blueKeyMode == 1) + text = tr("Detailed EPG"); DrawButton(*text, theme.Color(clrButtonBlue), theme.Color(clrButtonBlueBorder), 3); } diff --git a/po/de_DE.po b/po/de_DE.po index 08111c9..f59fad3 100755 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr-tvguide 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-01 10:39+0200\n" +"POT-Creation-Date: 2013-06-01 11:02+0200\n" "PO-Revision-Date: 2012-08-25 17:49+0200\n" "Last-Translator: Horst\n" "Language-Team: \n" @@ -33,6 +33,9 @@ msgstr "Kanäle vor" msgid "Switch to Channel" msgstr "Umschalten" +msgid "Detailed EPG" +msgstr "Detailiertes EPG" + msgid "General Settings" msgstr "Allgemeine Einstellungen" @@ -48,6 +51,12 @@ msgstr "x Kanäle zurück / vor" msgid "previous / next channel group" msgstr "vorherige / nächste Kanalgruppe" +msgid "Blue: Channel Switch, Ok: Detailed EPG" +msgstr "Blau: Umschalten, OK: Detailiertes EPG" + +msgid "Blue: Detailed EPG, Ok: Channel Switch" +msgstr "Blau: Detailiertes EPG, OK: Umschalten" + msgid "never" msgstr "nie" @@ -69,6 +78,9 @@ msgstr "Abgerundete Ecken" msgid "Channel Jump Mode (Keys Green / Yellow)" msgstr "Kanalsprung Modus (Tasten grün / gelb)" +msgid "Keys Blue and OK" +msgstr "Tasten Blau und OK" + msgid "Hide last Channel Group" msgstr "Letzte Kanalgruppe verstecken" diff --git a/setup.c b/setup.c index 497eea8..d789bca 100644 --- a/setup.c +++ b/setup.c @@ -62,6 +62,7 @@ void cTvguideSetup::Store(void) { SetupStore("bigStepHours", tvguideConfig.bigStepHours); SetupStore("hugeStepHours", tvguideConfig.hugeStepHours); SetupStore("channelJumpMode", tvguideConfig.channelJumpMode); + SetupStore("blueKeyMode", tvguideConfig.blueKeyMode); SetupStore("hideLastGroup", tvguideConfig.hideLastGroup); SetupStore("hideChannelLogos", tvguideConfig.hideChannelLogos); SetupStore("logoExtension", tvguideConfig.logoExtension); @@ -135,6 +136,8 @@ cMenuSetupGeneral::cMenuSetupGeneral(cTvguideConfig* data) : cMenuSetupSubMenu( timeFormatItems[1] = "24h"; jumpMode[0] = tr("x channels back / forward"); jumpMode[1] = tr("previous / next channel group"); + blueMode[0] = tr("Blue: Channel Switch, Ok: Detailed EPG"); + blueMode[1] = tr("Blue: Detailed EPG, Ok: Channel Switch"); useSubtitleRerunTexts[0] = tr("never"); useSubtitleRerunTexts[1] = tr("if exists"); useSubtitleRerunTexts[2] = tr("always"); @@ -151,6 +154,7 @@ void cMenuSetupGeneral::Set(void) { Add(new cMenuEditBoolItem(tr("Rounded Corners"), &tmpTvguideConfig->roundedCorners)); Add(new cMenuEditStraItem(tr("Channel Jump Mode (Keys Green / Yellow)"), &tmpTvguideConfig->channelJumpMode, 2, jumpMode)); + Add(new cMenuEditStraItem(tr("Keys Blue and OK"), &tmpTvguideConfig->blueKeyMode, 2, blueMode)); Add(new cMenuEditBoolItem(tr("Hide last Channel Group"), &tmpTvguideConfig->hideLastGroup)); Add(new cMenuEditIntItem(tr("Time to display in minutes"), &tmpTvguideConfig->displayTime, 120, 320)); Add(new cMenuEditIntItem(tr("Big Step (Keys 1 / 3) in hours"), &tmpTvguideConfig->bigStepHours, 1, 12)); diff --git a/setup.h b/setup.h index be43dad..fa2166e 100644 --- a/setup.h +++ b/setup.h @@ -30,6 +30,7 @@ class cMenuSetupGeneral : public cMenuSetupSubMenu { cThemes themes; const char * timeFormatItems[2]; const char * jumpMode[2]; + const char * blueMode[2]; const char *useSubtitleRerunTexts[3]; void Set(void); public: diff --git a/tvguideosd.c b/tvguideosd.c index 5da028a..5aaa128 100644 --- a/tvguideosd.c +++ b/tvguideosd.c @@ -444,21 +444,6 @@ void cTvGuideOsd::processKeyRight() { } } -void cTvGuideOsd::processKeyOk() { - if (detailViewActive) { - delete detailView; - detailView = NULL; - detailViewActive = false; - osdManager.flush(); - } else { - if (!activeGrid->isDummy()) { - detailViewActive = true; - detailView = new cDetailView(activeGrid); - detailView->Start(); - } - } -} - void cTvGuideOsd::processKeyRed() { if ((activeGrid == NULL) || activeGrid->isDummy()) return; @@ -553,6 +538,24 @@ void cTvGuideOsd::processKeyYellow() { } eOSState cTvGuideOsd::processKeyBlue() { + if (tvguideConfig.blueKeyMode == 0) { + return ChannelSwitch(); + } else if (tvguideConfig.blueKeyMode == 1) { + DetailedEPG(); + } + return osContinue; +} + +eOSState cTvGuideOsd::processKeyOk() { + if ((tvguideConfig.blueKeyMode == 0) || detailViewActive ) { + DetailedEPG(); + } else if (tvguideConfig.blueKeyMode == 1) { + return ChannelSwitch(); + } + return osContinue; +} + +eOSState cTvGuideOsd::ChannelSwitch() { if (activeGrid == NULL) return osContinue; const cChannel *currentChannel = activeGrid->column->getChannel(); @@ -563,6 +566,21 @@ eOSState cTvGuideOsd::processKeyBlue() { return osContinue; } +void cTvGuideOsd::DetailedEPG() { + if (detailViewActive) { + delete detailView; + detailView = NULL; + detailViewActive = false; + osdManager.flush(); + } else { + if (!activeGrid->isDummy()) { + detailViewActive = true; + detailView = new cDetailView(activeGrid); + detailView->Start(); + } + } +} + void cTvGuideOsd::processKey1() { bool tooFarInPast = myTime->DelStep(tvguideConfig.bigStepHours*60); if (tooFarInPast) @@ -642,7 +660,7 @@ eOSState cTvGuideOsd::ProcessKey(eKeys Key) { case kGreen: processKeyGreen(); break; case kYellow: processKeyYellow(); break; case kBlue: state = processKeyBlue(); break; - case kOk: processKeyOk(); break; + case kOk: state = processKeyOk(); break; case kBack: state=osEnd; break; case k1: processKey1(); break; case k3: processKey3(); break; diff --git a/tvguideosd.h b/tvguideosd.h index 0fa9de9..bc46728 100644 --- a/tvguideosd.h +++ b/tvguideosd.h @@ -26,7 +26,7 @@ private: void processKeyGreen(); void processKeyYellow(); eOSState processKeyBlue(); - void processKeyOk(); + eOSState processKeyOk(); void processKey1(); void processKey3(); void processKey4(); @@ -40,6 +40,8 @@ private: void timeBack(); void ScrollForward(); void ScrollBack(); + eOSState ChannelSwitch(); + void DetailedEPG(); void dump(); public: cTvGuideOsd(void);