diff options
Diffstat (limited to 'menu.c')
-rw-r--r-- | menu.c | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 4.78 2018/07/16 09:29:57 kls Exp $ + * $Id: menu.c 4.79 2019/03/18 16:14:06 kls Exp $ */ #include "menu.h" @@ -576,7 +576,7 @@ eOSState cMenuChannels::ProcessKey(eKeys Key) break; default: if (state == osUnknown) { - switch (Key) { + switch (int(Key)) { case k0 ... k9: return Number(Key); case kOk: return Switch(); @@ -586,6 +586,20 @@ eOSState cMenuChannels::ProcessKey(eKeys Key) case kBlue: if (!HasSubMenu()) Mark(); break; + case kChanUp|k_Repeat: + case kChanUp: + case kChanDn|k_Repeat: + case kChanDn: { + LOCK_CHANNELS_READ; + int CurrentChannelNr = cDevice::CurrentChannel(); + for (cMenuChannelItem *ci = (cMenuChannelItem *)First(); ci; ci = (cMenuChannelItem *)ci->Next()) { + if (!ci->Channel()->GroupSep() && ci->Channel()->Number() == CurrentChannelNr) { + SetCurrent(ci); + Display(); + break; + } + } + } default: break; } } |