summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2017-05-21 13:18:26 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2017-05-21 13:18:26 +0200
commit354910faab19e9d32dd3f1a7492ba9f685923ba8 (patch)
tree0ea4a7122148942e14af83d33e50457f01ebfe40
parent0f1f2778198c161db2c1b20bdd29ff4a6e9326e1 (diff)
downloadvdr-354910faab19e9d32dd3f1a7492ba9f685923ba8.tar.gz
vdr-354910faab19e9d32dd3f1a7492ba9f685923ba8.tar.bz2
If the Channel+/- keys are pressed while in the Schedules menu, the menu is now switched to the EPG of the new current channel
-rw-r--r--HISTORY2
-rw-r--r--menu.c29
-rw-r--r--vdr.c3
3 files changed, 29 insertions, 5 deletions
diff --git a/HISTORY b/HISTORY
index 354a5fb9..9593f5c3 100644
--- a/HISTORY
+++ b/HISTORY
@@ -9046,3 +9046,5 @@ Video Disk Recorder Revision History
- Fixed setting the local machine's SVDRP host name (was overwritten if setup.conf
contained an empty string). The SVDRP host name is now only written to setup.conf
if it differs from the system's host name.
+- If the Channel+/- keys are pressed while in the Schedules menu, the menu is now
+ switched to the EPG of the new current channel.
diff --git a/menu.c b/menu.c
index ae65f2d5..246c4df3 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 4.28 2017/05/20 13:00:21 kls Exp $
+ * $Id: menu.c 4.29 2017/05/21 13:18:26 kls Exp $
*/
#include "menu.h"
@@ -1691,7 +1691,7 @@ eOSState cMenuWhatsOn::ProcessKey(eKeys Key)
eOSState state = cOsdMenu::ProcessKey(Key);
if (state == osUnknown) {
- switch (Key) {
+ switch (int(Key)) {
case kRecord:
case kRed: return Record();
case kYellow: state = osBack;
@@ -1707,6 +1707,20 @@ eOSState cMenuWhatsOn::ProcessKey(eKeys Key)
case kBlue: if (canSwitch)
return Switch();
break;
+ case kChanUp|k_Repeat:
+ case kChanUp:
+ case kChanDn|k_Repeat:
+ case kChanDn: if (!HasSubMenu()) {
+ for (cOsdItem *item = First(); item; item = Next(item)) {
+ if (((cMenuScheduleItem *)item)->channel->Number() == cDevice::CurrentChannel()) {
+ SetCurrent(item);
+ Display();
+ SetHelpKeys();
+ break;
+ }
+ }
+ }
+ break;
case kInfo:
case kOk: if (Count()) {
LOCK_TIMERS_READ;
@@ -1993,7 +2007,7 @@ eOSState cMenuSchedule::ProcessKey(eKeys Key)
eOSState state = cOsdMenu::ProcessKey(Key);
if (state == osUnknown) {
- switch (Key) {
+ switch (int(Key)) {
case k0: return Number();
case kRecord:
case kRed: return Record();
@@ -2023,6 +2037,15 @@ eOSState cMenuSchedule::ProcessKey(eKeys Key)
case kBlue: if (canSwitch)
return Switch();
break;
+ case kChanUp|k_Repeat:
+ case kChanUp:
+ case kChanDn|k_Repeat:
+ case kChanDn: if (!HasSubMenu()) {
+ LOCK_CHANNELS_READ;
+ if (const cChannel *Channel = Channels->GetByNumber(cDevice::CurrentChannel()))
+ Set(Channel, true);
+ }
+ break;
case kInfo:
case kOk: if (Count()) {
LOCK_TIMERS_READ;
diff --git a/vdr.c b/vdr.c
index 4fc2bf1e..41dbc8f4 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.tvdr.de
*
- * $Id: vdr.c 4.13 2017/05/01 13:00:51 kls Exp $
+ * $Id: vdr.c 4.14 2017/05/21 12:31:37 kls Exp $
*/
#include <getopt.h>
@@ -1282,7 +1282,6 @@ int main(int argc, char *argv[])
}
else
cDevice::SwitchChannel(NORMALKEY(key) == kChanUp ? 1 : -1);
- key = kNone; // nobody else needs to see these keys
break;
// Volume control:
case kVolUp|k_Repeat: