diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2007-10-12 14:52:30 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2007-10-12 14:52:30 +0200 |
commit | 0c8cda9bd007bba5b6dbae5fabc4d741d1a3ac4c (patch) | |
tree | a22c8317f28226d78095534c9c5b1f7119265415 /dvbosd.c | |
parent | 3a4b7f065ce64a81214cc837841378f979086481 (diff) | |
download | vdr-0c8cda9bd007bba5b6dbae5fabc4d741d1a3ac4c.tar.gz vdr-0c8cda9bd007bba5b6dbae5fabc4d741d1a3ac4c.tar.bz2 |
Implemented handling DVB subtitles
Diffstat (limited to 'dvbosd.c')
-rw-r--r-- | dvbosd.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbosd.c 1.31 2007/08/26 09:39:20 kls Exp $ + * $Id: dvbosd.c 1.32 2007/09/16 08:55:54 kls Exp $ */ #include "dvbosd.h" @@ -32,6 +32,7 @@ public: cDvbOsd(int Left, int Top, int OsdDev, uint Level); virtual ~cDvbOsd(); virtual eOsdError CanHandleAreas(const tArea *Areas, int NumAreas); + virtual eOsdError SetAreas(const tArea *Areas, int NumAreas); virtual void Flush(void); }; @@ -106,6 +107,19 @@ eOsdError cDvbOsd::CanHandleAreas(const tArea *Areas, int NumAreas) return Result; } +eOsdError cDvbOsd::SetAreas(const tArea *Areas, int NumAreas) +{ + if (shown) { + cBitmap *Bitmap; + for (int i = 0; (Bitmap = GetBitmap(i)) != NULL; i++) { + Cmd(OSD_SetWindow, 0, i + 1); + Cmd(OSD_Close); + } + shown = false; + } + return cOsd::SetAreas(Areas, NumAreas); +} + void cDvbOsd::Cmd(OSD_Command cmd, int color, int x0, int y0, int x1, int y1, const void *data) { if (osdDev >= 0) { |