mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Improved channel switching in case of numerical input
This commit is contained in:
parent
68002f0037
commit
bc16b8af53
@ -525,6 +525,8 @@ Jaakko Hyv
|
||||
for fixing recording overlapping timers on the same channel in case
|
||||
DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and/or DO_MULTIPLE_RECORDINGS is not defined
|
||||
for fixing the minimum lifespan of deleted recordings
|
||||
for suggesting to improve channel switching in case of numerical input by switching
|
||||
as soon as the channel is unique
|
||||
|
||||
Dennis Noordsij <dennis.noordsij@wiral.com>
|
||||
for reporting a small glitch when switching channels
|
||||
|
2
HISTORY
2
HISTORY
@ -2258,3 +2258,5 @@ Video Disk Recorder Revision History
|
||||
|
||||
- Fixed a bug in channel switching after Left/Right has been pressed (thanks to
|
||||
Michael Walle for reporting this one).
|
||||
- Improved channel switching in case of numerical input by switching as soon as
|
||||
the channel is unique (suggested by Jaakko Hyvätti).
|
||||
|
20
menu.c
20
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 1.257 2003/06/12 16:11:32 kls Exp $
|
||||
* $Id: menu.c 1.258 2003/06/13 14:31:15 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -2742,6 +2742,24 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
|
||||
cChannel *channel = Channels.GetByNumber(number);
|
||||
DisplayChannel(channel);
|
||||
lastTime = time_ms();
|
||||
// Lets see if there can be any useful further input:
|
||||
int n = channel ? number : 0;
|
||||
while (channel && (channel = Channels.Next(channel)) != NULL) {
|
||||
if (!channel->GroupSep()) {
|
||||
if (channel->Number() > n)
|
||||
n *= 10;
|
||||
if (n <= channel->Number() && channel->Number() <= n + 9) {
|
||||
n = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (n > 0) {
|
||||
// This channel is the only one that fits the input, so let's take it right away:
|
||||
Interface->Flush(); // makes sure the user sees his last input
|
||||
Channels.SwitchTo(number);
|
||||
return osEnd;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user