diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2002-08-25 10:05:24 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2002-08-25 10:05:24 +0200 |
commit | e63b279d967564b847f19dbd694dab9a577acfb1 (patch) | |
tree | 8b77cadd84dc88a174daa3a1dd051991be7edb6d | |
parent | c6ed4da7a0e8d9bf5664ba2c4282e3c6cb6d7932 (diff) | |
download | vdr-e63b279d967564b847f19dbd694dab9a577acfb1.tar.gz vdr-e63b279d967564b847f19dbd694dab9a577acfb1.tar.bz2 |
Added cPalette::AllColors() for plugins that need to get the color entries of a cPalette
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | dvbosd.c | 4 | ||||
-rw-r--r-- | osdbase.c | 10 | ||||
-rw-r--r-- | osdbase.h | 15 |
4 files changed, 25 insertions, 6 deletions
@@ -1423,3 +1423,5 @@ Video Disk Recorder Revision History Zimmermann). - Added cDevice::NewOsd() to allow a derived cDevice class to implement its own OSD capabilities (thanks to Andreas Schultz). +- Added cPalette::AllColors() for plugins that need to get the color entries of + a cPalette (see osdbase.h). @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbosd.c 1.18 2002/08/04 10:13:21 kls Exp $ + * $Id: dvbosd.c 1.19 2002/08/25 09:53:51 kls Exp $ */ #include "dvbosd.h" @@ -92,7 +92,7 @@ void cDvbOsd::CommitWindow(cWindow *Window) // commit colors: int FirstColor = 0, LastColor = 0; const eDvbColor *pal; - while ((pal = Window->Colors(FirstColor, LastColor)) != NULL) + while ((pal = Window->NewColors(FirstColor, LastColor)) != NULL) Cmd(OSD_SetPalette, FirstColor, LastColor, 0, 0, 0, pal); // commit modified data: Cmd(OSD_SetBlock, Window->Width(), x1, y1, x2, y2, Window->Data(x1, y1)); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osdbase.c 1.6 2002/08/11 11:47:21 kls Exp $ + * $Id: osdbase.c 1.7 2002/08/25 10:02:36 kls Exp $ */ #include "osdbase.h" @@ -74,7 +74,7 @@ void cPalette::Reset(void) full = false; } -const eDvbColor *cPalette::Colors(int &FirstColor, int &LastColor) +const eDvbColor *cPalette::NewColors(int &FirstColor, int &LastColor) { for (FirstColor = 0; FirstColor < numColors; FirstColor++) { if (!fetched[FirstColor]) { @@ -87,6 +87,12 @@ const eDvbColor *cPalette::Colors(int &FirstColor, int &LastColor) return NULL; } +const eDvbColor *cPalette::AllColors(int &NumColors) +{ + NumColors = numColors; + return numColors ? color : NULL; +} + void cPalette::Take(const cPalette &Palette, tIndexes *Indexes) { for (int i = 0; i < Palette.numColors; i++) { @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osdbase.h 1.4 2002/07/13 14:45:55 kls Exp $ + * $Id: osdbase.h 1.5 2002/08/25 10:01:00 kls Exp $ */ #ifndef __OSDBASE_H @@ -56,7 +56,18 @@ public: cPalette(int Bpp); int Index(eDvbColor Color); void Reset(void); - const eDvbColor *Colors(int &FirstColor, int &LastColor); + const eDvbColor *NewColors(int &FirstColor, int &LastColor); + // With every call this function returns a consecutive range of + // color entries that have been added since the last call. The + // return value is the address of the first new color, and the + // index of the first and last new color are returned in the given + // int parameters. If there are no new color entries, NULL will + // be returned. + const eDvbColor *AllColors(int &NumColors); + // Returns a pointer to the complete color table and stores the + // number of valid entries in NumColors. If no colors have been + // stored yet, NumColors will be set to 0 and the function will + // return NULL. void Take(const cPalette &Palette, tIndexes *Indexes = NULL); }; |