#! /bin/sh /usr/share/dpatch/dpatch-run ## opt-45_yaepg.dpatch by bball950@yahoo.com ## http://www.hoochvdr.info/yaepg/vdr-1.3.19-core-yaepg.diff ## ## Thomas Günther <tom@toms-cafe.de>: ## - adapted to VDR-1.3.25 ## - adapted to VDR-1.3.42 ## - adapted to VDR-1.5.2 ## - adapted to VDR-1.5.3 (removed special yaepg font) ## - adapted to VDR-1.5.9 ## Tobias Grimm <tg@e-tobi.net>: ## - applied modification from Michaël Nival that fixes a small bug ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: This patch is needed for the yaepg plugin. @DPATCH@ --- vdr-1.5.10/device.h +++ vdr-1.5.10/device.h @@ -238,12 +238,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; } --- vdr-1.5.10/dvbosd.c +++ vdr-1.5.10/dvbosd.c @@ -80,6 +80,10 @@ void cDvbOsd::SetActive(bool On) 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 @@ eOsdError cDvbOsd::SetAreas(const tArea 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 @@ void cDvbOsd::Flush(void) 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; } } --- vdr-1.5.10/osd.c +++ vdr-1.5.10/osd.c @@ -737,6 +737,7 @@ cOsd::cOsd(int Left, int Top, uint Level } } Osds.Append(this); + vidWin.bpp = 0; } cOsd::~cOsd() --- vdr-1.5.10/osd.h +++ vdr-1.5.10/osd.h @@ -400,6 +400,7 @@ ///< 7: vertical, falling, upper virtual void Flush(void); ///< Actually commits all data to the OSD hardware. + tArea vidWin; }; class cOsdProvider {