mirror of
				https://github.com/rofafor/vdr-plugin-femon.git
				synced 2023-10-10 11:36:53 +00:00 
			
		
		
		
	Updated for vdr-1.3.34.
Added Enigma theme (Thanks to Rolf Hoverath). Added EgalsTry theme (Thanks to Uwe Hanke). Added option to disable rounded corners.
This commit is contained in:
		
							
								
								
									
										7
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								HISTORY
									
									
									
									
									
								
							@@ -176,3 +176,10 @@ VDR Plugin 'femon' Revision History
 | 
			
		||||
 | 
			
		||||
- Updated for vdr-1.3.31.
 | 
			
		||||
- Added preliminary svdrp and service support.
 | 
			
		||||
 | 
			
		||||
2005-10-04: Version 0.9.4
 | 
			
		||||
 | 
			
		||||
- Updated for vdr-1.3.34.
 | 
			
		||||
- Added Enigma theme (Thanks to Rolf Hoverath).
 | 
			
		||||
- Added EgalsTry theme (Thanks to Uwe Hanke).
 | 
			
		||||
- Added option to disable rounded corners.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								femon.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								femon.c
									
									
									
									
									
								
							@@ -14,8 +14,8 @@
 | 
			
		||||
#include "femontools.h"
 | 
			
		||||
#include "femon.h"
 | 
			
		||||
 | 
			
		||||
#if VDRVERSNUM && VDRVERSNUM < 10331
 | 
			
		||||
#error "You don't exist! Go away!"
 | 
			
		||||
#if defined(VDRVERSNUM) && VDRVERSNUM < 10334
 | 
			
		||||
#error "You don't exist! Go away! Upgrade yourself!"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
cPluginFemon::cPluginFemon(void)
 | 
			
		||||
@@ -80,6 +80,7 @@ bool cPluginFemon::SetupParse(const char *Name, const char *Value)
 | 
			
		||||
  else if (!strcasecmp(Name, "Position"))       femonConfig.position       = atoi(Value);
 | 
			
		||||
  else if (!strcasecmp(Name, "OSDHeight"))      femonConfig.osdheight      = atoi(Value);
 | 
			
		||||
  else if (!strcasecmp(Name, "OSDOffset"))      femonConfig.osdoffset      = atoi(Value);
 | 
			
		||||
  else if (!strcasecmp(Name, "Skin"))           femonConfig.skin           = atoi(Value);
 | 
			
		||||
  else if (!strcasecmp(Name, "Theme"))          femonConfig.theme          = atoi(Value);
 | 
			
		||||
  else if (!strcasecmp(Name, "ShowCASystem"))   femonConfig.showcasystem   = atoi(Value);
 | 
			
		||||
  else if (!strcasecmp(Name, "RedLimit"))       femonConfig.redlimit       = atoi(Value);
 | 
			
		||||
@@ -173,10 +174,15 @@ cMenuFemonSetup::cMenuFemonSetup(void)
 | 
			
		||||
  dispmodes[eFemonModeStream]      = tr("stream");
 | 
			
		||||
  dispmodes[eFemonModeAC3]         = tr("AC-3");
 | 
			
		||||
 | 
			
		||||
  skins[eFemonSkinClassic]         = tr("Classic");
 | 
			
		||||
  skins[eFemonSkinElchi]           = tr("Elchi");
 | 
			
		||||
 | 
			
		||||
  themes[eFemonThemeClassic]       = tr("Classic");
 | 
			
		||||
  themes[eFemonThemeElchi]         = tr("Elchi");
 | 
			
		||||
  themes[eFemonThemeDeepBlue]      = tr("DeepBlue");
 | 
			
		||||
  themes[eFemonThemeMoronimo]      = tr("Moronimo");
 | 
			
		||||
  themes[eFemonThemeEnigma]        = tr("Enigma");
 | 
			
		||||
  themes[eFemonThemeEgalsTry]      = tr("EgalsTry");
 | 
			
		||||
 | 
			
		||||
  Setup();
 | 
			
		||||
}
 | 
			
		||||
@@ -189,6 +195,7 @@ void cMenuFemonSetup::Setup(void)
 | 
			
		||||
  Add(new cMenuEditBoolItem(  tr("Hide main menu entry"),        &femonConfig.hidemenu,       tr("no"),            tr("yes")));
 | 
			
		||||
  Add(new cMenuEditBoolItem(  tr("Use syslog output"),           &femonConfig.syslogoutput,   tr("no"),            tr("yes")));
 | 
			
		||||
  Add(new cMenuEditStraItem(  tr("Default display mode"),        &femonConfig.displaymode,    eFemonModeMaxNumber, dispmodes));
 | 
			
		||||
  Add(new cMenuEditStraItem(  tr("Skin"),                        &femonConfig.skin,           eFemonSkinMaxNumber, skins));
 | 
			
		||||
  Add(new cMenuEditStraItem(  tr("Theme"),                       &femonConfig.theme,          eFemonThemeMaxNumber,themes));
 | 
			
		||||
  Add(new cMenuEditBoolItem(  tr("Position"),                    &femonConfig.position,       tr("bottom"),        tr("top")));
 | 
			
		||||
  Add(new cMenuEditIntItem(   tr("Height"),                      &femonConfig.osdheight,      400,                 500));
 | 
			
		||||
