mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Added cOsd::OpenRaw() to create a raw OSD (needed for displaying SPUs)
This commit is contained in:
parent
f2b637ed85
commit
5fb0a0ed18
1
HISTORY
1
HISTORY
@ -1368,3 +1368,4 @@ Video Disk Recorder Revision History
|
|||||||
of a 'cDvbPlayerControl *' in order to allow additional players to call this function.
|
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
|
cPlayer and cControl have been given the functions GetIndex() and GetReplayMode() to
|
||||||
allow access to the player's status.
|
allow access to the player's status.
|
||||||
|
- Added cOsd::OpenRaw() to create a raw OSD (needed for displaying SPUs).
|
||||||
|
12
osd.c
12
osd.c
@ -4,12 +4,13 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: osd.c 1.29 2002/06/16 13:24:00 kls Exp $
|
* $Id: osd.c 1.30 2002/07/13 12:46:30 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "osd.h"
|
#include "osd.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "device.h"
|
#include "device.h"
|
||||||
|
#include "dvbosd.h"
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
#include "status.h"
|
#include "status.h"
|
||||||
|
|
||||||
@ -19,7 +20,7 @@
|
|||||||
WINDOW *cOsd::window = NULL;
|
WINDOW *cOsd::window = NULL;
|
||||||
int cOsd::colorPairs[MaxColorPairs] = { 0 };
|
int cOsd::colorPairs[MaxColorPairs] = { 0 };
|
||||||
#else
|
#else
|
||||||
cDvbOsd *cOsd::osd = NULL;
|
cOsdBase *cOsd::osd = NULL;
|
||||||
#endif
|
#endif
|
||||||
int cOsd::cols = 0;
|
int cOsd::cols = 0;
|
||||||
int cOsd::rows = 0;
|
int cOsd::rows = 0;
|
||||||
@ -67,6 +68,11 @@ void cOsd::SetColor(eDvbColor colorFg, eDvbColor colorBg)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
cOsdBase *cOsd::OpenRaw(int x, int y)
|
||||||
|
{
|
||||||
|
return osd ? NULL : new cDvbOsd(cDevice::PrimaryDevice()->OsdDeviceHandle(), x, y);
|
||||||
|
}
|
||||||
|
|
||||||
void cOsd::Open(int w, int h)
|
void cOsd::Open(int w, int h)
|
||||||
{
|
{
|
||||||
int d = (h < 0) ? Setup.OSDheight + h : 0;
|
int d = (h < 0) ? Setup.OSDheight + h : 0;
|
||||||
@ -95,7 +101,7 @@ void cOsd::Open(int w, int h)
|
|||||||
int x = (720 - w + charWidth) / 2; //TODO PAL vs. NTSC???
|
int x = (720 - w + charWidth) / 2; //TODO PAL vs. NTSC???
|
||||||
int y = (576 - Setup.OSDheight * lineHeight) / 2 + d;
|
int y = (576 - Setup.OSDheight * lineHeight) / 2 + d;
|
||||||
//XXX
|
//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!)
|
//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
|
if (h / lineHeight == 5) { //XXX channel display
|
||||||
osd->Create(0, 0, w, h, 4);
|
osd->Create(0, 0, w, h, 4);
|
||||||
|
10
osd.h
10
osd.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: osd.h 1.32 2002/06/23 09:13:17 kls Exp $
|
* $Id: osd.h 1.33 2002/07/13 12:47:06 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __OSD_H
|
#ifndef __OSD_H
|
||||||
@ -14,7 +14,7 @@
|
|||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
#endif
|
#endif
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "dvbosd.h"
|
#include "osdbase.h"
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "osdbase.h"
|
#include "osdbase.h"
|
||||||
#include "tools.h"
|
#include "tools.h"
|
||||||
@ -62,12 +62,16 @@ private:
|
|||||||
static int colorPairs[MaxColorPairs];
|
static int colorPairs[MaxColorPairs];
|
||||||
static void SetColor(eDvbColor colorFg, eDvbColor colorBg = clrBackground);
|
static void SetColor(eDvbColor colorFg, eDvbColor colorBg = clrBackground);
|
||||||
#else
|
#else
|
||||||
static cDvbOsd *osd;
|
static cOsdBase *osd;
|
||||||
#endif
|
#endif
|
||||||
static int cols, rows;
|
static int cols, rows;
|
||||||
public:
|
public:
|
||||||
static void Initialize(void);
|
static void Initialize(void);
|
||||||
static void Shutdown(void);
|
static void Shutdown(void);
|
||||||
|
static cOsdBase *OpenRaw(int x, int y);
|
||||||
|
// Returns a raw OSD without any predefined windows or colors.
|
||||||
|
// If the "normal" OSD is currently in use, NULL will be returned.
|
||||||
|
// The caller must delete this object before the "normal" OSD is used again!
|
||||||
static void Open(int w, int h);
|
static void Open(int w, int h);
|
||||||
static void Close(void);
|
static void Close(void);
|
||||||
static void Clear(void);
|
static void Clear(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user