Fixed detecting if there can be any useful further input when entering channel numbers

This commit is contained in:
Klaus Schmidinger 2006-01-22 14:38:54 +01:00
parent 6cd9124d08
commit 9443b6999e
3 changed files with 11 additions and 4 deletions

View File

@ -1157,11 +1157,13 @@ Andreas Regel <andreas.regel@gmx.de>
for reporting a problem with messages when a cOsdObject uses the raw OSD
for implementing palette replace mode in the OSD bitmaps
Thomas Bergwinkl <Thomas.Bergwinkl@t-online.de>
Thomas Bergwinkl <Thomas.Bergwinkl@vr-web.de>
for fixing the validity check for channel IDs, because some providers use TIDs
with value 0
for pointing out that transponder handling didn't work with satellites that provide
two transponders on the same frequency, with different polarization
for fixing detecting if there can be any useful further input when entering channel
numbers
Stéphane Esté-Gracias <sestegra@free.fr>
for fixing a typo in libsi/si.h

View File

@ -4222,3 +4222,5 @@ Video Disk Recorder Revision History
the final switch when the key is released.
- The channel display is now updated _before_ the channel is switched.
- Added a missing initialization of 'timeout' in the cDisplayChannel constructor.
- Fixed detecting if there can be any useful further input when entering channel
numbers (thanks to Thomas Bergwinkl).

9
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 1.400 2006/01/22 14:24:02 kls Exp $
* $Id: menu.c 1.401 2006/01/22 14:30:00 kls Exp $
*/
#include "menu.h"
@ -3107,15 +3107,18 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
DisplayChannel();
// Lets see if there can be any useful further input:
int n = channel ? number * 10 : 0;
int m = 10;
cChannel *ch = channel;
while (ch && (ch = Channels.Next(ch)) != NULL) {
if (!ch->GroupSep()) {
if (n <= ch->Number() && ch->Number() <= n + 9) {
if (n <= ch->Number() && ch->Number() < n + m) {
n = 0;
break;
}
if (ch->Number() > n)
if (ch->Number() > n) {
n *= 10;
m *= 10;
}
}
}
if (n > 0) {