diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2002-05-18 14:03:22 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2002-05-18 14:03:22 +0200 |
commit | bdccbbe93e9729944787d3158bee7a755d3bf286 (patch) | |
tree | 17073d49ff0d2d94672c7301a7771f0b2724e42e /osd.h | |
parent | 3e5b31af5e88bc4e43971a70b5add6f67cebb701 (diff) | |
download | vdr-bdccbbe93e9729944787d3158bee7a755d3bf286.tar.gz vdr-bdccbbe93e9729944787d3158bee7a755d3bf286.tar.bz2 |
Completely moved OSD handling out of the cDvbApi class, into the new cOsd
Diffstat (limited to 'osd.h')
-rw-r--r-- | osd.h | 39 |
1 files changed, 38 insertions, 1 deletions
@@ -4,14 +4,19 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osd.h 1.30 2002/05/18 12:36:30 kls Exp $ + * $Id: osd.h 1.31 2002/05/18 14:00:15 kls Exp $ */ #ifndef __OSD_H #define __OSD_H +#if defined(DEBUG_OSD) || defined(REMOTE_KBD) +#include <ncurses.h> +#endif #include "config.h" +#include "dvbosd.h" #include "interface.h" +#include "osdbase.h" #include "tools.h" #define MAXOSDITEMS (Setup.OSDheight - 4) @@ -47,6 +52,38 @@ enum eOSState { osUnknown, osUser10, }; +class cOsd { +private: + enum { charWidth = 12, // average character width + lineHeight = 27 // smallest text height + }; +#ifdef DEBUG_OSD + static WINDOW *window; + enum { MaxColorPairs = 16 }; + static int colorPairs[MaxColorPairs]; + static void SetColor(eDvbColor colorFg, eDvbColor colorBg = clrBackground); +#else + static cDvbOsd *osd; +#endif + static int cols, rows; +public: + static void Initialize(void); + static void Shutdown(void); + static void Open(int w, int h); + static void Close(void); + static void Clear(void); + static void Fill(int x, int y, int w, int h, eDvbColor color = clrBackground); + static void SetBitmap(int x, int y, const cBitmap &Bitmap); + static void ClrEol(int x, int y, eDvbColor color = clrBackground); + static int CellWidth(void); + static int LineHeight(void); + static int Width(unsigned char c); + static int WidthInCells(const char *s); + static eDvbFont SetFont(eDvbFont Font); + static void Text(int x, int y, const char *s, eDvbColor colorFg = clrWhite, eDvbColor colorBg = clrBackground); + static void Flush(void); + }; + class cOsdItem : public cListObject { private: const char *text; |