Fixed minor bitrate calculation errors.

Added russian translation (Thanks to Vyacheslav Dikonov).
This commit is contained in:
Rolf Ahrenberg 2004-04-04 04:20:00 +03:00
parent 43c68bcf23
commit ba7896b59a
5 changed files with 362 additions and 77 deletions

View File

@ -40,3 +40,8 @@ VDR Plugin 'femon' Revision History
- Fixed channel toggling with '0' key.
- Bitrate calculation thread is now canceled immediately to speed up channel switching.
2004-04-04: Version 0.0.3c
- Fixed minor bitrate calculation errors
- Added russian translation (Thanks to Vyacheslav Dikonov)

View File

@ -11,7 +11,7 @@
#include <vdr/plugin.h>
static const char *VERSION = "0.0.3b";
static const char *VERSION = "0.0.3c";
static const char *DESCRIPTION = "DVB Signal Information Monitor (OSD)";
static const char *MAINMENUENTRY = "Signal Information";

View File

@ -20,13 +20,13 @@ const tI18nPhrase Phrases[] = {
"DVB signaalimittari (OSD)", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"¼ÞÝØâÞà ÚÐçÕáâÒÐ áØÓÝÐÛÐ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Signal Information", // English
@ -40,13 +40,13 @@ const tI18nPhrase Phrases[] = {
"Signaalimittari", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ÁØÓÝÐÛ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Position", // English
@ -60,13 +60,13 @@ const tI18nPhrase Phrases[] = {
"Sijainti", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ÀÐ×ÜÕéÕÝØÕ ÞÚÝÐ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Default Display Mode", // English
@ -80,13 +80,13 @@ const tI18nPhrase Phrases[] = {
"Oletus näyttömoodi", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ÀÕÖØÜ ßÞ ãÜÞÛçÐÝØî" // ÀãááÚØÙ (Russian)
#endif
},
{ "simple", // English
@ -100,13 +100,13 @@ const tI18nPhrase Phrases[] = {
"suppea", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ßàÞáâÞÙ" // ÀãááÚØÙ (Russian)
#endif
},
{ "advanced", // English
@ -120,13 +120,13 @@ const tI18nPhrase Phrases[] = {
"laaja", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"àÐáèØàÕÝÝëÙ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Hide Mainmenu Entry", // English
@ -140,13 +140,13 @@ const tI18nPhrase Phrases[] = {
"Piilota valinta päävalikosta", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ÁÚàëâì ÚÞÜÐÝÔã Ò ÓÛÐÒÝÞÜ ÜÕÝî" // ÀãááÚØÙ (Russian)
#endif
},
{ "OSD Update Interval [0.1s]", // English
@ -160,13 +160,13 @@ const tI18nPhrase Phrases[] = {
"Näytön päivitysväli [0.1s]", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ÇÐáâÞâÐ ÞÑÝÞÒÛÕÝØï (0,1 áÕÚ)" // ÀãááÚØÙ (Russian)
#endif
},
{ "Bitrate Calculation", // English
@ -177,16 +177,16 @@ const tI18nPhrase Phrases[] = {
"", // Português
"", // Français
"", // Norsk
"Bittinopeuden laskenta", // suomi
"Siirtonopeuden laskenta", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ÀÐáçñâ áÚÞàÞáâØ ßÞâÞÚÐ ÔÐÝÝëå" // ÀãááÚØÙ (Russian)
#endif
},
{ "Calculation Interval [0.1s]", // English
@ -200,13 +200,13 @@ const tI18nPhrase Phrases[] = {
"Laskennan päivitysväli [0.1s]", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ÇÐáâÞâÐ ßÕàÕáçñâÐ (0,1 áÕÚ)" // ÀãááÚØÙ (Russian)
#endif
},
{ "Red Limit [%]", // English
@ -220,13 +220,13 @@ const tI18nPhrase Phrases[] = {
"Punaisen taso [%]", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ºàÐáÝÐï ×ÞÝÐ áÛÐÑÞÓÞ áØÓÝÐÛÐ ÔÞ (%)" // ÀãááÚØÙ (Russian)
#endif
},
{ "Green Limit [%]", // English
@ -240,13 +240,13 @@ const tI18nPhrase Phrases[] = {
"Vihreän taso [%]", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"·ÕÛñÝÐï ×ÞÝÐ áØÛìÝÞÓÞ áØÓÝÐÛÐ Þâ (%)" // ÀãááÚØÙ (Russian)
#endif
},
{ "Transponder Information", // English
@ -260,13 +260,13 @@ const tI18nPhrase Phrases[] = {
"Transponderin tiedot", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"ÁÒÕÔÕÝØï Þ ÚÐÝÐÛÕ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Satellite Card", // English
@ -280,13 +280,13 @@ const tI18nPhrase Phrases[] = {
"Satelliittikortti", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"¿ÛÐâÐ áßãâÝØÚÞÒÞÓÞ ßàØñÜÐ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Cable Card", // English
@ -300,13 +300,13 @@ const tI18nPhrase Phrases[] = {
"Kaapelikortti", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"¿ÛÐâÐ ÚÐÑÕÛìÝÞÓÞ ßàØñÜÐ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Terrestial Card", // English
@ -320,13 +320,13 @@ const tI18nPhrase Phrases[] = {
"Terrestiaalikortti", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"¿ÛÐâÐ íäØàÝÞÓÞ ßàØñÜÐ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Use Syslog Output", // English
@ -340,15 +340,294 @@ const tI18nPhrase Phrases[] = {
"Kirjaa systeemilokiin", // suomi
"", // Polski
"", // Español
"", // <EFBFBD>鈿鳰ワ
"", // ÅëëçíéêÜ (Greek)
"", // Svenska
"", // Romaneste
"", // Magyar
"", // Català
#if VDRVERSNUM >= 10300
"" // タ聶瞽リル
"¸áßÞÛì×ÞÒÐâì áÛãÖÑã syslog" // ÀãááÚØÙ (Russian)
#endif
},
{ "LOCK", // English
"LOCK", // Deutsch
"LOCK", // Slovenski
"LOCK", // Italiano
"LOCK", // Nederlands
"LOCK", // Português
"LOCK", // Français
"LOCK", // Norsk
"LOCK", // suomi
"LOCK", // Polski
"LOCK", // Español
"LOCK", // ÅëëçíéêÜ (Greek)
"LOCK", // Svenska
"LOCK", // Romaneste
"LOCK", // Magyar
"LOCK", // Català
#if VDRVERSNUM >= 10300
"·°Å²°Â" // ÀãááÚØÙ (Russian)
#endif
},
{ "SIGNAL", // English
"SIGNAL", // Deutsch
"SIGNAL", // Slovenski
"SIGNAL", // Italiano
"SIGNAL", // Nederlands
"SIGNAL", // Português
"SIGNAL", // Français
"SIGNAL", // Norsk
"SIGNAL", // suomi
"SIGNAL", // Polski
"SIGNAL", // Español
"SIGNAL", // ÅëëçíéêÜ (Greek)
"SIGNAL", // Svenska
"SIGNAL", // Romaneste
"SIGNAL", // Magyar
"SIGNAL", // Català
#if VDRVERSNUM >= 10300
"Á¸³½°»" // ÀãááÚØÙ (Russian)
#endif
},
{ "CARRIER", // English
"CARRIER", // Deutsch
"CARRIER", // Slovenski
"CARRIER", // Italiano
"CARRIER", // Nederlands
"CARRIER", // Português
"CARRIER", // Français
"CARRIER", // Norsk
"CARRIER", // suomi
"CARRIER", // Polski
"CARRIER", // Español
"CARRIER", // ÅëëçíéêÜ (Greek)
"CARRIER", // Svenska
"CARRIER", // Romaneste
"CARRIER", // Magyar
"CARRIER", // Català
#if VDRVERSNUM >= 10300
"½µÁÃÉ°Ï" // ÀãááÚØÙ (Russian)
#endif
},
{ "VITERBI", // English
"VITERBI", // Deutsch
"VITERBI", // Slovenski
"VITERBI", // Italiano
"VITERBI", // Nederlands
"VITERBI", // Português
"VITERBI", // Français
"VITERBI", // Norsk
"VITERBI", // suomi
"VITERBI", // Polski
"VITERBI", // Español
"VITERBI", // ÅëëçíéêÜ
"VITERBI", // Svenska
"VITERBI", // Romaneste
"VITERBI", // Magyar
"VITERBI", // Català
#if VDRVERSNUM >= 10300
"²¸ÂµÀ±¸" // ÀãááÚØÙ (Russian)
#endif
},
{ "SYNC", // English
"SYNC", // Deutsch
"SYNC", // Slovenski
"SYNC", // Italiano
"SYNC", // Nederlands
"SYNC", // Português
"SYNC", // Français
"SYNC", // Norsk
"SYNC", // suomi
"SYNC", // Polski
"SYNC", // Español
"SYNC", // ÅëëçíéêÜ (Greek)
"SYNC", // Svenska
"SYNC", // Romaneste
"SYNC", // Magyar
"SYNC", // Català
#if VDRVERSNUM >= 10300
"Á¸½ÅÀ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Audio", // English
"Audio", // Deutsch
"Audio", // Slovenski
"Audio", // Italiano
"Audio", // Nederlands
"Audio", // Português
"Audio", // Français
"Audio", // Norsk
"Audio", // suomi
"Audio", // Polski
"Audio", // Español
"Audio", // ÅëëçíéêÜ (Greek)
"Audio", // Svenska
"Audio", // Romaneste
"Audio", // Magyar
"Audio", // Català
#if VDRVERSNUM >= 10300
"°ãÔØÞ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Video", // English
"Video", // Deutsch
"Video", // Slovenski
"Video", // Italiano
"Video", // Nederlands
"Video", // Português
"Video", // Français
"Video", // Norsk
"Video", // suomi
"Video", // Polski
"Video", // Español
"Video", // ÅëëçíéêÜ (Greek)
"Video", // Svenska
"Video", // Romaneste
"Video", // Magyar
"Video", // Català
#if VDRVERSNUM >= 10300
"²ØÔÕÞ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Auto", // English
"Auto", // Deutsch
"Auto", // Slovenski
"Auto", // Italiano
"Auto", // Nederlands
"Auto", // Português
"Auto", // Français
"Auto", // Norsk
"Auto", // suomi
"Auto", // Polski
"Auto", // Español
"Auto", // ÅëëçíéêÜ (Greek)
"Auto", // Svenska
"Auto", // Romaneste
"Auto", // Magyar
"Auto", // Català
#if VDRVERSNUM >= 10300
"ÐÒâÞ" // ÀãááÚØÙ (Russian)
#endif
},
{ "None", // English
"None", // Deutsch
"None", // Slovenski
"None", // Italiano
"None", // Nederlands
"None", // Português
"None", // Français
"None", // Norsk
"None", // suomi
"None", // Polski
"None", // Español
"None", // ÅëëçíéêÜ (Greek)
"None", // Svenska
"None", // Romaneste
"None", // Magyar
"None", // Català
#if VDRVERSNUM >= 10300
"ÝÕâ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Off", // English
"Off", // Deutsch
"Off", // Slovenski
"Off", // Italiano
"Off", // Nederlands
"Off", // Português
"Off", // Français
"Off", // Norsk
"Off", // suomi
"Off", // Polski
"Off", // Español
"Off", // ÅëëçíéêÜ (Greek)
"Off", // Svenska
"Off", // Romaneste
"Off", // Magyar
"Off", // Català
#if VDRVERSNUM >= 10300
"ÒëÚÛ" // ÀãááÚØÙ (Russian)
#endif
},
{ "On", // English
"On", // Deutsch
"On", // Slovenski
"On", // Italiano
"On", // Nederlands
"On", // Português
"On", // Français
"On", // Norsk
"On", // suomi
"On", // Polski
"On", // Español
"On", // ÅëëçíéêÜ (Greek)
"On", // Svenska
"On", // Romaneste
"On", // Magyar
"On", // Català
#if VDRVERSNUM >= 10300
"ÒÚÛ" // ÀãááÚØÙ (Russian)
#endif
},
{ "MHz", // English
"MHz", // Deutsch
"MHz", // Slovenski
"MHz", // Italiano
"MHz", // Nederlands
"MHz", // Português
"MHz", // Français
"MHz", // Norsk
"MHz", // suomi
"MHz", // Polski
"MHz", // Español
"MHz", // ÅëëçíéêÜ (Greek)
"MHz", // Svenska
"MHz", // Romaneste
"MHz", // Magyar
"MHz", // Català
#if VDRVERSNUM >= 10300
"¼³æ" // ÀãááÚØÙ (Russian)
#endif
},
{ "Mbit/s", // English
"Mbit/s", // Deutsch
"Mbit/s", // Slovenski
"Mbit/s", // Italiano
"Mbit/s", // Nederlands
"Mbit/s", // Português
"Mbit/s", // Français
"Mbit/s", // Norsk
"Mbit/s", // suomi
"Mbit/s", // Polski
"Mbit/s", // Español
"Mbit/s", // ÅëëçíéêÜ (Greek)
"Mbit/s", // Svenska
"Mbit/s", // Romaneste
"Mbit/s", // Magyar
"Mbit/s", // Català
#if VDRVERSNUM >= 10300
"¼ÑØâ/á" // ÀãááÚØÙ (Russian)
#endif
},
{ "kbit/s", // English
"kbit/s", // Deutsch
"kbit/s", // Slovenski
"kbit/s", // Italiano
"kbit/s", // Nederlands
"kbit/s", // Português
"kbit/s", // Français
"kbit/s", // Norsk
"kbit/s", // suomi
"kbit/s", // Polski
"kbit/s", // Español
"kbit/s", // ÅëëçíéêÜ (Greek)
"kbit/s", // Svenska
"kbit/s", // Romaneste
"kbit/s", // Magyar
"kbit/s", // Català
#if VDRVERSNUM >= 10300
"ÚÑØâ/á" // ÀãááÚØÙ (Russian)
#endif
},
{ NULL }
};

View File

@ -9,6 +9,7 @@
#ifndef __FEMONI18N_H
#define __FEMONI18N_H
#include <vdr/config.h> // for VDRVERSNUM
#include <vdr/i18n.h>
extern const tI18nPhrase Phrases[];

View File

@ -45,7 +45,7 @@
cFemonOsd::cFemonOsd(void)
#if VDRVERSNUM >= 10300
:cOsdObject(true), cThread("femon plugin")
:cOsdObject(true), cThread("femon osd")
#else
:cOsdObject(true)
#endif
@ -128,8 +128,8 @@ void cFemonOsd::DrawStatusWindow(void)
m_Osd->Text(OSDSTATUSCOL2 * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), buf, clrWhite /*signal < femonConfig.redlimit ? clrRed : signal < femonConfig.greenlimit ? clrYellow : clrGreen*/, clrBackground, m_StatusWindow);
snprintf(buf, sizeof(buf), "BER: %08x", m_BER);
m_Osd->Text(OSDSTATUSCOL3 * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), buf, clrWhite, clrBackground, m_StatusWindow);
if (m_Receiver) snprintf(buf, sizeof(buf), "Video: %.2f Mbit/s", m_Receiver->VideoBitrate());
else snprintf(buf, sizeof(buf), "Video: --- Mbit/s");
if (m_Receiver) snprintf(buf, sizeof(buf), "%s: %.2f %s", tr("Video"), m_Receiver->VideoBitrate(), tr("Mbit/s"));
else snprintf(buf, sizeof(buf), "%s: --- %s", tr("Video"), tr("Mbit/s"));
m_Osd->Text(OSDSTATUSCOL4 * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), buf, clrWhite, clrBackground, m_StatusWindow);
lines++;
snprintf(buf, sizeof(buf), "SNR: %04x", m_SNR);
@ -138,15 +138,15 @@ void cFemonOsd::DrawStatusWindow(void)
m_Osd->Text(OSDSTATUSCOL2 * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), buf, clrWhite /*snr < femonConfig.redlimit ? clrRed : snr < femonConfig.greenlimit ? clrYellow : clrGreen*/, clrBackground, m_StatusWindow);
snprintf(buf, sizeof(buf), "UNC: %08x", m_UNC);
m_Osd->Text(OSDSTATUSCOL3 * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), buf, clrWhite, clrBackground, m_StatusWindow);
if (m_Receiver) snprintf(buf, sizeof(buf), "Audio: %.0f kbit/s", m_Receiver->AudioBitrate());
else snprintf(buf, sizeof(buf), "Audio: --- kbit/s");
if (m_Receiver) snprintf(buf, sizeof(buf), "%s: %.0f %s", tr("Audio"), m_Receiver->AudioBitrate(), tr("kbit/s"));
else snprintf(buf, sizeof(buf), "%s: --- %s", tr("Audio"), tr("kbit/s"));
m_Osd->Text(OSDSTATUSCOL4 * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), buf, clrWhite, clrBackground, m_StatusWindow);
lines++;
m_Osd->Text(OSDSTATUSLOCK * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), "LOCK", (m_FrontendStatus & FE_HAS_LOCK) ? clrYellow : clrBlack, clrBackground, m_StatusWindow);
m_Osd->Text(OSDSTATUSSIGN * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), "SIGNAL", (m_FrontendStatus & FE_HAS_SIGNAL) ? clrYellow : clrBlack, clrBackground, m_StatusWindow);
m_Osd->Text(OSDSTATUSCARR * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), "CARRIER",(m_FrontendStatus & FE_HAS_CARRIER)? clrYellow : clrBlack, clrBackground, m_StatusWindow);
m_Osd->Text(OSDSTATUSVITE * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), "VITERBI",(m_FrontendStatus & FE_HAS_VITERBI)? clrYellow : clrBlack, clrBackground, m_StatusWindow);
m_Osd->Text(OSDSTATUSSYNC * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), "SYNC", (m_FrontendStatus & FE_HAS_SYNC) ? clrYellow : clrBlack, clrBackground, m_StatusWindow);
m_Osd->Text(OSDSTATUSLOCK * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), tr("LOCK"), (m_FrontendStatus & FE_HAS_LOCK) ? clrYellow : clrBlack, clrBackground, m_StatusWindow);
m_Osd->Text(OSDSTATUSSIGN * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), tr("SIGNAL"), (m_FrontendStatus & FE_HAS_SIGNAL) ? clrYellow : clrBlack, clrBackground, m_StatusWindow);
m_Osd->Text(OSDSTATUSCARR * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), tr("CARRIER"),(m_FrontendStatus & FE_HAS_CARRIER)? clrYellow : clrBlack, clrBackground, m_StatusWindow);
m_Osd->Text(OSDSTATUSVITE * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), tr("VITERBI"),(m_FrontendStatus & FE_HAS_VITERBI)? clrYellow : clrBlack, clrBackground, m_StatusWindow);
m_Osd->Text(OSDSTATUSSYNC * cOsd::CellWidth(), femonConfig.position ? lines * cOsd::LineHeight() : (OSDINFOHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight(), tr("SYNC"), (m_FrontendStatus & FE_HAS_SYNC) ? clrYellow : clrBlack, clrBackground, m_StatusWindow);
#if (VDRVERSNUM >= 10300) || defined(ELCHIAIOVERSION)
m_Osd->SetFont(OldFont);
#endif
@ -222,7 +222,7 @@ void cFemonOsd::DrawInfoWindow(void)
m_Osd->Text(OSDINFOLCOL1 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Frequency"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Frequency();
while (value > 20000) value /= 1000;
snprintf(buf, sizeof(buf), "%d MHz", value);
snprintf(buf, sizeof(buf), "%d %s", value, tr("MHz"));
m_Osd->Text(OSDINFOLCOL2 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
m_Osd->Text(OSDINFOLCOL3 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Source"), clrWhite, clrBackground, m_InfoWindow);
snprintf(buf, sizeof(buf), "%s", cSource::ToString(channel->Source()));
@ -237,13 +237,13 @@ void cFemonOsd::DrawInfoWindow(void)
lines++;
m_Osd->Text(OSDINFOLCOL1 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Inversion"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Inversion();
if (value == INVERSION_OFF) snprintf(buf, sizeof(buf), "Off");
else if (value == INVERSION_ON) snprintf(buf, sizeof(buf), "On");
else /*INVERSION_AUTO*/ snprintf(buf, sizeof(buf), "Auto");
if (value == INVERSION_OFF) snprintf(buf, sizeof(buf), tr("Off"));
else if (value == INVERSION_ON) snprintf(buf, sizeof(buf), tr("On"));
else /*INVERSION_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
m_Osd->Text(OSDINFOLCOL2 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
m_Osd->Text(OSDINFOLCOL3 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("CoderateH"), clrWhite, clrBackground, m_InfoWindow);
value = channel->CoderateH();
if (value == FEC_NONE) snprintf(buf, sizeof(buf), "None");
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");
@ -252,7 +252,7 @@ void cFemonOsd::DrawInfoWindow(void)
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), "Auto");
else /*FEC_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
m_Osd->Text(OSDINFOLCOL4 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
break;
@ -263,7 +263,7 @@ void cFemonOsd::DrawInfoWindow(void)
m_Osd->Text(OSDINFOLCOL1 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Frequency"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Frequency();
while (value > 20000) value /= 1000;
snprintf(buf, sizeof(buf), "%d MHz", value);
snprintf(buf, sizeof(buf), "%d %s", value, tr("MHz"));
m_Osd->Text(OSDINFOLCOL2 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
m_Osd->Text(OSDINFOLCOL3 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Source"), clrWhite, clrBackground, m_InfoWindow);
snprintf(buf, sizeof(buf), "%s", cSource::ToString(channel->Source()));
@ -280,18 +280,18 @@ void cFemonOsd::DrawInfoWindow(void)
else if (value == QAM_64) snprintf(buf, sizeof(buf), "QAM 64");
else if (value == QAM_128) snprintf(buf, sizeof(buf), "QAM 128");
else if (value == QAM_256) snprintf(buf, sizeof(buf), "QAM 256");
else /*QAM_AUTO*/ snprintf(buf, sizeof(buf), "QAM Auto");
else /*QAM_AUTO*/ snprintf(buf, sizeof(buf), "QAM %s", tr("Auto"));
m_Osd->Text(OSDINFOLCOL4 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
lines++;
m_Osd->Text(OSDINFOLCOL1 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Inversion"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Inversion();
if (value == INVERSION_OFF) snprintf(buf, sizeof(buf), "Off");
else if (value == INVERSION_ON) snprintf(buf, sizeof(buf), "On");
else /*INVERSION_AUTO*/ snprintf(buf, sizeof(buf), "Auto");
if (value == INVERSION_OFF) snprintf(buf, sizeof(buf), tr("Off"));
else if (value == INVERSION_ON) snprintf(buf, sizeof(buf), tr("On"));
else /*INVERSION_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
m_Osd->Text(OSDINFOLCOL2 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
m_Osd->Text(OSDINFOLCOL3 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("CoderateH"), clrWhite, clrBackground, m_InfoWindow);
value = channel->CoderateH();
if (value == FEC_NONE) snprintf(buf, sizeof(buf), "None");
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");
@ -300,7 +300,7 @@ void cFemonOsd::DrawInfoWindow(void)
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), "Auto");
else /*FEC_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
m_Osd->Text(OSDINFOLCOL4 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
break;
@ -311,21 +311,21 @@ void cFemonOsd::DrawInfoWindow(void)
m_Osd->Text(OSDINFOLCOL1 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Frequency"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Frequency();
while (value > 20000) value /= 1000;
snprintf(buf, sizeof(buf), "%d MHz", value);
snprintf(buf, sizeof(buf), "%d %s", value, tr("MHz"));
m_Osd->Text(OSDINFOLCOL2 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
m_Osd->Text(OSDINFOLCOL3 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Transmission"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Transmission();
if (value == TRANSMISSION_MODE_2K) snprintf(buf, sizeof(buf), "2K");
else if (value == TRANSMISSION_MODE_8K) snprintf(buf, sizeof(buf), "8K");
else /*TRANSMISSION_MODE_AUTO*/ snprintf(buf, sizeof(buf), "Auto");
else /*TRANSMISSION_MODE_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
m_Osd->Text(OSDINFOLCOL4 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
lines++;
m_Osd->Text( OSDINFOLCOL1 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Bandwidth"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Bandwidth();
if (value == BANDWIDTH_8_MHZ) snprintf(buf, sizeof(buf), "8 MHz");
else if (value == BANDWIDTH_7_MHZ) snprintf(buf, sizeof(buf), "7 MHz");
else if (value == BANDWIDTH_6_MHZ) snprintf(buf, sizeof(buf), "6 MHz");
else /*BANDWIDTH_AUTO*/ snprintf(buf, sizeof(buf), "Auto");
if (value == BANDWIDTH_8_MHZ) snprintf(buf, sizeof(buf), "8 %s", tr("MHz"));
else if (value == BANDWIDTH_7_MHZ) snprintf(buf, sizeof(buf), "7 %s", tr("MHz"));
else if (value == BANDWIDTH_6_MHZ) snprintf(buf, sizeof(buf), "6 %s", tr("MHz"));
else /*BANDWIDTH_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
m_Osd->Text(OSDINFOLCOL2 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
m_Osd->Text(OSDINFOLCOL3 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Modulation"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Modulation();
@ -335,18 +335,18 @@ void cFemonOsd::DrawInfoWindow(void)
else if (value == QAM_64) snprintf(buf, sizeof(buf), "QAM 64");
else if (value == QAM_128) snprintf(buf, sizeof(buf), "QAM 128");
else if (value == QAM_256) snprintf(buf, sizeof(buf), "QAM 256");
else /*QAM_AUTO*/ snprintf(buf, sizeof(buf), "QAM Auto");
else /*QAM_AUTO*/ snprintf(buf, sizeof(buf), "QAM %s", tr("Auto"));
m_Osd->Text(OSDINFOLCOL4 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
lines++;
m_Osd->Text(OSDINFOLCOL1 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Inversion"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Inversion();
if (value == INVERSION_OFF) snprintf(buf, sizeof(buf), "Off");
else if (value == INVERSION_ON) snprintf(buf, sizeof(buf), "On");
else /*INVERSION_AUTO*/ snprintf(buf, sizeof(buf), "Auto");
if (value == INVERSION_OFF) snprintf(buf, sizeof(buf), tr("Off"));
else if (value == INVERSION_ON) snprintf(buf, sizeof(buf), tr("On"));
else /*INVERSION_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
m_Osd->Text(OSDINFOLCOL2 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
m_Osd->Text(OSDINFOLCOL3 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("CoderateH"), clrWhite, clrBackground, m_InfoWindow);
value = channel->CoderateH();
if (value == FEC_NONE) snprintf(buf, sizeof(buf), "None");
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");
@ -355,9 +355,9 @@ void cFemonOsd::DrawInfoWindow(void)
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), "Auto");
else /*FEC_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
value = channel->CoderateL();
if (value == FEC_NONE) snprintf(buf2, sizeof(buf2), " - None");
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");
@ -366,17 +366,17 @@ void cFemonOsd::DrawInfoWindow(void)
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), " - Auto");
else /*FEC_AUTO*/ snprintf(buf2, sizeof(buf2), " - %s", tr("Auto"));
strncat(buf, buf2, sizeof(buf));
m_Osd->Text(OSDINFOLCOL4 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
lines++;
m_Osd->Text(OSDINFOLCOL1 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Hierarchy"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Hierarchy();
if (value == HIERARCHY_NONE) snprintf(buf, sizeof(buf), "None");
if (value == HIERARCHY_NONE) snprintf(buf, sizeof(buf), tr("None"));
else if (value == HIERARCHY_1) snprintf(buf, sizeof(buf), "1");
else if (value == HIERARCHY_2) snprintf(buf, sizeof(buf), "2");
else if (value == HIERARCHY_4) snprintf(buf, sizeof(buf), "4");
else /*HIERARCHY_AUTO*/ snprintf(buf, sizeof(buf), "Auto");
else /*HIERARCHY_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
m_Osd->Text(OSDINFOLCOL2 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
m_Osd->Text(OSDINFOLCOL3 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), tr("Guard"), clrWhite, clrBackground, m_InfoWindow);
value = channel->Guard();
@ -384,7 +384,7 @@ void cFemonOsd::DrawInfoWindow(void)
else if (value == GUARD_INTERVAL_1_16) snprintf(buf, sizeof(buf), "1/16");
else if (value == GUARD_INTERVAL_1_8) snprintf(buf, sizeof(buf), "1/8");
else if (value == GUARD_INTERVAL_1_4) snprintf(buf, sizeof(buf), "1/4");
else /*GUARD_INTERVAL_AUTO*/ snprintf(buf, sizeof(buf), "Auto");
else /*GUARD_INTERVAL_AUTO*/ snprintf(buf, sizeof(buf), tr("Auto"));
m_Osd->Text(OSDINFOLCOL4 * cOsd::CellWidth(), femonConfig.position ? (OSDSTATUSHEIGHT + OSDGAPHEIGHT + lines) * cOsd::LineHeight() : lines * cOsd::LineHeight(), buf, clrYellow, clrBackground, m_InfoWindow);
break;
}