summaryrefslogtreecommitdiff
path: root/tvguideosd.c
diff options
context:
space:
mode:
Diffstat (limited to 'tvguideosd.c')
-rw-r--r--tvguideosd.c50
1 files changed, 34 insertions, 16 deletions
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;