mirror of
https://github.com/rofafor/vdr-plugin-femon.git
synced 2023-10-10 13:36:53 +02:00
Backported changes and fixes from version 0.1.6.
This commit is contained in:
parent
ca717b0425
commit
22802773b8
29
HISTORY
29
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,21 @@ 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".
|
||||||
|
6
Makefile
6
Makefile
@ -11,7 +11,7 @@ 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:
|
||||||
|
|
||||||
@ -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
|
||||||
|
34
README
34
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 ######################### [DD][AR][VF][A][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,15 +51,31 @@ 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
|
||||||
|
|
||||||
|
DD - AC-3 stream (optional)
|
||||||
|
AR - Aspect Ratio: 1:1/4:3/16:9/2.21:1 (optional)
|
||||||
|
VF - Video format: PAL/NTSC (optional)
|
||||||
|
A - Audio track: 1..2 (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
|
||||||
|
Right/Left - Switch to next/previous device that provides the current channel
|
||||||
|
Green - Select language (APID)
|
||||||
|
Back - Exit plugin
|
||||||
|
|
||||||
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:
|
||||||
|
|
||||||
@ -71,3 +86,10 @@ Notes:
|
|||||||
ttxtsubs, but closing and reopening the femon plugin might help temporarily as
|
ttxtsubs, but closing and reopening the femon plugin might help temporarily as
|
||||||
well. Btw., this same thing happens with OSDTeletext plugin too :)
|
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.
|
||||||
|
- Shrinked OSD is available 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."
|
||||||
|
7
femon.c
7
femon.c
@ -12,7 +12,7 @@
|
|||||||
#include "femonosd.h"
|
#include "femonosd.h"
|
||||||
#include "femon.h"
|
#include "femon.h"
|
||||||
|
|
||||||
#if VDRVERSNUM >= 10307
|
#if VDRVERSNUM && VDRVERSNUM >= 10307
|
||||||
#error "You don't exist! Go away!"
|
#error "You don't exist! Go away!"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -71,6 +71,7 @@ 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, "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 +102,7 @@ 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 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 +118,9 @@ 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("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.0.6";
|
static const char *VERSION = "0.0.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,5 @@ cFemonConfig::cFemonConfig(void)
|
|||||||
analyzestream = 1;
|
analyzestream = 1;
|
||||||
calcinterval = 20;
|
calcinterval = 20;
|
||||||
syslogoutput = 0;
|
syslogoutput = 0;
|
||||||
|
showcasystem = 0;
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ public:
|
|||||||
int analyzestream;
|
int analyzestream;
|
||||||
int calcinterval;
|
int calcinterval;
|
||||||
int syslogoutput;
|
int syslogoutput;
|
||||||
|
int showcasystem;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern cFemonConfig femonConfig;
|
extern cFemonConfig femonConfig;
|
||||||
|
260
femoni18n.c
260
femoni18n.c
@ -1627,6 +1627,266 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Català
|
"", // Català
|
||||||
#if VDRVERSNUM >= 10302
|
#if VDRVERSNUM >= 10302
|
||||||
"", // ÀãááÚØÙ (Russian)
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "Show CA System", // English
|
||||||
|
"CA System anzeigen", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"Näytä salausjärjestelmä", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "Fixed", // English
|
||||||
|
"Fest", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Françeais
|
||||||
|
"", // Norsk
|
||||||
|
"kiinteä", // suomi
|
||||||
|
"", // Polskie
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "Free to Air", // English
|
||||||
|
"Free to Air", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"salaamaton", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "SECA/Mediaguard", // English
|
||||||
|
"SECA/Mediaguard", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"SECA/Mediaguard", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "Viaccess", // English
|
||||||
|
"Viaccess", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"Viaccess", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "Irdeto", // English
|
||||||
|
"Irdeto", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"Irdeto", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "NDS/Videoguard", // English
|
||||||
|
"NDS/Videoguard", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"NDS/Videoguard", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "Conax", // English
|
||||||
|
"Conax", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"Conax", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "CryptoWorks", // English
|
||||||
|
"CryptoWorks", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Portuguêes
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"CryptoWorks", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "PowerVu", // English
|
||||||
|
"PowerVu", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"PowerVu", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "BetaCrypt", // English
|
||||||
|
"BetaCrypt", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"BetaCrypt", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "NagraVision", // English
|
||||||
|
"NagraVision", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"NagraVision", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "SkyCrypt", // English
|
||||||
|
"SkyCrypt", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"SkyCrypt", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // ÅëëçíéêÜ (Greek)
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Català
|
||||||
|
#if VDRVERSNUM >= 10302
|
||||||
|
"", // ÀãááÚØÙ (Russian)
|
||||||
#endif
|
#endif
|
||||||
},
|
},
|
||||||
{ NULL }
|
{ NULL }
|
||||||
|
130
femonosd.c
130
femonosd.c
@ -19,18 +19,23 @@
|
|||||||
#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
|
#ifdef NTSC_SYSTEM
|
||||||
|
#define SCREENHEIGHT 480 // in pixels
|
||||||
|
#define OSDHEIGHT 420 // in pixels
|
||||||
|
#else
|
||||||
#define SCREENHEIGHT 576 // in pixels
|
#define SCREENHEIGHT 576 // in pixels
|
||||||
#define OSDWIDTH 600 // in pixels
|
|
||||||
#define OSDHEIGHT 480 // in pixels
|
#define OSDHEIGHT 480 // in pixels
|
||||||
|
#endif
|
||||||
|
#define SCREENWIDTH 720 // in pixels
|
||||||
|
#define OSDWIDTH 600 // in pixels
|
||||||
#define OSDINFOHEIGHT ((cOsd::LineHeight() - 2) * 11) // in pixels (11 rows)
|
#define OSDINFOHEIGHT ((cOsd::LineHeight() - 2) * 11) // in pixels (11 rows)
|
||||||
#define OSDSTATUSHEIGHT ((cOsd::LineHeight() - 2) * 6) // in pixels (6 rows)
|
#define OSDSTATUSHEIGHT ((cOsd::LineHeight() - 2) * 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 - cOsd::WidthInCells(txt) * cOsd::CellWidth()) / 2))
|
#define OSDSTATUSWIN_XC(col,txt) (((col - 1) * OSDWIDTH / 5) + ((OSDWIDTH / 5 - cOsd::WidthInCells(txt) * cOsd::CellWidth()) / 2))
|
||||||
#define BARWIDTH(x) (OSDWIDTH * x / 100)
|
#define BARWIDTH(x) (OSDWIDTH * x / 100)
|
||||||
#define DELTA 2
|
#define DELTA 2
|
||||||
|
|
||||||
@ -195,7 +200,70 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||||||
m_Osd->Text(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_InfoWindow);
|
m_Osd->Text(OSDINFOWIN_X(4), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_InfoWindow);
|
||||||
offset += cOsd::LineHeight() - DELTA;
|
offset += cOsd::LineHeight() - DELTA;
|
||||||
m_Osd->Text(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("CA"), clrWhite, clrBackground, m_InfoWindow);
|
m_Osd->Text(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("CA"), clrWhite, clrBackground, m_InfoWindow);
|
||||||
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);
|
||||||
|
}
|
||||||
m_Osd->Text(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_InfoWindow);
|
m_Osd->Text(OSDINFOWIN_X(2), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_InfoWindow);
|
||||||
m_Osd->Text(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Tpid"), clrWhite, clrBackground, m_InfoWindow);
|
m_Osd->Text(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), tr("Tpid"), clrWhite, clrBackground, m_InfoWindow);
|
||||||
snprintf(buf, sizeof(buf), "%d", channel->Tpid());
|
snprintf(buf, sizeof(buf), "%d", channel->Tpid());
|
||||||
@ -439,7 +507,9 @@ void cFemonOsd::DrawInfoWindow(void)
|
|||||||
m_Osd->Text(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_InfoWindow);
|
m_Osd->Text(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_InfoWindow);
|
||||||
offset += cOsd::LineHeight() - DELTA;
|
offset += cOsd::LineHeight() - DELTA;
|
||||||
m_Osd->Text(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Audio Stream"), clrYellow, clrBackground, m_InfoWindow);
|
m_Osd->Text(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Audio Stream"), clrYellow, clrBackground, m_InfoWindow);
|
||||||
snprintf(buf, sizeof(buf), "#%d", channel->Apid1());
|
value = -1;
|
||||||
|
cDevice::PrimaryDevice()->GetAudioTracks(&value);
|
||||||
|
snprintf(buf, sizeof(buf), "#%d", (value > 0 ? channel->Apid2() : channel->Apid1()));
|
||||||
m_Osd->Text(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_InfoWindow);
|
m_Osd->Text(OSDINFOWIN_X(3), OSDINFOWIN_Y(offset), buf, clrYellow, clrBackground, m_InfoWindow);
|
||||||
offset += cOsd::LineHeight() - DELTA;
|
offset += cOsd::LineHeight() - DELTA;
|
||||||
m_Osd->Text(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Bitrate"), clrWhite, clrBackground, m_InfoWindow);
|
m_Osd->Text(OSDINFOWIN_X(1), OSDINFOWIN_Y(offset), tr("Bitrate"), clrWhite, clrBackground, m_InfoWindow);
|
||||||
@ -671,9 +741,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;
|
||||||
@ -712,6 +781,49 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
|
|||||||
break;
|
break;
|
||||||
case kBack:
|
case kBack:
|
||||||
return osEnd;
|
return osEnd;
|
||||||
|
case kGreen:
|
||||||
|
{
|
||||||
|
int CurrentAudioTrack = -1;
|
||||||
|
const char **AudioTracks = cDevice::PrimaryDevice()->GetAudioTracks(&CurrentAudioTrack);
|
||||||
|
if (AudioTracks) {
|
||||||
|
const char **at = &AudioTracks[CurrentAudioTrack];
|
||||||
|
if (!*++at)
|
||||||
|
at = AudioTracks;
|
||||||
|
cDevice::PrimaryDevice()->SetAudioTrack(at - AudioTracks);
|
||||||
|
if (femonConfig.analyzestream) {
|
||||||
|
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||||
|
if (m_Receiver)
|
||||||
|
delete m_Receiver;
|
||||||
|
m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), (at - AudioTracks) ? channel->Apid2() : channel->Apid1(), channel->Dpid1());
|
||||||
|
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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) == kRight) {
|
||||||
|
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->Apid1(), channel->Apid2(), channel->Dpid1(), channel->Dpid2($
|
||||||
|
//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:
|
||||||
|
Loading…
Reference in New Issue
Block a user