diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-07-21 18:00:00 +0200 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-07-21 18:00:00 +0200 |
commit | a4112a96a67dbeb1cd6a63d2b4fa4b837462f467 (patch) | |
tree | 5542f0478dbba7715da703b2864fbfda640d6612 /osd.c | |
parent | 54d069c95c546d6b12f6effc1af7a0274b7c31e4 (diff) | |
download | vdr-patch-lnbsharing-a4112a96a67dbeb1cd6a63d2b4fa4b837462f467.tar.gz vdr-patch-lnbsharing-a4112a96a67dbeb1cd6a63d2b4fa4b837462f467.tar.bz2 |
Version 1.1.5vdr-1.1.5
- Added direct access to the index data of cPalette (needed for displaying SPUs,
thanks to Andreas Schultz).
- The status monitor function cStatus::Replaying() now gets a 'cControl *' argument instead
of a 'cDvbPlayerControl *' in order to allow additional players to call this function.
cPlayer and cControl have been given the functions GetIndex() and GetReplayMode() to
allow access to the player's status.
- Added cOsd::OpenRaw() to create a raw OSD (needed for displaying SPUs).
- Changed the symantics of the Name parameter in cStatus::Recording() and
cStatus::Replaying(). It is no longer the full directory name of the recording,
but rather just the basic name. This has been changed to allow players that can't
provide a name to simply use a string that describes the player type (like, e.g.,
"DVD").
- Fixed a hangup when switching to the next file during replay.
- Fixed a possible race condition in the cDvbPlayer (thanks to Andreas Schultz
for pointing out this one).
- Disabled channels on Transponder 12070 in 'channels.conf', which apparently no longer transmits.
Diffstat (limited to 'osd.c')
-rw-r--r-- | osd.c | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -4,12 +4,13 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osd.c 1.29 2002/06/16 13:24:00 kls Exp $ + * $Id: osd.c 1.31 2002/07/14 10:57:45 kls Exp $ */ #include "osd.h" #include <string.h> #include "device.h" +#include "dvbosd.h" #include "i18n.h" #include "status.h" @@ -19,7 +20,7 @@ WINDOW *cOsd::window = NULL; int cOsd::colorPairs[MaxColorPairs] = { 0 }; #else - cDvbOsd *cOsd::osd = NULL; + cOsdBase *cOsd::osd = NULL; #endif int cOsd::cols = 0; int cOsd::rows = 0; @@ -67,6 +68,15 @@ void cOsd::SetColor(eDvbColor colorFg, eDvbColor colorBg) } #endif +cOsdBase *cOsd::OpenRaw(int x, int y) +{ +#ifdef DEBUG_OSD + return NULL; +#else + return osd ? NULL : new cDvbOsd(cDevice::PrimaryDevice()->OsdDeviceHandle(), x, y); +#endif +} + void cOsd::Open(int w, int h) { int d = (h < 0) ? Setup.OSDheight + h : 0; @@ -95,7 +105,7 @@ void cOsd::Open(int w, int h) int x = (720 - w + charWidth) / 2; //TODO PAL vs. NTSC??? int y = (576 - Setup.OSDheight * lineHeight) / 2 + d; //XXX - osd = new cDvbOsd(cDevice::PrimaryDevice()->OsdDeviceHandle(), x, y); + osd = OpenRaw(x, y); //XXX TODO this should be transferred to the places where the individual windows are requested (there's too much detailed knowledge here!) if (h / lineHeight == 5) { //XXX channel display osd->Create(0, 0, w, h, 4); |