Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > da95e7e5c21cf72a778ff56c7941399c > files > 33

vdr-1.6.0-4mdv2008.0.src.rpm

#! /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 {