summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2009-05-03 17:15:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2009-05-03 17:15:00 +0200
commit991eda006700f1703bcec528c1ff178a4cab9048 (patch)
tree11f216938606e63027bc717e3d36668df646f474
parent733a2becc44a02daf10b97d24b8a9c8b00de3964 (diff)
downloadvdr-patches-991eda006700f1703bcec528c1ff178a4cab9048.tar.gz
vdr-patches-991eda006700f1703bcec528c1ff178a4cab9048.tar.bz2
Version 1.7.7
- The new function cDevice::GetVideoSize() returns the size and aspect ratio of the video material currently displayed. This function is used to determine the proper size of the OSD. Plugin authors should implement this function in classes derived from cDevice, if they are able to replay video. - The OSD and font sizes are now defined in percent of the actual video display size. The maximum OSD size has been raised to 1920x1080, to allow full screen OSD on HD systems. - The OSD size is now automatically adjusted to the actual video display (provided the output device implements the GetVideoSize() function). - cFrameDetector::Analyze() now syncs on the TS packet sync bytes (thanks to Oliver Endriss for reporting broken index generation after a buffer overflow).
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY14
-rw-r--r--MANUAL22
-rw-r--r--PLUGINS.html11
-rw-r--r--config.c32
-rw-r--r--config.h23
-rw-r--r--device.c14
-rw-r--r--device.h12
-rw-r--r--dvbdevice.c19
-rw-r--r--dvbdevice.h3
-rw-r--r--font.c6
-rw-r--r--font.h3
-rw-r--r--menu.c52
-rw-r--r--menuitems.c68
-rw-r--r--menuitems.h14
-rw-r--r--osd.c30
-rw-r--r--osd.h10
-rw-r--r--po/ca_ES.po28
-rw-r--r--po/cs_CZ.po28
-rw-r--r--po/da_DK.po28
-rw-r--r--po/de_DE.po28
-rw-r--r--po/el_GR.po22
-rw-r--r--po/es_ES.po28
-rw-r--r--po/et_EE.po28
-rw-r--r--po/fi_FI.po28
-rw-r--r--po/fr_FR.po28
-rw-r--r--po/hr_HR.po28
-rw-r--r--po/hu_HU.po28
-rw-r--r--po/it_IT.po28
-rw-r--r--po/nl_NL.po28
-rw-r--r--po/nn_NO.po18
-rw-r--r--po/pl_PL.po28
-rw-r--r--po/pt_PT.po28
-rw-r--r--po/ro_RO.po28
-rw-r--r--po/ru_RU.po28
-rw-r--r--po/sl_SI.po28
-rw-r--r--po/sv_SE.po28
-rw-r--r--po/tr_TR.po28
-rw-r--r--po/uk_UA.po28
-rw-r--r--po/zh_CN.po28
-rw-r--r--remux.c9
-rw-r--r--vdr.c8
42 files changed, 600 insertions, 379 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 18c326c..7bdc251 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -671,6 +671,7 @@ Oliver Endriss <o.endriss@gmx.de>
for reporting that the video type is unnecessarily written into channels.conf if
VPID is 0
for reporting chirping sound disturbences at editing points in TS recordings
+ for reporting broken index generation in TS recordings after a buffer overflow
Reinhard Walter Buchner <rw.buchner@freenet.de>
for adding some satellites to 'sources.conf'
diff --git a/HISTORY b/HISTORY
index aa547be..d94e161 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6060,3 +6060,17 @@ Video Disk Recorder Revision History
- Added a note to the INSTALL file about using subdirectories to split a large
disk into separate areas for VDR's video data and other stuff (suggested by
Udo Richter).
+
+2009-05-03: Version 1.7.7
+
+- The new function cDevice::GetVideoSize() returns the size and aspect ratio
+ of the video material currently displayed. This function is used to determine
+ the proper size of the OSD. Plugin authors should implement this function in
+ classes derived from cDevice, if they are able to replay video.
+- The OSD and font sizes are now defined in percent of the actual video display
+ size. The maximum OSD size has been raised to 1920x1080, to allow full
+ screen OSD on HD systems.
+- The OSD size is now automatically adjusted to the actual video display
+ (provided the output device implements the GetVideoSize() function).
+- cFrameDetector::Analyze() now syncs on the TS packet sync bytes (thanks to
+ Oliver Endriss for reporting broken index generation after a buffer overflow).
diff --git a/MANUAL b/MANUAL
index bb128f5..ebf89fd 100644
--- a/MANUAL
+++ b/MANUAL
@@ -489,12 +489,13 @@ Version 1.6
Theme = Default Defines the "theme" to use with the current skin.
- Left = 54 The top and left offset of the OSD.
- Top = 45 The valid ranges are left=0...672, top=0...567.
+ Left = 8 The left and top offset of the OSD, in percent of the
+ Top = 8 total video display width and height, respectively.
+ The valid range is 0...50%.
- Width = 624 The width and height of the OSD.
- Height = 486 The valid ranges are width=480...672, height=324...567.
- The Width must be a multiple of 8.
+ Width = 87 The width and height of the OSD, in percent of the
+ Height = 84 total video display width and height, respectively.
+ The valid range is 50...100%.
Message time = 1 The time (in seconds) how long an informational
message shall be displayed on the OSD. The valid range
@@ -516,11 +517,12 @@ Version 1.6
Fixed font = Courier:Bold
The names of the various fonts to use.
- Default font size = 22
- Small font size = 18
- Fixed font size = 20
- The sizes (in pixel) of the various fonts. Valid range is
- 10...64.
+ Default font size = 3.8
+ Small font size = 3.5
+ Fixed font size = 3.1
+ The sizes (in percent of the total video display height)
+ of the various fonts. The valid range is 1...10%, at
+ a resolution of 0.1%.
Channel info position = bottom
The position of the channel info window in the OSD
diff --git a/PLUGINS.html b/PLUGINS.html
index 719e70f..344015b 100644
--- a/PLUGINS.html
+++ b/PLUGINS.html
@@ -1939,6 +1939,17 @@ user - whether this goes through OSD facilities of the physical device (like
a "full featured" DVB card) or through a graphics adapter that overlays its
output with the video signal, doesn't matter.
+<div class="modified">
+In order to be able to determine the proper size of the OSD, the device
+should implement the function
+
+<p><table><tr><td class="code"><pre>
+virtual void GetVideoSize(int &amp;Width, int &amp;Height, eVideoAspect &amp;Aspect);
+</pre></td></tr></table><p>
+
+By default, an OSD size of 480x324 with an aspect ratio of 4:3 is assumed.
+</div modified>
+
<p>
<b>Initializing new devices</b>
<p>
diff --git a/config.c b/config.c
index 1132b12..669228b 100644
--- a/config.c
+++ b/config.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.c 2.1 2009/01/24 15:05:32 kls Exp $
+ * $Id: config.c 2.2 2009/05/03 13:58:08 kls Exp $
*/
#include "config.h"
@@ -262,6 +262,10 @@ cSetup::cSetup(void)
UseDolbyDigital = 1;
ChannelInfoPos = 0;
ChannelInfoTime = 5;
+ OSDLeftP = 0.08;
+ OSDTopP = 0.08;
+ OSDWidthP = 0.87;
+ OSDHeightP = 0.84;
OSDLeft = 54;
OSDTop = 45;
OSDWidth = 624;
@@ -272,6 +276,9 @@ cSetup::cSetup(void)
strcpy(FontOsd, DefaultFontOsd);
strcpy(FontSml, DefaultFontSml);
strcpy(FontFix, DefaultFontFix);
+ FontOsdSizeP = 0.038;
+ FontSmlSizeP = 0.035;
+ FontFixSizeP = 0.031;
FontOsdSize = 22;
FontSmlSize = 18;
FontFixSize = 20;
@@ -324,6 +331,11 @@ void cSetup::Store(const char *Name, int Value, const char *Plugin)
Store(Name, cString::sprintf("%d", Value), Plugin);
}
+void cSetup::Store(const char *Name, double &Value, const char *Plugin)
+{
+ Store(Name, cString::sprintf("%f", Value), Plugin);
+}
+
bool cSetup::Load(const char *FileName)
{
if (cConfig<cSetupLine>::Load(FileName, true)) {
@@ -435,16 +447,23 @@ bool cSetup::Parse(const char *Name, const char *Value)
else if (!strcasecmp(Name, "UseDolbyDigital")) UseDolbyDigital = atoi(Value);
else if (!strcasecmp(Name, "ChannelInfoPos")) ChannelInfoPos = atoi(Value);
else if (!strcasecmp(Name, "ChannelInfoTime")) ChannelInfoTime = atoi(Value);
+ else if (!strcasecmp(Name, "OSDLeftP")) OSDLeftP = atof(Value);
+ else if (!strcasecmp(Name, "OSDTopP")) OSDTopP = atof(Value);
+ else if (!strcasecmp(Name, "OSDWidthP")) OSDWidthP = atof(Value);
+ else if (!strcasecmp(Name, "OSDHeightP")) OSDHeightP = atof(Value);
else if (!strcasecmp(Name, "OSDLeft")) OSDLeft = atoi(Value);
else if (!strcasecmp(Name, "OSDTop")) OSDTop = atoi(Value);
- else if (!strcasecmp(Name, "OSDWidth")) { OSDWidth = atoi(Value); if (OSDWidth < 100) OSDWidth *= 12; OSDWidth &= ~0x07; } // OSD width must be a multiple of 8
- else if (!strcasecmp(Name, "OSDHeight")) { OSDHeight = atoi(Value); if (OSDHeight < 100) OSDHeight *= 27; }
+ else if (!strcasecmp(Name, "OSDWidth")) { OSDWidth = atoi(Value); OSDWidth &= ~0x07; } // OSD width must be a multiple of 8
+ else if (!strcasecmp(Name, "OSDHeight")) OSDHeight = atoi(Value);
else if (!strcasecmp(Name, "OSDMessageTime")) OSDMessageTime = atoi(Value);
else if (!strcasecmp(Name, "UseSmallFont")) UseSmallFont = atoi(Value);
else if (!strcasecmp(Name, "AntiAlias")) AntiAlias = atoi(Value);
else if (!strcasecmp(Name, "FontOsd")) Utf8Strn0Cpy(FontOsd, Value, MAXFONTNAME);
else if (!strcasecmp(Name, "FontSml")) Utf8Strn0Cpy(FontSml, Value, MAXFONTNAME);
else if (!strcasecmp(Name, "FontFix")) Utf8Strn0Cpy(FontFix, Value, MAXFONTNAME);
+ else if (!strcasecmp(Name, "FontOsdSizeP")) FontOsdSizeP = atof(Value);
+ else if (!strcasecmp(Name, "FontSmlSizeP")) FontSmlSizeP = atof(Value);
+ else if (!strcasecmp(Name, "FontFixSizeP")) FontFixSizeP = atof(Value);
else if (!strcasecmp(Name, "FontOsdSize")) FontOsdSize = atoi(Value);
else if (!strcasecmp(Name, "FontSmlSize")) FontSmlSize = atoi(Value);
else if (!strcasecmp(Name, "FontFixSize")) FontFixSize = atoi(Value);
@@ -518,6 +537,10 @@ bool cSetup::Save(void)
Store("UseDolbyDigital", UseDolbyDigital);
Store("ChannelInfoPos", ChannelInfoPos);
Store("ChannelInfoTime", ChannelInfoTime);
+ Store("OSDLeftP", OSDLeftP);
+ Store("OSDTopP", OSDTopP);
+ Store("OSDWidthP", OSDWidthP);
+ Store("OSDHeightP", OSDHeightP);
Store("OSDLeft", OSDLeft);
Store("OSDTop", OSDTop);
Store("OSDWidth", OSDWidth);
@@ -528,6 +551,9 @@ bool cSetup::Save(void)
Store("FontOsd", FontOsd);
Store("FontSml", FontSml);
Store("FontFix", FontFix);
+ Store("FontOsdSizeP", FontOsdSizeP);
+ Store("FontSmlSizeP", FontSmlSizeP);
+ Store("FontFixSizeP", FontFixSizeP);
Store("FontOsdSize", FontOsdSize);
Store("FontSmlSize", FontSmlSize);
Store("FontFixSize", FontFixSize);
diff --git a/config.h b/config.h
index 8dae456..5a884ca 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 2.8 2009/04/12 14:20:52 kls Exp $
+ * $Id: config.h 2.9 2009/05/03 13:15:35 kls Exp $
*/
#ifndef __CONFIG_H
@@ -22,13 +22,13 @@
// VDR's own version number:
-#define VDRVERSION "1.7.6"
-#define VDRVERSNUM 10706 // Version * 10000 + Major * 100 + Minor
+#define VDRVERSION "1.7.7"
+#define VDRVERSNUM 10707 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number:
-#define APIVERSION "1.7.6"
-#define APIVERSNUM 10706 // Version * 10000 + Major * 100 + Minor
+#define APIVERSION "1.7.7"
+#define APIVERSNUM 10707 // Version * 10000 + Major * 100 + Minor
// When loading plugins, VDR searches them by their APIVERSION, which
// may be smaller than VDRVERSION in case there have been no changes to
@@ -39,10 +39,10 @@
#define MAXPRIORITY 99
#define MAXLIFETIME 99
-#define MINOSDWIDTH 480
-#define MAXOSDWIDTH 672
-#define MINOSDHEIGHT 324
-#define MAXOSDHEIGHT 567
+#define MINOSDWIDTH 480
+#define MAXOSDWIDTH 1920
+#define MINOSDHEIGHT 324
+#define MAXOSDHEIGHT 1080
#define MaxFileName 256
#define MaxSkinName 16
@@ -195,6 +195,7 @@ private:
cSetupLine *Get(const char *Name, const char *Plugin = NULL);
void Store(const char *Name, const char *Value, const char *Plugin = NULL, bool AllowMultiple = false);
void Store(const char *Name, int Value, const char *Plugin = NULL);
+ void Store(const char *Name, double &Value, const char *Plugin = NULL);
public:
// Also adjust cMenuSetup (menu.c) when adding parameters here!
int __BeginData__;
@@ -243,6 +244,7 @@ public:
int UseDolbyDigital;
int ChannelInfoPos;
int ChannelInfoTime;
+ double OSDLeftP, OSDTopP, OSDWidthP, OSDHeightP;
int OSDLeft, OSDTop, OSDWidth, OSDHeight;
int OSDMessageTime;
int UseSmallFont;
@@ -250,6 +252,9 @@ public:
char FontOsd[MAXFONTNAME];
char FontSml[MAXFONTNAME];
char FontFix[MAXFONTNAME];
+ double FontOsdSizeP;
+ double FontSmlSizeP;
+ double FontFixSizeP;
int FontOsdSize;
int FontSmlSize;
int FontFixSize;
diff --git a/device.c b/device.c
index 6121620..ca2c3b3 100644
--- a/device.c
+++ b/device.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: device.c 2.16 2009/04/18 09:41:00 kls Exp $
+ * $Id: device.c 2.17 2009/05/02 12:17:39 kls Exp $
*/
#include "device.h"
@@ -19,6 +19,11 @@
#include "status.h"
#include "transfer.h"
+const char *VideoAspectString[] = { "4:3",
+ "16:9",
+ "2.21:9"
+ };
+
// --- cLiveSubtitle ---------------------------------------------------------
class cLiveSubtitle : public cReceiver {
@@ -384,6 +389,13 @@ eVideoSystem cDevice::GetVideoSystem(void)
return vsPAL;
}
+void cDevice::GetVideoSize(int &Width, int &Height, eVideoAspect &Aspect)
+{
+ Width = MINOSDWIDTH;
+ Height = MINOSDHEIGHT;
+ Aspect = va4_3;
+}
+
//#define PRINTPIDS(s) { char b[500]; char *q = b; q += sprintf(q, "%d %s ", CardIndex(), s); for (int i = 0; i < MAXPIDHANDLES; i++) q += sprintf(q, " %s%4d %d", i == ptOther ? "* " : "", pidHandles[i].pid, pidHandles[i].used); dsyslog(b); }
#define PRINTPIDS(s)
diff --git a/device.h b/device.h
index c3a170b..74f1277 100644
--- a/device.h
+++ b/device.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: device.h 2.9 2009/04/05 12:12:44 kls Exp $
+ * $Id: device.h 2.10 2009/05/02 12:16:20 kls Exp $
*/
#ifndef __DEVICE_H
@@ -56,6 +56,13 @@ enum eVideoSystem { vsPAL,
vsNTSC
};
+enum eVideoAspect { va4_3,
+ va16_9,
+ va221_9
+ };
+
+extern const char *VideoAspectString[];
+
enum eVideoDisplayFormat { vdfPanAndScan,
vdfLetterBox,
vdfCenterCutOut
@@ -377,6 +384,9 @@ public:
virtual eVideoSystem GetVideoSystem(void);
///< Returns the video system of the currently displayed material
///< (default is PAL).
+ virtual void GetVideoSize(int &Width, int &Height, eVideoAspect &Aspect);
+ ///< Returns the With, Height and Aspect ratio of the currently
+ ///< displayed material.
// Track facilities
diff --git a/dvbdevice.c b/dvbdevice.c
index 942abf1..84f0e97 100644
--- a/dvbdevice.c
+++ b/dvbdevice.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbdevice.c 2.14 2009/04/10 09:54:24 kls Exp $
+ * $Id: dvbdevice.c 2.15 2009/05/03 13:49:41 kls Exp $
*/
#include "dvbdevice.h"
@@ -746,6 +746,23 @@ eVideoSystem cDvbDevice::GetVideoSystem(void)
return VideoSystem;
}
+void cDvbDevice::GetVideoSize(int &Width, int &Height, eVideoAspect &Aspect)
+{
+ video_size_t vs;
+ if (ioctl(fd_video, VIDEO_GET_SIZE, &vs) == 0) {
+ Width = vs.w;
+ if (Width < 720) // FIXME: some channels result in a With of, e.g. 544, but the final video *is* 720 wide
+ Width = 720;
+ Height = vs.h;
+ Aspect = eVideoAspect(vs.aspect_ratio);
+ if (Width >= MINOSDWIDTH && Width <= MAXOSDWIDTH && Height >= MINOSDHEIGHT && Height <= MAXOSDHEIGHT)
+ return;
+ }
+ else
+ LOG_ERROR;
+ cDevice::GetVideoSize(Width, Height, Aspect);
+}
+
bool cDvbDevice::SetAudioBypass(bool On)
{
if (setTransferModeForDolbyDigital != 1)
diff --git a/dvbdevice.h b/dvbdevice.h
index c3b0ced..4e325ca 100644
--- a/dvbdevice.h
+++ b/dvbdevice.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbdevice.h 2.3 2008/12/06 13:31:12 kls Exp $
+ * $Id: dvbdevice.h 2.4 2009/05/02 10:44:40 kls Exp $
*/
#ifndef __DVBDEVICE_H
@@ -107,6 +107,7 @@ public:
virtual void SetVideoDisplayFormat(eVideoDisplayFormat VideoDisplayFormat);
virtual void SetVideoFormat(bool VideoFormat16_9);
virtual eVideoSystem GetVideoSystem(void);
+ virtual void GetVideoSize(int &Width, int &Height, eVideoAspect &Aspect);
// Track facilities
diff --git a/font.c b/font.c
index f962a09..3fa97df 100644
--- a/font.c
+++ b/font.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: font.c 2.1 2008/05/02 16:16:51 kls Exp $
+ * $Id: font.c 2.2 2009/05/03 11:15:39 kls Exp $
*/
#include "font.h"
@@ -145,7 +145,7 @@ cFreetypeFont::cFreetypeFont(const char *Name, int CharHeight, int CharWidth)
0, // horizontal device resolution
0); // vertical device resolution
if (!error) {
- height = ((face->size->metrics.ascender-face->size->metrics.descender) + 63) / 64;
+ height = (face->size->metrics.ascender - face->size->metrics.descender + 63) / 64;
bottom = abs((face->size->metrics.descender - 63) / 64);
}
else
@@ -328,7 +328,7 @@ cFont *cFont::fonts[eDvbFontSize] = { NULL };
void cFont::SetFont(eDvbFont Font, const char *Name, int CharHeight)
{
- cFont *f = CreateFont(Name, CharHeight);
+ cFont *f = CreateFont(Name, min(max(CharHeight, MINFONTSIZE), MAXFONTSIZE));
if (!f || !f->Height())
f = new cDummyFont;
delete fonts[Font];
diff --git a/font.h b/font.h
index 6d68d75..5b9ec64 100644
--- a/font.h
+++ b/font.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: font.h 2.0 2007/06/23 10:09:14 kls Exp $
+ * $Id: font.h 2.1 2009/05/03 11:00:19 kls Exp $
*/
#ifndef __FONT_H
@@ -15,6 +15,7 @@
#include "tools.h"
#define MAXFONTNAME 64
+#define MINFONTSIZE 10
#define MAXFONTSIZE 64
enum eDvbFont {
diff --git a/menu.c b/menu.c
index fa60065..423f6f2 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 2.6 2009/01/24 15:05:43 kls Exp $
+ * $Id: menu.c 2.7 2009/05/03 13:30:13 kls Exp $
*/
#include "menu.h"
@@ -2197,19 +2197,19 @@ void cMenuSetupOSD::Set(void)
Add(new cMenuEditStraItem(tr("Setup.OSD$Skin"), &skinIndex, numSkins, skinDescriptions));
if (themes.NumThemes())
Add(new cMenuEditStraItem(tr("Setup.OSD$Theme"), &themeIndex, themes.NumThemes(), themes.Descriptions()));
- Add(new cMenuEditIntItem( tr("Setup.OSD$Left"), &data.OSDLeft, 0, MAXOSDWIDTH));
- Add(new cMenuEditIntItem( tr("Setup.OSD$Top"), &data.OSDTop, 0, MAXOSDHEIGHT));
- Add(new cMenuEditIntItem( tr("Setup.OSD$Width"), &data.OSDWidth, MINOSDWIDTH, MAXOSDWIDTH));
- Add(new cMenuEditIntItem( tr("Setup.OSD$Height"), &data.OSDHeight, MINOSDHEIGHT, MAXOSDHEIGHT));
+ Add(new cMenuEditPrcItem( tr("Setup.OSD$Left (%)"), &data.OSDLeftP, 0.0, 0.5));
+ Add(new cMenuEditPrcItem( tr("Setup.OSD$Top (%)"), &data.OSDTopP, 0.0, 0.5));
+ Add(new cMenuEditPrcItem( tr("Setup.OSD$Width (%)"), &data.OSDWidthP, 0.5, 1.0));
+ Add(new cMenuEditPrcItem( tr("Setup.OSD$Height (%)"), &data.OSDHeightP, 0.5, 1.0));
Add(new cMenuEditIntItem( tr("Setup.OSD$Message time (s)"), &data.OSDMessageTime, 1, 60));
Add(new cMenuEditStraItem(tr("Setup.OSD$Use small font"), &data.UseSmallFont, 3, useSmallFontTexts));
Add(new cMenuEditBoolItem(tr("Setup.OSD$Anti-alias"), &data.AntiAlias));
Add(new cMenuEditStraItem(tr("Setup.OSD$Default font"), &fontOsdIndex, fontOsdNames.Size(), &fontOsdNames[0]));
Add(new cMenuEditStraItem(tr("Setup.OSD$Small font"), &fontSmlIndex, fontSmlNames.Size(), &fontSmlNames[0]));
Add(new cMenuEditStraItem(tr("Setup.OSD$Fixed font"), &fontFixIndex, fontFixNames.Size(), &fontFixNames[0]));
- Add(new cMenuEditIntItem( tr("Setup.OSD$Default font size (pixel)"), &data.FontOsdSize, 10, MAXFONTSIZE));
- Add(new cMenuEditIntItem( tr("Setup.OSD$Small font size (pixel)"),&data.FontSmlSize, 10, MAXFONTSIZE));
- Add(new cMenuEditIntItem( tr("Setup.OSD$Fixed font size (pixel)"),&data.FontFixSize, 10, MAXFONTSIZE));
+ Add(new cMenuEditPrcItem( tr("Setup.OSD$Default font size (%)"), &data.FontOsdSizeP, 0.01, 0.1, 1));
+ Add(new cMenuEditPrcItem( tr("Setup.OSD$Small font size (%)"), &data.FontSmlSizeP, 0.01, 0.1, 1));
+ Add(new cMenuEditPrcItem( tr("Setup.OSD$Fixed font size (%)"), &data.FontFixSizeP, 0.01, 0.1, 1));
Add(new cMenuEditBoolItem(tr("Setup.OSD$Channel info position"), &data.ChannelInfoPos, tr("bottom"), tr("top")));
Add(new cMenuEditIntItem( tr("Setup.OSD$Channel info time (s)"), &data.ChannelInfoTime, 1, 60));
Add(new cMenuEditBoolItem(tr("Setup.OSD$Info on channel switch"), &data.ShowInfoOnChSwitch));
@@ -2224,7 +2224,7 @@ void cMenuSetupOSD::Set(void)
eOSState cMenuSetupOSD::ProcessKey(eKeys Key)
{
- bool ModifiedApperance = false;
+ bool ModifiedAppearance = false;
if (Key == kOk) {
I18nSetLocale(data.OSDLanguage);
@@ -2233,43 +2233,37 @@ eOSState cMenuSetupOSD::ProcessKey(eKeys Key)
if (Skin) {
Utf8Strn0Cpy(data.OSDSkin, Skin->Name(), sizeof(data.OSDSkin));
Skins.SetCurrent(Skin->Name());
- ModifiedApperance = true;
+ ModifiedAppearance = true;
}
}
if (themes.NumThemes() && Skins.Current()->Theme()) {
Skins.Current()->Theme()->Load(themes.FileName(themeIndex));
Utf8Strn0Cpy(data.OSDTheme, themes.Name(themeIndex), sizeof(data.OSDTheme));
- ModifiedApperance |= themeIndex != originalThemeIndex;
- }
- if (data.OSDLeft != Setup.OSDLeft || data.OSDTop != Setup.OSDTop || data.OSDWidth != Setup.OSDWidth || data.OSDHeight != Setup.OSDHeight) {
- data.OSDWidth &= ~0x07; // OSD width must be a multiple of 8
- ModifiedApperance = true;
+ ModifiedAppearance |= themeIndex != originalThemeIndex;
}
+ if (data.OSDLeftP != Setup.OSDLeftP || data.OSDTopP != Setup.OSDTopP || data.OSDWidthP != Setup.OSDWidthP || data.OSDHeightP != Setup.OSDHeightP)
+ ModifiedAppearance = true;
if (data.UseSmallFont != Setup.UseSmallFont || data.AntiAlias != Setup.AntiAlias)
- ModifiedApperance = true;
+ ModifiedAppearance = true;
Utf8Strn0Cpy(data.FontOsd, fontOsdNames[fontOsdIndex], sizeof(data.FontOsd));
Utf8Strn0Cpy(data.FontSml, fontSmlNames[fontSmlIndex], sizeof(data.FontSml));
Utf8Strn0Cpy(data.FontFix, fontFixNames[fontFixIndex], sizeof(data.FontFix));
- if (strcmp(data.FontOsd, Setup.FontOsd) || data.FontOsdSize != Setup.FontOsdSize) {
- cFont::SetFont(fontOsd, data.FontOsd, data.FontOsdSize);
- ModifiedApperance = true;
- }
- if (strcmp(data.FontSml, Setup.FontSml) || data.FontSmlSize != Setup.FontSmlSize) {
- cFont::SetFont(fontSml, data.FontSml, data.FontSmlSize);
- ModifiedApperance = true;
- }
- if (strcmp(data.FontFix, Setup.FontFix) || data.FontFixSize != Setup.FontFixSize) {
- cFont::SetFont(fontFix, data.FontFix, data.FontFixSize);
- ModifiedApperance = true;
- }
+ if (strcmp(data.FontOsd, Setup.FontOsd) || data.FontOsdSizeP != Setup.FontOsdSizeP)
+ ModifiedAppearance = true;
+ if (strcmp(data.FontSml, Setup.FontSml) || data.FontSmlSizeP != Setup.FontSmlSizeP)
+ ModifiedAppearance = true;
+ if (strcmp(data.FontFix, Setup.FontFix) || data.FontFixSizeP != Setup.FontFixSizeP)
+ ModifiedAppearance = true;
}
int oldSkinIndex = skinIndex;
int oldOsdLanguageIndex = osdLanguageIndex;
eOSState state = cMenuSetupBase::ProcessKey(Key);
- if (ModifiedApperance)
+ if (ModifiedAppearance) {
+ cOsdProvider::UpdateOsdSize(true);
SetDisplayMenu();
+ }
if (osdLanguageIndex != oldOsdLanguageIndex || skinIndex != oldSkinIndex) {
strn0cpy(data.OSDLanguage, I18nLocale(osdLanguageIndex), sizeof(data.OSDLanguage));
diff --git a/menuitems.c b/menuitems.c
index 6702384..df14b10 100644
--- a/menuitems.c
+++ b/menuitems.c
@@ -4,11 +4,12 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menuitems.c 2.3 2009/04/05 10:15:12 kls Exp $
+ * $Id: menuitems.c 2.4 2009/05/03 13:37:55 kls Exp $
*/
#include "menuitems.h"
#include <ctype.h>
+#include <math.h>
#include <wctype.h>
#include "i18n.h"
#include "plugin.h"
@@ -200,6 +201,71 @@ eOSState cMenuEditNumItem::ProcessKey(eKeys Key)
return state;
}
+// --- cMenuEditPrcItem ------------------------------------------------------
+
+cMenuEditPrcItem::cMenuEditPrcItem(const char *Name, double *Value, double Min, double Max, int Decimals)
+:cMenuEditItem(Name)
+{
+ value = Value;
+ min = Min;
+ max = Max;
+ decimals = Decimals;
+ factor = 100;
+ while (Decimals-- > 0)
+ factor *= 10;
+ if (*value < min)
+ *value = min;
+ else if (*value > max)
+ *value = max;
+ Set();
+}
+
+void cMenuEditPrcItem::Set(void)
+{
+ char buf[16];
+ snprintf(buf, sizeof(buf), "%.*f", decimals, *value * 100);
+ SetValue(buf);
+}
+
+eOSState cMenuEditPrcItem::ProcessKey(eKeys Key)
+{
+ eOSState state = cMenuEditItem::ProcessKey(Key);
+
+ if (state == osUnknown) {
+ double newValue = round(*value * factor); // avoids precision problems
+ Key = NORMALKEY(Key);
+ switch (Key) {
+ case kNone: break;
+ case k0 ... k9:
+ if (fresh) {
+ newValue = 0;
+ fresh = false;
+ }
+ newValue = newValue * 10 + (Key - k0);
+ break;
+ case kLeft: // TODO might want to increase the delta if repeated quickly?
+ newValue--;
+ fresh = true;
+ break;
+ case kRight:
+ newValue++;
+ fresh = true;
+ break;
+ default:
+ if (*value < min) { *value = min; Set(); }
+ if (*value > max) { *value = max; Set(); }
+ return state;
+ }
+ newValue /= factor;
+ if (newValue != *value && (!fresh || min <= newValue) && newValue <= max) {
+ *value = newValue;
+ Set();
+ }
+ state = osContinue;
+ }
+ return state;
+}
+
// --- cMenuEditChrItem ------------------------------------------------------
cMenuEditChrItem::cMenuEditChrItem(const char *Name, char *Value, const char *Allowed)
diff --git a/menuitems.h b/menuitems.h
index 8d68b7d..4832475 100644
--- a/menuitems.h
+++ b/menuitems.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menuitems.h 2.1 2008/04/12 12:03:59 kls Exp $
+ * $Id: menuitems.h 2.2 2009/05/03 12:50:34 kls Exp $
*/
#ifndef __MENUITEMS_H
@@ -64,6 +64,18 @@ public:
virtual eOSState ProcessKey(eKeys Key);
};
+class cMenuEditPrcItem : public cMenuEditItem {
+protected:
+ double *value;
+ double min, max;
+ int decimals;
+ int factor;
+ virtual void Set(void);
+public:
+ cMenuEditPrcItem(const char *Name, double *Value, double Min = 0.0, double Max = 1.0, int Decimals = 0);
+ virtual eOSState ProcessKey(eKeys Key);
+ };
+
class cMenuEditChrItem : public cMenuEditItem {
private:
char *value;
diff --git a/osd.c b/osd.c
index d8e5112..2ed1acf 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 2.2 2009/04/05 10:17:25 kls Exp $
+ * $Id: osd.c 2.3 2009/05/03 13:52:47 kls Exp $
*/
#include "osd.h"
@@ -14,6 +14,7 @@
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/unistd.h>
+#include "device.h"
#include "tools.h"
// --- cPalette --------------------------------------------------------------
@@ -880,6 +881,9 @@ void cOsd::Flush(void)
// --- cOsdProvider ----------------------------------------------------------
cOsdProvider *cOsdProvider::osdProvider = NULL;
+int cOsdProvider::oldWidth = 0;
+int cOsdProvider::oldHeight = 0;
+int cOsdProvider::oldAspect = va4_3;
cOsdProvider::cOsdProvider(void)
{
@@ -911,6 +915,30 @@ cOsd *cOsdProvider::NewOsd(int Left, int Top, uint Level)
return new cOsd(Left, Top, 999); // create a dummy cOsd, so that access won't result in a segfault
}
+void cOsdProvider::UpdateOsdSize(bool Force)
+{
+ int Width;
+ int Height;
+ eVideoAspect Aspect;
+ cDevice::PrimaryDevice()->GetVideoSize(Width, Height, Aspect);
+ if (Width != oldWidth || Height != oldHeight || Aspect != oldAspect || Force) {
+ Setup.OSDLeft = int(round(Width * Setup.OSDLeftP));
+ Setup.OSDTop = int(round(Height * Setup.OSDTopP));
+ Setup.OSDWidth = int(round(Width * Setup.OSDWidthP)) & ~0x07; // OSD width must be a multiple of 8
+ Setup.OSDHeight = int(round(Height * Setup.OSDHeightP));
+ Setup.FontOsdSize = int(round(Height * Setup.FontOsdSizeP));
+ Setup.FontFixSize = int(round(Height * Setup.FontFixSizeP));
+ Setup.FontSmlSize = int(round(Height * Setup.FontSmlSizeP));
+ cFont::SetFont(fontOsd, Setup.FontOsd, Setup.FontOsdSize);
+ cFont::SetFont(fontFix, Setup.FontFix, Setup.FontFixSize);
+ cFont::SetFont(fontSml, Setup.FontSml, Setup.FontSmlSize);
+ oldWidth = Width;
+ oldHeight = Height;
+ oldAspect = Aspect;
+ dsyslog("OSD size changed to %dx%d @ %s", Width, Height, VideoAspectString[Aspect]);
+ }
+}
+
void cOsdProvider::Shutdown(void)
{
delete osdProvider;
diff --git a/osd.h b/osd.h
index 7690952..ba79fde 100644
--- a/osd.h
+++ b/osd.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osd.h 2.2 2009/04/05 10:16:05 kls Exp $
+ * $Id: osd.h 2.3 2009/05/03 13:52:10 kls Exp $
*/
#ifndef __OSD_H
@@ -406,6 +406,9 @@ public:
class cOsdProvider {
private:
static cOsdProvider *osdProvider;
+ static int oldWidth;
+ static int oldHeight;
+ static int oldAspect;
protected:
virtual cOsd *CreateOsd(int Left, int Top, uint Level) = 0;
///< Returns a pointer to a newly created cOsd object, which will be located
@@ -420,6 +423,11 @@ public:
///< caller must delete it. If the OSD is already in use, or there is no OSD
///< provider, a dummy OSD is returned so that the caller may always use the
///< returned pointer without having to check it every time it is accessed.
+ static void UpdateOsdSize(bool Force = false);
+ ///< Inquires the actual size of the video display and adjusts the OSD and
+ ///< font sizes accordingly. If Force is true, all settings are recalculated,
+ ///< even if the video resolution hasn't changed since the last call to
+ ///< this funtion.
static void Shutdown(void);
///< Shuts down the OSD provider facility by deleting the current OSD provider.
};
diff --git a/po/ca_ES.po b/po/ca_ES.po
index d86ebc4..0ab2de6 100644
--- a/po/ca_ES.po
+++ b/po/ca_ES.po
@@ -495,17 +495,17 @@ msgstr "Aparena"
msgid "Setup.OSD$Theme"
msgstr "Tema"
-msgid "Setup.OSD$Left"
-msgstr "Esquerra"
+msgid "Setup.OSD$Left (%)"
+msgstr "Esquerra (%)"
-msgid "Setup.OSD$Top"
-msgstr "A dalt"
+msgid "Setup.OSD$Top (%)"
+msgstr "A dalt (%)"
-msgid "Setup.OSD$Width"
-msgstr "Amplada"
+msgid "Setup.OSD$Width (%)"
+msgstr "Amplada (%)"
-msgid "Setup.OSD$Height"
-msgstr "Alada"
+msgid "Setup.OSD$Height (%)"
+msgstr "Alada (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Durada dels missatges (s)"
@@ -525,14 +525,14 @@ msgstr "Font petita"
msgid "Setup.OSD$Fixed font"
msgstr "Font fixa"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Mida font predeterminada (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Mida font predeterminada (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Mida font petita"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Mida font petita (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Mida font fixa"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Mida font fixa (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Posici de la informaci del canal"
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
index cd5b66b..a50a33d 100644
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -493,17 +493,17 @@ msgstr "Vzhled"
msgid "Setup.OSD$Theme"
msgstr "Tma"
-msgid "Setup.OSD$Left"
-msgstr "Vlevo"
+msgid "Setup.OSD$Left (%)"
+msgstr "Vlevo (%)"
-msgid "Setup.OSD$Top"
-msgstr "Nahoe"
+msgid "Setup.OSD$Top (%)"
+msgstr "Nahoe (%)"
-msgid "Setup.OSD$Width"
-msgstr "ka"
+msgid "Setup.OSD$Width (%)"
+msgstr "ka (%)"
-msgid "Setup.OSD$Height"
-msgstr "Vka"
+msgid "Setup.OSD$Height (%)"
+msgstr "Vka (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "as zobrazen zpvy (s)"
@@ -523,14 +523,14 @@ msgstr "Mal psmo"
msgid "Setup.OSD$Fixed font"
msgstr "Fixn psmo"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Velikost vchozho psma (pixely)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Velikost vchozho psma (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Velikost malho psma (pixely)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Velikost malho psma (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Velikost fixnho psma (pixely)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Velikost fixnho psma (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Pozice informace o kanlu"
diff --git a/po/da_DK.po b/po/da_DK.po
index ffe5a8d..e8d05c8 100644
--- a/po/da_DK.po
+++ b/po/da_DK.po
@@ -492,17 +492,17 @@ msgstr "Skin"
msgid "Setup.OSD$Theme"
msgstr "Tema"
-msgid "Setup.OSD$Left"
-msgstr "Venstre"
+msgid "Setup.OSD$Left (%)"
+msgstr "Venstre (%)"
-msgid "Setup.OSD$Top"
-msgstr "Top"
+msgid "Setup.OSD$Top (%)"
+msgstr "Top (%)"
-msgid "Setup.OSD$Width"
-msgstr "Bredde"
+msgid "Setup.OSD$Width (%)"
+msgstr "Bredde (%)"
-msgid "Setup.OSD$Height"
-msgstr "Hjde"
+msgid "Setup.OSD$Height (%)"
+msgstr "Hjde (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Tid beskeder skal vises (s)"
@@ -522,14 +522,14 @@ msgstr "Lille skrift"
msgid "Setup.OSD$Fixed font"
msgstr "Fast skrift"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Standard skrift strrelse (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Standard skrift strrelse (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Lille skrift strrelse (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Lille skrift strrelse (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Fast skrift strrelse (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Fast skrift strrelse (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Placering af kanalinfo"
diff --git a/po/de_DE.po b/po/de_DE.po
index 0dba2b4..6b55d6a 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -492,17 +492,17 @@ msgstr "Oberflche"
msgid "Setup.OSD$Theme"
msgstr "Thema"
-msgid "Setup.OSD$Left"
-msgstr "Links"
+msgid "Setup.OSD$Left (%)"
+msgstr "Links (%)"
-msgid "Setup.OSD$Top"
-msgstr "Oben"
+msgid "Setup.OSD$Top (%)"
+msgstr "Oben (%)"
-msgid "Setup.OSD$Width"
-msgstr "Breite"
+msgid "Setup.OSD$Width (%)"
+msgstr "Breite (%)"
-msgid "Setup.OSD$Height"
-msgstr "Hhe"
+msgid "Setup.OSD$Height (%)"
+msgstr "Hhe (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Anzeigedauer fr Nachrichten (s)"
@@ -522,14 +522,14 @@ msgstr "Kleine Schriftart"
msgid "Setup.OSD$Fixed font"
msgstr "Festbreiten-Schriftart"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Standard-Schriftgre (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Standard-Schriftgre (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Kleine Schriftgre (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Kleine Schriftgre (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Festbreiten-Schriftgre (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Festbreiten-Schriftgre (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Kanalinfo-Position"
diff --git a/po/el_GR.po b/po/el_GR.po
index 7446e8a..90ff04d 100644
--- a/po/el_GR.po
+++ b/po/el_GR.po
@@ -492,17 +492,17 @@ msgstr ""
msgid "Setup.OSD$Theme"
msgstr ""
-msgid "Setup.OSD$Left"
-msgstr ""
+msgid "Setup.OSD$Left (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Top"
-msgstr ""
+msgid "Setup.OSD$Top (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Width"
-msgstr ""
+msgid "Setup.OSD$Width (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Height"
-msgstr ""
+msgid "Setup.OSD$Height (%)"
+msgstr " (%)"
msgid "Setup.OSD$Message time (s)"
msgstr " ()"
@@ -522,13 +522,13 @@ msgstr ""
msgid "Setup.OSD$Fixed font"
msgstr ""
-msgid "Setup.OSD$Default font size (pixel)"
+msgid "Setup.OSD$Default font size (%)"
msgstr ""
-msgid "Setup.OSD$Small font size (pixel)"
+msgid "Setup.OSD$Small font size (%)"
msgstr ""
-msgid "Setup.OSD$Fixed font size (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
msgstr ""
msgid "Setup.OSD$Channel info position"
diff --git a/po/es_ES.po b/po/es_ES.po
index ef50496..667d650 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -493,17 +493,17 @@ msgstr "Skin"
msgid "Setup.OSD$Theme"
msgstr "Tema"
-msgid "Setup.OSD$Left"
-msgstr "Izquierda"
+msgid "Setup.OSD$Left (%)"
+msgstr "Izquierda (%)"
-msgid "Setup.OSD$Top"
-msgstr "Arriba"
+msgid "Setup.OSD$Top (%)"
+msgstr "Arriba (%)"
-msgid "Setup.OSD$Width"
-msgstr "Anchura"
+msgid "Setup.OSD$Width (%)"
+msgstr "Anchura (%)"
-msgid "Setup.OSD$Height"
-msgstr "Altura"
+msgid "Setup.OSD$Height (%)"
+msgstr "Altura (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Duracin de los mensajes (sg)"
@@ -523,14 +523,14 @@ msgstr "Fuente pequea"
msgid "Setup.OSD$Fixed font"
msgstr "Fuente fija"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Tamao fuente por defecto (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Tamao fuente por defecto (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Tamao fuente pequea (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Tamao fuente pequea (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Tamao fuente fija (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Tamao fuente fija (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Posicin para informacin de canal"
diff --git a/po/et_EE.po b/po/et_EE.po
index dcbe854..ff66d8a 100644
--- a/po/et_EE.po
+++ b/po/et_EE.po
@@ -492,17 +492,17 @@ msgstr "Kest"
msgid "Setup.OSD$Theme"
msgstr "Teema"
-msgid "Setup.OSD$Left"
-msgstr "Vasakule"
+msgid "Setup.OSD$Left (%)"
+msgstr "Vasakule (%)"
-msgid "Setup.OSD$Top"
-msgstr "lesse"
+msgid "Setup.OSD$Top (%)"
+msgstr "lesse (%)"
-msgid "Setup.OSD$Width"
-msgstr "Laius"
+msgid "Setup.OSD$Width (%)"
+msgstr "Laius (%)"
-msgid "Setup.OSD$Height"
-msgstr "Krgus"
+msgid "Setup.OSD$Height (%)"
+msgstr "Krgus (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Teate esitusaeg (s)"
@@ -522,14 +522,14 @@ msgstr "Vike font"
msgid "Setup.OSD$Fixed font"
msgstr "Fikseeritud font"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Vaikefondi suurus (px)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Vaikefondi suurus (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Vikese fondi suurus (px)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Vikese fondi suurus (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Fiks. fondi suurus (px)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Fiks. fondi suurus (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Kanaliinfo asukoht"
diff --git a/po/fi_FI.po b/po/fi_FI.po
index 76df2cf..ed5b94d 100644
--- a/po/fi_FI.po
+++ b/po/fi_FI.po
@@ -495,17 +495,17 @@ msgstr "Ulkoasu"
msgid "Setup.OSD$Theme"
msgstr "Teema"
-msgid "Setup.OSD$Left"
-msgstr "Vaakakeskitys"
+msgid "Setup.OSD$Left (%)"
+msgstr "Vaakakeskitys (%)"
-msgid "Setup.OSD$Top"
-msgstr "Pystykeskitys"
+msgid "Setup.OSD$Top (%)"
+msgstr "Pystykeskitys (%)"
-msgid "Setup.OSD$Width"
-msgstr "Leveys"
+msgid "Setup.OSD$Width (%)"
+msgstr "Leveys (%)"
-msgid "Setup.OSD$Height"
-msgstr "Korkeus"
+msgid "Setup.OSD$Height (%)"
+msgstr "Korkeus (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Viestien esitysaika (s)"
@@ -525,14 +525,14 @@ msgstr "Pieni kirjasintyyppi"
msgid "Setup.OSD$Fixed font"
msgstr "Tasavlinen kirjasintyyppi"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Oletuskirjasintyypin koko (px)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Oletuskirjasintyypin koko (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Pienen kirjasintyypin koko (px)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Pienen kirjasintyypin koko (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Tasavlisen kirjasintyypin koko (px)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Tasavlisen kirjasintyypin koko (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Kanavatiedon sijainti"
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 706f56f..5353625 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -498,17 +498,17 @@ msgstr "Skin"
msgid "Setup.OSD$Theme"
msgstr "Thme"
-msgid "Setup.OSD$Left"
-msgstr "Gauche"
+msgid "Setup.OSD$Left (%)"
+msgstr "Gauche (%)"
-msgid "Setup.OSD$Top"
-msgstr "Haut"
+msgid "Setup.OSD$Top (%)"
+msgstr "Haut (%)"
-msgid "Setup.OSD$Width"
-msgstr "Largeur"
+msgid "Setup.OSD$Width (%)"
+msgstr "Largeur (%)"
-msgid "Setup.OSD$Height"
-msgstr "Hauteur"
+msgid "Setup.OSD$Height (%)"
+msgstr "Hauteur (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Dure affichage message (s)"
@@ -528,14 +528,14 @@ msgstr "Petite police"
msgid "Setup.OSD$Fixed font"
msgstr "Police taille fixe"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Taille police par dfaut (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Taille police par dfaut (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Taille petite police par dfaut (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Taille petite police par dfaut (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Taille police fixe par dfaut (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Taille police fixe par dfaut (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Position infos chanes"
diff --git a/po/hr_HR.po b/po/hr_HR.po
index afddcef..9b409e3 100644
--- a/po/hr_HR.po
+++ b/po/hr_HR.po
@@ -494,17 +494,17 @@ msgstr "Povrina"
msgid "Setup.OSD$Theme"
msgstr "Tema"
-msgid "Setup.OSD$Left"
-msgstr "Lijevo"
+msgid "Setup.OSD$Left (%)"
+msgstr "Lijevo (%)"
-msgid "Setup.OSD$Top"
-msgstr "Gore"
+msgid "Setup.OSD$Top (%)"
+msgstr "Gore (%)"
-msgid "Setup.OSD$Width"
-msgstr "irina"
+msgid "Setup.OSD$Width (%)"
+msgstr "irina (%)"
-msgid "Setup.OSD$Height"
-msgstr "Visina"
+msgid "Setup.OSD$Height (%)"
+msgstr "Visina (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Vrijeme prikaza poruka (s)"
@@ -524,14 +524,14 @@ msgstr "Maleni font"
msgid "Setup.OSD$Fixed font"
msgstr "Nepromjenjiv font"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Veliina zadanog fonta (piksel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Veliina zadanog fonta (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Veliina malenog fonta (piksel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Veliina malenog fonta (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Veliina nepromjenjivog fonta (piksel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Veliina nepromjenjivog fonta (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Pozicija informacija o programu"
diff --git a/po/hu_HU.po b/po/hu_HU.po
index b9821d5..5c0a887 100644
--- a/po/hu_HU.po
+++ b/po/hu_HU.po
@@ -495,17 +495,17 @@ msgstr "Men nzet"
msgid "Setup.OSD$Theme"
msgstr "Tma"
-msgid "Setup.OSD$Left"
-msgstr "Balra"
+msgid "Setup.OSD$Left (%)"
+msgstr "Balra (%)"
-msgid "Setup.OSD$Top"
-msgstr "Fent"
+msgid "Setup.OSD$Top (%)"
+msgstr "Fent (%)"
-msgid "Setup.OSD$Width"
-msgstr "Szlessg"
+msgid "Setup.OSD$Width (%)"
+msgstr "Szlessg (%)"
-msgid "Setup.OSD$Height"
-msgstr "Magassg"
+msgid "Setup.OSD$Height (%)"
+msgstr "Magassg (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Informci feltntetsnek idtartama"
@@ -525,14 +525,14 @@ msgstr "Kis bettipus"
msgid "Setup.OSD$Fixed font"
msgstr "Kttt bettipus"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Alaprtelmezett bettipus mret (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Alaprtelmezett bettipus mret (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Kis bettipus mret (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Kis bettipus mret (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Kttt bettipus mret (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Kttt bettipus mret (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Adsinformci pozicija"
diff --git a/po/it_IT.po b/po/it_IT.po
index 9b6d2fd..877191b 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -499,17 +499,17 @@ msgstr "Stile interfaccia"
msgid "Setup.OSD$Theme"
msgstr "Tema colori"
-msgid "Setup.OSD$Left"
-msgstr "Sinistra"
+msgid "Setup.OSD$Left (%)"
+msgstr "Sinistra (%)"
-msgid "Setup.OSD$Top"
-msgstr "In alto"
+msgid "Setup.OSD$Top (%)"
+msgstr "In alto (%)"
-msgid "Setup.OSD$Width"
-msgstr "Larghezza OSD"
+msgid "Setup.OSD$Width (%)"
+msgstr "Larghezza OSD (%)"
-msgid "Setup.OSD$Height"
-msgstr "Altezza OSD"
+msgid "Setup.OSD$Height (%)"
+msgstr "Altezza OSD (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Durata del messaggio (s)"
@@ -529,14 +529,14 @@ msgstr "Caratteri piccoli"
msgid "Setup.OSD$Fixed font"
msgstr "Caratteri fissi"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Dim. caratteri pred. (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Dim. caratteri pred. (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Dim. caratteri piccoli (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Dim. caratteri piccoli (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Dim. caratteri fissi (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Dim. caratteri fissi (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Posizione info canale"
diff --git a/po/nl_NL.po b/po/nl_NL.po
index 17a0953..36a9922 100644
--- a/po/nl_NL.po
+++ b/po/nl_NL.po
@@ -496,17 +496,17 @@ msgstr "Skin"
msgid "Setup.OSD$Theme"
msgstr "Thema"
-msgid "Setup.OSD$Left"
-msgstr "Links"
+msgid "Setup.OSD$Left (%)"
+msgstr "Links (%)"
-msgid "Setup.OSD$Top"
-msgstr "Boven"
+msgid "Setup.OSD$Top (%)"
+msgstr "Boven (%)"
-msgid "Setup.OSD$Width"
-msgstr "Breedte"
+msgid "Setup.OSD$Width (%)"
+msgstr "Breedte (%)"
-msgid "Setup.OSD$Height"
-msgstr "Hoogte"
+msgid "Setup.OSD$Height (%)"
+msgstr "Hoogte (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Weergave duur van berichten (s)"
@@ -526,14 +526,14 @@ msgstr "Kleine lettertype"
msgid "Setup.OSD$Fixed font"
msgstr "Letter met vaste breedte"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Afmetingen standaard lettertype (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Afmetingen standaard lettertype (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Afmetingen klein lettertype (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Afmetingen klein lettertype (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Afmetingen lettertype met vaste breedte (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Afmetingen lettertype met vaste breedte (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Kanaal info positie"
diff --git a/po/nn_NO.po b/po/nn_NO.po
index 06f6b87..2445b02 100644
--- a/po/nn_NO.po
+++ b/po/nn_NO.po
@@ -493,17 +493,17 @@ msgstr ""
msgid "Setup.OSD$Theme"
msgstr ""
-msgid "Setup.OSD$Left"
+msgid "Setup.OSD$Left (%)"
msgstr ""
-msgid "Setup.OSD$Top"
+msgid "Setup.OSD$Top (%)"
msgstr ""
-msgid "Setup.OSD$Width"
-msgstr "Bredde"
+msgid "Setup.OSD$Width (%)"
+msgstr "Bredde (%)"
-msgid "Setup.OSD$Height"
-msgstr "Hyde"
+msgid "Setup.OSD$Height (%)"
+msgstr "Hyde (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Tid meldinger skal vises (s)"
@@ -523,13 +523,13 @@ msgstr ""
msgid "Setup.OSD$Fixed font"
msgstr ""
-msgid "Setup.OSD$Default font size (pixel)"
+msgid "Setup.OSD$Default font size (%)"
msgstr ""
-msgid "Setup.OSD$Small font size (pixel)"
+msgid "Setup.OSD$Small font size (%)"
msgstr ""
-msgid "Setup.OSD$Fixed font size (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
msgstr ""
msgid "Setup.OSD$Channel info position"
diff --git a/po/pl_PL.po b/po/pl_PL.po
index ea70463..860094a 100644
--- a/po/pl_PL.po
+++ b/po/pl_PL.po
@@ -493,17 +493,17 @@ msgstr "Skrka"
msgid "Setup.OSD$Theme"
msgstr "Motyw"
-msgid "Setup.OSD$Left"
-msgstr "Od lewej"
+msgid "Setup.OSD$Left (%)"
+msgstr "Od lewej (%)"
-msgid "Setup.OSD$Top"
-msgstr "Od gry"
+msgid "Setup.OSD$Top (%)"
+msgstr "Od gry (%)"
-msgid "Setup.OSD$Width"
-msgstr "Szeroko"
+msgid "Setup.OSD$Width (%)"
+msgstr "Szeroko (%)"
-msgid "Setup.OSD$Height"
-msgstr "Wysoko"
+msgid "Setup.OSD$Height (%)"
+msgstr "Wysoko (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Czas trwania wiadomoci (s)"
@@ -523,14 +523,14 @@ msgstr "Maa czcionka"
msgid "Setup.OSD$Fixed font"
msgstr "Staa czcionka"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Standardowa czcionka wyjciowa (pixle)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Standardowa czcionka wyjciowa (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Maa czcionka wyjciowa (pixle)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Maa czcionka wyjciowa (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Ustalona czcionka wyjciowa (pixle)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Ustalona czcionka wyjciowa (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Pozycja informacji o kanale"
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 2182f66..fa4767f 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -492,17 +492,17 @@ msgstr "Skin"
msgid "Setup.OSD$Theme"
msgstr "Tema"
-msgid "Setup.OSD$Left"
-msgstr "Esquerda"
+msgid "Setup.OSD$Left (%)"
+msgstr "Esquerda (%)"
-msgid "Setup.OSD$Top"
-msgstr "Topo"
+msgid "Setup.OSD$Top (%)"
+msgstr "Topo (%)"
-msgid "Setup.OSD$Width"
-msgstr "Largura"
+msgid "Setup.OSD$Width (%)"
+msgstr "Largura (%)"
-msgid "Setup.OSD$Height"
-msgstr "Altura"
+msgid "Setup.OSD$Height (%)"
+msgstr "Altura (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Durao das mensagem (s)"
@@ -522,14 +522,14 @@ msgstr "Fonte pequena"
msgid "Setup.OSD$Fixed font"
msgstr "Fonte Fixa"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Tamanho por defeito de fonte (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Tamanho por defeito de fonte (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Tamanho da fonte pequena (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Tamanho da fonte pequena (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Tamanho da fonte fixa (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Tamanho da fonte fixa (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Posio de info dos canais"
diff --git a/po/ro_RO.po b/po/ro_RO.po
index b7a5ca9..0c6013c 100644
--- a/po/ro_RO.po
+++ b/po/ro_RO.po
@@ -495,17 +495,17 @@ msgstr "Skin"
msgid "Setup.OSD$Theme"
msgstr "Tem"
-msgid "Setup.OSD$Left"
-msgstr "Stnga"
+msgid "Setup.OSD$Left (%)"
+msgstr "Stnga (%)"
-msgid "Setup.OSD$Top"
-msgstr "Sus"
+msgid "Setup.OSD$Top (%)"
+msgstr "Sus (%)"
-msgid "Setup.OSD$Width"
-msgstr "Lime OSD"
+msgid "Setup.OSD$Width (%)"
+msgstr "Lime OSD (%)"
-msgid "Setup.OSD$Height"
-msgstr "nlime OSD"
+msgid "Setup.OSD$Height (%)"
+msgstr "nlime OSD (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Timp afiare mesaje (sec)"
@@ -525,14 +525,14 @@ msgstr "Font mic"
msgid "Setup.OSD$Fixed font"
msgstr "Font cu lime fix"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Mrimea implicit a fontului (pixeli)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Mrimea implicit a fontului (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Mrimea 'mic' a fontului (pixeli)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Mrimea 'mic' a fontului (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Mrimea 'fix' a fontului (pixeli)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Mrimea 'fix' a fontului (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Poziia informaiilor despre canal"
diff --git a/po/ru_RU.po b/po/ru_RU.po
index a3c19cd..a0a2555 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -493,17 +493,17 @@ msgstr ""
msgid "Setup.OSD$Theme"
msgstr ""
-msgid "Setup.OSD$Left"
-msgstr " "
+msgid "Setup.OSD$Left (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Top"
-msgstr " "
+msgid "Setup.OSD$Top (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Width"
-msgstr ""
+msgid "Setup.OSD$Width (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Height"
-msgstr ""
+msgid "Setup.OSD$Height (%)"
+msgstr " (%)"
msgid "Setup.OSD$Message time (s)"
msgstr " ()"
@@ -523,14 +523,14 @@ msgstr " "
msgid "Setup.OSD$Fixed font"
msgstr " "
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr " (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr " (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr " (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr " (%)"
msgid "Setup.OSD$Channel info position"
msgstr " "
diff --git a/po/sl_SI.po b/po/sl_SI.po
index 6f3d041..347e599 100644
--- a/po/sl_SI.po
+++ b/po/sl_SI.po
@@ -493,17 +493,17 @@ msgstr "Preobleka"
msgid "Setup.OSD$Theme"
msgstr "Tema"
-msgid "Setup.OSD$Left"
-msgstr "Levo"
+msgid "Setup.OSD$Left (%)"
+msgstr "Levo (%)"
-msgid "Setup.OSD$Top"
-msgstr "Zgoraj"
+msgid "Setup.OSD$Top (%)"
+msgstr "Zgoraj (%)"
-msgid "Setup.OSD$Width"
-msgstr "irina"
+msgid "Setup.OSD$Width (%)"
+msgstr "irina (%)"
-msgid "Setup.OSD$Height"
-msgstr "Viina"
+msgid "Setup.OSD$Height (%)"
+msgstr "Viina (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "as prikaza sporoila (s)"
@@ -523,14 +523,14 @@ msgstr "Mala pisava"
msgid "Setup.OSD$Fixed font"
msgstr "Fiksna pisava"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Privzeta velikost pisave (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Privzeta velikost pisave (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Majhna velikost pisave (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Majhna velikost pisave (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Pozicija informacije o kanalu"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr ""
msgid "Setup.OSD$Channel info position"
msgstr "Pozicija informacije o kanalu"
diff --git a/po/sv_SE.po b/po/sv_SE.po
index 5f8d20d..d47da8a 100644
--- a/po/sv_SE.po
+++ b/po/sv_SE.po
@@ -495,17 +495,17 @@ msgstr "Skin"
msgid "Setup.OSD$Theme"
msgstr "Tema"
-msgid "Setup.OSD$Left"
-msgstr "Vnster"
+msgid "Setup.OSD$Left (%)"
+msgstr "Vnster (%)"
-msgid "Setup.OSD$Top"
-msgstr "vre"
+msgid "Setup.OSD$Top (%)"
+msgstr "vre (%)"
-msgid "Setup.OSD$Width"
-msgstr "Bredd"
+msgid "Setup.OSD$Width (%)"
+msgstr "Bredd (%)"
-msgid "Setup.OSD$Height"
-msgstr "Hjd"
+msgid "Setup.OSD$Height (%)"
+msgstr "Hjd (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Tid fr meddelanden (sek)"
@@ -525,14 +525,14 @@ msgstr "Sm typsnitt"
msgid "Setup.OSD$Fixed font"
msgstr "Fast typsnitt"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Fontstorlek standard (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Fontstorlek standard (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Fontstorlek liten text (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Fontstorlek liten text (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "Fast fontstorlek (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "Fast fontstorlek (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Placering av kanalinformation"
diff --git a/po/tr_TR.po b/po/tr_TR.po
index a5496d3..abdb594 100644
--- a/po/tr_TR.po
+++ b/po/tr_TR.po
@@ -492,17 +492,17 @@ msgstr "Yzey"
msgid "Setup.OSD$Theme"
msgstr "Tema"
-msgid "Setup.OSD$Left"
-msgstr "Sol"
+msgid "Setup.OSD$Left (%)"
+msgstr "Sol (%)"
-msgid "Setup.OSD$Top"
-msgstr "st"
+msgid "Setup.OSD$Top (%)"
+msgstr "st (%)"
-msgid "Setup.OSD$Width"
-msgstr "Genilik"
+msgid "Setup.OSD$Width (%)"
+msgstr "Genilik (%)"
-msgid "Setup.OSD$Height"
-msgstr "Ykseklik"
+msgid "Setup.OSD$Height (%)"
+msgstr "Ykseklik (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "Mesaj gsterme zaman (sn)"
@@ -522,14 +522,14 @@ msgstr "Kk font"
msgid "Setup.OSD$Fixed font"
msgstr "akl font"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "Olaan font boyutu (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "Olaan font boyutu (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "Kk font boyutu (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "Kk font boyutu (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "akl font boyutu (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "akl font boyutu (%)"
msgid "Setup.OSD$Channel info position"
msgstr "Kanal bilgi pozisyonu"
diff --git a/po/uk_UA.po b/po/uk_UA.po
index 9fe0013..3d566fc 100644
--- a/po/uk_UA.po
+++ b/po/uk_UA.po
@@ -492,17 +492,17 @@ msgstr ""
msgid "Setup.OSD$Theme"
msgstr ""
-msgid "Setup.OSD$Left"
-msgstr " "
+msgid "Setup.OSD$Left (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Top"
-msgstr " "
+msgid "Setup.OSD$Top (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Width"
-msgstr ""
+msgid "Setup.OSD$Width (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Height"
-msgstr ""
+msgid "Setup.OSD$Height (%)"
+msgstr " (%)"
msgid "Setup.OSD$Message time (s)"
msgstr " ()"
@@ -522,14 +522,14 @@ msgstr " "
msgid "Setup.OSD$Fixed font"
msgstr " "
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr " (pixel)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr " (pixel)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr " (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr " (pixel)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr " (%)"
msgid "Setup.OSD$Channel info position"
msgstr " "
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 04d16ce..92b20a7 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -495,17 +495,17 @@ msgstr "外壳"
msgid "Setup.OSD$Theme"
msgstr "主题"
-msgid "Setup.OSD$Left"
-msgstr "左"
+msgid "Setup.OSD$Left (%)"
+msgstr "左 (%)"
-msgid "Setup.OSD$Top"
-msgstr "顶部"
+msgid "Setup.OSD$Top (%)"
+msgstr "顶部 (%)"
-msgid "Setup.OSD$Width"
-msgstr "宽"
+msgid "Setup.OSD$Width (%)"
+msgstr "宽 (%)"
-msgid "Setup.OSD$Height"
-msgstr "高"
+msgid "Setup.OSD$Height (%)"
+msgstr "高 (%)"
msgid "Setup.OSD$Message time (s)"
msgstr "时间信息 (s)"
@@ -525,14 +525,14 @@ msgstr "小字体"
msgid "Setup.OSD$Fixed font"
msgstr "固定字体"
-msgid "Setup.OSD$Default font size (pixel)"
-msgstr "默认字体大小 (像素)"
+msgid "Setup.OSD$Default font size (%)"
+msgstr "默认字体大小 (%)"
-msgid "Setup.OSD$Small font size (pixel)"
-msgstr "小字体 (像素)"
+msgid "Setup.OSD$Small font size (%)"
+msgstr "小字体 (%)"
-msgid "Setup.OSD$Fixed font size (pixel)"
-msgstr "固定的字体 (像素)"
+msgid "Setup.OSD$Fixed font size (%)"
+msgstr "固定的字体 (%)"
msgid "Setup.OSD$Channel info position"
msgstr "频道信息位置"
diff --git a/remux.c b/remux.c
index 10e5145..58c0531 100644
--- a/remux.c
+++ b/remux.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: remux.c 2.19 2009/04/19 10:59:56 kls Exp $
+ * $Id: remux.c 2.20 2009/05/03 14:43:25 kls Exp $
*/
#include "remux.h"
@@ -722,6 +722,13 @@ int cFrameDetector::Analyze(const uchar *Data, int Length)
int Processed = 0;
newFrame = independentFrame = false;
while (Length >= TS_SIZE) {
+ if (Data[0] != TS_SYNC_BYTE) {
+ int Skipped = 1;
+ while (Skipped < Length && (Data[Skipped] != TS_SYNC_BYTE || Length - Skipped > TS_SIZE && Data[Skipped + TS_SIZE] != TS_SYNC_BYTE))
+ Skipped++;
+ esyslog("ERROR: skipped %d bytes to sync on start of TS packet", Skipped);
+ return Processed + Skipped;
+ }
if (TsHasPayload(Data) && !TsIsScrambled(Data) && TsPid(Data) == pid) {
if (TsPayloadStart(Data)) {
if (!frameDuration) {
diff --git a/vdr.c b/vdr.c
index 36942a5..46e4200 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/vdr
*
- * $Id: vdr.c 2.7 2009/04/05 13:21:46 kls Exp $
+ * $Id: vdr.c 2.8 2009/05/03 10:33:06 kls Exp $
*/
#include <getopt.h>
@@ -747,6 +747,12 @@ int main(int argc, char *argv[])
CheckHasProgramme = false;
}
}
+ // Update the OSD size:
+ {
+ static time_t lastOsdSizeUpdate = 0;
+ if (Now != lastOsdSizeUpdate) // once per second
+ cOsdProvider::UpdateOsdSize();
+ }
// Restart the Watchdog timer:
if (WatchdogTimeout > 0) {
int LatencyTime = WatchdogTimeout - alarm(WatchdogTimeout);