diff options
Diffstat (limited to 'patches/vdr-1.3.9-osd.diff')
-rw-r--r-- | patches/vdr-1.3.9-osd.diff | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/patches/vdr-1.3.9-osd.diff b/patches/vdr-1.3.9-osd.diff deleted file mode 100644 index 0da295b..0000000 --- a/patches/vdr-1.3.9-osd.diff +++ /dev/null @@ -1,106 +0,0 @@ -diff -Nru -x PLUGINS o/vdr-1.3.9/osd.c vdr-1.3.9/osd.c ---- o/vdr-1.3.9/osd.c 2004-05-28 17:33:22.000000000 +0200 -+++ vdr-1.3.9/osd.c 2004-06-05 17:25:33.036994648 +0200 -@@ -244,7 +246,7 @@ - return Result; - } - --bool cBitmap::SetXpm(char *Xpm[]) -+bool cBitmap::SetXpm(char *Xpm[], bool IgnoreNone) - { - char **p = Xpm; - int w, h, n, c; -@@ -257,10 +259,11 @@ - return false; - } - int b = 0; -- while (1 << (1 << b) < n) -+ while (1 << (1 << b) < (IgnoreNone ? n - 1 : n)) - b++; - SetBpp(1 << b); - SetSize(w, h); -+ int NoneColorIndex = MAXNUMCOLORS; - for (int i = 0; i < n; i++) { - const char *s = *++p; - if (int(strlen(s)) < c) { -@@ -273,14 +276,18 @@ - return false; - } - s = skipspace(s + 1); -- if (strcasecmp(s, "none") == 0) -- s = "#00000000"; -+ if (strcasecmp(s, "none") == 0) { -+ s = "#00000000"; -+ NoneColorIndex = i; -+ if (IgnoreNone) -+ continue; -+ } - if (*s != '#') { - esyslog("ERROR: unknown color code in XPM: '%c'", *s); - return false; - } - tColor color = strtoul(++s, NULL, 16) | 0xFF000000; -- SetColor(i, color); -+ SetColor((IgnoreNone && i > NoneColorIndex) ? i - 1 : i, color); - } - for (int y = 0; y < h; y++) { - const char *s = *++p; -@@ -295,13 +302,17 @@ - return false; - } - if (strncmp(Xpm[i + 1], s, c) == 0) { -- SetIndex(x, y, i); -+ if (i == NoneColorIndex) -+ NoneColorIndex = MAXNUMCOLORS; -+ SetIndex(x, y, (IgnoreNone && i > NoneColorIndex) ? i - 1 : i); - break; - } - } - s += c; - } - } -+ if (NoneColorIndex < MAXNUMCOLORS && !IgnoreNone) -+ return SetXpm(Xpm, true); - return true; - } - -@@ -354,7 +365,8 @@ - int ch = Height ? Height : h; - if (!Intersects(x, y, x + cw - 1, y + ch - 1)) - return; -- DrawRectangle(x, y, x + cw - 1, y + ch - 1, ColorBg); -+ if (ColorBg != clrTransparent) -+ DrawRectangle(x, y, x + cw - 1, y + ch - 1, ColorBg); - limit = x + cw - x0; - if (Width) { - if ((Alignment & taLeft) != 0) -@@ -395,7 +408,8 @@ - for (int row = 0; row < h; row++) { - cFont::tPixelData PixelData = CharData->lines[row]; - for (int col = CharData->width; col-- > 0; ) { -- SetIndex(x + col, y + row, (PixelData & 1) ? fg : bg); -+ if (ColorBg != clrTransparent || (PixelData & 1)) -+ SetIndex(x + col, y + row, (PixelData & 1) ? fg : bg); - PixelData >>= 1; - } - } -diff -Nru -x PLUGINS o/vdr-1.3.9/osd.h vdr-1.3.9/osd.h ---- o/vdr-1.3.9/osd.h 2004-05-29 16:02:47.000000000 +0200 -+++ vdr-1.3.9/osd.h 2004-06-05 17:15:17.809523440 +0200 -@@ -136,9 +136,15 @@ - bool LoadXpm(const char *FileName); - ///< Calls SetXpm() with the data from the file FileName. - ///< Returns true if the operation was successful. -- bool SetXpm(char *Xpm[]); -+ bool SetXpm(char *Xpm[], bool IgnoreNone = false); - ///< Sets this bitmap to the given XPM data. Any previous bitmap or - ///< palette data will be overwritten with the new data. -+ ///< If IgnoreNone is true, a "none" color entry will be ignored. -+ ///< Only set IgnoreNone to true if you know that there is a "none" -+ ///< color entry in the XPM data and that this entry is not used! -+ ///< If SetXpm() is called with IgnoreNone set to false and the XPM -+ ///< data contains an unused "none" entry, it will be automatically -+ ///< called again with IgnoreNone set to true. - ///< Returns true if the operation was successful. - void SetIndex(int x, int y, tIndex Index); - ///< Sets the index at the given coordinates to Index. |