@@ -210,6 +217,7 @@ void cMenuFemonSetup::Store(void)
 | 
			
		||||
  SetupStore("HideMenu",       femonConfig.hidemenu);
 | 
			
		||||
  SetupStore("SyslogOutput",   femonConfig.syslogoutput);
 | 
			
		||||
  SetupStore("DisplayMode",    femonConfig.displaymode);
 | 
			
		||||
  SetupStore("Skin",           femonConfig.skin);
 | 
			
		||||
  SetupStore("Theme",          femonConfig.theme);
 | 
			
		||||
  SetupStore("Position",       femonConfig.position);
 | 
			
		||||
  SetupStore("OSDHeight",      femonConfig.osdheight);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								femon.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								femon.h
									
									
									
									
									
								
							@@ -11,7 +11,7 @@
 | 
			
		||||
 | 
			
		||||
#include <vdr/plugin.h>
 | 
			
		||||
 | 
			
		||||
static const char *VERSION        = "0.9.3";
 | 
			
		||||
static const char *VERSION        = "0.9.4";
 | 
			
		||||
static const char *DESCRIPTION    = "DVB Signal Information Monitor (OSD)";
 | 
			
		||||
static const char *MAINMENUENTRY  = "Signal Information";
 | 
			
		||||
 | 
			
		||||
@@ -41,6 +41,7 @@ public:
 | 
			
		||||
class cMenuFemonSetup : public cMenuSetupPage {
 | 
			
		||||
  private:
 | 
			
		||||
    const char *dispmodes[eFemonModeMaxNumber];
 | 
			
		||||
    const char *skins[eFemonSkinMaxNumber];
 | 
			
		||||
    const char *themes[eFemonThemeMaxNumber];
 | 
			
		||||
    virtual void Setup(void);
 | 
			
		||||
  protected:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								femoncfg.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								femoncfg.c
									
									
									
									
									
								
							@@ -14,6 +14,7 @@ cFemonConfig::cFemonConfig(void)
 | 
			
