1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

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 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 cDevice::CanScaleVideo() are in the range of the width and height returned by
GetOsdSize() GetOsdSize()
for adding "repeat" function when using the keyboard to control VDR
Richard Robson <richard_robson@beeb.net> Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the 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, - 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, 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). 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 * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "remote.h"
@ -356,14 +356,25 @@ uint64_t cKbdRemote::ReadKeySequence(void)
void cKbdRemote::Action(void) void cKbdRemote::Action(void)
{ {
uint64_t LastCommand = 0;
bool Repeat = false;
while (Running()) { while (Running()) {
uint64_t Command = ReadKeySequence(); uint64_t Command = ReadKeySequence();
if (LastCommand && Command != LastCommand && Repeat) {
if (!rawMode)
Put(LastCommand, false, true);
Repeat = false;
}
if (Command) { if (Command) {
if (rawMode || !Put(Command)) { if (Command == LastCommand)
Repeat = true;
if (rawMode || !Put(Command, Repeat)) {
int func = MapCodeToFunc(Command); int func = MapCodeToFunc(Command);
if (func) if (func)
Put(KBDKEY(func)); Put(KBDKEY(func));
} }
} }
LastCommand = Command;
} }
} }