Added cPalette::AllColors() for plugins that need to get the color entries of a cPalette

This commit is contained in:
Klaus Schmidinger 2002-08-25 10:05:24 +02:00
parent c6ed4da7a0
commit e63b279d96
4 changed files with 25 additions and 6 deletions

View File

@ -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).

View File

@ -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));

View File

@ -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++) {

View File

@ -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);
};