diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2004-07-18 10:20:31 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2004-07-18 10:20:31 +0200 |
commit | 39ad1fe179b66bedb7662ad0443633b0a085316a (patch) | |
tree | a58c842a8fc63cfc825b82e12dd57f8b9aad46ff | |
parent | 35724f07bd27020882b59cbc3e5c157d52b9cfda (diff) | |
download | vdr-39ad1fe179b66bedb7662ad0443633b0a085316a.tar.gz vdr-39ad1fe179b66bedb7662ad0443633b0a085316a.tar.bz2 |
Avoiding flashing effects in the OSD of full featured DVB cards by explicitly clearing the OSD windows before opening them
-rw-r--r-- | CONTRIBUTORS | 2 | ||||
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | dvbosd.c | 10 |
3 files changed, 13 insertions, 1 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 0b82353a..560c7b15 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1032,6 +1032,8 @@ Marco Schlüßler <marco@lordzodiac.de> for pointing out that it is unnecessary to add section filters to the list of filters if they can't be opened for fixing handling error case '-1' when polling section filters + for suggesting to avoiding flashing effects in the OSD of full featured DVB cards + by explicitly clearing the OSD windows before opening them Jürgen Schmitz <j.schmitz@web.de> for reporting a bug in displaying the current channel when switching via the SVDRP @@ -2954,3 +2954,5 @@ Video Disk Recorder Revision History - Fixed handling error case '-1' when polling CAM connections. - Making sure the OSD reports oeWrongAlignment errors before any oeAreasOverlap error (suggested by Reinhard Nissl). +- Avoiding flashing effects in the OSD of full featured DVB cards by explicitly + clearing the OSD windows before opening them (suggested by Marco Schlüßler). @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbosd.c 1.23 2004/06/12 13:10:03 kls Exp $ + * $Id: dvbosd.c 1.24 2004/07/18 10:20:05 kls Exp $ */ #include "dvbosd.h" @@ -39,6 +39,14 @@ cDvbOsd::cDvbOsd(int Left, int Top, int OsdDev) shown = false; if (osdDev < 0) esyslog("ERROR: illegal OSD device handle (%d)!", osdDev); + else { + // must clear all windows here to avoid flashing effects - doesn't work if done + // in Flush() only for the windows that are actually used... + for (int i = 0; i < MAXNUMWINDOWS; i++) { + Cmd(OSD_SetWindow, 0, i + 1); + Cmd(OSD_Clear); + } + } } cDvbOsd::~cDvbOsd() |