		||||
{
 | 
			
		||||
  hidemenu       = 0;
 | 
			
		||||
  displaymode    = 0;
 | 
			
		||||
  skin           = 0;
 | 
			
		||||
  theme          = 0;
 | 
			
		||||
  position       = 1;
 | 
			
		||||
  redlimit       = 33;
 | 
			
		||||
@@ -77,5 +78,26 @@ const cFemonTheme femonTheme[eFemonThemeMaxNumber] =
 | 
			
		||||
    0xFFCE7B00, // clrYellow
 | 
			
		||||
    0xFF336600, // clrGreen
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    // eFemonThemeEnigma
 | 
			
		||||
    0xB8DEE5FA, // clrBackground
 | 
			
		||||
    0xB84158BC, // clrTitleBackground
 | 
			
		||||
    0xFFFFFFFF, // clrTitleText
 | 
			
		||||
    0xFF000000, // clrActiveText
 | 
			
		||||
    0xFF000000, // clrInactiveText
 | 
			
		||||
    0xB8C40000, // clrRed
 | 
			
		||||
    0xB8C4C400, // clrYellow
 | 
			
		||||
    0xB800C400, // clrGreen
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    // eFemonThemeEgalsTry
 | 
			
		||||
    0xCA2B1B9E, // clrBackground
 | 
			
		||||
    0xDFBEBAC3, // clrTitleBackground
 | 
			
		||||
    0xFF280249, // clrTitleText
 | 
			
		||||
    0xFFD4D7DB, // clrActiveText
 | 
			
		||||
    0xDFCFCFCF, // clrInactiveText
 | 
			
		||||
    0xFFFF0000, // clrRed
 | 
			
		||||
    0xFFFCC024, // clrYellow
 | 
			
		||||
    0xFF20980B, // clrGreen
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								femoncfg.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								femoncfg.h
									
									
									
									
									
								
							@@ -24,6 +24,7 @@ public:
 | 
			
		||||
  cFemonConfig(void);
 | 
			
		||||
  int hidemenu;
 | 
			
		||||
  int displaymode;
 | 
			
		||||
  int skin;
 | 
			
		||||
  int theme;
 | 
			
		||||
  int position;
 | 
			
		||||
  int redlimit;
 | 
			
		||||
@@ -39,12 +40,21 @@ public:
 | 
			
		||||
 | 
			
		||||
extern cFemonConfig femonConfig;
 | 
			
		||||
 | 
			
		||||
enum eFemonSkins
 | 
			
		||||
{
 | 
			
		||||
  eFemonSkinClassic,
 | 
			
		||||
  eFemonSkinElchi,
 | 
			
		||||
  eFemonSkinMaxNumber
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum eFemonThemes
 | 
			
		||||
{
 | 
			
		||||
  eFemonThemeClassic,
 | 
			
		||||
  eFemonThemeElchi,
 | 
			
		||||
  eFemonThemeDeepBlue,
 | 
			
		||||
  eFemonThemeMoronimo,
 | 
			
		||||
  eFemonThemeEnigma,
 | 
			
		||||
  eFemonThemeEgalsTry,
 | 
			
		||||
  eFemonThemeMaxNumber
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										162
									
								
								femoni18n.c
									
									
									
									
									
								
							
							
						
						
									
										162
									
								
								femoni18n.c
									
									
									
									
									
								
							@@ -120,11 +120,11 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "Modo di visualizzazione standard", // Italiano
 | 
			
		||||
    "", // Nederlands
 | 
			
		||||
    "", // Portugu<67>s
 | 
			
		||||
    "", // Fran<61>ais 
 | 
			
		||||
    "", // Fran<61>ais
 | 
			
		||||
    "", // Norsk
 | 
			
		||||
    "Oletusn<EFBFBD>ytt<EFBFBD>tila", // suomi
 | 
			
		||||
    "", // Polski   
 | 
			
		||||
    "", // Espa<70>ol  
 | 
			
		||||
    "", // Polski
 | 
			
		||||
    "", // Espa<70>ol
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "", // Svenska
 | 
			
		||||
    "", // Romaneste
 | 
			
		||||
@@ -141,11 +141,11 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "", // Italiano
 | 
			
		||||
    "", // Nederlands
 | 
			
		||||
    "", // Portugu<67>s
 | 
			
		||||
    "", // Fran<61>ais 
 | 
			
		||||
    "", // Fran<61>ais
 | 
			
		||||
    "", // Norsk
 | 
			
		||||
    "perus", // suomi
 | 
			
		||||
    "", // Polski   
 | 
			
		||||
    "", // Espa<70>ol  
 | 
			
		||||
    "", // Polski
 | 
			
		||||
    "", // Espa<70>ol
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "", // Svenska
 | 
			
		||||
    "", // Romaneste
 | 
			
		||||
@@ -162,11 +162,11 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "", // Italiano
 | 
			
		||||
    "", // Nederlands
 | 
			
		||||
    "", // Portugu<67>s
 | 
			
		||||
    "", // Fran<61>ais 
 | 
			
		||||
    "", // Fran<61>ais
 | 
			
		||||
    "", // Norsk
 | 
			
		||||
    "transponderi", // suomi
 | 
			
		||||
    "", // Polski   
 | 
			
		||||
    "", // Espa<70>ol  
 | 
			
		||||
    "", // Polski
 | 
			
		||||
    "", // Espa<70>ol
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "", // Svenska
 | 
			
		||||
    "", // Romaneste
 | 
			
		||||
@@ -183,11 +183,11 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "", // Italiano
 | 
			
		||||
    "", // Nederlands
 | 
			
		||||
    "", // Portugu<67>s
 | 
			
		||||
    "", // Fran<61>ais 
 | 
			
		||||
    "", // Fran<61>ais
 | 
			
		||||
    "", // Norsk
 | 
			
		||||
    "l<EFBFBD>hete", // suomi
 | 
			
		||||
    "", // Polski   
 | 
			
		||||
    "", // Espa<70>ol  
 | 
			
		||||
    "", // Polski
 | 
			
		||||
    "", // Espa<70>ol
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "", // Svenska
 | 
			
		||||
    "", // Romaneste
 | 
			
		||||
@@ -198,17 +198,38 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "voog", // Eesti
 | 
			
		||||
    "", // Dansk
 | 
			
		||||
  },
 | 
			
		||||
  { "Skin", // English
 | 
			
		||||
    "Oberfl<EFBFBD>che", // Deutsch
 | 
			
		||||
    "", // Slovenski
 | 
			
		||||
    "", // Italiano
 | 
			
		||||
    "", // Nederlands
 | 
			
		||||
    "", // Portugu<67>s
 | 
			
		||||
    "", // Fran<61>ais
 | 
			
		||||
    "", // Norsk
 | 
			
		||||
    "Ulkoasu", // suomi
 | 
			
		||||
    "", // Polski
 | 
			
		||||
    "", // Espa<70>ol  
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "", // Svenska
 | 
			
		||||
    "", // Romaneste
 | 
			
		||||
    "", // Magyar
 | 
			
		||||
    "", // Catal<61> 
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
 | 
			
		||||
    "", // Hrvatski (Croatian)
 | 
			
		||||
    "Kest", // Eesti
 | 
			
		||||
    "", // Dansk 
 | 
			
		||||
  },
 | 
			
		||||
  { "Theme", // English
 | 
			
		||||
    "Thema", // Deutsch
 | 
			
		||||
    "", // Slovenski
 | 
			
		||||
    "", // Italiano
 | 
			
		||||
    "", // Nederlands
 | 
			
		||||
    "", // Portugu<67>s
 | 
			
		||||
    "", // Fran<61>ais 
 | 
			
		||||
    "", // Fran<61>ais
 | 
			
		||||
    "", // Norsk
 | 
			
		||||
    "Teema", // suomi
 | 
			
		||||
    "", // Polski   
 | 
			
		||||
    "", // Espa<70>ol  
 | 
			
		||||
    "", // Polski
 | 
			
		||||
    "", // Espa<70>ol
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "", // Svenska
 | 
			
		||||
    "", // Romaneste
 | 
			
		||||
@@ -225,16 +246,16 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "", // Italiano
 | 
			
		||||
    "", // Nederlands
 | 
			
		||||
    "", // Portugu<67>s
 | 
			
		||||
    "", // Fran<61>ais 
 | 
			
		||||
    "", // Fran<61>ais
 | 
			
		||||
    "", // Norsk
 | 
			
		||||
    "Klassinen", // suomi
 | 
			
		||||
    "", // Polski   
 | 
			
		||||
    "", // Espa<70>ol  
 | 
			
		||||
    "", // Polski
 | 
			
		||||
    "", // Espa<70>ol
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "", // Svenska
 | 
			
		||||
    "", // Romaneste
 | 
			
		||||
    "", // Magyar  
 | 
			
		||||
    "", // Catal<61>  
 | 
			
		||||
    "", // Magyar
 | 
			
		||||
    "", // Catal<61>
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
 | 
			
		||||
    "", // Hrvatski (Croatian)
 | 
			
		||||
    "Klassikaline", // Eesti
 | 
			
		||||
@@ -246,16 +267,16 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "Elchi", // Italiano
 | 
			
		||||
    "Elchi", // Nederlands
 | 
			
		||||
    "Elchi", // Portugu<67>s
 | 
			
		||||
    "Elchi", // Fran<61>ais 
 | 
			
		||||
    "Elchi", // Fran<61>ais
 | 
			
		||||
    "Elchi", // Norsk
 | 
			
		||||
    "Elchi", // suomi
 | 
			
		||||
    "Elchi", // Polski   
 | 
			
		||||
    "Elchi", // Espa<70>ol  
 | 
			
		||||
    "Elchi", // Polski
 | 
			
		||||
    "Elchi", // Espa<70>ol
 | 
			
		||||
    "Elchi", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "Elchi", // Svenska
 | 
			
		||||
    "Elchi", // Romaneste
 | 
			
		||||
    "Elchi", // Magyar  
 | 
			
		||||
    "Elchi", // Catal<61>  
 | 
			
		||||
    "Elchi", // Magyar
 | 
			
		||||
    "Elchi", // Catal<61>
 | 
			
		||||
    "Elchi", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
 | 
			
		||||
    "Elchi", // Hrvatski (Croatian)
 | 
			
		||||
    "Elchi", // Eesti
 | 
			
		||||
@@ -267,16 +288,16 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "DeepBlue", // Italiano
 | 
			
		||||
    "DeepBlue", // Nederlands
 | 
			
		||||
    "DeepBlue", // Portugu<67>s
 | 
			
		||||
    "DeepBlue", // Fran<61>ais 
 | 
			
		||||
    "DeepBlue", // Fran<61>ais
 | 
			
		||||
    "DeepBlue", // Norsk
 | 
			
		||||
    "DeepBlue", // suomi
 | 
			
		||||
    "DeepBlue", // Polski   
 | 
			
		||||
    "DeepBlue", // Espa<70>ol  
 | 
			
		||||
    "DeepBlue", // Polski
 | 
			
		||||
    "DeepBlue", // Espa<70>ol
 | 
			
		||||
    "DeepBlue", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "DeepBlue", // Svenska
 | 
			
		||||
    "DeepBlue", // Romaneste
 | 
			
		||||
    "DeepBlue", // Magyar  
 | 
			
		||||
    "DeepBlue", // Catal<61>  
 | 
			
		||||
    "DeepBlue", // Magyar
 | 
			
		||||
    "DeepBlue", // Catal<61>
 | 
			
		||||
    "DeepBlue", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
 | 
			
		||||
    "DeepBlue", // Hrvatski (Croatian)
 | 
			
		||||
    "DeepBlue", // Eesti
 | 
			
		||||
@@ -288,21 +309,63 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "Moronimo", // Italiano
 | 
			
		||||
    "Moronimo", // Nederlands
 | 
			
		||||
    "Moronimo", // Portugu<67>s
 | 
			
		||||
    "Moronimo", // Fran<61>ais 
 | 
			
		||||
    "Moronimo", // Fran<61>ais
 | 
			
		||||
    "Moronimo", // Norsk
 | 
			
		||||
    "Moronimo", // suomi
 | 
			
		||||
    "Moronimo", // Polski   
 | 
			
		||||
    "Moronimo", // Espa<70>ol  
 | 
			
		||||
    "Moronimo", // Polski
 | 
			
		||||
    "Moronimo", // Espa<70>ol
 | 
			
		||||
    "Moronimo", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "Moronimo", // Svenska
 | 
			
		||||
    "Moronimo", // Romaneste
 | 
			
		||||
    "Moronimo", // Magyar  
 | 
			
		||||
    "Moronimo", // Catal<61>  
 | 
			
		||||
    "Moronimo", // Magyar
 | 
			
		||||
    "Moronimo", // Catal<61>
 | 
			
		||||
    "Moronimo", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
 | 
			
		||||
    "Moronimo", // Hrvatski (Croatian)
 | 
			
		||||
    "Moronimo", // Eesti
 | 
			
		||||
    "Moronimo", // Dansk
 | 
			
		||||
  },
 | 
			
		||||
  { "Enigma", // English
 | 
			
		||||
    "Enigma", // Deutsch
 | 
			
		||||
    "Enigma", // Slovenski
 | 
			
		||||
    "Enigma", // Italiano
 | 
			
		||||
    "Enigma", // Nederlands
 | 
			
		||||
    "Enigma", // Portugu<67>s
 | 
			
		||||
    "Enigma", // Fran<61>ais
 | 
			
		||||
    "Enigma", // Norsk
 | 
			
		||||
    "Enigma", // suomi
 | 
			
		||||
    "Enigma", // Polski
 | 
			
		||||
    "Enigma", // Espa<70>ol
 | 
			
		||||
    "Enigma", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "Enigma", // Svenska
 | 
			
		||||
    "Enigma", // Romaneste
 | 
			
		||||
    "Enigma", // Magyar
 | 
			
		||||
    "Enigma", // Catal<61>
 | 
			
		||||
    "Enigma", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
 | 
			
		||||
    "Enigma", // Hrvatski (Croatian)
 | 
			
		||||
    "Enigma", // Eesti
 | 
			
		||||
    "Enigma", // Dansk
 | 
			
		||||
  },
 | 
			
		||||
  { "EgalsTry", // English
 | 
			
		||||
    "EgalsTry", // Deutsch
 | 
			
		||||
    "EgalsTry", // Slovenski
 | 
			
		||||
    "EgalsTry", // Italiano
 | 
			
		||||
    "EgalsTry", // Nederlands
 | 
			
		||||
    "EgalsTry", // Portugu<67>s
 | 
			
		||||
    "EgalsTry", // Fran<61>ais
 | 
			
		||||
    "EgalsTry", // Norsk
 | 
			
		||||
    "EgalsTry", // suomi
 | 
			
		||||
    "EgalsTry", // Polski
 | 
			
		||||
    "EgalsTry", // Espa<70>ol
 | 
			
		||||
    "EgalsTry", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "EgalsTry", // Svenska
 | 
			
		||||
    "EgalsTry", // Romaneste
 | 
			
		||||
    "EgalsTry", // Magyar
 | 
			
		||||
    "EgalsTry", // Catal<61>
 | 
			
		||||
    "EgalsTry", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
 | 
			
		||||
    "EgalsTry", // Hrvatski (Croatian)
 | 
			
		||||
    "EgalsTry", // Eesti
 | 
			
		||||
    "EgalsTry", // Dansk
 | 
			
		||||
  },
 | 
			
		||||
  { "Hide main menu entry", // English
 | 
			
		||||
    "Hauptmen<EFBFBD>eintrag verstecken", // Deutsch
 | 
			
		||||
    "", // Slovenski
 | 
			
		||||
@@ -438,7 +501,7 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "", // Fran<61>ais
 | 
			
		||||
    "", // Norsk   
 | 
			
		||||
    "Transponderin tiedot", // suomi
 | 
			
		||||
    "", // Polski   
 | 
			
		||||
    "", // Polski
 | 
			
		||||
    "", // Espa<70>ol
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "", // Svenska
 | 
			
		||||
@@ -900,7 +963,7 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "", // Fran<61>ais
 | 
			
		||||
    "", // Norsk
 | 
			
		||||
    "vapaa", // suomi
 | 
			
		||||
    "", // Polski   
 | 
			
		||||
    "", // Polski
 | 
			
		||||
    "", // Espa<70>ol
 | 
			
		||||
    "", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "", // Svenska
 | 
			
		||||
@@ -1068,7 +1131,7 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "kHz", // Fran<61>ais
 | 
			
		||||
    "kHz", // Norsk
 | 
			
		||||
    "kHz", // suomi
 | 
			
		||||
    "kHz", // Polski   
 | 
			
		||||
    "kHz", // Polski
 | 
			
		||||
    "kHz", // Espa<70>ol
 | 
			
		||||
    "kHz", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "kHz", // Svenska
 | 
			
		||||
@@ -1185,6 +1248,27 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "Rid", // Eesti
 | 
			
		||||
    "Rid", // Dansk
 | 
			
		||||
  },
 | 
			
		||||
  { "Coderate", // English
 | 
			
		||||
    "Coderate", // Deutsch
 | 
			
		||||
    "Coderate", // Slovenski
 | 
			
		||||
    "Coderate", // Italiano
 | 
			
		||||
    "Coderate", // Nederlands
 | 
			
		||||
    "Coderate", // Portugu<67>s
 | 
			
		||||
    "Coderate", // Fran<61>ais
 | 
			
		||||
    "Coderate", // Norsk
 | 
			
		||||
    "Suojaustaso", // suomi
 | 
			
		||||
    "Coderate", // Polski
 | 
			
		||||
    "Coderate", // Espa<70>ol
 | 
			
		||||
    "Coderate", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "Coderate", // Svenska
 | 
			
		||||
    "Coderate", // Romaneste
 | 
			
		||||
    "Coderate", // Magyar
 | 
			
		||||
    "Coderate", // Catal<61>
 | 
			
		||||
    "Coderate", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
 | 
			
		||||
    "Coderate", // Hrvatski (Croatian)
 | 
			
		||||
    "Coderate", // Eesti
 | 
			
		||||
    "Coderate", // Dansk
 | 
			
		||||
  },
 | 
			
		||||
  { "dB", // English
 | 
			
		||||
    "dB", // Deutsch
 | 
			
		||||
    "dB", // Slovenski
 | 
			
		||||
@@ -1194,7 +1278,7 @@ const tI18nPhrase Phrases[] = {
 | 
			
		||||
    "dB", // Fran<61>ais
 | 
			
		||||
    "dB", // Norsk
 | 
			
		||||
    "dB", // suomi
 | 
			
		||||
    "dB", // Polski   
 | 
			
		||||
    "dB", // Polski
 | 
			
		||||
    "dB", // Espa<70>ol
 | 
			
		||||
    "dB", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
 | 
			
		||||
    "dB", // Svenska
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										91
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										91
									
								
								femonosd.c
									
									
									
									
									
								
							@@ -47,6 +47,7 @@
 | 
			
		||||
#define OSDSTATUSHEIGHT           (OSDROWHEIGHT * 6)      // in pixels (6 rows)
 | 
			
		||||
#define OSDSPACING                5
 | 
			
		||||
#define OSDCORNERING              10
 | 
			
		||||
#define IS_OSDCORNERING           (femonConfig.skin == eFemonSkinElchi)
 | 
			
		||||
 | 
			
		||||
#define OSDINFOWIN_Y(offset)      (femonConfig.position ? (OSDHEIGHT - OSDINFOHEIGHT + offset) : offset)
 | 
			
		||||
#define OSDINFOWIN_X(col)         ((col == 4) ? 455 : (col == 3) ? 305 : (col == 2) ? 155 : 15)
 | 
			
		||||
@@ -136,8 +137,10 @@ void cFemonOsd::DrawStatusWindow(void)
 | 
			
		||||
     snprintf(buf, sizeof(buf), "%d%s %s", m_Number ? m_Number : channel->Number(), m_Number ? "-" : "", channel->ShortName(true));
 | 
			
		||||
     m_Osd->DrawRectangle(0, OSDSTATUSWIN_Y(offset), OSDWIDTH, OSDSTATUSWIN_Y(offset+OSDROWHEIGHT-1), femonTheme[femonConfig.theme].clrTitleBackground);
 | 
			
		||||
     m_Osd->DrawText(OSDSTATUSWIN_X(1), OSDSTATUSWIN_Y(offset), buf, femonTheme[femonConfig.theme].clrTitleText, femonTheme[femonConfig.theme].clrTitleBackground, m_Font);
 | 
			
		||||
     m_Osd->DrawEllipse(0, OSDSTATUSWIN_Y(0), OSDCORNERING, OSDSTATUSWIN_Y(OSDCORNERING), clrTransparent, -2);
 | 
			
		||||
     m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDSTATUSWIN_Y(0), OSDWIDTH, OSDSTATUSWIN_Y(OSDCORNERING), clrTransparent, -1);
 | 
			
		||||
     if (IS_OSDCORNERING) {
 | 
			
		||||
        m_Osd->DrawEllipse(0, OSDSTATUSWIN_Y(0), OSDCORNERING, OSDSTATUSWIN_Y(OSDCORNERING), clrTransparent, -2);
 | 
			
		||||
        m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDSTATUSWIN_Y(0), OSDWIDTH, OSDSTATUSWIN_Y(OSDCORNERING), clrTransparent, -1);
 | 
			
		||||
        }
 | 
			
		||||
     if (m_Receiver) {
 | 
			
		||||
        value = cDevice::ActualDevice()->CardIndex();
 | 
			
		||||
        if (value == 1) {
 | 
			
		||||
@@ -343,8 +346,10 @@ void cFemonOsd::DrawStatusWindow(void)
 | 
			
		||||
     m_Osd->DrawBitmap(OSDSTATUSWIN_XSYMBOL(3, x), OSDSTATUSWIN_Y(offset + y), bmCarrier, (m_FrontendStatus & FE_HAS_CARRIER) ? femonTheme[femonConfig.theme].clrActiveText : femonTheme[femonConfig.theme].clrRed, femonTheme[femonConfig.theme].clrBackground);
 | 
			
		||||
     m_Osd->DrawBitmap(OSDSTATUSWIN_XSYMBOL(4, x), OSDSTATUSWIN_Y(offset + y), bmViterbi, (m_FrontendStatus & FE_HAS_VITERBI) ? femonTheme[femonConfig.theme].clrActiveText : femonTheme[femonConfig.theme].clrRed, femonTheme[femonConfig.theme].clrBackground);
 | 
			
		||||
     m_Osd->DrawBitmap(OSDSTATUSWIN_XSYMBOL(5, x), OSDSTATUSWIN_Y(offset + y), bmSync, (m_FrontendStatus & FE_HAS_SYNC) ? femonTheme[femonConfig.theme].clrActiveText : femonTheme[femonConfig.theme].clrRed, femonTheme[femonConfig.theme].clrBackground);
 | 
			
		||||
     m_Osd->DrawEllipse(0, OSDSTATUSWIN_Y(OSDSTATUSHEIGHT-OSDCORNERING), OSDCORNERING, OSDSTATUSWIN_Y(OSDSTATUSHEIGHT), clrTransparent, -3);
 | 
			
		||||
     m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDSTATUSWIN_Y(OSDSTATUSHEIGHT-OSDCORNERING), OSDWIDTH, OSDSTATUSWIN_Y(OSDSTATUSHEIGHT), clrTransparent, -4);
 | 
			
		||||
     if (IS_OSDCORNERING) {
 | 
			
		||||
        m_Osd->DrawEllipse(0, OSDSTATUSWIN_Y(OSDSTATUSHEIGHT-OSDCORNERING), OSDCORNERING, OSDSTATUSWIN_Y(OSDSTATUSHEIGHT), clrTransparent, -3);
 | 
			
		||||
        m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDSTATUSWIN_Y(OSDSTATUSHEIGHT-OSDCORNERING), OSDWIDTH, OSDSTATUSWIN_Y(OSDSTATUSHEIGHT), clrTransparent, -4);
 | 
			
		||||
        }
 | 
			
		||||
     m_Osd->Flush();
 | 
			
		||||
     }
 | 
			
		||||
}
 | 
			
