summaryrefslogtreecommitdiff
path: root/dvbosd.c
diff options
context:
space:
mode:
Diffstat (limited to 'dvbosd.c')
-rw-r--r--dvbosd.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/dvbosd.c b/dvbosd.c
index 87c8dec2..e076a3c9 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.31 2007/08/26 09:39:20 kls Exp $
+ * $Id: dvbosd.c 1.32 2007/09/16 08:55:54 kls Exp $
*/
#include "dvbosd.h"
@@ -32,6 +32,7 @@ public:
cDvbOsd(int Left, int Top, int OsdDev, uint Level);
virtual ~cDvbOsd();
virtual eOsdError CanHandleAreas(const tArea *Areas, int NumAreas);
+ virtual eOsdError SetAreas(const tArea *Areas, int NumAreas);
virtual void Flush(void);
};
@@ -106,6 +107,19 @@ eOsdError cDvbOsd::CanHandleAreas(const tArea *Areas, int NumAreas)
return Result;
}
+eOsdError cDvbOsd::SetAreas(const tArea *Areas, int NumAreas)
+{
+ if (shown) {
+ cBitmap *Bitmap;
+ for (int i = 0; (Bitmap = GetBitmap(i)) != NULL; i++) {
+ Cmd(OSD_SetWindow, 0, i + 1);
+ Cmd(OSD_Close);
+ }
+ shown = false;
+ }
+ return cOsd::SetAreas(Areas, NumAreas);
+}
+
void cDvbOsd::Cmd(OSD_Command cmd, int color, int x0, int y0, int x1, int y1, const void *data)
{
if (osdDev >= 0) {