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

Fixed a timing problem with OSD refresh and SVDRP

This commit is contained in:
Klaus Schmidinger 2000-11-11 12:21:38 +01:00
parent 36d187f64c
commit 6bc436aeed
2 changed files with 8 additions and 8 deletions

View File

@ -275,3 +275,4 @@ Video Disk Recorder Revision History
- Implemented "internationalization" (see 'i18n.c' for information on how to - Implemented "internationalization" (see 'i18n.c' for information on how to
add new languages). add new languages).
- Fixed learning keys on the PC keyboard (display oscillated). - Fixed learning keys on the PC keyboard (display oscillated).
- Fixed a timing problem with OSD refresh and SVDRP.

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: interface.c 1.30 2000/11/10 17:03:02 kls Exp $ * $Id: interface.c 1.31 2000/11/11 12:13:35 kls Exp $
*/ */
#include "interface.h" #include "interface.h"
@ -58,8 +58,7 @@ void cInterface::Close(void)
unsigned int cInterface::GetCh(bool Wait, bool *Repeat, bool *Release) unsigned int cInterface::GetCh(bool Wait, bool *Repeat, bool *Release)
{ {
if (open) Flush();
cDvbApi::PrimaryDvbApi->Flush();
if (!rcIo->InputAvailable()) if (!rcIo->InputAvailable())
cFile::AnyFileReady(-1, Wait ? 1000 : 0); cFile::AnyFileReady(-1, Wait ? 1000 : 0);
unsigned int Command; unsigned int Command;
@ -68,6 +67,7 @@ unsigned int cInterface::GetCh(bool Wait, bool *Repeat, bool *Release)
eKeys cInterface::GetKey(bool Wait) eKeys cInterface::GetKey(bool Wait)
{ {
Flush();
if (SVDRP) if (SVDRP)
SVDRP->Process(); SVDRP->Process();
eKeys Key = keyFromWait; eKeys Key = keyFromWait;
@ -90,8 +90,7 @@ void cInterface::PutKey(eKeys Key)
eKeys cInterface::Wait(int Seconds, bool KeepChar) eKeys cInterface::Wait(int Seconds, bool KeepChar)
{ {
if (open) Flush();
cDvbApi::PrimaryDvbApi->Flush();
eKeys Key = kNone; eKeys Key = kNone;
time_t timeout = time(NULL) + Seconds; time_t timeout = time(NULL) + Seconds;
for (;;) { for (;;) {
@ -325,7 +324,7 @@ void cInterface::QueryKeys(void)
WriteText(1, 1, tr("Learning Remote Control Keys")); WriteText(1, 1, tr("Learning Remote Control Keys"));
WriteText(1, 3, tr("Phase 1: Detecting RC code type")); WriteText(1, 3, tr("Phase 1: Detecting RC code type"));
WriteText(1, 5, tr("Press any key on the RC unit")); WriteText(1, 5, tr("Press any key on the RC unit"));
cDvbApi::PrimaryDvbApi->Flush(); Flush();
#ifndef REMOTE_KBD #ifndef REMOTE_KBD
unsigned char Code = 0; unsigned char Code = 0;
unsigned short Address; unsigned short Address;
@ -341,11 +340,11 @@ void cInterface::QueryKeys(void)
Keys.address = Address; Keys.address = Address;
WriteText(1, 5, tr("RC code detected!")); WriteText(1, 5, tr("RC code detected!"));
WriteText(1, 6, tr("Do not press any key...")); WriteText(1, 6, tr("Do not press any key..."));
cDvbApi::PrimaryDvbApi->Flush(); Flush();
rcIo->Flush(3000); rcIo->Flush(3000);
ClearEol(0, 5); ClearEol(0, 5);
ClearEol(0, 6); ClearEol(0, 6);
cDvbApi::PrimaryDvbApi->Flush(); Flush();
break; break;
} }
#endif #endif