diff -Naur ./vdr-vanilla/config.h ./vdr-yaepghd/config.h --- ./vdr-vanilla/config.h 2010-09-12 18:58:03.045298800 +0200 +++ ./vdr-yaepghd/config.h 2010-09-12 19:19:50.575296412 +0200 @@ -36,6 +36,8 @@ // plugins to work with newer versions of the core VDR as long as no // VDR header files have changed. +#define YAEPGHDVERSNUM 2 + #define MAXPRIORITY 99 #define MAXLIFETIME 99 diff -Naur ./vdr-vanilla/osd.c ./vdr-yaepghd/osd.c --- ./vdr-vanilla/osd.c 2010-09-12 18:58:03.055298951 +0200 +++ ./vdr-yaepghd/osd.c 2010-09-12 19:19:50.575296412 +0200 @@ -753,6 +753,7 @@ width = height = 0; level = Level; active = false; + vidWin.bpp = 0; for (int i = 0; i < Osds.Size(); i++) { if (Osds[i]->level > level) { Osds.Insert(this, i); diff -Naur ./vdr-vanilla/osd.h ./vdr-yaepghd/osd.h --- ./vdr-vanilla/osd.h 2010-09-12 18:58:03.055298951 +0200 +++ ./vdr-yaepghd/osd.h 2010-09-12 19:19:50.575296412 +0200 @@ -270,6 +270,8 @@ int left, top, width, height; uint level; bool active; +public: + tArea vidWin; protected: cOsd(int Left, int Top, uint Level); ///< Initializes the OSD with the given coordinates. diff -Naur ./vdr-vanilla/PLUGINS/src/dvbsddevice/dvbsdffosd.c ./vdr-yaepghd/PLUGINS/src/dvbsddevice/dvbsdffosd.c --- ./vdr-vanilla/PLUGINS/src/dvbsddevice/dvbsdffosd.c 2010-09-12 18:58:03.035297477 +0200 +++ ./vdr-yaepghd/PLUGINS/src/dvbsddevice/dvbsdffosd.c 2010-09-12 19:16:54.645297211 +0200 @@ -51,6 +51,10 @@ osdMem = cap.val; #endif } + if (vidWin.bpp != 0) { + Cmd(OSD_SetWindow, 0, 5); + Cmd(OSD_Close); + } } cDvbSdFfOsd::~cDvbSdFfOsd() @@ -196,6 +200,10 @@ Cmd(OSD_SetWindow, 0, i + 1); Cmd(OSD_MoveWindow, 0, Left() + Bitmap->X0(), Top() + Bitmap->Y0()); } + if (vidWin.bpp != 0) { + Cmd(OSD_SetWindow, 0, 5); + Cmd(OSD_OpenRaw, vidWin.bpp, vidWin.x1, vidWin.y1, vidWin.x2, vidWin.y2, NULL); + } shown = true; } }