Added "repeat" function when using the keyboard to control VDR

This commit is contained in:
Klaus Schmidinger 2013-01-13 12:04:51 +01:00
parent d1d157d755
commit a5a8bf0164
3 changed files with 16 additions and 2 deletions

View File

@ -1334,6 +1334,7 @@ Reinhard Nissl <rnissl@gmx.de>
for suggesting to add a remark indicating that the coordinates of Rect in a call to
cDevice::CanScaleVideo() are in the range of the width and height returned by
GetOsdSize()
for adding "repeat" function when using the keyboard to control VDR
Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the

View File

@ -7516,3 +7516,5 @@ Video Disk Recorder Revision History
- Fixed sorting recordings in case the locale ignores non-alphanumeric characters,
or if two folders have the same name, but one of them ends in an additional digit,
as in "abc" and "abc2" (reported by Andreas Mair).
- Added "repeat" function when using the keyboard to control VDR (thanks to Reinhard
Nissl).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: remote.c 2.5 2012/01/16 16:57:00 kls Exp $
* $Id: remote.c 2.6 2013/01/13 12:01:52 kls Exp $
*/
#include "remote.h"
@ -356,14 +356,25 @@ uint64_t cKbdRemote::ReadKeySequence(void)
void cKbdRemote::Action(void)
{
uint64_t LastCommand = 0;
bool Repeat = false;
while (Running()) {
uint64_t Command = ReadKeySequence();
if (LastCommand && Command != LastCommand && Repeat) {
if (!rawMode)
Put(LastCommand, false, true);
Repeat = false;
}
if (Command) {
if (rawMode || !Put(Command)) {
if (Command == LastCommand)
Repeat = true;
if (rawMode || !Put(Command, Repeat)) {
int func = MapCodeToFunc(Command);
if (func)
Put(KBDKEY(func));
}
}
LastCommand = Command;
}
}