mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 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.
This commit is contained in:
16
osd.c
16
osd.c
@@ -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);
|
||||
|
Reference in New Issue
Block a user