		||||
@@ -365,8 +370,10 @@ void cFemonOsd::DrawInfoWindow(void)
 | 
			
		||||
        m_Osd->DrawRectangle(0, OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), femonTheme[femonConfig.theme].clrBackground);
 | 
			
		||||
        m_Osd->DrawRectangle(0, OSDINFOWIN_Y(offset), OSDWIDTH, OSDINFOWIN_Y(offset+OSDROWHEIGHT-1), femonTheme[femonConfig.theme].clrTitleBackground);
 | 
			
		||||
        m_Osd->DrawText( OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Transponder Information"), femonTheme[femonConfig.theme].clrTitleText, femonTheme[femonConfig.theme].clrTitleBackground, m_Font);
 | 
			
		||||
        m_Osd->DrawEllipse(0, OSDINFOWIN_Y(0), OSDCORNERING, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -2);
 | 
			
		||||
        m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -1);
 | 
			
		||||
        if (IS_OSDCORNERING) {
 | 
			
		||||
           m_Osd->DrawEllipse(0, OSDINFOWIN_Y(0), OSDCORNERING, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -2);
 | 
			
		||||
           m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -1);
 | 
			
		||||
           }
 | 
			
		||||
        offset += OSDROWHEIGHT;
 | 
			
		||||
        m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Vpid"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
        snprintf(buf, sizeof(buf), "%d", channel->Vpid());
 | 
			
		||||
