summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);