mirror of
https://github.com/rofafor/vdr-plugin-femon.git
synced 2023-10-10 11:36:53 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f9961f499 | ||
|
|
c454189adf | ||
|
|
5339f71b33 | ||
|
|
8e53fa8521 | ||
|
|
9514ed5387 |
41
HISTORY
41
HISTORY
@@ -1,5 +1,6 @@
|
|||||||
|
===================================
|
||||||
VDR Plugin 'femon' Revision History
|
VDR Plugin 'femon' Revision History
|
||||||
-----------------------------------
|
===================================
|
||||||
|
|
||||||
2004-02-15: Version 0.0.1
|
2004-02-15: Version 0.0.1
|
||||||
|
|
||||||
@@ -58,7 +59,13 @@ VDR Plugin 'femon' Revision History
|
|||||||
|
|
||||||
- Backported the "AC3 Stream Information" feature from version 0.1.3.
|
- Backported the "AC3 Stream Information" feature from version 0.1.3.
|
||||||
|
|
||||||
-------------------------
|
2004-09-11: Version 0.0.7
|
||||||
|
|
||||||
|
- Backported changes and fixes from version 0.1.6.
|
||||||
|
|
||||||
|
===================================
|
||||||
|
VDR Plugin 'femon' Revision History
|
||||||
|
===================================
|
||||||
|
|
||||||
2004-05-18: Version 0.1.0
|
2004-05-18: Version 0.1.0
|
||||||
|
|
||||||
@@ -81,3 +88,33 @@ VDR Plugin 'femon' Revision History
|
|||||||
2004-06-11: Version 0.1.3
|
2004-06-11: Version 0.1.3
|
||||||
|
|
||||||
- Added "AC-3 Stream Information" display mode (Thanks to Lothar Englisch).
|
- Added "AC-3 Stream Information" display mode (Thanks to Lothar Englisch).
|
||||||
|
|
||||||
|
2004-06-24: Version 0.1.4
|
||||||
|
|
||||||
|
- Added some new symbols and beautified the old ones.
|
||||||
|
- Added audio track selection feature.
|
||||||
|
- Added preliminary device switching feature (disabled at the moment).
|
||||||
|
|
||||||
|
2004-08-18: Version 0.1.5
|
||||||
|
|
||||||
|
- Fixed OSDSTATUSWIN_XC define.
|
||||||
|
- Added preliminary NTSC support (make NTSC_SYSTEM=1 plugins).
|
||||||
|
- Fixed "Setup/OSD/Use Small Fonts" bug (Thanks to Winni for reporting this one).
|
||||||
|
- Added patches directory: CA system names by Lauri Tischler.
|
||||||
|
|
||||||
|
2004-09-11: Version 0.1.6
|
||||||
|
|
||||||
|
- Yet Another Minor Release.
|
||||||
|
- Integrated the CA system names patch: "Setup / Show CA System".
|
||||||
|
|
||||||
|
2004-11-28: Version 0.1.7
|
||||||
|
|
||||||
|
- Updated for vdr-1.3.17.
|
||||||
|
- Fixed receiver related crash (Thanks to Marco Schluessler).
|
||||||
|
|
||||||
|
2005-01-15: Version 0.7.7
|
||||||
|
|
||||||
|
- Updated for vdr-1.3.18.
|
||||||
|
- Added DEBUG mode (make DEBUG=1 plugins).
|
||||||
|
- OSD height is now user configurable.
|
||||||
|
- Added audio channel selection into Yellow key.
|
||||||
|
|||||||
8
Makefile
8
Makefile
@@ -11,12 +11,12 @@ PLUGIN = femon
|
|||||||
|
|
||||||
### The version number of this plugin (taken from the main source file):
|
### The version number of this plugin (taken from the main source file):
|
||||||
|
|
||||||
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
|
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).h | awk '{ print $$6 }' | sed -e 's/[";]//g')
|
||||||
|
|
||||||
### The C++ compiler and options:
|
### The C++ compiler and options:
|
||||||
|
|
||||||
CXX ?= g++
|
CXX ?= g++
|
||||||
CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual
|
CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -fPIC
|
||||||
|
|
||||||
### The directory environment:
|
### The directory environment:
|
||||||
|
|
||||||
@@ -44,6 +44,10 @@ INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include
|
|||||||
|
|
||||||
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||||
|
|
||||||
|
ifdef NTSC_SYSTEM
|
||||||
|
DEFINES += -DNTSC_SYSTEM
|
||||||
|
endif
|
||||||
|
|
||||||
### The object files (add further files here):
|
### The object files (add further files here):
|
||||||
|
|
||||||
OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femoni18n.o
|
OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femoni18n.o
|
||||||
|
|||||||
40
README
40
README
@@ -18,7 +18,6 @@ DVB Frontend Status Monitor is a plugin that displays some signal information
|
|||||||
parameters of the current tuned channel on OSD. You can zap through all your
|
parameters of the current tuned channel on OSD. You can zap through all your
|
||||||
channels and the plugin should be monitoring always the right frontend. The
|
channels and the plugin should be monitoring always the right frontend. The
|
||||||
transponder and stream information are also available in advanced display modes.
|
transponder and stream information are also available in advanced display modes.
|
||||||
User can switch between different display modes by pressing 'OK' key.
|
|
||||||
|
|
||||||
The plugin is based on a neat console frontend status monitor application
|
The plugin is based on a neat console frontend status monitor application
|
||||||
called 'femon' by Johannes Stezenbach (see DVB-apps/szap/femon.c for further
|
called 'femon' by Johannes Stezenbach (see DVB-apps/szap/femon.c for further
|
||||||
@@ -31,8 +30,8 @@ Metzler Brothers.
|
|||||||
Terminology:
|
Terminology:
|
||||||
|
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|## Channel Name ############################# DD 16:9 PAL ##|
|
|## Channel Name ########################## [AR][VF][A/DD][D]|
|
||||||
|[=====Signal Strength in % =============|=================]|
|
|[=====Signal Strength in % ==============|=================]|
|
||||||
|[=====Signal-to-Noise Ratio in % ========|=================]|
|
|[=====Signal-to-Noise Ratio in % ========|=================]|
|
||||||
| STR: #0000 (0%) BER: #00000000 Video: 0 Mbit/s |
|
| STR: #0000 (0%) BER: #00000000 Video: 0 Mbit/s |
|
||||||
| SNR: #0000 (0%) UNC: #00000000 Audio: 0 kbit/s |
|
| SNR: #0000 (0%) UNC: #00000000 Audio: 0 kbit/s |
|
||||||
@@ -44,7 +43,7 @@ SNR - Signal-to-noise ratio
|
|||||||
BER - Bit error rate
|
BER - Bit error rate
|
||||||
UNC - Uncorrected blocks
|
UNC - Uncorrected blocks
|
||||||
Video - Calculated video bitrate in Mbit/s
|
Video - Calculated video bitrate in Mbit/s
|
||||||
Audio - Calculated audio / AC-3 bitrate in kbit/s (only first PID)
|
Audio - Calculated audio / AC-3 bitrate in kbit/s
|
||||||
|
|
||||||
LOCK - Everything's working...
|
LOCK - Everything's working...
|
||||||
SIGNAL - Found something above the noise level
|
SIGNAL - Found something above the noise level
|
||||||
@@ -52,22 +51,45 @@ CARRIER - Found a DVB signal
|
|||||||
VITERBI - FEC (forward error correction) is stable
|
VITERBI - FEC (forward error correction) is stable
|
||||||
SYNC - Found sync bytes
|
SYNC - Found sync bytes
|
||||||
|
|
||||||
|
AR - Aspect Ratio: 1:1/4:3/16:9/2.21:1 (optional)
|
||||||
|
VF - Video format: PAL/NTSC (optional)
|
||||||
|
A/DD - Audio (0..5) / AC-3 track (optional)
|
||||||
|
D - Device number: 0..3 (optional)
|
||||||
|
|
||||||
|
Controls:
|
||||||
|
|
||||||
|
ChanUp/ChanDn - Switch channel up/down
|
||||||
|
Up/Down - Switch channel up/down
|
||||||
|
0-9 - Select channel
|
||||||
|
Ok - Switch between display modes: basic, transponder, stream, AC-3
|
||||||
|
Green - Select next audio track
|
||||||
|
Yellow - Select audio channel: stereo, mono left, mono right
|
||||||
|
Back - Exit plugin
|
||||||
|
(Left/Right - Switch to next/previous device that provides the current channel)
|
||||||
|
|
||||||
Installation:
|
Installation:
|
||||||
|
|
||||||
cd /put/your/path/here/VDR/PLUGINS/src
|
cd /put/your/path/here/VDR/PLUGINS/src
|
||||||
tar -xzf /put/your/path/here/vdr-femon-X.Y.Z.tar.gz
|
tar -xzf /put/your/path/here/vdr-femon-X.Y.Z.tgz
|
||||||
ln -s femon-X.Y.Z femon
|
ln -s femon-X.Y.Z femon
|
||||||
cd /put/your/path/here/VDR
|
cd /put/your/path/here/VDR
|
||||||
make
|
make
|
||||||
make plugins
|
make plugins
|
||||||
./vdr -Pfemon
|
./vdr -P femon
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
|
|
||||||
- The plugin supports only those DVB cards with _one_ frontend (do any cards
|
- The plugin supports only those DVB cards with _one_ frontend (do any cards
|
||||||
with multiple frontends even exist?), because I haven't yet figured howto do
|
with multiple frontends even exist?), because I haven't yet figured howto do
|
||||||
it without patching the VDR core.
|
it without patching the VDR core.
|
||||||
- Sometimes (read always) ttxtsubs plugin messes up the OSD - user should disable
|
|
||||||
ttxtsubs, but closing and reopening the femon plugin might help temporarily as
|
|
||||||
well. Btw., this same thing happens with OSDTeletext plugin too :)
|
|
||||||
- Disable the stream analyze to speed up heavy zapping sessions.
|
- Disable the stream analyze to speed up heavy zapping sessions.
|
||||||
|
- The signal strength and signal-to-noise ratio values are comparable only
|
||||||
|
between the same brand/model frontends. Due to the lack of proper frontend
|
||||||
|
specifications those values cannot be calculated into any real units.
|
||||||
|
- If the OSD isn't visible, you've configured the OSD height too big or too
|
||||||
|
small. Please, try to adjust the variable on the setup page before writing
|
||||||
|
any bug reports.
|
||||||
|
- There's a shrinked default OSD height for NTSC users: make NTSC_SYSTEM=1
|
||||||
|
- The device switching feature is still non-functional.
|
||||||
|
|
||||||
|
"Femon - A real womon who lives according to her natural feminine inclinations."
|
||||||
|
|||||||
10
femon.c
10
femon.c
@@ -12,7 +12,7 @@
|
|||||||
#include "femonosd.h"
|
#include "femonosd.h"
|
||||||
#include "femon.h"
|
#include "femon.h"
|
||||||
|
|
||||||
#if VDRVERSNUM < 10307
|
#if VDRVERSNUM && VDRVERSNUM < 10318
|
||||||
#error "You don't exist! Go away!"
|
#error "You don't exist! Go away!"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -71,6 +71,8 @@ bool cPluginFemon::SetupParse(const char *Name, const char *Value)
|
|||||||
else if (!strcasecmp(Name, "SyslogOutput")) femonConfig.syslogoutput = atoi(Value);
|
else if (!strcasecmp(Name, "SyslogOutput")) femonConfig.syslogoutput = atoi(Value);
|
||||||
else if (!strcasecmp(Name, "DisplayMode")) femonConfig.displaymode = atoi(Value);
|
else if (!strcasecmp(Name, "DisplayMode")) femonConfig.displaymode = atoi(Value);
|
||||||
else if (!strcasecmp(Name, "Position")) femonConfig.position = atoi(Value);
|
else if (!strcasecmp(Name, "Position")) femonConfig.position = atoi(Value);
|
||||||
|
else if (!strcasecmp(Name, "OSDHeight")) femonConfig.osdheight = atoi(Value);
|
||||||
|
else if (!strcasecmp(Name, "ShowCASystem")) femonConfig.showcasystem = atoi(Value);
|
||||||
else if (!strcasecmp(Name, "RedLimit")) femonConfig.redlimit = atoi(Value);
|
else if (!strcasecmp(Name, "RedLimit")) femonConfig.redlimit = atoi(Value);
|
||||||
else if (!strcasecmp(Name, "GreenLimit")) femonConfig.greenlimit = atoi(Value);
|
else if (!strcasecmp(Name, "GreenLimit")) femonConfig.greenlimit = atoi(Value);
|
||||||
else if (!strcasecmp(Name, "UpdateInterval")) femonConfig.updateinterval = atoi(Value);
|
else if (!strcasecmp(Name, "UpdateInterval")) femonConfig.updateinterval = atoi(Value);
|
||||||
@@ -101,6 +103,8 @@ void cMenuFemonSetup::Setup(void)
|
|||||||
Add(new cMenuEditBoolItem( tr("Use Syslog Output"), &femonConfig.syslogoutput, 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, modeMaxNumber, dispmodes));
|
Add(new cMenuEditStraItem( tr("Default Display Mode"), &femonConfig.displaymode, modeMaxNumber, dispmodes));
|
||||||
Add(new cMenuEditBoolItem( tr("Position"), &femonConfig.position, tr("bottom"), tr("top")));
|
Add(new cMenuEditBoolItem( tr("Position"), &femonConfig.position, tr("bottom"), tr("top")));
|
||||||
|
Add(new cMenuEditIntItem( tr("Height"), &femonConfig.osdheight, 400, 500));
|
||||||
|
Add(new cMenuEditBoolItem( tr("Show CA System"), &femonConfig.showcasystem, tr("no"), tr("yes")));
|
||||||
Add(new cMenuEditIntItem( tr("Red Limit [%]"), &femonConfig.redlimit, 1, 50));
|
Add(new cMenuEditIntItem( tr("Red Limit [%]"), &femonConfig.redlimit, 1, 50));
|
||||||
Add(new cMenuEditIntItem( tr("Green Limit [%]"), &femonConfig.greenlimit, 51, 100));
|
Add(new cMenuEditIntItem( tr("Green Limit [%]"), &femonConfig.greenlimit, 51, 100));
|
||||||
Add(new cMenuEditIntItem( tr("OSD Update Interval [0.1s]"), &femonConfig.updateinterval, 1, 100));
|
Add(new cMenuEditIntItem( tr("OSD Update Interval [0.1s]"), &femonConfig.updateinterval, 1, 100));
|
||||||
@@ -116,8 +120,10 @@ void cMenuFemonSetup::Store(void)
|
|||||||
{
|
{
|
||||||
SetupStore("HideMenu", femonConfig.hidemenu);
|
SetupStore("HideMenu", femonConfig.hidemenu);
|
||||||
SetupStore("SyslogOutput", femonConfig.syslogoutput);
|
SetupStore("SyslogOutput", femonConfig.syslogoutput);
|
||||||
SetupStore("Position", femonConfig.position);
|
|
||||||
SetupStore("DisplayMode", femonConfig.displaymode);
|
SetupStore("DisplayMode", femonConfig.displaymode);
|
||||||
|
SetupStore("Position", femonConfig.position);
|
||||||
|
SetupStore("OSDHeight", femonConfig.osdheight);
|
||||||
|
SetupStore("ShowCASystem", femonConfig.showcasystem);
|
||||||
SetupStore("RedLimit", femonConfig.redlimit);
|
SetupStore("RedLimit", femonConfig.redlimit);
|
||||||
SetupStore("GreenLimit", femonConfig.greenlimit);
|
SetupStore("GreenLimit", femonConfig.greenlimit);
|
||||||
SetupStore("UpdateInterval", femonConfig.updateinterval);
|
SetupStore("UpdateInterval", femonConfig.updateinterval);
|
||||||
|
|||||||
2
femon.h
2
femon.h
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include <vdr/plugin.h>
|
#include <vdr/plugin.h>
|
||||||
|
|
||||||
static const char *VERSION = "0.1.3";
|
static const char *VERSION = "0.7.7";
|
||||||
static const char *DESCRIPTION = "DVB Signal Information Monitor (OSD)";
|
static const char *DESCRIPTION = "DVB Signal Information Monitor (OSD)";
|
||||||
static const char *MAINMENUENTRY = "Signal Information";
|
static const char *MAINMENUENTRY = "Signal Information";
|
||||||
|
|
||||||
|
|||||||
@@ -21,4 +21,10 @@ cFemonConfig::cFemonConfig(void)
|
|||||||
analyzestream = 1;
|
analyzestream = 1;
|
||||||
calcinterval = 20;
|
calcinterval = 20;
|
||||||
syslogoutput = 0;
|
syslogoutput = 0;
|
||||||
|
showcasystem = 0;
|
||||||
|
#ifdef NTSC_SYSTEM
|
||||||
|
osdheight = 420;
|
||||||
|
#else
|
||||||
|
osdheight = 480;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,12 @@
|
|||||||
#ifndef __FEMONCFG_H
|
#ifndef __FEMONCFG_H
|
||||||
#define __FEMONCFG_H
|
#define __FEMONCFG_H
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
#define debug(x) (x);
|
||||||
|
#else
|
||||||
|
#define debug(x) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
enum dispModes {
|
enum dispModes {
|
||||||
modeBasic,
|
modeBasic,
|
||||||
modeTransponder,
|
modeTransponder,
|
||||||
@@ -30,6 +36,8 @@ public:
|
|||||||
int analyzestream;
|
int analyzestream;
|
||||||
int calcinterval;
|
int calcinterval;
|
||||||
int syslogoutput;
|
int syslogoutput;
|
||||||
|
int showcasystem;
|
||||||
|
int osdheight;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern cFemonConfig femonConfig;
|
extern cFemonConfig femonConfig;
|
||||||
|
|||||||
498
femoni18n.c
498
femoni18n.c
@@ -27,6 +27,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Signal Information", // English
|
{ "Signal Information", // English
|
||||||
"Signalinformationen", // Deutsch
|
"Signalinformationen", // Deutsch
|
||||||
@@ -46,6 +48,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Position", // English
|
{ "Position", // English
|
||||||
"Position", // Deutsch
|
"Position", // Deutsch
|
||||||
@@ -65,6 +69,29 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "Height", // English
|
||||||
|
"H<EFBFBD>he", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"Altezza", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"Korkeus", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Espa<70>ol
|
||||||
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Catal<61>
|
||||||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Default Display Mode", // English
|
{ "Default Display Mode", // English
|
||||||
"Standard Anzeigemodus", // Deutsch
|
"Standard Anzeigemodus", // Deutsch
|
||||||
@@ -84,6 +111,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "basic", // English
|
{ "basic", // English
|
||||||
"Standard", // Deutsch
|
"Standard", // Deutsch
|
||||||
@@ -103,6 +132,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "transponder", // English
|
{ "transponder", // English
|
||||||
"Transponder", // Deutsch
|
"Transponder", // Deutsch
|
||||||
@@ -122,6 +153,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "stream", // English
|
{ "stream", // English
|
||||||
"Stream", // Deutsch
|
"Stream", // Deutsch
|
||||||
@@ -141,6 +174,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Hide Mainmenu Entry", // English
|
{ "Hide Mainmenu Entry", // English
|
||||||
"Hauptmen<EFBFBD>eintrag verstecken", // Deutsch
|
"Hauptmen<EFBFBD>eintrag verstecken", // Deutsch
|
||||||
@@ -160,6 +195,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "OSD Update Interval [0.1s]", // English
|
{ "OSD Update Interval [0.1s]", // English
|
||||||
"OSD Updateintervall [0.1s]", // Deutsch
|
"OSD Updateintervall [0.1s]", // Deutsch
|
||||||
@@ -179,6 +216,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0,1 <20><><EFBFBD>)", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0,1 <20><><EFBFBD>)", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Analyze Stream", // English
|
{ "Analyze Stream", // English
|
||||||
"Stream analysieren", // Deutsch
|
"Stream analysieren", // Deutsch
|
||||||
@@ -198,6 +237,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Calculation Interval [0.1s]", // English
|
{ "Calculation Interval [0.1s]", // English
|
||||||
"Berechnungsintervall [0.1s]", // Deutsch
|
"Berechnungsintervall [0.1s]", // Deutsch
|
||||||
@@ -217,6 +258,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0,1 <20><><EFBFBD>)", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0,1 <20><><EFBFBD>)", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Red Limit [%]", // English
|
{ "Red Limit [%]", // English
|
||||||
"Grenze Rot [%]", // Deutsch
|
"Grenze Rot [%]", // Deutsch
|
||||||
@@ -236,6 +279,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (%)", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (%)", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Green Limit [%]", // English
|
{ "Green Limit [%]", // English
|
||||||
"Grenze Gr<47>n [%]", // Deutsch
|
"Grenze Gr<47>n [%]", // Deutsch
|
||||||
@@ -255,6 +300,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (%)", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (%)", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Transponder Information", // English
|
{ "Transponder Information", // English
|
||||||
"Transponderinformation", // Deutsch
|
"Transponderinformation", // Deutsch
|
||||||
@@ -274,6 +321,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Satellite Card", // English
|
{ "Satellite Card", // English
|
||||||
"Satellitenkarte", // Deutsch
|
"Satellitenkarte", // Deutsch
|
||||||
@@ -293,6 +342,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Cable Card", // English
|
{ "Cable Card", // English
|
||||||
"Kabelkarte", // Deutsch
|
"Kabelkarte", // Deutsch
|
||||||
@@ -312,6 +363,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Terrestial Card", // English
|
{ "Terrestial Card", // English
|
||||||
"Terrestrische Karte", // Deutsch
|
"Terrestrische Karte", // Deutsch
|
||||||
@@ -331,6 +384,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Use Syslog Output", // English
|
{ "Use Syslog Output", // English
|
||||||
"Benutze syslog Ausgabe", // Deutsch
|
"Benutze syslog Ausgabe", // Deutsch
|
||||||
@@ -350,6 +405,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> syslog", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> syslog", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "LOCK", // English
|
{ "LOCK", // English
|
||||||
"LOCK", // Deutsch
|
"LOCK", // Deutsch
|
||||||
@@ -369,6 +426,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"LOCK", // Catal<61>
|
"LOCK", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD>Ų<EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD>Ų<EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"LOCK", // Hrvatski (Croatian)
|
"LOCK", // Hrvatski (Croatian)
|
||||||
|
"LOCK", // Eesti
|
||||||
|
"LOCK", // Dansk
|
||||||
},
|
},
|
||||||
{ "SIGNAL", // English
|
{ "SIGNAL", // English
|
||||||
"SIGNAL", // Deutsch
|
"SIGNAL", // Deutsch
|
||||||
@@ -388,6 +447,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"SIGNAL", // Catal<61>
|
"SIGNAL", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"SIGNAL", // Hrvatski (Croatian)
|
"SIGNAL", // Hrvatski (Croatian)
|
||||||
|
"SIGNAL", // Eesti
|
||||||
|
"SIGNAL", // Dansk
|
||||||
},
|
},
|
||||||
{ "CARRIER", // English
|
{ "CARRIER", // English
|
||||||
"CARRIER", // Deutsch
|
"CARRIER", // Deutsch
|
||||||
@@ -407,6 +468,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"CARRIER", // Catal<61>
|
"CARRIER", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɰ<EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɰ<EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"CARRIER", // Hrvatski (Croatian)
|
"CARRIER", // Hrvatski (Croatian)
|
||||||
|
"CARRIER", // Eesti
|
||||||
|
"CARRIER", // Dansk
|
||||||
},
|
},
|
||||||
{ "VITERBI", // English
|
{ "VITERBI", // English
|
||||||
"VITERBI", // Deutsch
|
"VITERBI", // Deutsch
|
||||||
@@ -426,6 +489,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"VITERBI", // Catal<61>
|
"VITERBI", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"VITERBI", // Hrvatski (Croatian)
|
"VITERBI", // Hrvatski (Croatian)
|
||||||
|
"VITERBI", // Eesti
|
||||||
|
"VITERBI", // Dansk
|
||||||
},
|
},
|
||||||
{ "SYNC", // English
|
{ "SYNC", // English
|
||||||
"SYNC", // Deutsch
|
"SYNC", // Deutsch
|
||||||
@@ -445,6 +510,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"SYNC", // Catal<61>
|
"SYNC", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"SYNC", // Hrvatski (Croatian)
|
"SYNC", // Hrvatski (Croatian)
|
||||||
|
"SYNC", // Eesti
|
||||||
|
"SYNC", // Dansk
|
||||||
},
|
},
|
||||||
{ "Audio", // English
|
{ "Audio", // English
|
||||||
"Audio", // Deutsch
|
"Audio", // Deutsch
|
||||||
@@ -464,6 +531,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Audio", // Catal<61>
|
"Audio", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"Audio", // Hrvatski (Croatian)
|
"Audio", // Hrvatski (Croatian)
|
||||||
|
"Audio", // Eesti
|
||||||
|
"Audio", // Dansk
|
||||||
},
|
},
|
||||||
{ "Video", // English
|
{ "Video", // English
|
||||||
"Video", // Deutsch
|
"Video", // Deutsch
|
||||||
@@ -483,6 +552,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Video", // Catal<61>
|
"Video", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"Video", // Hrvatski (Croatian)
|
"Video", // Hrvatski (Croatian)
|
||||||
|
"Video", // Eesti
|
||||||
|
"Video", // Dansk
|
||||||
},
|
},
|
||||||
{ "Auto", // English
|
{ "Auto", // English
|
||||||
"Auto", // Deutsch
|
"Auto", // Deutsch
|
||||||
@@ -502,6 +573,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Auto", // Catal<61>
|
"Auto", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"Auto", // Hrvatski (Croatian)
|
"Auto", // Hrvatski (Croatian)
|
||||||
|
"Auto", // Eesti
|
||||||
|
"Auto", // Dansk
|
||||||
},
|
},
|
||||||
{ "None", // English
|
{ "None", // English
|
||||||
"None", // Deutsch
|
"None", // Deutsch
|
||||||
@@ -521,6 +594,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"None", // Catal<61>
|
"None", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"None", // Hrvatski (Croatian)
|
"None", // Hrvatski (Croatian)
|
||||||
|
"None", // Eesti
|
||||||
|
"None", // Dansk
|
||||||
},
|
},
|
||||||
{ "Off", // English
|
{ "Off", // English
|
||||||
"Off", // Deutsch
|
"Off", // Deutsch
|
||||||
@@ -540,6 +615,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Off", // Catal<61>
|
"Off", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"Off", // Hrvatski (Croatian)
|
"Off", // Hrvatski (Croatian)
|
||||||
|
"Off", // Eesti
|
||||||
|
"Off", // Dansk
|
||||||
},
|
},
|
||||||
{ "On", // English
|
{ "On", // English
|
||||||
"On", // Deutsch
|
"On", // Deutsch
|
||||||
@@ -559,6 +636,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"On", // Catal<61>
|
"On", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"On", // Hrvatski (Croatian)
|
"On", // Hrvatski (Croatian)
|
||||||
|
"On", // Eesti
|
||||||
|
"On", // Dansk
|
||||||
},
|
},
|
||||||
{ "MHz", // English
|
{ "MHz", // English
|
||||||
"MHz", // Deutsch
|
"MHz", // Deutsch
|
||||||
@@ -578,6 +657,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"MHz", // Catal<61>
|
"MHz", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"MHz", // Hrvatski (Croatian)
|
"MHz", // Hrvatski (Croatian)
|
||||||
|
"MHz", // Eesti
|
||||||
|
"MHz", // Dansk
|
||||||
},
|
},
|
||||||
{ "Mbit/s", // English
|
{ "Mbit/s", // English
|
||||||
"Mbit/s", // Deutsch
|
"Mbit/s", // Deutsch
|
||||||
@@ -597,6 +678,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Mbit/s", // Catal<61>
|
"Mbit/s", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"Mbit/s", // Hrvatski (Croatian)
|
"Mbit/s", // Hrvatski (Croatian)
|
||||||
|
"Mbit/s", // Eesti
|
||||||
|
"Mbit/s", // Dansk
|
||||||
},
|
},
|
||||||
{ "kbit/s", // English
|
{ "kbit/s", // English
|
||||||
"kbit/s", // Deutsch
|
"kbit/s", // Deutsch
|
||||||
@@ -616,6 +699,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"kbit/s", // Catal<61>
|
"kbit/s", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"kbit/s", // Hrvatski (Croatian)
|
"kbit/s", // Hrvatski (Croatian)
|
||||||
|
"kbit/s", // Eesti
|
||||||
|
"kbit/s", // Dansk
|
||||||
},
|
},
|
||||||
{ "Stream Information", // English
|
{ "Stream Information", // English
|
||||||
"Streaminformation", // Deutsch
|
"Streaminformation", // Deutsch
|
||||||
@@ -635,6 +720,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "MPEG Layer", // English
|
{ "MPEG Layer", // English
|
||||||
"MPEG Layer", // Deutsch
|
"MPEG Layer", // Deutsch
|
||||||
@@ -654,6 +741,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Video Stream", // English
|
{ "Video Stream", // English
|
||||||
"Video Stream", // Deutsch
|
"Video Stream", // Deutsch
|
||||||
@@ -673,6 +762,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Bitrate", // English
|
{ "Bitrate", // English
|
||||||
"Bitrate", // Deutsch
|
"Bitrate", // Deutsch
|
||||||
@@ -692,6 +783,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Frame Rate", // English
|
{ "Frame Rate", // English
|
||||||
"Bildrate", // Deutsch
|
"Bildrate", // Deutsch
|
||||||
@@ -711,6 +804,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Hz", // English
|
{ "Hz", // English
|
||||||
"Hz", // Deutsch
|
"Hz", // Deutsch
|
||||||
@@ -730,6 +825,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Hz", // Catal<61>
|
"Hz", // Catal<61>
|
||||||
"<EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"<EFBFBD><EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"Hz", // Hrvatski (Croatian)
|
"Hz", // Hrvatski (Croatian)
|
||||||
|
"Hz", // Eesti
|
||||||
|
"Hz", // Dansk
|
||||||
},
|
},
|
||||||
{ "Aspect Ratio", // English
|
{ "Aspect Ratio", // English
|
||||||
"Seitenverh<EFBFBD>ltnis", // Deutsch
|
"Seitenverh<EFBFBD>ltnis", // Deutsch
|
||||||
@@ -749,6 +846,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "reserved", // English
|
{ "reserved", // English
|
||||||
"belegt", // Deutsch
|
"belegt", // Deutsch
|
||||||
@@ -768,6 +867,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "free", // English
|
{ "free", // English
|
||||||
"frei", // Deutsch
|
"frei", // Deutsch
|
||||||
@@ -787,6 +888,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Video Format", // English
|
{ "Video Format", // English
|
||||||
"Bildformat", // Deutsch
|
"Bildformat", // Deutsch
|
||||||
@@ -806,6 +909,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "PAL", // English
|
{ "PAL", // English
|
||||||
"PAL", // Deutsch
|
"PAL", // Deutsch
|
||||||
@@ -825,6 +930,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"PAL", // Catal<61>
|
"PAL", // Catal<61>
|
||||||
"PAL", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"PAL", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"PAL", // Hrvatski (Croatian)
|
"PAL", // Hrvatski (Croatian)
|
||||||
|
"PAL", // Eesti
|
||||||
|
"PAL", // Dansk
|
||||||
},
|
},
|
||||||
{ "NTSC", // English
|
{ "NTSC", // English
|
||||||
"NTSC", // Deutsch
|
"NTSC", // Deutsch
|
||||||
@@ -844,6 +951,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"NTSC", // Catal<61>
|
"NTSC", // Catal<61>
|
||||||
"NTSC", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"NTSC", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"NTSC", // Hrvatski (Croatian)
|
"NTSC", // Hrvatski (Croatian)
|
||||||
|
"NTSC", // Eesti
|
||||||
|
"NTSC", // Dansk
|
||||||
},
|
},
|
||||||
{ "unknown", // English
|
{ "unknown", // English
|
||||||
"unbekannt", // Deutsch
|
"unbekannt", // Deutsch
|
||||||
@@ -863,6 +972,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Resolution", // English
|
{ "Resolution", // English
|
||||||
"Aufl<EFBFBD>sung", // Deutsch
|
"Aufl<EFBFBD>sung", // Deutsch
|
||||||
@@ -882,6 +993,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Audio Stream", // English
|
{ "Audio Stream", // English
|
||||||
"Audio Stream", // Deutsch
|
"Audio Stream", // Deutsch
|
||||||
@@ -901,6 +1014,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Sampling Frequency", // English
|
{ "Sampling Frequency", // English
|
||||||
"Abtastrate", // Deutsch
|
"Abtastrate", // Deutsch
|
||||||
@@ -920,6 +1035,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "kHz", // English
|
{ "kHz", // English
|
||||||
"kHz", // Deutsch
|
"kHz", // Deutsch
|
||||||
@@ -939,6 +1056,50 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"kHz", // Catal<61>
|
"kHz", // Catal<61>
|
||||||
"ڳ<EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"ڳ<EFBFBD>", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"kHz", // Hrvatski (Croatian)
|
"kHz", // Hrvatski (Croatian)
|
||||||
|
"kHz", // Eesti
|
||||||
|
"kHz", // Dansk
|
||||||
|
},
|
||||||
|
{ "Apid", // English
|
||||||
|
"Apid", // Deutsch
|
||||||
|
"Apid", // Slovenski
|
||||||
|
"Apid", // Italiano
|
||||||
|
"Apid", // Nederlands
|
||||||
|
"Apid", // Portugu<67>s
|
||||||
|
"Apid", // Fran<61>ais
|
||||||
|
"Apid", // Norsk
|
||||||
|
"<EFBFBD><EFBFBD>ni PID", // suomi
|
||||||
|
"Apid", // Polski
|
||||||
|
"Apid", // Espa<70>ol
|
||||||
|
"Apid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||||
|
"Apid", // Svenska
|
||||||
|
"Apid", // Romaneste
|
||||||
|
"Apid", // Magyar
|
||||||
|
"Apid", // Catal<61>
|
||||||
|
"Apid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
|
"Apid", // Hrvatski (Croatian)
|
||||||
|
"Apid", // Eesti
|
||||||
|
"Apid", // Dansk
|
||||||
|
},
|
||||||
|
{ "Dpid", // English
|
||||||
|
"Dpid", // Deutsch
|
||||||
|
"Dpid", // Slovenski
|
||||||
|
"Dpid", // Italiano
|
||||||
|
"Dpid", // Nederlands
|
||||||
|
"Dpid", // Portugu<67>s
|
||||||
|
"Dpid", // Fran<61>ais
|
||||||
|
"Dpid", // Norsk
|
||||||
|
"Dolby PID", // suomi
|
||||||
|
"Dpid", // Polski
|
||||||
|
"Dpid", // Espa<70>ol
|
||||||
|
"Dpid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||||
|
"Dpid", // Svenska
|
||||||
|
"Dpid", // Romaneste
|
||||||
|
"Dpid", // Magyar
|
||||||
|
"Dpid", // Catal<61>
|
||||||
|
"Dpid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
|
"Dpid", // Hrvatski (Croatian)
|
||||||
|
"Dpid", // Eesti
|
||||||
|
"Dpid", // Dansk
|
||||||
},
|
},
|
||||||
{ "Nid", // English
|
{ "Nid", // English
|
||||||
"Nid", // Deutsch
|
"Nid", // Deutsch
|
||||||
@@ -958,6 +1119,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Nid", // Catal<61>
|
"Nid", // Catal<61>
|
||||||
"Nid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"Nid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"Nid", // Hrvatski (Croatian)
|
"Nid", // Hrvatski (Croatian)
|
||||||
|
"Nid", // Eesti
|
||||||
|
"Nid", // Dansk
|
||||||
},
|
},
|
||||||
{ "Tid", // English
|
{ "Tid", // English
|
||||||
"Tid", // Deutsch
|
"Tid", // Deutsch
|
||||||
@@ -977,6 +1140,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Tid", // Catal<61>
|
"Tid", // Catal<61>
|
||||||
"Tid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"Tid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"Tid", // Hrvatski (Croatian)
|
"Tid", // Hrvatski (Croatian)
|
||||||
|
"Tid", // Eesti
|
||||||
|
"Tid", // Dansk
|
||||||
},
|
},
|
||||||
{ "Rid", // English
|
{ "Rid", // English
|
||||||
"Rid", // Deutsch
|
"Rid", // Deutsch
|
||||||
@@ -996,6 +1161,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"Rid", // Catal<61>
|
"Rid", // Catal<61>
|
||||||
"Rid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"Rid", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"Rid", // Hrvatski (Croatian)
|
"Rid", // Hrvatski (Croatian)
|
||||||
|
"Rid", // Eesti
|
||||||
|
"Rid", // Dansk
|
||||||
},
|
},
|
||||||
{ "dB", // English
|
{ "dB", // English
|
||||||
"dB", // Deutsch
|
"dB", // Deutsch
|
||||||
@@ -1015,6 +1182,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"dB", // Catal<61>
|
"dB", // Catal<61>
|
||||||
"dB", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"dB", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"dB", // Hrvatski (Croatian)
|
"dB", // Hrvatski (Croatian)
|
||||||
|
"dB", // Eesti
|
||||||
|
"dB", // Dansk
|
||||||
},
|
},
|
||||||
{ "not indicated", // English
|
{ "not indicated", // English
|
||||||
"", // Deutsch
|
"", // Deutsch
|
||||||
@@ -1034,6 +1203,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "AC-3", // English
|
{ "AC-3", // English
|
||||||
"AC-3", // Deutsch
|
"AC-3", // Deutsch
|
||||||
@@ -1053,6 +1224,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"AC-3", // Catal<61>
|
"AC-3", // Catal<61>
|
||||||
"AC-3", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"AC-3", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"AC-3", // Hrvatski (Croatian)
|
"AC-3", // Hrvatski (Croatian)
|
||||||
|
"AC-3", // Eesti
|
||||||
|
"AC-3", // Dansk
|
||||||
},
|
},
|
||||||
{ "AC-3 Stream", // English
|
{ "AC-3 Stream", // English
|
||||||
"AC-3 Stream", // Deutsch
|
"AC-3 Stream", // Deutsch
|
||||||
@@ -1072,6 +1245,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Frame Size", // English
|
{ "Frame Size", // English
|
||||||
"Frame Gr<47><72>e", // Deutsch
|
"Frame Gr<47><72>e", // Deutsch
|
||||||
@@ -1091,6 +1266,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Bit Stream Mode", // English
|
{ "Bit Stream Mode", // English
|
||||||
"Bitstream Modus", // Deutsch
|
"Bitstream Modus", // Deutsch
|
||||||
@@ -1110,6 +1287,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Audio Coding Mode", // English
|
{ "Audio Coding Mode", // English
|
||||||
"Audio Coding Modus", // Deutsch
|
"Audio Coding Modus", // Deutsch
|
||||||
@@ -1129,6 +1308,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Center Mix Level", // English
|
{ "Center Mix Level", // English
|
||||||
"Center Mix Pegel", // Deutsch
|
"Center Mix Pegel", // Deutsch
|
||||||
@@ -1148,6 +1329,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Surround Mix Level", // English
|
{ "Surround Mix Level", // English
|
||||||
"Surround Mix Pegel", // Deutsch
|
"Surround Mix Pegel", // Deutsch
|
||||||
@@ -1167,6 +1350,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Dolby Surround Mode", // English
|
{ "Dolby Surround Mode", // English
|
||||||
"Dolby Surround Modus", // Deutsch
|
"Dolby Surround Modus", // Deutsch
|
||||||
@@ -1186,6 +1371,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Low Frequency Effects", // English
|
{ "Low Frequency Effects", // English
|
||||||
"Tieft<EFBFBD>ner Effekte", // Deutsch
|
"Tieft<EFBFBD>ner Effekte", // Deutsch
|
||||||
@@ -1205,6 +1392,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Dialogue Normalization", // English
|
{ "Dialogue Normalization", // English
|
||||||
"Dialog Normalisierung", // Deutsch
|
"Dialog Normalisierung", // Deutsch
|
||||||
@@ -1224,6 +1413,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Complete Main (CM)", // English
|
{ "Complete Main (CM)", // English
|
||||||
"Complete Main (CM)", // Deutsch
|
"Complete Main (CM)", // Deutsch
|
||||||
@@ -1243,6 +1434,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Music and Effects (ME)", // English
|
{ "Music and Effects (ME)", // English
|
||||||
"Musik und Effekte (ME)", // Deutsch
|
"Musik und Effekte (ME)", // Deutsch
|
||||||
@@ -1262,6 +1455,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Visually Impaired (VI)", // English
|
{ "Visually Impaired (VI)", // English
|
||||||
"Sehbehindert (VI)", // Deutsch
|
"Sehbehindert (VI)", // Deutsch
|
||||||
@@ -1281,6 +1476,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Hearing Impaired (HI)", // English
|
{ "Hearing Impaired (HI)", // English
|
||||||
"H<EFBFBD>rbehindert (HI)", // Deutsch
|
"H<EFBFBD>rbehindert (HI)", // Deutsch
|
||||||
@@ -1300,6 +1497,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Dialogue (D)", // English
|
{ "Dialogue (D)", // English
|
||||||
"Dialog (D)", // Deutsch
|
"Dialog (D)", // Deutsch
|
||||||
@@ -1319,6 +1518,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Commentary (C)", // English
|
{ "Commentary (C)", // English
|
||||||
"Kommentar (C)", // Deutsch
|
"Kommentar (C)", // Deutsch
|
||||||
@@ -1338,6 +1539,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Emergency (E)", // English
|
{ "Emergency (E)", // English
|
||||||
"Notfall (E)", // Deutsch
|
"Notfall (E)", // Deutsch
|
||||||
@@ -1357,6 +1560,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Voice Over (VO)", // English
|
{ "Voice Over (VO)", // English
|
||||||
"<EFBFBD>berlagerte Stimme (VO)", // Deutsch
|
"<EFBFBD>berlagerte Stimme (VO)", // Deutsch
|
||||||
@@ -1376,6 +1581,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Karaoke", // English
|
{ "Karaoke", // English
|
||||||
"Karaoke", // Deutsch
|
"Karaoke", // Deutsch
|
||||||
@@ -1395,6 +1602,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Ch1", // English "Channel 1"
|
{ "Ch1", // English "Channel 1"
|
||||||
"Kan1", // Deutsch
|
"Kan1", // Deutsch
|
||||||
@@ -1414,6 +1623,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "Ch2", // English "Channel 2"
|
{ "Ch2", // English "Channel 2"
|
||||||
"Kan2", // Deutsch
|
"Kan2", // Deutsch
|
||||||
@@ -1433,6 +1644,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "C", // English "Center"
|
{ "C", // English "Center"
|
||||||
"C", // Deutsch
|
"C", // Deutsch
|
||||||
@@ -1452,6 +1665,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "L", // English "Left"
|
{ "L", // English "Left"
|
||||||
"L", // Deutsch
|
"L", // Deutsch
|
||||||
@@ -1471,6 +1686,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "R", // English "Right"
|
{ "R", // English "Right"
|
||||||
"R", // Deutsch
|
"R", // Deutsch
|
||||||
@@ -1490,6 +1707,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "S", // English "Surround"
|
{ "S", // English "Surround"
|
||||||
"S", // Deutsch
|
"S", // Deutsch
|
||||||
@@ -1509,6 +1728,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "SL", // English "Surround Left"
|
{ "SL", // English "Surround Left"
|
||||||
"SL", // Deutsch
|
"SL", // Deutsch
|
||||||
@@ -1528,6 +1749,8 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ "SR", // English "Surround Right"
|
{ "SR", // English "Surround Right"
|
||||||
"SR", // Deutsch
|
"SR", // Deutsch
|
||||||
@@ -1547,6 +1770,281 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Catal<61>
|
"", // Catal<61>
|
||||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||||
"", // Hrvatski (Croatian)
|
"", // Hrvatski (Croatian)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "Show CA System", // English
|
||||||
|
"CA System anzeigen", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"N<EFBFBD>yt<EFBFBD> salausj<73>rjestelm<6C>", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "Fixed", // English
|
||||||
|
"Fest", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"kiinte<EFBFBD>", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "Free to Air", // English
|
||||||
|
"Free to Air", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"salaamaton", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "SECA/Mediaguard", // English
|
||||||
|
"SECA/Mediaguard", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"SECA/Mediaguard", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "Viaccess", // English
|
||||||
|
"Viaccess", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"Viaccess", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "Irdeto", // English
|
||||||
|
"Irdeto", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"Irdeto", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "NDS/Videoguard", // English
|
||||||
|
"NDS/Videoguard", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"NDS/Videoguard", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "Conax", // English
|
||||||
|
"Conax", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"Conax", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "CryptoWorks", // English
|
||||||
|
"CryptoWorks", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"CryptoWorks", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "PowerVu", // English
|
||||||
|
"PowerVu", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"PowerVu", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "BetaCrypt", // English
|
||||||
|
"BetaCrypt", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"BetaCrypt", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "NagraVision", // English
|
||||||
|
"NagraVision", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"NagraVision", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
},
|
||||||
|
{ "SkyCrypt", // English
|
||||||
|
"SkyCrypt", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portugu<67>s
|
||||||
|
"", // Fran<61>ais
|
||||||
|
"", // Norsk
|
||||||
|
"SkyCrypt", // 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)
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
},
|
},
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|||||||
405
femonosd.c
405
femonosd.c
@@ -12,6 +12,16 @@
|
|||||||
#include "femonreceiver.h"
|
#include "femonreceiver.h"
|
||||||
#include "femonosd.h"
|
#include "femonosd.h"
|
||||||
|
|
||||||
|
#include "symbols/device.xpm"
|
||||||
|
#include "symbols/stereo.xpm"
|
||||||
|
#include "symbols/monoleft.xpm"
|
||||||
|
#include "symbols/monoright.xpm"
|
||||||
|
#include "symbols/zero.xpm"
|
||||||
|
#include "symbols/one.xpm"
|
||||||
|
#include "symbols/two.xpm"
|
||||||
|
#include "symbols/three.xpm"
|
||||||
|
#include "symbols/four.xpm"
|
||||||
|
#include "symbols/five.xpm"
|
||||||
#include "symbols/ar11.xpm"
|
#include "symbols/ar11.xpm"
|
||||||
#include "symbols/ar169.xpm"
|
#include "symbols/ar169.xpm"
|
||||||
#include "symbols/ar2211.xpm"
|
#include "symbols/ar2211.xpm"
|
||||||
@@ -25,23 +35,31 @@
|
|||||||
#define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d"
|
#define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d"
|
||||||
#define CHANNELINPUT_TIMEOUT 1000
|
#define CHANNELINPUT_TIMEOUT 1000
|
||||||
|
|
||||||
#define SCREENWIDTH 720 // in pixels
|
#define OSDHEIGHT femonConfig.osdheight // in pixels
|
||||||
#define SCREENHEIGHT 576 // in pixels
|
#define OSDWIDTH 600 // in pixels
|
||||||
#define OSDWIDTH 600 // in pixels
|
|
||||||
#define OSDHEIGHT 480 // in pixels
|
|
||||||
#define OSDINFOHEIGHT (m_Font->Height() * 11) // in pixels (11 rows)
|
#define OSDINFOHEIGHT (m_Font->Height() * 11) // in pixels (11 rows)
|
||||||
#define OSDSTATUSHEIGHT (m_Font->Height() * 6) // in pixels (6 rows)
|
#define OSDSTATUSHEIGHT (m_Font->Height() * 6) // in pixels (6 rows)
|
||||||
|
|
||||||
#define OSDINFOWIN_Y(offset) (femonConfig.position ? (OSDHEIGHT - OSDINFOHEIGHT + offset) : offset)
|
#define OSDINFOWIN_Y(offset) (femonConfig.position ? (OSDHEIGHT - OSDINFOHEIGHT + offset) : offset)
|
||||||
#define OSDINFOWIN_X(col) ((col == 4) ? 470 : (col == 3) ? 300 : (col==2) ? 180 : 15)
|
#define OSDINFOWIN_X(col) ((col == 4) ? 455 : (col == 3) ? 305 : (col == 2) ? 155 : 15)
|
||||||
#define OSDSTATUSWIN_Y(offset) (femonConfig.position ? offset : (OSDHEIGHT - OSDSTATUSHEIGHT + offset))
|
#define OSDSTATUSWIN_Y(offset) (femonConfig.position ? offset : (OSDHEIGHT - OSDSTATUSHEIGHT + offset))
|
||||||
#define OSDSTATUSWIN_X(col) ((col == 7) ? 475 : (col == 6) ? 410 : (col == 5) ? 275 : (col == 4) ? 220 : (col == 3) ? 125 : (col==2) ? 70 : 15)
|
#define OSDSTATUSWIN_X(col) ((col == 7) ? 475 : (col == 6) ? 410 : (col == 5) ? 275 : (col == 4) ? 220 : (col == 3) ? 125 : (col == 2) ? 70 : 15)
|
||||||
#define OSDSTATUSWIN_XC(col,txt) (((col - 1) * SCREENWIDTH / 6) + ((SCREENWIDTH / 6 - m_Font->Width(txt)) / 2))
|
#define OSDSTATUSWIN_XC(col,txt) (((col - 1) * OSDWIDTH / 5) + ((OSDWIDTH / 5 - m_Font->Width(txt)) / 2))
|
||||||
#define BARWIDTH(x) (OSDWIDTH * x / 100)
|
#define BARWIDTH(x) (OSDWIDTH * x / 100)
|
||||||
#define SPACING 5
|
#define SPACING 5
|
||||||
|
|
||||||
#define clrBackground clrGray50 // this should be tied somehow into current theme
|
#define clrBackground clrGray50 // this should be tied somehow into current theme
|
||||||
|
|
||||||
|
cBitmap cFemonOsd::bmDevice(device_xpm);
|
||||||
|
cBitmap cFemonOsd::bmStereo(stereo_xpm);
|
||||||
|
cBitmap cFemonOsd::bmMonoLeft(monoleft_xpm);
|
||||||
|
cBitmap cFemonOsd::bmMonoRight(monoright_xpm);
|
||||||
|
cBitmap cFemonOsd::bmZero(zero_xpm);
|
||||||
|
cBitmap cFemonOsd::bmOne(one_xpm);
|
||||||
|
cBitmap cFemonOsd::bmTwo(two_xpm);
|
||||||
|
cBitmap cFemonOsd::bmThree(three_xpm);
|
||||||
|
cBitmap cFemonOsd::bmFour(four_xpm);
|
||||||
|
cBitmap cFemonOsd::bmFive(five_xpm);
|
||||||
cBitmap cFemonOsd::bmAspectRatio_1_1(ar11_xpm);
|
cBitmap cFemonOsd::bmAspectRatio_1_1(ar11_xpm);
|
||||||
cBitmap cFemonOsd::bmAspectRatio_16_9(ar169_xpm);
|
cBitmap cFemonOsd::bmAspectRatio_16_9(ar169_xpm);
|
||||||
cBitmap cFemonOsd::bmAspectRatio_2_21_1(ar2211_xpm);
|
cBitmap cFemonOsd::bmAspectRatio_2_21_1(ar2211_xpm);
|
||||||
@@ -55,26 +73,33 @@ cBitmap cFemonOsd::bmDD51(dolbydigital51_xpm);
|
|||||||
cFemonOsd::cFemonOsd(void)
|
cFemonOsd::cFemonOsd(void)
|
||||||
:cOsdObject(true), cThread("femon osd")
|
:cOsdObject(true), cThread("femon osd")
|
||||||
{
|
{
|
||||||
//printf("cFemonOsd::cFemonOsd()\n");
|
debug(printf("cFemonOsd::cFemonOsd()\n"));
|
||||||
m_Osd = NULL;
|
m_Osd = NULL;
|
||||||
m_Receiver = NULL;
|
m_Receiver = NULL;
|
||||||
m_Frontend = -1;
|
m_Frontend = -1;
|
||||||
m_Active = false;
|
m_Active = false;
|
||||||
m_Number = 0;
|
m_Number = 0;
|
||||||
m_OldNumber = 0;
|
m_OldNumber = 0;
|
||||||
m_InputTime = 0;
|
|
||||||
m_Signal = 0;
|
m_Signal = 0;
|
||||||
m_SNR = 0;
|
m_SNR = 0;
|
||||||
m_BER = 0;
|
m_BER = 0;
|
||||||
m_UNC = 0;
|
m_UNC = 0;
|
||||||
m_DisplayMode = femonConfig.displaymode;
|
m_DisplayMode = femonConfig.displaymode;
|
||||||
m_Font = cFont::GetFont(fontSml);
|
m_InputTime.Set(0);
|
||||||
m_Mutex = new cMutex();
|
m_Mutex = new cMutex();
|
||||||
|
if (Setup.UseSmallFont == 0) {
|
||||||
|
// Dirty hack to force the small fonts...
|
||||||
|
Setup.UseSmallFont = 1;
|
||||||
|
m_Font = cFont::GetFont(fontSml);
|
||||||
|
Setup.UseSmallFont = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
m_Font = cFont::GetFont(fontSml);
|
||||||
}
|
}
|
||||||
|
|
||||||
cFemonOsd::~cFemonOsd(void)
|
cFemonOsd::~cFemonOsd(void)
|
||||||
{
|
{
|
||||||
//printf("cFemonOsd::~cFemonOsd()\n");
|
debug(printf("cFemonOsd::~cFemonOsd()\n"));
|
||||||
if (m_Active) {
|
if (m_Active) {
|
||||||
m_Active = false;
|
m_Active = false;
|
||||||
Cancel(3);
|
Cancel(3);
|
||||||
@@ -88,22 +113,130 @@ cFemonOsd::~cFemonOsd(void)
|
|||||||
void cFemonOsd::DrawStatusWindow(void)
|
void cFemonOsd::DrawStatusWindow(void)
|
||||||
{
|
{
|
||||||
cMutexLock lock(m_Mutex);
|
cMutexLock lock(m_Mutex);
|
||||||
//printf("cFemonOsd::DrawStatusWindow()\n");
|
debug(printf("cFemonOsd::DrawStatusWindow()\n"));
|
||||||
char buf[128];
|
char buf[128];
|
||||||
int snr = m_SNR / 655;
|
int snr = m_SNR / 655;
|
||||||
int signal = m_Signal / 655;
|
int signal = m_Signal / 655;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
int x = OSDWIDTH - SPACING;
|
int x = OSDWIDTH;
|
||||||
int y = 0;
|
int y = 0;
|
||||||
|
int value = 0;
|
||||||
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||||
|
|
||||||
if (m_Osd) {
|
if (m_Osd) {
|
||||||
m_Osd->DrawRectangle(0, OSDSTATUSWIN_Y(0), OSDWIDTH, OSDSTATUSWIN_Y(OSDSTATUSHEIGHT), clrBackground);
|
m_Osd->DrawRectangle(0, OSDSTATUSWIN_Y(0), OSDWIDTH, OSDSTATUSWIN_Y(OSDSTATUSHEIGHT), clrBackground);
|
||||||
snprintf(buf, sizeof(buf), "%d%s %s", m_Number ? m_Number : channel->Number(), m_Number ? "-" : "", channel->Name());
|
snprintf(buf, sizeof(buf), "%d%s %s (%s)", m_Number ? m_Number : channel->Number(), m_Number ? "-" : "", channel->ShortName(true), channel->Provider());
|
||||||
m_Osd->DrawRectangle(0, OSDSTATUSWIN_Y(offset), OSDWIDTH, OSDSTATUSWIN_Y(offset+m_Font->Height()-1), clrWhite);
|
m_Osd->DrawRectangle(0, OSDSTATUSWIN_Y(offset), OSDWIDTH, OSDSTATUSWIN_Y(offset+m_Font->Height()-1), clrWhite);
|
||||||
m_Osd->DrawText(OSDSTATUSWIN_X(1), OSDSTATUSWIN_Y(offset), buf, clrBlack, clrWhite, m_Font);
|
m_Osd->DrawText(OSDSTATUSWIN_X(1), OSDSTATUSWIN_Y(offset), buf, clrBlack, clrWhite, m_Font);
|
||||||
if (m_Receiver) {
|
if (m_Receiver) {
|
||||||
int value = m_Receiver->VideoFormat();
|
value = cDevice::ActualDevice()->CardIndex();
|
||||||
|
if (value == 1) {
|
||||||
|
x -= bmOne.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmOne.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmOne, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else if (value == 2) {
|
||||||
|
x -= bmTwo.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmTwo.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmTwo, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else if (value == 3) {
|
||||||
|
x -= bmThree.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmThree.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmThree, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
x -= bmZero.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmZero.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmZero, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
x -= bmDevice.Width();
|
||||||
|
y = (m_Font->Height() - bmDevice.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDevice, clrBlack, clrWhite);
|
||||||
|
if (IS_AUDIO_TRACK(cDevice::PrimaryDevice()->GetCurrentAudioTrack())) {
|
||||||
|
value = int(cDevice::PrimaryDevice()->GetCurrentAudioTrack() - ttAudioFirst);
|
||||||
|
if (value == 1) {
|
||||||
|
x -= bmOne.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmOne.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmOne, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else if (value == 2) {
|
||||||
|
x -= bmTwo.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmTwo.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmTwo, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else if (value == 3) {
|
||||||
|
x -= bmThree.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmThree.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmThree, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else if (value == 4) {
|
||||||
|
x -= bmFour.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmFour.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmFour, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else if (value == 5) {
|
||||||
|
x -= bmFive.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmFive.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmFive, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
x -= bmZero.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmZero.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmZero, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
value = cDevice::PrimaryDevice()->GetAudioChannel();
|
||||||
|
if (value == 1) {
|
||||||
|
x -= bmMonoLeft.Width();
|
||||||
|
y = (m_Font->Height() - bmMonoLeft.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmMonoLeft, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else if (value == 2) {
|
||||||
|
x -= bmMonoRight.Width();
|
||||||
|
y = (m_Font->Height() - bmMonoRight.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmMonoRight, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
x -= bmStereo.Width();
|
||||||
|
y = (m_Font->Height() - bmStereo.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmStereo, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (m_Receiver && m_Receiver->AC3Valid() && IS_DOLBY_TRACK(cDevice::PrimaryDevice()->GetCurrentAudioTrack())) {
|
||||||
|
if (m_Receiver->AC3_5_1()) {
|
||||||
|
x -= bmDD51.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmDD51.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDD51, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else if (m_Receiver->AC3_2_0()) {
|
||||||
|
x -= bmDD20.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmDD20.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDD20, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
x -= bmDD.Width() + SPACING;
|
||||||
|
y = (m_Font->Height() - bmDD.Height()) / 2;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDD, clrBlack, clrWhite);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
value = m_Receiver->VideoFormat();
|
||||||
if (value == VF_PAL) {
|
if (value == VF_PAL) {
|
||||||
x -= bmPAL.Width() + SPACING;
|
x -= bmPAL.Width() + SPACING;
|
||||||
y = (m_Font->Height() - bmPAL.Height()) / 2;
|
y = (m_Font->Height() - bmPAL.Height()) / 2;
|
||||||
@@ -141,26 +274,6 @@ void cFemonOsd::DrawStatusWindow(void)
|
|||||||
if (y < 0) y = 0;
|
if (y < 0) y = 0;
|
||||||
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmAspectRatio_2_21_1, clrBlack, clrWhite);
|
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmAspectRatio_2_21_1, clrBlack, clrWhite);
|
||||||
}
|
}
|
||||||
if (m_Receiver && m_Receiver->AC3Valid()) {
|
|
||||||
if (m_Receiver->AC3_5_1()) {
|
|
||||||
x -= bmDD51.Width() + SPACING;
|
|
||||||
y = (m_Font->Height() - bmDD51.Height()) / 2;
|
|
||||||
if (y < 0) y = 0;
|
|
||||||
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDD51, clrBlack, clrWhite);
|
|
||||||
}
|
|
||||||
else if (m_Receiver->AC3_2_0()) {
|
|
||||||
x -= bmDD20.Width() + SPACING;
|
|
||||||
y = (m_Font->Height() - bmDD20.Height()) / 2;
|
|
||||||
if (y < 0) y = 0;
|
|
||||||
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDD20, clrBlack, clrWhite);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
x -= bmDD.Width() + SPACING;
|
|
||||||
y = (m_Font->Height() - bmDD.Height()) / 2;
|
|
||||||
if (y < 0) y = 0;
|
|
||||||
m_Osd->DrawBitmap(x, OSDSTATUSWIN_Y(offset+y), bmDD, clrBlack, clrWhite);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
offset += m_Font->Height();
|
offset += m_Font->Height();
|
||||||
if (signal > 0) {
|
if (signal > 0) {
|
||||||
@@ -207,9 +320,9 @@ void cFemonOsd::DrawStatusWindow(void)
|
|||||||
m_Osd->DrawText(OSDSTATUSWIN_X(4), OSDSTATUSWIN_Y(offset), "UNC:", clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDSTATUSWIN_X(4), OSDSTATUSWIN_Y(offset), "UNC:", clrWhite, clrBackground, m_Font);
|
||||||
snprintf(buf, sizeof(buf), "%08x", m_UNC);
|
snprintf(buf, sizeof(buf), "%08x", m_UNC);
|
||||||
m_Osd->DrawText(OSDSTATUSWIN_X(5), OSDSTATUSWIN_Y(offset), buf, clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDSTATUSWIN_X(5), OSDSTATUSWIN_Y(offset), buf, clrWhite, clrBackground, m_Font);
|
||||||
snprintf(buf, sizeof(buf), "%s:", (m_Receiver && m_Receiver->AC3Valid()) ? tr("AC-3") : tr("Audio"));
|
snprintf(buf, sizeof(buf), "%s:", (m_Receiver && m_Receiver->AC3Valid() && IS_DOLBY_TRACK(cDevice::PrimaryDevice()->GetCurrentAudioTrack())) ? tr("AC-3") : tr("Audio"));
|
||||||
m_Osd->DrawText(OSDSTATUSWIN_X(6), OSDSTATUSWIN_Y(offset), buf, clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDSTATUSWIN_X(6), OSDSTATUSWIN_Y(offset), buf, clrWhite, clrBackground, m_Font);
|
||||||
if (m_Receiver) snprintf(buf, sizeof(buf), "%.0f %s", m_Receiver->AC3Valid() ? m_Receiver->AC3Bitrate() : m_Receiver->AudioBitrate(), tr("kbit/s"));
|
if (m_Receiver) snprintf(buf, sizeof(buf), "%.0f %s", (m_Receiver->AC3Valid() && IS_DOLBY_TRACK(cDevice::PrimaryDevice()->GetCurrentAudioTrack())) ? m_Receiver->AC3Bitrate() : m_Receiver->AudioBitrate(), tr("kbit/s"));
|
||||||
else snprintf(buf, sizeof(buf), "--- %s", tr("kbit/s"));
|
else snprintf(buf, sizeof(buf), "--- %s", tr("kbit/s"));
|
||||||
m_Osd->DrawText(OSDSTATUSWIN_X(7), OSDSTATUSWIN_Y(offset), buf, clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDSTATUSWIN_X(7), OSDSTATUSWIN_Y(offset), buf, clrWhite, clrBackground, m_Font);
|
||||||
offset += m_Font->Height();
|
offset += m_Font->Height();
|
||||||
@@ -225,7 +338,7 @@ void cFemonOsd::DrawStatusWindow(void)
|
|||||||
void cFemonOsd::DrawInfoWindow(void)
|
void cFemonOsd::DrawInfoWindow(void)
|
||||||
{
|
{
|
||||||
cMutexLock lock(m_Mutex);
|
cMutexLock lock(m_Mutex);
|
||||||
//printf("cFemonOsd::DrawInfoWindow()\n");
|
debug(printf("cFemonOsd::DrawInfoWindow()\n"));
|
||||||
char buf[128];
|
char buf[128];
|
||||||
char buf2[20];
|
char buf2[20];
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
@@ -246,19 +359,93 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||||||
snprintf(buf, sizeof(buf), "%d", channel->Ppid());
|
snprintf(buf, sizeof(buf), "%d", channel->Ppid());
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
offset += m_Font->Height();
|
offset += m_Font->Height();
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Apid1"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Apid"), clrWhite, clrBackground, m_Font);
|
||||||
value = channel->Apid2();
|
snprintf(buf, sizeof(buf), "%d", channel->Apid(0));
|
||||||
if (value) snprintf(buf, sizeof(buf), "%d, %d", channel->Apid1(), value);
|
value = 1;
|
||||||
else snprintf(buf, sizeof(buf), "%d", channel->Apid1());
|
while (channel->Apid(value) && (value < MAXAPIDS)) {
|
||||||
|
snprintf(buf2, sizeof(buf2), ", %d", channel->Apid(value++));
|
||||||
|
strncat(buf, buf2, sizeof(buf));
|
||||||
|
}
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Dpid1"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Dpid"), clrWhite, clrBackground, m_Font);
|
||||||
value = channel->Dpid2();
|
snprintf(buf, sizeof(buf), "%d", channel->Dpid(0));
|
||||||
if (value) snprintf(buf, sizeof(buf), "%d, %d", channel->Dpid1(), value);
|
value = 1;
|
||||||
else snprintf(buf, sizeof(buf), "%d", channel->Dpid1());
|
while (channel->Dpid(value) && (value < MAXAPIDS)) {
|
||||||
|
snprintf(buf2, sizeof(buf2), ", %d", channel->Dpid(value++));
|
||||||
|
strncat(buf, buf2, sizeof(buf));
|
||||||
|
}
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
offset += m_Font->Height();
|
offset += m_Font->Height();
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("CA"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("CA"), clrWhite, clrBackground, m_Font);
|
||||||
snprintf(buf, sizeof(buf), "%d", channel->Ca());
|
value = channel->Ca();
|
||||||
|
if (femonConfig.showcasystem) {
|
||||||
|
/* http://www.dvb.org/index.php?id=174 */
|
||||||
|
switch (value) {
|
||||||
|
case 0x0000:
|
||||||
|
/* Reserved */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("Free to Air"));
|
||||||
|
break;
|
||||||
|
case 0x0001 ... 0x00FF:
|
||||||
|
/* Standardized systems */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("Fixed"));
|
||||||
|
break;
|
||||||
|
case 0x0100 ... 0x01FF:
|
||||||
|
/* Canal Plus */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("SECA/Mediaguard"));
|
||||||
|
break;
|
||||||
|
case 0x0500 ... 0x05FF:
|
||||||
|
/* France Telecom */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("Viaccess"));
|
||||||
|
break;
|
||||||
|
case 0x0600 ... 0x06FF:
|
||||||
|
/* Irdeto */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("Irdeto"));
|
||||||
|
break;
|
||||||
|
case 0x0900 ... 0x09FF:
|
||||||
|
/* News Datacom */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("NDS/Videoguard"));
|
||||||
|
break;
|
||||||
|
case 0x0B00 ... 0x0BFF:
|
||||||
|
/* Norwegian Telekom */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("Conax"));
|
||||||
|
break;
|
||||||
|
case 0x0D00 ... 0x0DFF:
|
||||||
|
/* Philips */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("CryptoWorks"));
|
||||||
|
break;
|
||||||
|
case 0x0E00 ... 0x0EFF:
|
||||||
|
/* Scientific Atlanta */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("PowerVu"));
|
||||||
|
break;
|
||||||
|
case 0x1200 ... 0x12FF:
|
||||||
|
/* BellVu Express */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("NagraVision"));
|
||||||
|
break;
|
||||||
|
case 0x1700 ... 0x17FF:
|
||||||
|
/* BetaTechnik */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("BetaCrypt"));
|
||||||
|
break;
|
||||||
|
case 0x1800 ... 0x18FF:
|
||||||
|
/* Kudelski SA */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("NagraVision"));
|
||||||
|
break;
|
||||||
|
case 0x4A60 ... 0x4A6F:
|
||||||
|
/* @Sky */
|
||||||
|
snprintf(buf, sizeof(buf), "%s", tr("SkyCrypt"));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
snprintf(buf, sizeof(buf), "%X", value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
snprintf(buf, sizeof(buf), "%X", value);
|
||||||
|
value = 1;
|
||||||
|
while (channel->Ca(value) && (value < MAXCAIDS)) {
|
||||||
|
snprintf(buf2, sizeof(buf2), ", %X", channel->Ca(value++));
|
||||||
|
strncat(buf, buf2, sizeof(buf));
|
||||||
|
}
|
||||||
|
}
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Tpid"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Tpid"), clrWhite, clrBackground, m_Font);
|
||||||
snprintf(buf, sizeof(buf), "%d", channel->Tpid());
|
snprintf(buf, sizeof(buf), "%d", channel->Tpid());
|
||||||
@@ -289,7 +476,7 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||||||
snprintf(buf, sizeof(buf), "%d %s", value, tr("MHz"));
|
snprintf(buf, sizeof(buf), "%d %s", value, tr("MHz"));
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Source"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Source"), clrWhite, clrBackground, m_Font);
|
||||||
snprintf(buf, sizeof(buf), "%s", cSource::ToString(channel->Source()));
|
snprintf(buf, sizeof(buf), "%s", *cSource::ToString(channel->Source()));
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
offset += m_Font->Height();
|
offset += m_Font->Height();
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Srate"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Srate"), clrWhite, clrBackground, m_Font);
|
||||||
@@ -330,7 +517,7 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||||||
snprintf(buf, sizeof(buf), "%d %s", value, tr("MHz"));
|
snprintf(buf, sizeof(buf), "%d %s", value, tr("MHz"));
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Source"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Source"), clrWhite, clrBackground, m_Font);
|
||||||
snprintf(buf, sizeof(buf), "%s", cSource::ToString(channel->Source()));
|
snprintf(buf, sizeof(buf), "%s", *cSource::ToString(channel->Source()));
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
offset += m_Font->Height();
|
offset += m_Font->Height();
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Srate"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Srate"), clrWhite, clrBackground, m_Font);
|
||||||
@@ -500,7 +687,8 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
offset += m_Font->Height();
|
offset += m_Font->Height();
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Audio Stream"), clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Audio Stream"), clrYellow, clrBackground, m_Font);
|
||||||
snprintf(buf, sizeof(buf), "#%d", channel->Apid1());
|
value = int(cDevice::PrimaryDevice()->GetCurrentAudioTrack());
|
||||||
|
snprintf(buf, sizeof(buf), "#%d", IS_AUDIO_TRACK(value) ? channel->Apid(value - ttAudioFirst) : channel->Apid(0));
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
offset += m_Font->Height();
|
offset += m_Font->Height();
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Bitrate"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Bitrate"), clrWhite, clrBackground, m_Font);
|
||||||
@@ -531,10 +719,11 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||||||
else if (m_DisplayMode == modeAC3) {
|
else if (m_DisplayMode == modeAC3) {
|
||||||
m_Osd->DrawRectangle(0, OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), clrBackground);
|
m_Osd->DrawRectangle(0, OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT), clrBackground);
|
||||||
m_Osd->DrawRectangle(0, OSDINFOWIN_Y(offset), OSDWIDTH, OSDINFOWIN_Y(offset+m_Font->Height()-1), clrWhite);
|
m_Osd->DrawRectangle(0, OSDINFOWIN_Y(offset), OSDWIDTH, OSDINFOWIN_Y(offset+m_Font->Height()-1), clrWhite);
|
||||||
snprintf(buf, sizeof(buf), "%s - %s #%d", tr("Stream Information"), tr("AC-3 Stream"), channel->Dpid1());
|
value = int(cDevice::PrimaryDevice()->GetCurrentAudioTrack());
|
||||||
|
snprintf(buf, sizeof(buf), "%s - %s #%d", tr("Stream Information"), tr("AC-3 Stream"), IS_DOLBY_TRACK(value) ? channel->Dpid(value - ttDolbyFirst) : 0);
|
||||||
m_Osd->DrawText( OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), buf, clrBackground, clrWhite, m_Font);
|
m_Osd->DrawText( OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), buf, clrBackground, clrWhite, m_Font);
|
||||||
offset += m_Font->Height();
|
offset += m_Font->Height();
|
||||||
if (m_Receiver && m_Receiver->AC3Valid()) {
|
if (m_Receiver && m_Receiver->AC3Valid() && IS_DOLBY_TRACK(cDevice::PrimaryDevice()->GetCurrentAudioTrack())) {
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Bitrate"), clrWhite, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Bitrate"), clrWhite, clrBackground, m_Font);
|
||||||
snprintf(buf, sizeof(buf), "%.0f %s (%0.f %s)", m_Receiver->AC3StreamBitrate(), tr("kbit/s"), m_Receiver->AC3Bitrate(), tr("kbit/s"));
|
snprintf(buf, sizeof(buf), "%.0f %s (%0.f %s)", m_Receiver->AC3StreamBitrate(), tr("kbit/s"), m_Receiver->AC3Bitrate(), tr("kbit/s"));
|
||||||
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
m_Osd->DrawText(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_Font);
|
||||||
@@ -629,9 +818,11 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||||||
|
|
||||||
void cFemonOsd::Action(void)
|
void cFemonOsd::Action(void)
|
||||||
{
|
{
|
||||||
//printf("cFemonOsd::Action()\n");
|
debug(printf("cFemonOsd::Action()\n"));
|
||||||
|
cTimeMs t;
|
||||||
m_Active = true;
|
m_Active = true;
|
||||||
while (m_Active) {
|
while (m_Active) {
|
||||||
|
t.Set(0);
|
||||||
if (m_Frontend != -1) {
|
if (m_Frontend != -1) {
|
||||||
CHECK(ioctl(m_Frontend, FE_READ_STATUS, &m_FrontendStatus));
|
CHECK(ioctl(m_Frontend, FE_READ_STATUS, &m_FrontendStatus));
|
||||||
CHECK(ioctl(m_Frontend, FE_READ_SIGNAL_STRENGTH, &m_Signal));
|
CHECK(ioctl(m_Frontend, FE_READ_SIGNAL_STRENGTH, &m_Signal));
|
||||||
@@ -644,13 +835,15 @@ void cFemonOsd::Action(void)
|
|||||||
isyslog("Card #%d (%s) STR: %04x SNR: %04x BER: %08x UNC: %08x |%c|%c|%c|%c|%c|", cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name, m_Signal, m_SNR, m_BER, m_UNC, (m_FrontendStatus & FE_HAS_LOCK) ? 'L' : ' ', (m_FrontendStatus & FE_HAS_SIGNAL) ? 'S' : ' ', (m_FrontendStatus & FE_HAS_CARRIER) ? 'C' : ' ', (m_FrontendStatus & FE_HAS_VITERBI) ? 'V' : ' ', (m_FrontendStatus & FE_HAS_SYNC) ? 'Z' : ' ');
|
isyslog("Card #%d (%s) STR: %04x SNR: %04x BER: %08x UNC: %08x |%c|%c|%c|%c|%c|", cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name, m_Signal, m_SNR, m_BER, m_UNC, (m_FrontendStatus & FE_HAS_LOCK) ? 'L' : ' ', (m_FrontendStatus & FE_HAS_SIGNAL) ? 'S' : ' ', (m_FrontendStatus & FE_HAS_CARRIER) ? 'C' : ' ', (m_FrontendStatus & FE_HAS_VITERBI) ? 'V' : ' ', (m_FrontendStatus & FE_HAS_SYNC) ? 'Z' : ' ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
usleep(100000L * femonConfig.updateinterval);
|
cCondWait::SleepMs(100 * femonConfig.updateinterval - t.Elapsed());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void cFemonOsd::Show(void)
|
void cFemonOsd::Show(void)
|
||||||
{
|
{
|
||||||
//printf("cFemonOsd::Show()\n");
|
debug(printf("cFemonOsd::Show()\n"));
|
||||||
|
eTrackType track = ttNone;
|
||||||
|
int apid = 0, dpid = 0;
|
||||||
char *dev = NULL;
|
char *dev = NULL;
|
||||||
asprintf(&dev, FRONTEND_DEVICE, cDevice::ActualDevice()->CardIndex(), 0);
|
asprintf(&dev, FRONTEND_DEVICE, cDevice::ActualDevice()->CardIndex(), 0);
|
||||||
m_Frontend = open(dev, O_RDONLY | O_NONBLOCK);
|
m_Frontend = open(dev, O_RDONLY | O_NONBLOCK);
|
||||||
@@ -683,8 +876,11 @@ void cFemonOsd::Show(void)
|
|||||||
if (m_Receiver)
|
if (m_Receiver)
|
||||||
delete m_Receiver;
|
delete m_Receiver;
|
||||||
if (femonConfig.analyzestream) {
|
if (femonConfig.analyzestream) {
|
||||||
|
track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
|
||||||
|
if (IS_AUDIO_TRACK(track)) apid = int(track - ttAudioFirst);
|
||||||
|
else if (IS_DOLBY_TRACK(track)) dpid = int(track - ttDolbyFirst);
|
||||||
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||||
m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), channel->Apid1(), channel->Dpid1());
|
m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), channel->Apid(apid), channel->Dpid(dpid));
|
||||||
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
|
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
|
||||||
}
|
}
|
||||||
Start();
|
Start();
|
||||||
@@ -693,7 +889,9 @@ void cFemonOsd::Show(void)
|
|||||||
|
|
||||||
void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber)
|
void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber)
|
||||||
{
|
{
|
||||||
//printf("cFemonOsd::ChannelSwitch()\n");
|
debug(printf("cFemonOsd::ChannelSwitch()\n"));
|
||||||
|
eTrackType track = ttNone;
|
||||||
|
int apid = 0, dpid = 0;
|
||||||
char *dev = NULL;
|
char *dev = NULL;
|
||||||
if (!device->IsPrimaryDevice() || !channelNumber || cDevice::PrimaryDevice()->CurrentChannel() != channelNumber)
|
if (!device->IsPrimaryDevice() || !channelNumber || cDevice::PrimaryDevice()->CurrentChannel() != channelNumber)
|
||||||
return;
|
return;
|
||||||
@@ -715,8 +913,28 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber)
|
|||||||
if (m_Receiver)
|
if (m_Receiver)
|
||||||
delete m_Receiver;
|
delete m_Receiver;
|
||||||
if (femonConfig.analyzestream) {
|
if (femonConfig.analyzestream) {
|
||||||
|
track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
|
||||||
|
if (IS_AUDIO_TRACK(track)) apid = int(track - ttAudioFirst);
|
||||||
|
else if (IS_DOLBY_TRACK(track)) dpid = int(track - ttDolbyFirst);
|
||||||
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||||
m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), channel->Apid1(), channel->Dpid1());
|
m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), channel->Apid(apid), channel->Dpid(dpid));
|
||||||
|
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void cFemonOsd::SetAudioTrack(int Index, const char * const *Tracks)
|
||||||
|
{
|
||||||
|
debug(printf("cFemonOsd::SetAudioTrack()\n"));
|
||||||
|
eTrackType track = ttNone;
|
||||||
|
int apid = 0, dpid = 0;
|
||||||
|
if (m_Receiver)
|
||||||
|
delete m_Receiver;
|
||||||
|
if (femonConfig.analyzestream) {
|
||||||
|
track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
|
||||||
|
if (IS_AUDIO_TRACK(track)) apid = int(track - ttAudioFirst);
|
||||||
|
else if (IS_DOLBY_TRACK(track)) dpid = int(track - ttDolbyFirst);
|
||||||
|
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||||
|
m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), channel->Apid(apid), channel->Dpid(dpid));
|
||||||
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
|
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -724,9 +942,8 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber)
|
|||||||
eOSState cFemonOsd::ProcessKey(eKeys Key)
|
eOSState cFemonOsd::ProcessKey(eKeys Key)
|
||||||
{
|
{
|
||||||
eOSState state = cOsdObject::ProcessKey(Key);
|
eOSState state = cOsdObject::ProcessKey(Key);
|
||||||
|
|
||||||
if (state == osUnknown) {
|
if (state == osUnknown) {
|
||||||
switch (Key & ~k_Repeat) {
|
switch (Key) {
|
||||||
case k0:
|
case k0:
|
||||||
if ((m_Number == 0) && (m_OldNumber != 0)) {
|
if ((m_Number == 0) && (m_OldNumber != 0)) {
|
||||||
m_Number = m_OldNumber;
|
m_Number = m_OldNumber;
|
||||||
@@ -741,7 +958,7 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
|
|||||||
if (m_Number > 0) {
|
if (m_Number > 0) {
|
||||||
DrawStatusWindow();
|
DrawStatusWindow();
|
||||||
cChannel *ch = Channels.GetByNumber(m_Number);
|
cChannel *ch = Channels.GetByNumber(m_Number);
|
||||||
m_InputTime = time_ms();
|
m_InputTime.Set(0);
|
||||||
// Lets see if there can be any useful further input:
|
// Lets see if there can be any useful further input:
|
||||||
int n = ch ? m_Number * 10 : 0;
|
int n = ch ? m_Number * 10 : 0;
|
||||||
while (ch && (ch = Channels.Next(ch)) != NULL) {
|
while (ch && (ch = Channels.Next(ch)) != NULL) {
|
||||||
@@ -765,6 +982,66 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
|
|||||||
break;
|
break;
|
||||||
case kBack:
|
case kBack:
|
||||||
return osEnd;
|
return osEnd;
|
||||||
|
case kGreen:
|
||||||
|
{
|
||||||
|
eTrackType types[ttMaxTrackTypes];
|
||||||
|
eTrackType CurrentAudioTrack = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
|
||||||
|
int numTracks = 0;
|
||||||
|
int oldTrack = 0;
|
||||||
|
int track = 0;
|
||||||
|
for (int i = ttAudioFirst; i <= ttDolbyLast; i++) {
|
||||||
|
const tTrackId *TrackId = cDevice::PrimaryDevice()->GetTrack(eTrackType(i));
|
||||||
|
if (TrackId && TrackId->id) {
|
||||||
|
types[numTracks] = eTrackType(i);
|
||||||
|
if (i == CurrentAudioTrack)
|
||||||
|
track = numTracks;
|
||||||
|
numTracks++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oldTrack = track;
|
||||||
|
if (++track >= numTracks)
|
||||||
|
track = 0;
|
||||||
|
if (track != oldTrack) {
|
||||||
|
cDevice::PrimaryDevice()->SetCurrentAudioTrack(types[track]);
|
||||||
|
Setup.CurrentDolby = IS_DOLBY_TRACK(types[track]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case kYellow:
|
||||||
|
if (IS_AUDIO_TRACK(cDevice::PrimaryDevice()->GetCurrentAudioTrack())) {
|
||||||
|
int audioChannel = cDevice::PrimaryDevice()->GetAudioChannel();
|
||||||
|
int oldAudioChannel = audioChannel;
|
||||||
|
if (++audioChannel > 2)
|
||||||
|
audioChannel = 0;
|
||||||
|
if (audioChannel != oldAudioChannel) {
|
||||||
|
cDevice::PrimaryDevice()->SetAudioChannel(audioChannel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case kRight:
|
||||||
|
case kLeft:
|
||||||
|
{
|
||||||
|
int device = cDevice::ActualDevice()->DeviceNumber();
|
||||||
|
if (device >= 0) {
|
||||||
|
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||||
|
for (int i = 0; i < cDevice::NumDevices() - 1; i++) {
|
||||||
|
if (NORMALKEY(Key) == kBlue) {
|
||||||
|
if (++device >= cDevice::NumDevices()) device = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (--device < 0) device = cDevice::NumDevices() - 1;
|
||||||
|
}
|
||||||
|
if (cDevice::GetDevice(device)->ProvidesChannel(channel)) {
|
||||||
|
//cStatus::MsgChannelSwitch(cDevice::GetDevice(device), 0);
|
||||||
|
//implement some tuning mechanism here
|
||||||
|
//cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel->Vpid(), channel->Apid(0), channel->Apid(1), channel->Dpid(0), channel->Dpid(1)));
|
||||||
|
//cStatus::MsgChannelSwitch(cDevice::GetDevice(device), channel->Number());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case kUp|k_Repeat:
|
case kUp|k_Repeat:
|
||||||
case kUp:
|
case kUp:
|
||||||
case kDown|k_Repeat:
|
case kDown|k_Repeat:
|
||||||
@@ -774,21 +1051,21 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
|
|||||||
m_Number = 0;
|
m_Number = 0;
|
||||||
break;
|
break;
|
||||||
case kNone:
|
case kNone:
|
||||||
if (m_Number && (time_ms() - m_InputTime > CHANNELINPUT_TIMEOUT)) {
|
if (m_Number && (m_InputTime.Elapsed() > CHANNELINPUT_TIMEOUT)) {
|
||||||
if (Channels.GetByNumber(m_Number)) {
|
if (Channels.GetByNumber(m_Number)) {
|
||||||
m_OldNumber = cDevice::CurrentChannel();
|
m_OldNumber = cDevice::CurrentChannel();
|
||||||
Channels.SwitchTo(m_Number);
|
Channels.SwitchTo(m_Number);
|
||||||
m_Number = 0;
|
m_Number = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_InputTime = time_ms();
|
m_InputTime.Set(0);
|
||||||
m_Number = 0;
|
m_Number = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kOk:
|
case kOk:
|
||||||
// toggle between display modes
|
// toggle between display modes
|
||||||
if (++m_DisplayMode == modeAC3 && !Channels.GetByNumber(cDevice::CurrentChannel())->Dpid1()) m_DisplayMode++;
|
if (++m_DisplayMode == modeAC3 && !Channels.GetByNumber(cDevice::CurrentChannel())->Dpid(0)) m_DisplayMode++;
|
||||||
if (m_DisplayMode >= modeMaxNumber) m_DisplayMode = 0;
|
if (m_DisplayMode >= modeMaxNumber) m_DisplayMode = 0;
|
||||||
DrawInfoWindow();
|
DrawInfoWindow();
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
#include <vdr/thread.h>
|
#include <vdr/thread.h>
|
||||||
#include <vdr/status.h>
|
#include <vdr/status.h>
|
||||||
#include <vdr/channels.h>
|
#include <vdr/channels.h>
|
||||||
|
#include <vdr/transfer.h>
|
||||||
|
#include <vdr/tools.h>
|
||||||
|
|
||||||
class cFemonOsd : public cOsdObject, public cThread, public cStatus {
|
class cFemonOsd : public cOsdObject, public cThread, public cStatus {
|
||||||
private:
|
private:
|
||||||
@@ -26,7 +28,6 @@ private:
|
|||||||
struct dvb_frontend_info m_FrontendInfo;
|
struct dvb_frontend_info m_FrontendInfo;
|
||||||
int m_Number;
|
int m_Number;
|
||||||
int m_OldNumber;
|
int m_OldNumber;
|
||||||
int m_InputTime;
|
|
||||||
uint16_t m_SNR;
|
uint16_t m_SNR;
|
||||||
uint16_t m_Signal;
|
uint16_t m_Signal;
|
||||||
uint32_t m_BER;
|
uint32_t m_BER;
|
||||||
@@ -34,14 +35,18 @@ private:
|
|||||||
fe_status_t m_FrontendStatus;
|
fe_status_t m_FrontendStatus;
|
||||||
int m_DisplayMode;
|
int m_DisplayMode;
|
||||||
const cFont *m_Font;
|
const cFont *m_Font;
|
||||||
|
cTimeMs m_InputTime;
|
||||||
cMutex* m_Mutex;
|
cMutex* m_Mutex;
|
||||||
static cBitmap bmDD, bmDD20, bmDD51, bmPAL, bmNTSC, bmAspectRatio_1_1, bmAspectRatio_16_9, bmAspectRatio_2_21_1, bmAspectRatio_4_3;
|
static cBitmap bmStereo, bmMonoLeft, bmMonoRight, bmDD, bmDD20, bmDD51;
|
||||||
|
static cBitmap bmZero, bmDevice, bmPAL, bmNTSC, bmOne, bmTwo, bmThree, bmFour, bmFive;
|
||||||
|
static cBitmap bmAspectRatio_1_1, bmAspectRatio_16_9, bmAspectRatio_2_21_1, bmAspectRatio_4_3;
|
||||||
void DrawStatusWindow(void);
|
void DrawStatusWindow(void);
|
||||||
void DrawInfoWindow(void);
|
void DrawInfoWindow(void);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void Action(void);
|
virtual void Action(void);
|
||||||
virtual void ChannelSwitch(const cDevice * device, int channelNumber);
|
virtual void ChannelSwitch(const cDevice * device, int channelNumber);
|
||||||
|
virtual void SetAudioTrack(int Index, const char * const *Tracks);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
cFemonOsd(void);
|
cFemonOsd(void);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <vdr/tools.h>
|
||||||
#include "femoncfg.h"
|
#include "femoncfg.h"
|
||||||
#include "femonreceiver.h"
|
#include "femonreceiver.h"
|
||||||
|
|
||||||
@@ -19,7 +20,7 @@
|
|||||||
cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid)
|
cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid)
|
||||||
:cReceiver(Ca, -1, 3, Vpid, Apid, Dpid), cThread("femon receiver")
|
:cReceiver(Ca, -1, 3, Vpid, Apid, Dpid), cThread("femon receiver")
|
||||||
{
|
{
|
||||||
//printf("cFemonReceiver::cFemonReceiver()\n");
|
debug(printf("cFemonReceiver::cFemonReceiver()\n"));
|
||||||
m_Active = false;
|
m_Active = false;
|
||||||
m_VideoPid = Vpid;
|
m_VideoPid = Vpid;
|
||||||
m_AudioPid = Apid;
|
m_AudioPid = Apid;
|
||||||
@@ -57,7 +58,8 @@ cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid)
|
|||||||
|
|
||||||
cFemonReceiver::~cFemonReceiver(void)
|
cFemonReceiver::~cFemonReceiver(void)
|
||||||
{
|
{
|
||||||
//printf("cFemonReceiver::~cFemonReceiver()\n");
|
debug(printf("cFemonReceiver::~cFemonReceiver()\n"));
|
||||||
|
Detach();
|
||||||
if (m_Active) {
|
if (m_Active) {
|
||||||
m_Active = false;
|
m_Active = false;
|
||||||
Cancel(0);
|
Cancel(0);
|
||||||
@@ -67,7 +69,7 @@ cFemonReceiver::~cFemonReceiver(void)
|
|||||||
/* The following function originates from libdvbmpeg: */
|
/* The following function originates from libdvbmpeg: */
|
||||||
void cFemonReceiver::GetVideoInfo(uint8_t *mbuf, int count)
|
void cFemonReceiver::GetVideoInfo(uint8_t *mbuf, int count)
|
||||||
{
|
{
|
||||||
//printf("cFemonReceiver::GetVideoInfo()\n");
|
debug(printf("cFemonReceiver::GetVideoInfo()\n"));
|
||||||
uint8_t *headr;
|
uint8_t *headr;
|
||||||
int found = 0;
|
int found = 0;
|
||||||
int c = 0;
|
int c = 0;
|
||||||
@@ -160,7 +162,7 @@ static unsigned int samplerates[4] =
|
|||||||
/* The following function originates from libdvbmpeg: */
|
/* The following function originates from libdvbmpeg: */
|
||||||
void cFemonReceiver::GetAudioInfo(uint8_t *mbuf, int count)
|
void cFemonReceiver::GetAudioInfo(uint8_t *mbuf, int count)
|
||||||
{
|
{
|
||||||
//printf("cFemonReceiver::GetAudioInfo()\n");
|
debug(printf("cFemonReceiver::GetAudioInfo()\n"));
|
||||||
uint8_t *headr;
|
uint8_t *headr;
|
||||||
int found = 0;
|
int found = 0;
|
||||||
int c = 0;
|
int c = 0;
|
||||||
@@ -252,13 +254,20 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
|
|||||||
|
|
||||||
void cFemonReceiver::Activate(bool On)
|
void cFemonReceiver::Activate(bool On)
|
||||||
{
|
{
|
||||||
//printf("cFemonReceiver::Activate()\n");
|
debug(printf("cFemonReceiver::Activate()\n"));
|
||||||
Start();
|
if (On) {
|
||||||
|
if (!m_Active)
|
||||||
|
Start();
|
||||||
|
}
|
||||||
|
else if (m_Active) {
|
||||||
|
m_Active = false;
|
||||||
|
Cancel(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void cFemonReceiver::Receive(uchar *Data, int Length)
|
void cFemonReceiver::Receive(uchar *Data, int Length)
|
||||||
{
|
{
|
||||||
//printf("cFemonReceiver::Receive()\n");
|
debug(printf("cFemonReceiver::Receive()\n"));
|
||||||
// TS packet length: TS_SIZE
|
// TS packet length: TS_SIZE
|
||||||
if (Length == TS_SIZE) {
|
if (Length == TS_SIZE) {
|
||||||
int pid = ((Data[1] & 0x1f) << 8) | (Data[2]);
|
int pid = ((Data[1] & 0x1f) << 8) | (Data[2]);
|
||||||
@@ -301,9 +310,11 @@ void cFemonReceiver::Receive(uchar *Data, int Length)
|
|||||||
|
|
||||||
void cFemonReceiver::Action(void)
|
void cFemonReceiver::Action(void)
|
||||||
{
|
{
|
||||||
//printf("cFemonReceiver::Action()\n");
|
debug(printf("cFemonReceiver::Action()\n"));
|
||||||
|
cTimeMs t;
|
||||||
m_Active = true;
|
m_Active = true;
|
||||||
while (m_Active) {
|
while (m_Active) {
|
||||||
|
t.Set(0);
|
||||||
// TS packet 188 bytes - 4 byte header; MPEG standard defines 1Mbit = 1000000bit
|
// TS packet 188 bytes - 4 byte header; MPEG standard defines 1Mbit = 1000000bit
|
||||||
m_VideoBitrate = (8.0 * 184.0 * m_VideoPacketCount) / (femonConfig.calcinterval * 100000.0);
|
m_VideoBitrate = (8.0 * 184.0 * m_VideoPacketCount) / (femonConfig.calcinterval * 100000.0);
|
||||||
m_VideoPacketCount = 0;
|
m_VideoPacketCount = 0;
|
||||||
@@ -311,6 +322,6 @@ void cFemonReceiver::Action(void)
|
|||||||
m_AudioPacketCount = 0;
|
m_AudioPacketCount = 0;
|
||||||
m_AC3Bitrate = (8.0 * 184.0 * m_AC3PacketCount) / (femonConfig.calcinterval * 100.0);
|
m_AC3Bitrate = (8.0 * 184.0 * m_AC3PacketCount) / (femonConfig.calcinterval * 100.0);
|
||||||
m_AC3PacketCount = 0;
|
m_AC3PacketCount = 0;
|
||||||
usleep(100000L * femonConfig.calcinterval);
|
cCondWait::SleepMs(100 * femonConfig.calcinterval - t.Elapsed());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
/* XPM */
|
/* XPM */
|
||||||
static char * ar11_xpm[] = {
|
static char * ar11_xpm[] = {
|
||||||
"21 18 2 1",
|
"26 18 2 1",
|
||||||
". c #FFFFFF",
|
". c #FFFFFF",
|
||||||
"+ c #000000",
|
"+ c #000000",
|
||||||
".....................",
|
"++++++++++++++++++++++++++",
|
||||||
".....................",
|
"+........................+",
|
||||||
"....++...........++..",
|
"+......++..........++....+",
|
||||||
"...+++..........+++..",
|
"+...+++++.......+++++....+",
|
||||||
"..++++....++...++++..",
|
"+...+++++.......+++++....+",
|
||||||
"..++++...++++..++++..",
|
"+......++...++.....++....+",
|
||||||
"....++...++++....++..",
|
"+......++...++.....++....+",
|
||||||
"....++....++.....++..",
|
"+......++..........++....+",
|
||||||
"....++...........++..",
|
"+......++..........++....+",
|
||||||
"....++...........++..",
|
"+......++..........++....+",
|
||||||
"....++....++.....++..",
|
"+......++..........++....+",
|
||||||
"....++...++++....++..",
|
"+......++..........++....+",
|
||||||
"....++...++++....++..",
|
"+......++..........++....+",
|
||||||
"....++....++.....++..",
|
"+......++..........++....+",
|
||||||
"....++...........++..",
|
"+......++...++.....++....+",
|
||||||
"....++...........++..",
|
"+......++...++.....++....+",
|
||||||
".....................",
|
"+........................+",
|
||||||
"....................."};
|
"++++++++++++++++++++++++++"};
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
/* XPM */
|
/* XPM */
|
||||||
static char * ar169_xpm[] = {
|
static char * ar169_xpm[] = {
|
||||||
"36 18 2 1",
|
"38 18 2 1",
|
||||||
". c #FFFFFF",
|
". c #FFFFFF",
|
||||||
"+ c #000000",
|
"+ c #000000",
|
||||||
"....................................",
|
"++++++++++++++++++++++++++++++++++++++",
|
||||||
"....................................",
|
"+....................................+",
|
||||||
"....++....+++++............+++++....",
|
"+......++.....++++..........++++.....+",
|
||||||
"...+++...+++++++..........+++++++...",
|
"+...+++++....+++++++.......++++++....+",
|
||||||
"..++++..+++...+++...++...+++...+++..",
|
"+...+++++....++...++......++...+++...+",
|
||||||
"..++++..++.....++..++++..++.....++..",
|
"+......++...++........++..++....++...+",
|
||||||
"....++..++.........++++..++.....++..",
|
"+......++...++........++..++....++...+",
|
||||||
"....++..++..........++...+++...+++..",
|
"+......++...++............++....++...+",
|
||||||
"....++..++.++++...........++++++++..",
|
"+......++...++.+++.........+++++++...+",
|
||||||
"....++..++++++++...........+++++++..",
|
"+......++...+++++++.........+++.++...+",
|
||||||
"....++..+++...+++...++..........++..",
|
"+......++...++....++............++...+",
|
||||||
"....++..++.....++..++++.........++..",
|
"+......++...++....++............++...+",
|
||||||
"....++..++.....++..++++..++.....++..",
|
"+......++...++....++............++...+",
|
||||||
"....++..+++...+++...++...+++...+++..",
|
"+......++...+++...++......++...++....+",
|
||||||
"....++...+++++++..........+++++++...",
|
"+......++....++++++...++..+++++++....+",
|
||||||
"....++....+++++............+++++....",
|
"+......++.....++++....++...+++++.....+",
|
||||||
"....................................",
|
"+....................................+",
|
||||||
"...................................."};
|
"++++++++++++++++++++++++++++++++++++++"};
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
/* XPM */
|
/* XPM */
|
||||||
static char * ar2211_xpm[] = {
|
static char * ar2211_xpm[] = {
|
||||||
"43 18 2 1",
|
"52 18 2 1",
|
||||||
". c #FFFFFF",
|
". c #FFFFFF",
|
||||||
"+ c #000000",
|
"+ c #000000",
|
||||||
"...........................................",
|
"++++++++++++++++++++++++++++++++++++++++++++++++++++",
|
||||||
"...........................................",
|
"+..................................................+",
|
||||||
"....++++........++++......++...........++..",
|
"+.....++++..........++++........++...........++....+",
|
||||||
"...++++++......++++++....+++..........+++..",
|
"+...+++++++.......+++++++....+++++........+++++....+",
|
||||||
"..+++..+++....+++..+++..++++....++...++++..",
|
"+...++....++......++....++...+++++........+++++....+",
|
||||||
"..++....++....++....++..++++...++++..++++..",
|
"+.........++............++......++...++......++....+",
|
||||||
"..++....++....++....++....++...++++....++..",
|
"+.........++............++......++...++......++....+",
|
||||||
".......+++.........+++....++....++.....++..",
|
"+........+++...........+++......++...........++....+",
|
||||||
"......+++.........+++.....++...........++..",
|
"+.......+++...........+++.......++...........++....+",
|
||||||
".....+++.........+++......++...........++..",
|
"+......+++...........+++........++...........++....+",
|
||||||
"....+++.........+++.......++....++.....++..",
|
"+.....+++...........+++.........++...........++....+",
|
||||||
"...+++.........+++........++...++++....++..",
|
"+....+++...........+++..........++...........++....+",
|
||||||
"..+++.........+++.........++...++++....++..",
|
"+...+++...........+++...........++...........++....+",
|
||||||
"..++....++.++.++....++....++....++.....++..",
|
"+...++............++............++...........++....+",
|
||||||
"..++++++++.++.++++++++....++...........++..",
|
"+...++++++++..++..++++++++......++...++......++....+",
|
||||||
"..++++++++.++.++++++++....++...........++..",
|
"+...++++++++..++..++++++++......++...++......++....+",
|
||||||
"...........................................",
|
"+..................................................+",
|
||||||
"..........................................."};
|
"++++++++++++++++++++++++++++++++++++++++++++++++++++"};
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
/* XPM */
|
/* XPM */
|
||||||
static char * ar43_xpm[] = {
|
static char * ar43_xpm[] = {
|
||||||
"32 18 2 1",
|
"31 18 2 1",
|
||||||
". c #FFFFFF",
|
". c #FFFFFF",
|
||||||
"+ c #000000",
|
"+ c #000000",
|
||||||
"................................",
|
"+++++++++++++++++++++++++++++++",
|
||||||
"................................",
|
"+.............................+",
|
||||||
"....++..++............++++++....",
|
"+.........++.........+++++....+",
|
||||||
"....++..++...........++++++++...",
|
"+........+++........+++++++...+",
|
||||||
"...+++..++.....++...+++....+++..",
|
"+.......++++.......++....++...+",
|
||||||
"...++...++....++++..++......++..",
|
"+......++.++...++..++....++...+",
|
||||||
"...++...++....++++..++......++..",
|
"+.....++..++...++........++...+",
|
||||||
"..+++...++.....++..........+++..",
|
"+.....++..++............++....+",
|
||||||
"..++....++..............+++++...",
|
"+....++...++..........+++.....+",
|
||||||
"..++....++..............+++++...",
|
"+...++....++..........++++....+",
|
||||||
"..++++++++++...++..........+++..",
|
"+...+++++++++...........+++...+",
|
||||||
"..++++++++++..++++..++......++..",
|
"+...+++++++++............++...+",
|
||||||
"........++....++++..++......++..",
|
"+.........++.......++....++...+",
|
||||||
"........++.....++...+++....+++..",
|
"+.........++.......++...+++...+",
|
||||||
"........++...........++++++++...",
|
"+.........++...++...++++++....+",
|
||||||
"........++............++++++....",
|
"+.........++...++....++++.....+",
|
||||||
"................................",
|
"+.............................+",
|
||||||
"................................"};
|
"+++++++++++++++++++++++++++++++"};
|
||||||
|
|||||||
23
symbols/device.xpm
Normal file
23
symbols/device.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * device_xpm[] = {
|
||||||
|
"14 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"++++++++++++++",
|
||||||
|
"+.............",
|
||||||
|
"+.......+..+..",
|
||||||
|
"+.......+..+..",
|
||||||
|
"+.......+..+..",
|
||||||
|
"+....+++++++++",
|
||||||
|
"+....+++++++++",
|
||||||
|
"+......+..+...",
|
||||||
|
"+......+..+...",
|
||||||
|
"+......+..+...",
|
||||||
|
"+......+..+...",
|
||||||
|
"+...+++++++++.",
|
||||||
|
"+...+++++++++.",
|
||||||
|
"+.....+..+....",
|
||||||
|
"+.....+..+....",
|
||||||
|
"+.....+..+....",
|
||||||
|
"+.............",
|
||||||
|
"++++++++++++++"};
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
/* XPM */
|
/* XPM */
|
||||||
static char * dolbydigital_xpm[] = {
|
static char * dolbydigital_xpm[] = {
|
||||||
"27 18 2 1",
|
"31 18 2 1",
|
||||||
". c #FFFFFF",
|
". c #FFFFFF",
|
||||||
"+ c #000000",
|
"+ c #000000",
|
||||||
"...........................",
|
"+++++++++++++++++++++++++++++++",
|
||||||
"...........................",
|
"+.............................+",
|
||||||
"..+++++++++++.+++++++++++..",
|
"+...+++++++++++.+++++++++++...+",
|
||||||
"..++.++++++++.++++++++.++..",
|
"+...++.++++++++.++++++++.++...+",
|
||||||
"..++...++++++.++++++...++..",
|
"+...++...++++++.++++++...++...+",
|
||||||
"..++.....++++.++++.....++..",
|
"+...++.....++++.++++.....++...+",
|
||||||
"..++......+++.+++......++..",
|
"+...++......+++.+++......++...+",
|
||||||
"..++.......++.++.......++..",
|
"+...++.......++.++.......++...+",
|
||||||
"..++.......++.++.......++..",
|
"+...++.......++.++.......++...+",
|
||||||
"..++.......++.++.......++..",
|
"+...++.......++.++.......++...+",
|
||||||
"..++.......++.++.......++..",
|
"+...++.......++.++.......++...+",
|
||||||
"..++......+++.+++......++..",
|
"+...++......+++.+++......++...+",
|
||||||
"..++.....++++.++++.....++..",
|
"+...++.....++++.++++.....++...+",
|
||||||
"..++...++++++.++++++...++..",
|
"+...++...++++++.++++++...++...+",
|
||||||
"..++.++++++++.++++++++.++..",
|
"+...++.++++++++.++++++++.++...+",
|
||||||
"..+++++++++++.+++++++++++..",
|
"+...+++++++++++.+++++++++++...+",
|
||||||
"...........................",
|
"+.............................+",
|
||||||
"..........................."};
|
"+++++++++++++++++++++++++++++++"};
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
/* XPM */
|
/* XPM */
|
||||||
static char * dolbydigital20_xpm[] = {
|
static char * dolbydigital20_xpm[] = {
|
||||||
"49 18 2 1",
|
"55 18 2 1",
|
||||||
". c #FFFFFF",
|
". c #FFFFFF",
|
||||||
"+ c #000000",
|
"+ c #000000",
|
||||||
".................................................",
|
"+++++++++++++++++++++++++++++++++++++++++++++++++++++++",
|
||||||
".................................................",
|
"+.....................................................+",
|
||||||
"..+++++++++++.+++++++++++....++++.......++++++...",
|
"+...+++++++++++.+++++++++++.....++++.........++++.....+",
|
||||||
"..++.++++++++.++++++++.++...++++++.....++++++++..",
|
"+...++.++++++++.++++++++.++...+++++++.......++++++....+",
|
||||||
"..++...++++++.++++++...++..+++..+++....+++..+++..",
|
"+...++...++++++.++++++...++...++....++......++..++....+",
|
||||||
"..++.....++++.++++.....++..++....++....++....++..",
|
"+...++.....++++.++++.....++.........++.....++....++...+",
|
||||||
"..++......+++.+++......++..++....++....++....++..",
|
"+...++......+++.+++......++.........++.....++....++...+",
|
||||||
"..++.......++.++.......++.......+++....++....++..",
|
"+...++.......++.++.......++........+++.....++....++...+",
|
||||||
"..++.......++.++.......++......+++.....++....++..",
|
"+...++.......++.++.......++.......+++......++....++...+",
|
||||||
"..++.......++.++.......++.....+++......++....++..",
|
"+...++.......++.++.......++......+++.......++....++...+",
|
||||||
"..++.......++.++.......++....+++.......++....++..",
|
"+...++.......++.++.......++.....+++........++....++...+",
|
||||||
"..++......+++.+++......++...+++........++....++..",
|
"+...++......+++.+++......++....+++.........++....++...+",
|
||||||
"..++.....++++.++++.....++..+++.........++....++..",
|
"+...++.....++++.++++.....++...+++..........++....++...+",
|
||||||
"..++...++++++.++++++...++..++....++.++.+++..+++..",
|
"+...++...++++++.++++++...++...++............++..++....+",
|
||||||
"..++.++++++++.++++++++.++..++++++++.++.++++++++..",
|
"+...++.++++++++.++++++++.++...++++++++..++..++++++....+",
|
||||||
"..+++++++++++.+++++++++++..++++++++.++..++++++...",
|
"+...+++++++++++.+++++++++++...++++++++..++...++++.....+",
|
||||||
".................................................",
|
"+.....................................................+",
|
||||||
"................................................."};
|
"+++++++++++++++++++++++++++++++++++++++++++++++++++++++"};
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
/* XPM */
|
/* XPM */
|
||||||
static char * dolbydigital51_xpm[] = {
|
static char * dolbydigital51_xpm[] = {
|
||||||
"44 18 2 1",
|
"51 18 2 1",
|
||||||
". c #FFFFFF",
|
". c #FFFFFF",
|
||||||
"+ c #000000",
|
"+ c #000000",
|
||||||
"............................................",
|
"+++++++++++++++++++++++++++++++++++++++++++++++++++",
|
||||||
"............................................",
|
"+.................................................+",
|
||||||
"..+++++++++++.+++++++++++..++++++++.....++..",
|
"+...+++++++++++.+++++++++++...+++++++........++...+",
|
||||||
"..++.++++++++.++++++++.++..++++++++....+++..",
|
"+...++.++++++++.++++++++.++...+++++++.....+++++...+",
|
||||||
"..++...++++++.++++++...++..++.........++++..",
|
"+...++...++++++.++++++...++...++..........+++++...+",
|
||||||
"..++.....++++.++++.....++..++.........++++..",
|
"+...++.....++++.++++.....++...++.............++...+",
|
||||||
"..++......+++.+++......++..++...........++..",
|
"+...++......+++.+++......++...++++++.........++...+",
|
||||||
"..++.......++.++.......++..++++++.......++..",
|
"+...++.......++.++.......++...+++++++........++...+",
|
||||||
"..++.......++.++.......++..+++++++......++..",
|
"+...++.......++.++.......++...++...+++.......++...+",
|
||||||
"..++.......++.++.......++.......+++.....++..",
|
"+...++.......++.++.......++.........++.......++...+",
|
||||||
"..++.......++.++.......++........++.....++..",
|
"+...++.......++.++.......++.........++.......++...+",
|
||||||
"..++......+++.+++......++..++....++.....++..",
|
"+...++......+++.+++......++.........++.......++...+",
|
||||||
"..++.....++++.++++.....++..++....++.....++..",
|
"+...++.....++++.++++.....++...++....++.......++...+",
|
||||||
"..++...++++++.++++++...++..+++..+++.++..++..",
|
"+...++...++++++.++++++...++...++...+++.......++...+",
|
||||||
"..++.++++++++.++++++++.++...++++++..++..++..",
|
"+...++.++++++++.++++++++.++...+++++++...++...++...+",
|
||||||
"..+++++++++++.+++++++++++....++++...++..++..",
|
"+...+++++++++++.+++++++++++....+++++....++...++...+",
|
||||||
"............................................",
|
"+.................................................+",
|
||||||
"............................................"};
|
"+++++++++++++++++++++++++++++++++++++++++++++++++++"};
|
||||||
|
|||||||
23
symbols/five.xpm
Normal file
23
symbols/five.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * five_xpm[] = {
|
||||||
|
"15 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"+++++++++++++++",
|
||||||
|
"..............+",
|
||||||
|
"...+++++++....+",
|
||||||
|
"...+++++++....+",
|
||||||
|
"...++.........+",
|
||||||
|
"...++.........+",
|
||||||
|
"...++.........+",
|
||||||
|
"...++++++.....+",
|
||||||
|
"...+++++++....+",
|
||||||
|
"...++...+++...+",
|
||||||
|
".........++...+",
|
||||||
|
".........++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++...+++...+",
|
||||||
|
"...+++++++....+",
|
||||||
|
"....+++++.....+",
|
||||||
|
"..............+",
|
||||||
|
"+++++++++++++++"};
|
||||||
23
symbols/four.xpm
Normal file
23
symbols/four.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * four_xpm[] = {
|
||||||
|
"15 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"+++++++++++++++",
|
||||||
|
"..............+",
|
||||||
|
".........++...+",
|
||||||
|
"........+++...+",
|
||||||
|
".......++++...+",
|
||||||
|
"......++.++...+",
|
||||||
|
".....++..++...+",
|
||||||
|
".....++..++...+",
|
||||||
|
"....++...++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...+++++++++..+",
|
||||||
|
"...+++++++++..+",
|
||||||
|
".........++...+",
|
||||||
|
".........++...+",
|
||||||
|
".........++...+",
|
||||||
|
".........++...+",
|
||||||
|
"..............+",
|
||||||
|
"+++++++++++++++"};
|
||||||
23
symbols/monoleft.xpm
Normal file
23
symbols/monoleft.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * monoleft_xpm[] = {
|
||||||
|
"17 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"+++++++++++++++++",
|
||||||
|
"+................",
|
||||||
|
"+...++...........",
|
||||||
|
"+...++++.........",
|
||||||
|
"+...++++++.......",
|
||||||
|
"+...++++++++.....",
|
||||||
|
"+...+++++++++++++",
|
||||||
|
"+...+++++++++++++",
|
||||||
|
"+...+++++++++..++",
|
||||||
|
"+...+++++++++..++",
|
||||||
|
"+...+++++++++++++",
|
||||||
|
"+...+++++++++++++",
|
||||||
|
"+...++++++++.....",
|
||||||
|
"+...++++++.......",
|
||||||
|
"+...++++.........",
|
||||||
|
"+...+++..........",
|
||||||
|
"+................",
|
||||||
|
"+++++++++++++++++"};
|
||||||
23
symbols/monoright.xpm
Normal file
23
symbols/monoright.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * monoright_xpm[] = {
|
||||||
|
"17 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"+++++++++++++++++",
|
||||||
|
"+................",
|
||||||
|
"+..............++",
|
||||||
|
"+............++++",
|
||||||
|
"+..........++++++",
|
||||||
|
"+........++++++++",
|
||||||
|
"+...+++++++++++++",
|
||||||
|
"+...+++++++++++++",
|
||||||
|
"+...++..+++++++++",
|
||||||
|
"+...++..+++++++++",
|
||||||
|
"+...+++++++++++++",
|
||||||
|
"+...+++++++++++++",
|
||||||
|
"+........++++++++",
|
||||||
|
"+..........++++++",
|
||||||
|
"+............++++",
|
||||||
|
"+.............+++",
|
||||||
|
"+................",
|
||||||
|
"+++++++++++++++++"};
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
/* XPM */
|
/* XPM */
|
||||||
static char * ntsc_xpm[] = {
|
static char * ntsc_xpm[] = {
|
||||||
"38 18 2 1",
|
"19 18 2 1",
|
||||||
". c #FFFFFF",
|
". c #FFFFFF",
|
||||||
"+ c #000000",
|
"+ c #000000",
|
||||||
"......................................",
|
"+++++++++++++++++++",
|
||||||
"......................................",
|
"+.................+",
|
||||||
"..++....++.++++++++..+++++....+++++...",
|
"+...++.......++...+",
|
||||||
"..++....++.++++++++.+++++++..+++++++..",
|
"+...+++......++...+",
|
||||||
"..+++...++....++....++...++..++...++..",
|
"+...++++.....++...+",
|
||||||
"..+++...++....++....++...++..++...++..",
|
"+...++++.....++...+",
|
||||||
"..++++..++....++....++.......++.......",
|
"+...++.++....++...+",
|
||||||
"..++++..++....++....++++.....++.......",
|
"+...++..++...++...+",
|
||||||
"..++.++.++....++.....+++++...++.......",
|
"+...++..++...++...+",
|
||||||
"..++.++.++....++.......++++..++.......",
|
"+...++...++..++...+",
|
||||||
"..++..++++....++.........++..++.......",
|
"+...++...++..++...+",
|
||||||
"..++..++++....++....++...++..++...++..",
|
"+...++....++.++...+",
|
||||||
"..++...+++....++....++...++..++...++..",
|
"+...++.....++++...+",
|
||||||
"..++...+++....++....++...++..++...++..",
|
"+...++.....++++...+",
|
||||||
"..++....++....++....+++++++..+++++++..",
|
"+...++......+++...+",
|
||||||
"..++....++....++.....+++++....+++++...",
|
"+...++.......++...+",
|
||||||
"......................................",
|
"+.................+",
|
||||||
"......................................"};
|
"+++++++++++++++++++"};
|
||||||
|
|||||||
23
symbols/one.xpm
Normal file
23
symbols/one.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * one_xpm[] = {
|
||||||
|
"15 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"+++++++++++++++",
|
||||||
|
"..............+",
|
||||||
|
".......++.....+",
|
||||||
|
"....+++++.....+",
|
||||||
|
"....+++++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
".......++.....+",
|
||||||
|
"..............+",
|
||||||
|
"+++++++++++++++"};
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
/* XPM */
|
/* XPM */
|
||||||
static char * pal_xpm[] = {
|
static char * pal_xpm[] = {
|
||||||
"30 18 2 1",
|
"18 18 2 1",
|
||||||
". c #FFFFFF",
|
". c #FFFFFF",
|
||||||
"+ c #000000",
|
"+ c #000000",
|
||||||
"..............................",
|
"++++++++++++++++++",
|
||||||
"..............................",
|
"+................+",
|
||||||
"..+++++++....+++++...++.......",
|
"+...++++++++.....+",
|
||||||
"..+++..+++..+++++++..++.......",
|
"+...+++++++++....+",
|
||||||
"..++....++..++...++..++.......",
|
"+...++.....+++...+",
|
||||||
"..++....++.+++...+++.++.......",
|
"+...++......++...+",
|
||||||
"..++....++.++.....++.++.......",
|
"+...++......++...+",
|
||||||
"..++....++.++.....++.++.......",
|
"+...++.....+++...+",
|
||||||
"..++....++.++.....++.++.......",
|
"+...+++++++++....+",
|
||||||
"..+++..+++.+++++++++.++.......",
|
"+...++++++++.....+",
|
||||||
"..+++++++..+++++++++.++.......",
|
"+...++...........+",
|
||||||
"..++.......++.....++.++.......",
|
"+...++...........+",
|
||||||
"..++.......++.....++.++.......",
|
"+...++...........+",
|
||||||
"..++.......++.....++.++.......",
|
"+...++...........+",
|
||||||
"..++.......++.....++.+++++++..",
|
"+...++...........+",
|
||||||
"..++.......++.....++.+++++++..",
|
"+...++...........+",
|
||||||
"..............................",
|
"+................+",
|
||||||
".............................."};
|
"++++++++++++++++++"};
|
||||||
|
|||||||
23
symbols/stereo.xpm
Normal file
23
symbols/stereo.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * stereo_xpm[] = {
|
||||||
|
"17 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"+++++++++++++++++",
|
||||||
|
"+................",
|
||||||
|
"+..............++",
|
||||||
|
"+............++++",
|
||||||
|
"+..........+++.++",
|
||||||
|
"+........+++...++",
|
||||||
|
"+...+++++++....++",
|
||||||
|
"+...++++++.....++",
|
||||||
|
"+...++..++.....++",
|
||||||
|
"+...++..++.....++",
|
||||||
|
"+...++++++.....++",
|
||||||
|
"+...+++++++....++",
|
||||||
|
"+........+++...++",
|
||||||
|
"+..........+++.++",
|
||||||
|
"+............++++",
|
||||||
|
"+.............+++",
|
||||||
|
"+................",
|
||||||
|
"+++++++++++++++++"};
|
||||||
23
symbols/three.xpm
Normal file
23
symbols/three.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * three_xpm[] = {
|
||||||
|
"15 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"+++++++++++++++",
|
||||||
|
"..............+",
|
||||||
|
".....+++++....+",
|
||||||
|
"....+++++++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
".........++...+",
|
||||||
|
"........++....+",
|
||||||
|
"......+++.....+",
|
||||||
|
"......++++....+",
|
||||||
|
"........+++...+",
|
||||||
|
".........++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++...+++...+",
|
||||||
|
"....++++++....+",
|
||||||
|
".....++++.....+",
|
||||||
|
"..............+",
|
||||||
|
"+++++++++++++++"};
|
||||||
23
symbols/two.xpm
Normal file
23
symbols/two.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * two_xpm[] = {
|
||||||
|
"15 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"+++++++++++++++",
|
||||||
|
"..............+",
|
||||||
|
".....++++.....+",
|
||||||
|
"...+++++++....+",
|
||||||
|
"...++....++...+",
|
||||||
|
".........++...+",
|
||||||
|
".........++...+",
|
||||||
|
"........+++...+",
|
||||||
|
".......+++....+",
|
||||||
|
"......+++.....+",
|
||||||
|
".....+++......+",
|
||||||
|
"....+++.......+",
|
||||||
|
"...+++........+",
|
||||||
|
"...++.........+",
|
||||||
|
"...++++++++...+",
|
||||||
|
"...++++++++...+",
|
||||||
|
"..............+",
|
||||||
|
"+++++++++++++++"};
|
||||||
23
symbols/zero.xpm
Normal file
23
symbols/zero.xpm
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * zero_xpm[] = {
|
||||||
|
"15 18 2 1",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"+ c #000000",
|
||||||
|
"+++++++++++++++",
|
||||||
|
"..............+",
|
||||||
|
".....++++.....+",
|
||||||
|
"....++++++....+",
|
||||||
|
"....++..++....+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"...++....++...+",
|
||||||
|
"....++..++....+",
|
||||||
|
"....++++++....+",
|
||||||
|
".....++++.....+",
|
||||||
|
"..............+",
|
||||||
|
"+++++++++++++++"};
|
||||||
Reference in New Issue
Block a user