summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2004-07-18 10:20:31 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2004-07-18 10:20:31 +0200
commit39ad1fe179b66bedb7662ad0443633b0a085316a (patch)
treea58c842a8fc63cfc825b82e12dd57f8b9aad46ff
parent35724f07bd27020882b59cbc3e5c157d52b9cfda (diff)
downloadvdr-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--CONTRIBUTORS2
-rw-r--r--HISTORY2
-rw-r--r--dvbosd.c10
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
diff --git a/HISTORY b/HISTORY
index c60b6a8e..33d5e6e3 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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).
diff --git a/dvbosd.c b/dvbosd.c
index 8056499f..39032fd7 100644
--- a/dvbosd.c
+++ b/dvbosd.c
@@ -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()