@@ -614,29 +621,29 @@ void cFemonOsd::DrawInfoWindow(void)
 | 
			
		||||
               else if (value == INVERSION_ON)    snprintf(buf, sizeof(buf), tr("On"));
 | 
			
		||||
               else            /*INVERSION_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
 | 
			
		||||
               m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
               m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("CoderateH"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
               m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Coderate"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
               value = channel->CoderateH();
 | 
			
		||||
               if      (value == FEC_NONE)  snprintf(buf, sizeof(buf), tr("None"));
 | 
			
		||||
               else if (value == FEC_1_2)   snprintf(buf, sizeof(buf), "1/2");
 | 
			
		||||
               else if (value == FEC_2_3)   snprintf(buf, sizeof(buf), "2/3");
 | 
			
		||||
               else if (value == FEC_3_4)   snprintf(buf, sizeof(buf), "3/4");
 | 
			
		||||
               else if (value == FEC_4_5)   snprintf(buf, sizeof(buf), "4/5");
 | 
			
		||||
               else if (value == FEC_5_6)   snprintf(buf, sizeof(buf), "5/6");
 | 
			
		||||
               else if (value == FEC_6_7)   snprintf(buf, sizeof(buf), "6/7");
 | 
			
		||||
               else if (value == FEC_7_8)   snprintf(buf, sizeof(buf), "7/8");
 | 
			
		||||
               else if (value == FEC_8_9)   snprintf(buf, sizeof(buf), "8/9");
 | 
			
		||||
               else            /*FEC_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
 | 
			
		||||
               if      (value == FEC_NONE)  snprintf(buf, sizeof(buf), "%s (H)", tr("None"));
 | 
			
		||||
               else if (value == FEC_1_2)   snprintf(buf, sizeof(buf), "1/2 (H)");
 | 
			
		||||
               else if (value == FEC_2_3)   snprintf(buf, sizeof(buf), "2/3 (H)");
 | 
			
		||||
               else if (value == FEC_3_4)   snprintf(buf, sizeof(buf), "3/4 (H)");
 | 
			
		||||
               else if (value == FEC_4_5)   snprintf(buf, sizeof(buf), "4/5 (H)");
 | 
			
		||||
               else if (value == FEC_5_6)   snprintf(buf, sizeof(buf), "5/6 (H)");
 | 
			
		||||
               else if (value == FEC_6_7)   snprintf(buf, sizeof(buf), "6/7 (H)");
 | 
			
		||||
               else if (value == FEC_7_8)   snprintf(buf, sizeof(buf), "7/8 (H)");
 | 
			
		||||
               else if (value == FEC_8_9)   snprintf(buf, sizeof(buf), "8/9 (H)");
 | 
			
		||||
               else            /*FEC_AUTO*/ snprintf(buf, sizeof(buf), "%s (H)", tr("Auto"));
 | 
			
		||||
               value = channel->CoderateL();
 | 
			
		||||
               if      (value == FEC_NONE)  snprintf(buf2, sizeof(buf2), " - %s", tr("None"));
 | 
			
		||||
               else if (value == FEC_1_2)   snprintf(buf2, sizeof(buf2), " - 1/2");
 | 
			
		||||
               else if (value == FEC_2_3)   snprintf(buf2, sizeof(buf2), " - 2/3");
 | 
			
		||||
               else if (value == FEC_3_4)   snprintf(buf2, sizeof(buf2), " - 3/4");
 | 
			
		||||
               else if (value == FEC_4_5)   snprintf(buf2, sizeof(buf2), " - 4/5");
 | 
			
		||||
               else if (value == FEC_5_6)   snprintf(buf2, sizeof(buf2), " - 5/6");
 | 
			
		||||
               else if (value == FEC_6_7)   snprintf(buf2, sizeof(buf2), " - 6/7");
 | 
			
		||||
               else if (value == FEC_7_8)   snprintf(buf2, sizeof(buf2), " - 7/8");
 | 
			
		||||
               else if (value == FEC_8_9)   snprintf(buf2, sizeof(buf2), " - 8/9");
 | 
			
		||||
               else            /*FEC_AUTO*/ snprintf(buf2, sizeof(buf2), " - %s", tr("Auto"));
 | 
			
		||||
               if      (value == FEC_NONE)  snprintf(buf2, sizeof(buf2), " %s (L)", tr("None"));
 | 
			
		||||
               else if (value == FEC_1_2)   snprintf(buf2, sizeof(buf2), " 1/2 (L)");
 | 
			
		||||
               else if (value == FEC_2_3)   snprintf(buf2, sizeof(buf2), " 2/3 (L)");
 | 
			
		||||
               else if (value == FEC_3_4)   snprintf(buf2, sizeof(buf2), " 3/4 (L)");
 | 
			
		||||
               else if (value == FEC_4_5)   snprintf(buf2, sizeof(buf2), " 4/5 (L)");
 | 
			
		||||
               else if (value == FEC_5_6)   snprintf(buf2, sizeof(buf2), " 5/6 (L)");
 | 
			
		||||
               else if (value == FEC_6_7)   snprintf(buf2, sizeof(buf2), " 6/7 (L)");
 | 
			
		||||
               else if (value == FEC_7_8)   snprintf(buf2, sizeof(buf2), " 7/8 (L)");
 | 
			
		||||
               else if (value == FEC_8_9)   snprintf(buf2, sizeof(buf2), " 8/9 (L)");
 | 
			
		||||
               else            /*FEC_AUTO*/ snprintf(buf2, sizeof(buf2), " %s (L)", tr("Auto"));
 | 
			
		||||
               strncat(buf, buf2, sizeof(buf));
 | 
			
		||||
               m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
               offset += OSDROWHEIGHT;
 | 
			
		||||
