summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2003-06-06 12:28:29 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2003-06-06 12:28:29 +0200
commit2a651d0ed0e7d029abcfdb58d76acf19c22da9c1 (patch)
treeb488d757a38de87ce8f61ab03913583a31b712ff
parent60ef7abfb1f53abc3d9fa1dab180457a59f427ef (diff)
downloadvdr-2a651d0ed0e7d029abcfdb58d76acf19c22da9c1.tar.gz
vdr-2a651d0ed0e7d029abcfdb58d76acf19c22da9c1.tar.bz2
Fixed OSD access in case none of the devices provides one
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY5
-rw-r--r--config.h6
-rw-r--r--osd.c22
4 files changed, 23 insertions, 11 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index ee0c0d4a..e968c719 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -90,6 +90,7 @@ Peter Hofmann <software@pxh.de>
Axel Gruber <axel@agm.de>
for his support in keeping the Premiere World channels up to date in 'channels.conf'
for helping to debug support for Viaccess CAMs
+ for reporting a problem in case none of the devices provides an OSD
Arnold Niessen <niessen@iae.nl> <arnold.niessen@philips.com>
for translating OSD texts to the Dutch language
diff --git a/HISTORY b/HISTORY
index 4eca5f52..782755f6 100644
--- a/HISTORY
+++ b/HISTORY
@@ -2234,3 +2234,8 @@ Video Disk Recorder Revision History
(thanks to Jon Burgess for pointing this out).
- Some corrections to the Finnish OSD texts (thanks to Jaakko Hyvätti).
- Officially released as version 1.2.0.
+
+2003-06-06: Version 1.2.1
+
+- Fixed OSD access in case none of the devices provides one (thanks to Axel
+ Gruber for reporting this one).
diff --git a/config.h b/config.h
index 409e22fa..29c058ef 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 1.163 2003/05/31 09:10:58 kls Exp $
+ * $Id: config.h 1.164 2003/06/06 12:28:20 kls Exp $
*/
#ifndef __CONFIG_H
@@ -19,8 +19,8 @@
#include "device.h"
#include "tools.h"
-#define VDRVERSION "1.2.0"
-#define VDRVERSNUM 10200 // Version * 10000 + Major * 100 + Minor
+#define VDRVERSION "1.2.1"
+#define VDRVERSNUM 10201 // Version * 10000 + Major * 100 + Minor
#define MAXPRIORITY 99
#define MAXLIFETIME 99
diff --git a/osd.c b/osd.c
index 9d8b72db..8f3343b8 100644
--- a/osd.c
+++ b/osd.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osd.c 1.42 2003/05/03 14:46:38 kls Exp $
+ * $Id: osd.c 1.43 2003/06/04 16:13:00 kls Exp $
*/
#include "osd.h"
@@ -99,6 +99,8 @@ void cOsd::Open(int w, int h)
//XXX
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 (!osd)
+ return;
if (h / lineHeight == 5) { //XXX channel display
osd->Create(0, 0, w, h, 4);
}
@@ -145,7 +147,8 @@ void cOsd::Clear(void)
Fill(0, 0, cols, rows, clrBackground);
refresh();
#else
- osd->Clear();
+ if (osd)
+ osd->Clear();
#endif
}
@@ -161,14 +164,16 @@ void cOsd::Fill(int x, int y, int w, int h, eDvbColor color)
}
wsyncup(window); // shouldn't be necessary because of 'syncok()', but w/o it doesn't work
#else
- osd->Fill(x * charWidth, y * lineHeight, (x + w) * charWidth - 1, (y + h) * lineHeight - 1, color);
+ if (osd)
+ osd->Fill(x * charWidth, y * lineHeight, (x + w) * charWidth - 1, (y + h) * lineHeight - 1, color);
#endif
}
void cOsd::SetBitmap(int x, int y, const cBitmap &Bitmap)
{
#ifndef DEBUG_OSD
- osd->SetBitmap(x, y, Bitmap);
+ if (osd)
+ osd->SetBitmap(x, y, Bitmap);
#endif
}
@@ -200,7 +205,7 @@ int cOsd::Width(unsigned char c)
#ifdef DEBUG_OSD
return 1;
#else
- return osd->Width(c);
+ return osd ? osd->Width(c) : 1;
#endif
}
@@ -209,7 +214,7 @@ int cOsd::WidthInCells(const char *s)
#ifdef DEBUG_OSD
return strlen(s);
#else
- return (osd->Width(s) + charWidth - 1) / charWidth;
+ return osd ? (osd->Width(s) + charWidth - 1) / charWidth : strlen(s);
#endif
}
@@ -218,7 +223,7 @@ eDvbFont cOsd::SetFont(eDvbFont Font)
#ifdef DEBUG_OSD
return Font;
#else
- return osd->SetFont(Font);
+ return osd ? osd->SetFont(Font) : Font;
#endif
}
@@ -231,7 +236,8 @@ void cOsd::Text(int x, int y, const char *s, eDvbColor colorFg, eDvbColor colorB
wmove(window, y, x); // ncurses wants 'y' before 'x'!
waddnstr(window, s, cols - x);
#else
- osd->Text(x * charWidth, y * lineHeight, s, colorFg, colorBg);
+ if (osd)
+ osd->Text(x * charWidth, y * lineHeight, s, colorFg, colorBg);
#endif
}