diff options
Diffstat (limited to 'dvbosd.h')
-rw-r--r-- | dvbosd.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/dvbosd.h b/dvbosd.h new file mode 100644 index 0000000..f7a5363 --- /dev/null +++ b/dvbosd.h @@ -0,0 +1,74 @@ +/* + * dvbosd.h: Interface to the DVB On Screen Display + * + * See the main source file 'vdr.c' for copyright information and + * how to reach the author. + * + * $Id: dvbosd.h 1.1 2000/10/01 15:00:00 kls Exp $ + */ + +#ifndef __DVBOSD_H +#define __DVBOSD_H + +// FIXME: these should be defined in ../DVB/driver/dvb.h!!! +typedef unsigned int __u32; +typedef unsigned short __u16; +typedef unsigned char __u8; + +#if defined(DEBUG_OSD) || defined(REMOTE_KBD) +#include <ncurses.h> +#endif +#include <stdio.h> +#include <dvb.h> +#include "font.h" + +enum eDvbColor { +#ifndef DEBUG_OSD + clrTransparent, +#endif + clrBackground, +#ifdef DEBUG_OSD + clrTransparent = clrBackground, + clrBlack = clrBackground, +#else + clrBlack, +#endif + clrRed, + clrGreen, + clrYellow, + clrBlue, + clrMagenta, + clrCyan, + clrWhite, + }; + +class cBitmap { +private: + cFont *font; +protected: + int width, height; + char *bitmap; + int dirtyX1, dirtyY1, dirtyX2, dirtyY2; + void Clean(void); +public: + cBitmap(int Width, int Height); + virtual ~cBitmap(); + void SetFont(eDvbFont Font); + bool Dirty(void); + void SetPixel(int x, int y, eDvbColor Color); + void Text(int x, int y, const char *s, eDvbColor ColorFg = clrWhite, eDvbColor ColorBg = clrBackground); + void Fill(int x1, int y1, int x2, int y2, eDvbColor Color); + void Clear(void); + }; + +class cDvbOsd : public cBitmap { +private: + int videoDev; + void Cmd(OSD_Command cmd, int color = 0, int x0 = 0, int y0 = 0, int x1 = 0, int y1 = 0, const void *data = NULL); +public: + cDvbOsd(int VideoDev, int x1, int y1, int x2, int y2, int Bpp); + ~cDvbOsd(); + void Flush(void); + }; + +#endif //__DVBOSD_H |