@@ -658,15 +665,19 @@ void cFemonOsd::DrawInfoWindow(void)
 | 
			
		||||
               m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
               break;
 | 
			
		||||
          }
 | 
			
		||||
        m_Osd->DrawEllipse(0, OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDCORNERING, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -3);
 | 
			
		||||
        m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -4);
 | 
			
		||||
        if (IS_OSDCORNERING) {
 | 
			
		||||
           m_Osd->DrawEllipse(0, OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDCORNERING, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -3);
 | 
			
		||||
           m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -4);
 | 
			
		||||
           }
 | 
			
		||||
        }
 | 
			
		||||
     else if (m_DisplayMode == eFemonModeStream) {
 | 
			
		||||
        m_Osd->DrawRectangle(0, OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), femonTheme[femonConfig.theme].clrBackground);
 | 
			
		||||
        m_Osd->DrawRectangle(0, OSDINFOWIN_Y(offset), OSDWIDTH, OSDINFOWIN_Y(offset+OSDROWHEIGHT-1), femonTheme[femonConfig.theme].clrTitleBackground);
 | 
			
		||||
        m_Osd->DrawText( OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Stream Information"), femonTheme[femonConfig.theme].clrTitleText, femonTheme[femonConfig.theme].clrTitleBackground, m_Font);
 | 
			
		||||
        m_Osd->DrawEllipse(0, OSDINFOWIN_Y(0), OSDCORNERING, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -2);
 | 
			
		||||
        m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -1);
 | 
			
		||||
        if (IS_OSDCORNERING) {
 | 
			
		||||
           m_Osd->DrawEllipse(0, OSDINFOWIN_Y(0), OSDCORNERING, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -2);
 | 
			
		||||
           m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -1);
 | 
			
		||||
           }
 | 
			
		||||
        offset += OSDROWHEIGHT;
 | 
			
		||||
        m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Video Stream"), femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
        snprintf(buf, sizeof(buf), "#%d", channel->Vpid());
 | 
			
		||||
