diff options
author | lordjaxom <lordjaxom> | 2004-06-05 18:06:22 +0000 |
---|---|---|
committer | lordjaxom <lordjaxom> | 2004-06-05 18:06:22 +0000 |
commit | 6094765d94e4caaf0813039dff826b731f277753 (patch) | |
tree | fed79334167f26d5a81a6cae9be3f1341375a36f /patches | |
parent | e0c2ee1d37c0f213f22a04df71710bebe3526f85 (diff) | |
download | vdr-plugin-text2skin-6094765d94e4caaf0813039dff826b731f277753.tar.gz vdr-plugin-text2skin-6094765d94e4caaf0813039dff826b731f277753.tar.bz2 |
- added scrollable texts and "SymbolScrollUp" and "SymbolScrollDown"v0.0.1
- added "MenuText", "MenuEventTitle", "MenuEventShortText",
"MenuEventDescription", "MenuEventTime", "MenuRecording",
"SymbolEventRunning", "SymbolEventTimer" and "SymbolEventVPS"
- implemented image caching
- added english and german README
- removed some workarounds, and added a patch to vdr to the tree (will be
included in 1.3.10)
- fixed two bugs when displaying replay symbols
- implemented tabbed texts in menu
Diffstat (limited to 'patches')
-rw-r--r-- | patches/vdr-1.3.9-osd.diff | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/patches/vdr-1.3.9-osd.diff b/patches/vdr-1.3.9-osd.diff new file mode 100644 index 0000000..0da295b --- /dev/null +++ b/patches/vdr-1.3.9-osd.diff @@ -0,0 +1,106 @@ +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. |