If the Channel+/- keys are pressed while in the Schedules menu, the menu is now switched to the EPG of the new current channel

This commit is contained in:
Klaus Schmidinger 2017-05-21 13:18:26 +02:00
parent 0f1f277819
commit 354910faab
3 changed files with 29 additions and 5 deletions

View File

@ -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.

29
menu.c
View File

@ -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;

3
vdr.c
View File

@ -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: