diff -Nru vdr-1.6.0/device.h vdr-1.6.0-yaepg/device.h --- vdr-1.6.0/device.h 2008-03-23 14:14:49.000000000 +0100 +++ vdr-1.6.0-yaepg/device.h 2008-03-23 14:57:43.000000000 +0100 @@ -272,12 +272,12 @@ ///< Direction (only the sign of Direction is evaluated, positive values ///< switch to higher channel numbers). private: - eSetChannelResult SetChannel(const cChannel *Channel, bool LiveView); - ///< Sets the device to the given channel (general setup). protected: virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); ///< Sets the device to the given channel (actual physical setup). public: + eSetChannelResult SetChannel(const cChannel *Channel, bool LiveView); + ///< Sets the device to the given channel (general setup). static int CurrentChannel(void) { return primaryDevice ? currentChannel : 0; } ///< Returns the number of the current channel on the primary device. static void SetCurrentChannel(const cChannel *Channel) { currentChannel = Channel ? Channel->Number() : 0; } diff -Nru vdr-1.6.0/dvbosd.c vdr-1.6.0-yaepg/dvbosd.c --- vdr-1.6.0/dvbosd.c 2007-09-16 10:55:54.000000000 +0200 +++ vdr-1.6.0-yaepg/dvbosd.c 2008-03-23 14:57:43.000000000 +0100 @@ -80,6 +80,10 @@ Cmd(OSD_SetWindow, 0, i + 1); Cmd(OSD_Close); } + if (vidWin.bpp != 0) { + Cmd(OSD_SetWindow, 0, MAXNUMWINDOWS); + Cmd(OSD_Close); + } shown = false; } } @@ -115,6 +119,10 @@ Cmd(OSD_SetWindow, 0, i + 1); Cmd(OSD_Close); } + if (vidWin.bpp != 0) { + Cmd(OSD_SetWindow, 0, MAXNUMWINDOWS); + Cmd(OSD_Close); + } shown = false; } return cOsd::SetAreas(Areas, NumAreas); @@ -198,6 +206,11 @@ Cmd(OSD_SetWindow, 0, i + 1); Cmd(OSD_MoveWindow, 0, Left() + Bitmap->X0(), Top() + Bitmap->Y0()); } + if (vidWin.bpp != 0) { + Cmd(OSD_SetWindow, 0, MAXNUMWINDOWS); + Cmd(OSD_OpenRaw, vidWin.bpp, vidWin.x1, vidWin.y1, + vidWin.x2, vidWin.y2, (void *)0); + } shown = true; } } diff -Nru vdr-1.6.0/osd.c vdr-1.6.0-yaepg/osd.c --- vdr-1.6.0/osd.c 2008-03-23 13:09:07.000000000 +0100 +++ vdr-1.6.0-yaepg/osd.c 2008-03-23 14:57:43.000000000 +0100 @@ -738,6 +738,7 @@ } } Osds.Append(this); + vidWin.bpp = 0; } cOsd::~cOsd() diff -Nru vdr-1.6.0/osd.h vdr-1.6.0-yaepg/osd.h --- vdr-1.6.0/osd.h 2007-10-12 16:28:44.000000000 +0200 +++ vdr-1.6.0-yaepg/osd.h 2008-03-23 14:57:43.000000000 +0100 @@ -400,6 +400,7 @@ ///< 7: vertical, falling, upper virtual void Flush(void); ///< Actually commits all data to the OSD hardware. + tArea vidWin; }; class cOsdProvider {