@@ -736,16 +747,20 @@ void cFemonOsd::DrawInfoWindow(void)
 | 
			
		||||
           }
 | 
			
		||||
        else                         snprintf(buf, sizeof(buf), "---");
 | 
			
		||||
        m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
        m_Osd->DrawEllipse(0, OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDCORNERING, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -3);
 | 
			
		||||
        m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -4);
 | 
			
		||||
        if (IS_OSDCORNERING) {
 | 
			
		||||
           m_Osd->DrawEllipse(0, OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDCORNERING, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -3);
 | 
			
		||||
           m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -4);
 | 
			
		||||
           }
 | 
			
		||||
        }
 | 
			
		||||
     else if (m_DisplayMode == eFemonModeAC3) {
 | 
			
		||||
        m_Osd->DrawRectangle(0, OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), femonTheme[femonConfig.theme].clrBackground);
 | 
			
		||||
        m_Osd->DrawRectangle(0, OSDINFOWIN_Y(offset), OSDWIDTH, OSDINFOWIN_Y(offset+OSDROWHEIGHT-1), femonTheme[femonConfig.theme].clrTitleBackground);
 | 
			
		||||
        snprintf(buf, sizeof(buf), "%s - %s #%d %s", tr("Stream Information"), tr("AC-3 Stream"), IS_DOLBY_TRACK(track) ? channel->Dpid(int(track - ttDolbyFirst)) : channel->Dpid(0), IS_DOLBY_TRACK(track) ? channel->Dlang(int(track - ttDolbyFirst)) : channel->Dlang(0));
 | 
			
		||||
        m_Osd->DrawText( OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), buf, femonTheme[femonConfig.theme].clrTitleText, femonTheme[femonConfig.theme].clrTitleBackground, m_Font);
 | 
			
		||||
        m_Osd->DrawEllipse(0, OSDINFOWIN_Y(0), OSDCORNERING, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -2);
 | 
			
		||||
        m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -1);
 | 
			
		||||
        if (IS_OSDCORNERING) {
 | 
			
		||||
           m_Osd->DrawEllipse(0, OSDINFOWIN_Y(0), OSDCORNERING, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -2);
 | 
			
		||||
           m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDCORNERING), clrTransparent, -1);
 | 
			
		||||
           }
 | 
			
		||||
        offset += OSDROWHEIGHT;
 | 
			
		||||
        if (m_Receiver && m_Receiver->AC3Valid() && IS_DOLBY_TRACK(track)) {
 | 
			
		||||
           m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Bitrate"), femonTheme[femonConfig.theme].clrInactiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
@@ -831,8 +846,10 @@ void cFemonOsd::DrawInfoWindow(void)
 | 
			
		||||
           else           snprintf(buf, sizeof(buf), "---");
 | 
			
		||||
           m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, femonTheme[femonConfig.theme].clrActiveText, femonTheme[femonConfig.theme].clrBackground, m_Font);
 | 
			
		||||
           }
 | 
			
		||||
        m_Osd->DrawEllipse(0, OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDCORNERING, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -3);
 | 
			
		||||
        m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -4);
 | 
			
		||||
        if (IS_OSDCORNERING) {
 | 
			
		||||
           m_Osd->DrawEllipse(0, OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDCORNERING, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -3);
 | 
			
		||||
           m_Osd->DrawEllipse((OSDWIDTH-OSDCORNERING), OSDINFOWIN_Y(OSDINFOHEIGHT-OSDCORNERING), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent, -4);
 | 
			
		||||
           }
 | 
			
		||||
        }
 | 
			
		||||
     else /* eFemonModeBasic */ {
 | 
			
		||||
        m_Osd->DrawRectangle(0, OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), clrTransparent);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user