diff --git a/CONTRIBUTORS b/CONTRIBUTORS index d3050af1..85d37e91 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -285,3 +285,6 @@ Gerald Raaf Andreas Roedl for adding some DVB-T channels for Berlin (Germany) to channels.conf.terr + +Jean Martin + for pointing out a problem with OSD color palette handling on "big endian" systems diff --git a/HISTORY b/HISTORY index c6da6166..483170bb 100644 --- a/HISTORY +++ b/HISTORY @@ -1191,9 +1191,11 @@ Video Disk Recorder Revision History same name was manually deleted on a system with more than one video directory (thanks to Dirk Wiebel for reporting this one). -2002-04-12: Version 1.0.1 +2002-04-13: Version 1.0.1 - Added some DVB-T channels for Berlin (Germany) to channels.conf.terr (thanks to Andreas Roedl). - Implemented enhanced string editing with upper-/lowercase, insert/overwrite and delete (thanks to Sergei Haller). +- Fixed color palette handling on "big endian" systems (thanks to Jean Martin + for pointing out this one). diff --git a/dvbosd.c b/dvbosd.c index c3484300..eb962613 100644 --- a/dvbosd.c +++ b/dvbosd.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbosd.c 1.12 2002/01/13 16:25:18 kls Exp $ + * $Id: dvbosd.c 1.13 2002/04/13 11:34:48 kls Exp $ */ #include "dvbosd.h" @@ -25,6 +25,9 @@ cPalette::cPalette(int Bpp) int cPalette::Index(eDvbColor Color) { +#if __BYTE_ORDER == __BIG_ENDIAN + Color = eDvbColor(((Color & 0xFF) << 24) | ((Color & 0xFF00) << 8) | ((Color & 0xFF0000) >> 8) | ((Color & 0xFF000000) >> 24)); +#endif for (int i = 0; i < numColors; i++) { if (color[i] == Color) { used[i] = true;