1
0
mirror of https://github.com/rofafor/vdr-plugin-femon.git synced 2023-10-10 11:36:53 +00:00

Compare commits

..

4 Commits

Author SHA1 Message Date
Rolf Ahrenberg
22802773b8 Backported changes and fixes from version 0.1.6. 2004-09-11 04:20:00 +03:00
Rolf Ahrenberg
ca717b0425 Backported the "AC3 Stream Information" feature from version 0.1.3. 2004-06-11 04:20:00 +03:00
Rolf Ahrenberg
9ce3009e39 Backported changes and fixes from version 0.1.2. 2004-06-06 04:20:00 +03:00
Rolf Ahrenberg
b08205607c Backported "stream information" feature (from version 0.1.1). 2004-05-31 04:20:00 +03:00
51 changed files with 2740 additions and 6361 deletions

18
COPYING
View File

@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
@@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

154
HISTORY
View File

@@ -106,157 +106,3 @@ VDR Plugin 'femon' Revision History
- 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.
2005-01-23: Version 0.7.9
- Some minor cosmetic fixes.
2005-01-23: Version 0.8.0
- Updated for vdr-1.3.19.
2005-01-24: Version 0.8.1
- Added Estonian translations (Thanks to Arthur Konovalov).
2005-02-24: Version 0.8.5
- Updated for vdr-1.3.21.
- Minor modification for DEBUG mode.
- Added preliminary support for themes and some GUI tweaks.
- Added horizontal offset setup option.
2005-02-26: Version 0.8.6
- Horizontal offset setup option should be functional now.
2005-04-01: Version 0.8.7
- Default make target is now all.
- Fixed the access rights of symbols subdirectory (Thanks to Harri Kukkonen).
- Added a new theme: Moronimo (Thanks to Morone).
2005-04-02: Version 0.8.8
- Cleaned up finnish translations (Thanks to Ville Skytt<74>).
2005-04-04: Version 0.8.9
- Updated Estonian translations (Thanks to Arthur Konovalov).
- Added the missing german translations (Thanks to #vdr-portal).
2005-05-20: Version 0.9.0
- Renamed compiling switches ('DEBUG' to 'FEMON_DEBUG' and 'NTSC_SYSTEM' to 'FEMON_NTSC').
- Enabled preliminary support for the device switching.
2005-07-23: Version 0.9.1
- Fixed AC3-info flickering (Thanks to Pasi Juppo for reporting this one).
- Added "Analog" type CA system.
- Plugin is now stripped by default.
2005-08-15: Version 0.9.2
- Threads updated for vdr-1.3.29.
2005-08-28: Version 0.9.3
- Updated for vdr-1.3.31.
- Added preliminary svdrp and service support.
2005-10-04: Version 0.9.4
- Updated for vdr-1.3.34.
- Added Enigma theme (Thanks to Rolf Hoverath).
- Added EgalsTry theme (Thanks to Uwe Hanke).
- Added option to disable rounded corners.
2005-11-13: Version 0.9.5
- Updated for vdr-1.3.36.
- Added french translation (Thanks to Nicolas Huillard).
- Enabled bitrate commands via SVDRP.
- Added new SVDRP commands.
- Modified femon service without incrementing version number.
- Added "Duotone" theme for 2bpp on screen displays.
- Fixed crash bug in femonreceiver.
- Fixed setup page bug (Thanks to Thomas G<>nther for reporting this one).
2006-01-25: Version 0.9.6
- Updated for vdr-1.3.40.
- Fixed a translation bug (Thanks to Antti Hartikainen).
- Fixed AC3 header parsing bug (Thanks to Axel Katzur for reporting this one).
- Fixed EgalsTry theme (Thanks to Uwe Hanke).
2006-02-06: Version 0.9.7
- Updated for vdr-1.3.42.
- Added "SilverGreen" theme (Thanks to Rififi77 @ VDRPortal).
2006-03-08: Version 0.9.8
- Updated for vdr-1.3.44.
- Minor Makefile changes.
- Made all symbol data 'const'.
- Added spanish translation (Thanks to Luis Palacios).
2006-04-20: Version 0.9.9
- Updated for vdr-1.3.47.
2006-04-23: Version 0.9.10
- Added STRIP option for Makefile (Thanks to Ville Skytt<74>).
- Modified APIVERSION code in Makefile.
2006-04-30: Version 1.0.0
- Updated for vdr-1.4.0.
- Modified APIVERSION code in Makefile.
- Updated german translation (Thanks to Andreas Brachold).
2006-06-06: Version 1.0.1
- Fixed device switching priority (Thanks to Andreas Brugger).
- Fixed device switching back to the primary device.
2006-09-17: Version 1.1.0
- Added support for svdrpservice plugin (Thanks to Frank Schmirler).
- Added INFO SVDRP command (partially based on patch by Herbert P<>tzl).
- Removed system log option - use SVDRP instead.
- Added --remove-destination to the 'cp' command in Makefile.
2007-01-08: Version 1.1.1
- Updated for vdr-1.5.0.
2007-05-01: Version 1.1.2
- Fixed opening while replaying (Thanks to Antti Sepp<70>l<EFBFBD> for reporting this one).
2007-05-15: Version 1.1.3
- Fixed a race condition in cFemonReceiver (Thanks to Reinhard Nissl).
2007-08-14: Version 1.2.0
- Updated for vdr-1.5.7.
2007-08-19: Version 1.2.1
- Updated for vdr-1.5.8.

View File

@@ -3,15 +3,6 @@
#
# $Id$
# Debugging on/off
#FEMON_DEBUG = 1
# NTSC on/off
#FEMON_NTSC = 1
# Strip debug symbols? Set eg. to /bin/true if not
STRIP = strip
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.
@@ -20,15 +11,16 @@ PLUGIN = femon
### 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:
CXX ?= g++
CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual
CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual
### The directory environment:
DVBDIR = ../../../../DVB
VDRDIR = ../../..
LIBDIR = ../../lib
TMPDIR = /tmp
@@ -37,9 +29,9 @@ TMPDIR = /tmp
-include $(VDRDIR)/Make.config
### The version number of VDR's plugin API (taken from VDR's "config.h"):
### The version number of VDR (taken from VDR's "config.h"):
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
### The name of the distribution archive:
@@ -48,28 +40,17 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here):
INCLUDES += -I$(VDRDIR)/include
INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
ifdef FEMON_NTSC
DEFINES += -DNTSC
ifdef NTSC_SYSTEM
DEFINES += -DNTSC_SYSTEM
endif
ifdef FEMON_DEBUG
DEFINES += -DDEBUG
endif
.PHONY: all all-redirect
all-redirect: all
### The object files (add further files here):
OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femontools.o
### The main target:
all: libvdr-$(PLUGIN).so i18n
OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femoni18n.o
### Implicit rules:
@@ -85,39 +66,13 @@ $(DEPFILE): Makefile
-include $(DEPFILE)
### Internationalization (I18N):
PODIR = po
LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Ndirs = $(notdir $(foreach file, $(I18Npo), $(basename $(file))))
I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po
msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap -F -k -ktr -ktrNOOP --msgid-bugs-address='Rolf Ahrenberg' -o $@ $(wildcard *.c)
$(I18Npo): $(I18Npot)
msgmerge -U --no-wrap -F --backup=none -q $@ $<
i18n: $(I18Nmo)
@mkdir -p $(LOCALEDIR)
for i in $(I18Ndirs); do\
mkdir -p $(LOCALEDIR)/$$i/LC_MESSAGES;\
cp $(PODIR)/$$i.mo $(LOCALEDIR)/$$i/LC_MESSAGES/vdr-$(PLUGIN).mo;\
done
### Targets:
all: libvdr-$(PLUGIN).so
libvdr-$(PLUGIN).so: $(OBJS)
$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
ifndef FEMON_DEBUG
@$(STRIP) $@
endif
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
@cp $@ $(LIBDIR)/$@.$(VDRVERSION)
dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@@ -128,5 +83,4 @@ dist: clean
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

64
README
View File

@@ -6,10 +6,6 @@ Project's homepage: http://www.saunalahti.fi/~rahrenbe/vdr/femon/
Latest version available at: http://www.saunalahti.fi/~rahrenbe/vdr/femon/
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the file COPYING for license information.
Requirements:
@@ -25,14 +21,16 @@ transponder and stream information are also available in advanced display modes.
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
information). The bitrate calculation trick originates from the 'dvbstream'
application by Dave Chapman and the stream information routines are taken from
the 'libdvb' library by Metzler Brothers.
information). The other parts of plugin code are borrowed from the excellent
'OSD Picture-In-Picture' plugin by Sascha Volkenandt and Andreas Regel. The
bitrate calculation algorithm originates from the 'dvbstream' application by
Dave Chapman and the stream information routines from the 'libdvb' library by
Metzler Brothers.
Terminology:
--------------------------------------------------------------
|## Channel Name ################### [SVDRP][AR][VF][A/DD][D]|
|## Channel Name ######################### [DD][AR][VF][A][D]|
|[=====Signal Strength in % ==============|=================]|
|[=====Signal-to-Noise Ratio in % ========|=================]|
| STR: #0000 (0%) BER: #00000000 Video: 0 Mbit/s |
@@ -53,11 +51,11 @@ CARRIER - Found a DVB signal
VITERBI - FEC (forward error correction) is stable
SYNC - Found sync bytes
SVDRP - SVDRP connection active (optional)
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/DD - Audio (0..N) / AC-3 track (optional)
D - Device number: 0..N (optional)
A - Audio track: 1..2 (optional)
D - Device number: 0..3 (optional)
Controls:
@@ -65,10 +63,9 @@ 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
Right/Left - Switch to next/previous device that provides the current channel
Green - Select language (APID)
Back - Exit plugin
Left/Right - Switch to next/previous device that provides the current channel
Installation:
@@ -80,42 +77,19 @@ make
make plugins
./vdr -P femon
Client-server architecture:
The SVDRP service extension can be used in client-server configurations.
A streamdev based VDR-to-VDR streaming client can retrieve frontend
information from a server, if the SVDRP service has been activated and
properly configured in femon. The svdrpservice plugin is required on the
VDR client.
If the client fails to open a DVB card frontend corresponding to the
current receiving device, it will connect to the SVDRP server, look for
the femon plugin and tune the channel on the server to the one currently
viewed on the client. If one of these steps fails, the femon OSD won't
open on the client. An SVDRP icon in the femon title bar indicates that
the data source is SVDRP. The device number in the title bar is always
the local device number.
Notes:
- The plugin supports only those DVB cards with _one_ frontend, because I
haven't yet figured howto do it without patching the VDR core.
- 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
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.
- 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. NTSC users should use a shrinked default OSD height by
compiling the plugin with: make FEMON_NTSC=1
- If the SVDRP service is used: femon won't notice if the server is tuned
to a different channel and tuning the channel on the server might annoy
people watching live TV. In some situations the server will refuse
switching to the requested channel. On a headless server you can avoid
this by installing the dummydevice plugin.
- 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."

272
femon.c
View File

@@ -6,57 +6,26 @@
* $Id$
*/
#include <vdr/menu.h>
#include <vdr/remote.h>
#include "femoncfg.h"
#include "femoni18n.h"
#include "femonreceiver.h"
#include "femonosd.h"
#include "femonservice.h"
#include "femontools.h"
#include "femon.h"
#if defined(APIVERSNUM) && APIVERSNUM < 10508
#error "VDR-1.5.8 API version or greater is required!"
#if VDRVERSNUM && VDRVERSNUM >= 10307
#error "You don't exist! Go away!"
#endif
static const char VERSION[] = "1.2.1";
static const char DESCRIPTION[] = trNOOP("DVB Signal Information Monitor (OSD)");
static const char MAINMENUENTRY[] = trNOOP("Signal Information");
class cPluginFemon : public cPlugin {
public:
cPluginFemon(void);
virtual ~cPluginFemon();
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return tr(DESCRIPTION); }
virtual const char *CommandLineHelp(void);
virtual bool ProcessArgs(int argc, char *argv[]);
virtual bool Initialize(void);
virtual bool Start(void);
virtual void Stop(void);
virtual void Housekeeping(void);
virtual void MainThreadHook(void) {}
virtual cString Active(void) { return NULL; }
virtual const char *MainMenuEntry(void) { return (femonConfig.hidemenu ? NULL : tr(MAINMENUENTRY)); }
virtual cOsdObject *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool SetupParse(const char *Name, const char *Value);
virtual bool Service(const char *Id, void *Data);
virtual const char **SVDRPHelpPages(void);
virtual cString SVDRPCommand(const char *Command, const char *Option, int &ReplyCode);
};
cPluginFemon::cPluginFemon()
cPluginFemon::cPluginFemon(void)
{
// Initialize any member variables here.
// DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
// VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
Dprintf("%s()\n", __PRETTY_FUNCTION__);
}
cPluginFemon::~cPluginFemon()
{
// Clean up after yourself!
Dprintf("%s()\n", __PRETTY_FUNCTION__);
}
const char *cPluginFemon::CommandLineHelp(void)
@@ -80,14 +49,10 @@ bool cPluginFemon::Initialize(void)
bool cPluginFemon::Start(void)
{
// Start any background activities the plugin shall perform.
RegisterI18n(Phrases);
return true;
}
void cPluginFemon::Stop(void)
{
// Stop the background activities.
}
void cPluginFemon::Housekeeping(void)
{
// Perform any cleanup or other regular tasks.
@@ -96,203 +61,35 @@ void cPluginFemon::Housekeeping(void)
cOsdObject *cPluginFemon::MainMenuAction(void)
{
// Perform the action when selected from the main VDR menu.
Dprintf("%s()\n", __PRETTY_FUNCTION__);
if (cReplayControl::NowReplaying())
Skins.Message(mtInfo, tr("Femon not available while replaying"));
else
return cFemonOsd::Instance(true);
return NULL;
return new cFemonOsd();
}
bool cPluginFemon::SetupParse(const char *Name, const char *Value)
{
// Parse your own setup parameters and store their values.
if (!strcasecmp(Name, "HideMenu")) femonConfig.hidemenu = atoi(Value);
else if (!strcasecmp(Name, "SyslogOutput")) femonConfig.syslogoutput = atoi(Value);
else if (!strcasecmp(Name, "DisplayMode")) femonConfig.displaymode = atoi(Value);
else if (!strcasecmp(Name, "Position")) femonConfig.position = atoi(Value);
else if (!strcasecmp(Name, "OSDHeight")) femonConfig.osdheight = atoi(Value);
else if (!strcasecmp(Name, "OSDOffset")) femonConfig.osdoffset = atoi(Value);
else if (!strcasecmp(Name, "Skin")) femonConfig.skin = atoi(Value);
else if (!strcasecmp(Name, "Theme")) femonConfig.theme = atoi(Value);
else if (!strcasecmp(Name, "ShowCASystem")) femonConfig.showcasystem = atoi(Value);
else if (!strcasecmp(Name, "RedLimit")) femonConfig.redlimit = atoi(Value);
else if (!strcasecmp(Name, "GreenLimit")) femonConfig.greenlimit = atoi(Value);
else if (!strcasecmp(Name, "UpdateInterval")) femonConfig.updateinterval = atoi(Value);
else if (!strcasecmp(Name, "AnalStream")) femonConfig.analyzestream = atoi(Value);
else if (!strcasecmp(Name, "CalcInterval")) femonConfig.calcinterval = atoi(Value);
else if (!strcasecmp(Name, "UseSvdrp")) femonConfig.usesvdrp = atoi(Value);
else if (!strcasecmp(Name, "ServerPort")) femonConfig.svdrpport = atoi(Value);
else if (!strcasecmp(Name, "ServerIp")) strn0cpy(femonConfig.svdrpip, Value, sizeof(femonConfig.svdrpip));
else
return false;
if (femonConfig.displaymode < 0 || femonConfig.displaymode >= eFemonModeMaxNumber) femonConfig.displaymode = 0;
if (femonConfig.displaymode < 0 || femonConfig.displaymode >= modeMaxNumber) femonConfig.displaymode = 0;
return true;
}
bool cPluginFemon::Service(const char *Id, void *Data)
{
if ((strcmp(Id,"FemonService-v1.0") == 0) && Data) {
FemonService_v1_0 *data = (FemonService_v1_0*)Data;
int ndx = cDevice::ActualDevice()->CardIndex();
data->fe_name = getFrontendName(ndx);
data->fe_status = getFrontendStatus(ndx);
data->fe_snr = getSNR(ndx);
data->fe_signal = getSignal(ndx);
data->fe_ber = getBER(ndx);
data->fe_unc = getUNC(ndx);
data->video_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetVideoBitrate() : 0.0;
data->audio_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetAudioBitrate() : 0.0;
data->dolby_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetDolbyBitrate() : 0.0;
return true;
}
return false;
}
const char **cPluginFemon::SVDRPHelpPages(void)
{
static const char *HelpPages[] = {
"OPEN\n"
" Open femon plugin.",
"QUIT\n"
" Close femon plugin.",
"NEXT\n"
" Switch to next possible device.",
"PREV\n"
" Switch to previous possible device.",
"INFO\n"
" Print the current frontend information.",
"NAME\n"
" Print the current frontend name.",
"STAT\n"
" Print the current frontend status.",
"SGNL\n"
" Print the current signal strength.",
"SNRA\n"
" Print the current signal-to-noise ratio.",
"BERA\n"
" Print the current bit error rate.",
"UNCB\n"
" Print the current uncorrected blocks rate.",
"VIBR\n"
" Print the actual device and current video bitrate [Mbit/s].",
"AUBR\n"
" Print the actual device and current audio bitrate [kbit/s].",
"DDBR\n"
" Print the actual device and current dolby bitrate [kbit/s].",
NULL
};
return HelpPages;
}
cString cPluginFemon::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode)
{
if (strcasecmp(Command, "OPEN") == 0) {
if (cReplayControl::NowReplaying()) {
ReplyCode = 550; // Requested action not taken
return cString("Cannot open femon plugin while replaying");
}
if (!cFemonOsd::Instance())
cRemote::CallPlugin("femon");
return cString("Opening femon plugin");
}
else if (strcasecmp(Command, "QUIT") == 0) {
if (cFemonOsd::Instance())
cRemote::Put(kBack);
return cString("Closing femon plugin");
}
else if (strcasecmp(Command, "NEXT") == 0) {
if (cFemonOsd::Instance())
return cString::sprintf("Switching to next device: %s", cFemonOsd::Instance()->DeviceSwitch(1) ? "ok" : "failed");
else
return cString("Cannot switch device");
}
else if (strcasecmp(Command, "PREV") == 0) {
if (cFemonOsd::Instance())
return cString::sprintf("Switching to previous device: %s", cFemonOsd::Instance()->DeviceSwitch(-1) ? "ok" : "failed");
else
return cString("Cannot switch device");
}
else if (strcasecmp(Command, "INFO") == 0) {
return getFrontendInfo(cDevice::ActualDevice()->CardIndex());
}
else if (strcasecmp(Command, "NAME") == 0) {
return getFrontendName(cDevice::ActualDevice()->CardIndex());
}
else if (strcasecmp(Command, "STAT") == 0) {
return getFrontendStatus(cDevice::ActualDevice()->CardIndex());
}
else if (strcasecmp(Command, "SGNL") == 0) {
int value = getSignal(cDevice::ActualDevice()->CardIndex());
return cString::sprintf("%04X (%02d%%) on device #%d", value, value / 655, cDevice::ActualDevice()->CardIndex());
}
else if (strcasecmp(Command, "SNRA") == 0) {
int value = getSNR(cDevice::ActualDevice()->CardIndex());
return cString::sprintf("%04X (%02d%%) on device #%d", value, value / 655, cDevice::ActualDevice()->CardIndex());
}
else if (strcasecmp(Command, "BERA") == 0) {
return cString::sprintf("%08X on device #%d", getBER(cDevice::ActualDevice()->CardIndex()), cDevice::ActualDevice()->CardIndex());
}
else if (strcasecmp(Command, "UNCB") == 0) {
return cString::sprintf("%08X on device #%d", getUNC(cDevice::ActualDevice()->CardIndex()), cDevice::ActualDevice()->CardIndex());
}
else if (strcasecmp(Command, "VIBR") == 0) {
if (cFemonOsd::Instance())
return cString::sprintf("%s on device #%d", *getBitrateMbits(cFemonOsd::Instance()->GetVideoBitrate()), cDevice::ActualDevice()->CardIndex());
else
return cString::sprintf("--- Mbit/s on device #%d", cDevice::ActualDevice()->CardIndex());
}
else if (strcasecmp(Command, "AUBR") == 0) {
if (cFemonOsd::Instance())
return cString::sprintf("%s on device #%d", *getBitrateKbits(cFemonOsd::Instance()->GetAudioBitrate()), cDevice::ActualDevice()->CardIndex());
else
return cString::sprintf("--- kbit/s on device #%d", cDevice::ActualDevice()->CardIndex());
}
else if (strcasecmp(Command, "DDBR") == 0) {
if (cFemonOsd::Instance())
return cString::sprintf("%s on device #%d", *getBitrateKbits(cFemonOsd::Instance()->GetDolbyBitrate()), cDevice::ActualDevice()->CardIndex());
else
return cString::sprintf("--- kbit/s on device #%d", cDevice::ActualDevice()->CardIndex());
}
return NULL;
}
class cMenuFemonSetup : public cMenuSetupPage {
private:
const char *dispmodes[eFemonModeMaxNumber];
const char *skins[eFemonSkinMaxNumber];
const char *themes[eFemonThemeMaxNumber];
cFemonConfig data;
virtual void Setup(void);
protected:
virtual eOSState ProcessKey(eKeys Key);
virtual void Store(void);
public:
cMenuFemonSetup(void);
};
cMenuFemonSetup::cMenuFemonSetup(void)
{
Dprintf("%s()\n", __PRETTY_FUNCTION__);
dispmodes[eFemonModeBasic] = tr("basic");
dispmodes[eFemonModeTransponder] = tr("transponder");
dispmodes[eFemonModeStream] = tr("stream");
dispmodes[eFemonModeAC3] = tr("AC-3");
skins[eFemonSkinClassic] = tr("Classic");
skins[eFemonSkinElchi] = tr("Elchi");
themes[eFemonThemeClassic] = tr("Classic");
themes[eFemonThemeElchi] = tr("Elchi");
themes[eFemonThemeDeepBlue] = tr("DeepBlue");
themes[eFemonThemeMoronimo] = tr("Moronimo");
themes[eFemonThemeEnigma] = tr("Enigma");
themes[eFemonThemeEgalsTry] = tr("EgalsTry");
themes[eFemonThemeDuotone] = tr("Duotone");
themes[eFemonThemeSilverGreen] = tr("SilverGreen");
data = femonConfig;
dispmodes[modeBasic] = tr("basic");
dispmodes[modeTransponder] = tr("transponder");
dispmodes[modeStream] = tr("stream");
dispmodes[modeAC3] = tr("AC-3");
Setup();
}
@@ -301,25 +98,17 @@ void cMenuFemonSetup::Setup(void)
int current = Current();
Clear();
Add(new cMenuEditBoolItem( tr("Hide main menu entry"), &data.hidemenu, tr("no"), tr("yes")));
Add(new cMenuEditStraItem( tr("Default display mode"), &data.displaymode, eFemonModeMaxNumber, dispmodes));
Add(new cMenuEditStraItem( tr("Skin"), &data.skin, eFemonSkinMaxNumber, skins));
Add(new cMenuEditStraItem( tr("Theme"), &data.theme, eFemonThemeMaxNumber,themes));
Add(new cMenuEditBoolItem( tr("Position"), &data.position, tr("bottom"), tr("top")));
Add(new cMenuEditIntItem( tr("Height"), &data.osdheight, 400, 500));
Add(new cMenuEditIntItem( tr("Horizontal offset"), &data.osdoffset, -50, 50));
Add(new cMenuEditBoolItem( tr("Show CA system"), &data.showcasystem, tr("no"), tr("yes")));
Add(new cMenuEditIntItem( tr("Red limit [%]"), &data.redlimit, 1, 50));
Add(new cMenuEditIntItem( tr("Green limit [%]"), &data.greenlimit, 51, 100));
Add(new cMenuEditIntItem( tr("OSD update interval [0.1s]"), &data.updateinterval, 1, 100));
Add(new cMenuEditBoolItem( tr("Analyze stream"), &data.analyzestream, tr("no"), tr("yes")));
Add(new cMenuEditBoolItem( tr("Hide Mainmenu Entry"), &femonConfig.hidemenu, tr("no"), tr("yes")));
Add(new cMenuEditBoolItem( tr("Use Syslog Output"), &femonConfig.syslogoutput, tr("no"), tr("yes")));
Add(new cMenuEditStraItem( tr("Default Display Mode"), &femonConfig.displaymode, modeMaxNumber, dispmodes));
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("Green Limit [%]"), &femonConfig.greenlimit, 51, 100));
Add(new cMenuEditIntItem( tr("OSD Update Interval [0.1s]"), &femonConfig.updateinterval, 1, 100));
Add(new cMenuEditBoolItem( tr("Analyze Stream"), &femonConfig.analyzestream, tr("no"), tr("yes")));
if (femonConfig.analyzestream)
Add(new cMenuEditIntItem(tr("Calculation interval [0.1s]"), &data.calcinterval, 1, 100));
Add(new cMenuEditBoolItem( tr("Use SVDRP service"), &data.usesvdrp));
if (data.usesvdrp) {
Add(new cMenuEditIntItem(tr("SVDRP service port"), &data.svdrpport, 1, 65535));
Add(new cMenuEditStrItem(tr("SVDRP service IP"), data.svdrpip, MaxSvdrpIp, ".1234567890"));
}
Add(new cMenuEditIntItem(tr("Calculation Interval [0.1s]"), &femonConfig.calcinterval, 1, 100));
SetCurrent(Get(current));
Display();
@@ -327,34 +116,25 @@ void cMenuFemonSetup::Setup(void)
void cMenuFemonSetup::Store(void)
{
Dprintf("%s()\n", __PRETTY_FUNCTION__);
femonConfig = data;
SetupStore("HideMenu", femonConfig.hidemenu);
SetupStore("SyslogOutput", femonConfig.syslogoutput);
SetupStore("DisplayMode", femonConfig.displaymode);
SetupStore("Skin", femonConfig.skin);
SetupStore("Theme", femonConfig.theme);
SetupStore("Position", femonConfig.position);
SetupStore("OSDHeight", femonConfig.osdheight);
SetupStore("OSDOffset", femonConfig.osdoffset);
SetupStore("ShowCASystem", femonConfig.showcasystem);
SetupStore("RedLimit", femonConfig.redlimit);
SetupStore("GreenLimit", femonConfig.greenlimit);
SetupStore("UpdateInterval", femonConfig.updateinterval);
SetupStore("AnalStream", femonConfig.analyzestream);
SetupStore("CalcInterval", femonConfig.calcinterval);
SetupStore("UseSvdrp", femonConfig.usesvdrp);
SetupStore("ServerPort", femonConfig.svdrpport);
SetupStore("ServerIp", femonConfig.svdrpip);
}
eOSState cMenuFemonSetup::ProcessKey(eKeys Key)
{
int oldUsesvdrp = data.usesvdrp;
int oldAnalyzestream = data.analyzestream;
int oldAnalyzestream = femonConfig.analyzestream;
eOSState state = cMenuSetupPage::ProcessKey(Key);
if (Key != kNone && (data.analyzestream != oldAnalyzestream || data.usesvdrp != oldUsesvdrp)) {
if (Key != kNone && (femonConfig.analyzestream != oldAnalyzestream)) {
Setup();
}

49
femon.h Normal file
View File

@@ -0,0 +1,49 @@
/*
* Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id$
*/
#ifndef __FEMON_H
#define __FEMON_H
#include <vdr/plugin.h>
static const char *VERSION = "0.0.7";
static const char *DESCRIPTION = "DVB Signal Information Monitor (OSD)";
static const char *MAINMENUENTRY = "Signal Information";
class cPluginFemon : public cPlugin {
private:
// Add any member variables or functions you may need here.
public:
cPluginFemon(void);
virtual ~cPluginFemon();
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return tr(DESCRIPTION); }
virtual const char *CommandLineHelp(void);
virtual bool ProcessArgs(int argc, char *argv[]);
virtual bool Initialize(void);
virtual bool Start(void);
virtual void Housekeeping(void);
virtual const char *MainMenuEntry(void) { return (femonConfig.hidemenu ? NULL : tr(MAINMENUENTRY)); }
virtual cOsdObject *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool SetupParse(const char *Name, const char *Value);
};
class cMenuFemonSetup : public cMenuSetupPage {
private:
const char *dispmodes[modeMaxNumber];
virtual void Setup(void);
protected:
virtual eOSState ProcessKey(eKeys Key);
virtual void Store(void);
public:
cMenuFemonSetup(void);
};
#endif //__FEMON_H

View File

@@ -6,7 +6,6 @@
* $Id$
*/
#include <string.h>
#include "femoncfg.h"
cFemonConfig femonConfig;
@@ -15,122 +14,12 @@ cFemonConfig::cFemonConfig(void)
{
hidemenu = 0;
displaymode = 0;
skin = 0;
theme = 0;
position = 1;
redlimit = 33;
greenlimit = 66;
updateinterval = 5;
analyzestream = 1;
calcinterval = 20;
syslogoutput = 0;
showcasystem = 0;
#ifdef NTSC
osdheight = 420;
#else
osdheight = 480;
#endif
osdoffset = 0;
usesvdrp = 0;
svdrpport = 2001;
strncpy(svdrpip, "0.0.0.0", sizeof(svdrpip));
}
const cFemonTheme femonTheme[eFemonThemeMaxNumber] =
{
{
// eFemonThemeClassic
4, // bpp
0x7F000000, // clrBackground
0xFFFCFCFC, // clrTitleBackground
0xFF000000, // clrTitleText
0xFFFCC024, // clrActiveText
0xFFFCFCFC, // clrInactiveText
0xFFFC1414, // clrRed
0xFFFCC024, // clrYellow
0xFF24FC24, // clrGreen
},
{
// eFemonThemeElchi
4, // bpp
0xC8000066, // clrBackground
0xC833AAEE, // clrTitleBackground
0xFF000000, // clrTitleText
0xFFCCBB22, // clrActiveText
0xFFFFFFFF, // clrInactiveText
0xFFFF0000, // clrRed
0xFFFFEE00, // clrYellow
0xFF33CC33, // clrGreen
},
{
// eFemonThemeDeepBlue
4, // bpp
0xC80C0C0C, // clrBackground
0xC832557A, // clrTitleBackground
0xFF000000, // clrTitleText
0xFFCE7B00, // clrActiveText
0xFF9A9A9A, // clrInactiveText
0xFF992900, // clrRed
0xFFCE7B00, // clrYellow
0xFF336600, // clrGreen
},
{
// eFemonThemeMoronimo
4, // bpp
0xDF294A6B, // clrBackground
0xDF3E5578, // clrTitleBackground
0xFF9BBAD7, // clrTitleText
0xFFCE7B00, // clrActiveText
0xFF9A9A9A, // clrInactiveText
0xFF992900, // clrRed
0xFFCE7B00, // clrYellow
0xFF336600, // clrGreen
},
{
// eFemonThemeEnigma
4, // bpp
0xB8DEE5FA, // clrBackground
0xB84158BC, // clrTitleBackground
0xFFFFFFFF, // clrTitleText
0xFF000000, // clrActiveText
0xFF000000, // clrInactiveText
0xB8C40000, // clrRed
0xB8C4C400, // clrYellow
0xB800C400, // clrGreen
},
{
// eFemonThemeEgalsTry
4, // bpp
0xCA2B1B9E, // clrBackground
0xDFBEBAC3, // clrTitleBackground
0xFF280249, // clrTitleText
0xFFD4D7DB, // clrActiveText
0xDFCFCFCF, // clrInactiveText
0xFFFF0000, // clrRed
0xFFFCC024, // clrYellow
0xFF20980B, // clrGreen
},
{
// eFemonThemeDuotone
2, // bpp
0x7F000000, // clrBackground
0xFFFCFCFC, // clrTitleBackground
0x7F000000, // clrTitleText
0xFFFCFCFC, // clrActiveText
0xFFFCFCFC, // clrInactiveText
0xFFFC1414, // clrRed
0xFFFCFCFC, // clrYellow
0xFFFCFCFC, // clrGreen
},
{
// eFemonThemeSilverGreen
4, // bpp
0xD9526470, // clrBackground
0xD9293841, // clrTitleBackground
0xFFB3BDCA, // clrTitleText
0xFFCE7B00, // clrActiveText
0xFFB3BDCA, // clrInactiveText
0xFF992900, // clrRed
0xFFCE7B00, // clrYellow
0xFF336600, // clrGreen
},
};

View File

@@ -9,16 +9,13 @@
#ifndef __FEMONCFG_H
#define __FEMONCFG_H
#define MaxSvdrpIp 15 // xxx.xxx.xxx.xxx
enum eFemonModes
{
eFemonModeBasic,
eFemonModeTransponder,
eFemonModeStream,
eFemonModeAC3,
eFemonModeMaxNumber
};
enum dispModes {
modeBasic,
modeTransponder,
modeStream,
modeAC3,
modeMaxNumber
};
struct cFemonConfig
{
@@ -26,57 +23,16 @@ public:
cFemonConfig(void);
int hidemenu;
int displaymode;
int skin;
int theme;
int position;
int redlimit;
int greenlimit;
int updateinterval;
int analyzestream;
int calcinterval;
int syslogoutput;
int showcasystem;
int osdheight;
int osdoffset;
int usesvdrp;
int svdrpport;
char svdrpip[MaxSvdrpIp + 1]; // must end with additional null
};
extern cFemonConfig femonConfig;
enum eFemonSkins
{
eFemonSkinClassic,
eFemonSkinElchi,
eFemonSkinMaxNumber
};
enum eFemonThemes
{
eFemonThemeClassic,
eFemonThemeElchi,
eFemonThemeDeepBlue,
eFemonThemeMoronimo,
eFemonThemeEnigma,
eFemonThemeEgalsTry,
eFemonThemeDuotone,
eFemonThemeSilverGreen,
eFemonThemeMaxNumber
};
struct cFemonTheme
{
int bpp;
int clrBackground;
int clrTitleBackground;
int clrTitleText;
int clrActiveText;
int clrInactiveText;
int clrRed;
int clrYellow;
int clrGreen;
};
extern const cFemonTheme femonTheme[eFemonThemeMaxNumber];
#endif // __FEMONCFG_H

1893
femoni18n.c Normal file

File diff suppressed because it is too large Load Diff

17
femoni18n.h Normal file
View File

@@ -0,0 +1,17 @@
/*
* Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id$
*/
#ifndef __FEMONI18N_H
#define __FEMONI18N_H
#include <vdr/config.h> // for VDRVERSNUM
#include <vdr/i18n.h>
extern const tI18nPhrase Phrases[];
#endif // __FEMONI18N_H

1321
femonosd.c

File diff suppressed because it is too large Load Diff

View File

@@ -15,67 +15,42 @@
#include <vdr/osd.h>
#include <vdr/thread.h>
#include <vdr/status.h>
#include <vdr/plugin.h>
#include <vdr/channels.h>
#include <vdr/transfer.h>
#include <vdr/tools.h>
#include "svdrpservice.h"
#define MAX_BM_NUMBER 5
#include <vdr/font.h>
class cFemonOsd : public cOsdObject, public cThread, public cStatus {
private:
enum { MAX_BMNUMBERS = 6 };
static cFemonOsd *pInstance;
cOsd *m_Osd;
bool m_Active;
cOsdBase *m_Osd;
tWindowHandle m_InfoWindow;
tWindowHandle m_StatusWindow;
cFemonReceiver *m_Receiver;
int m_Frontend;
int m_SvdrpFrontend;
double m_SvdrpVideoBitrate;
double m_SvdrpAudioBitrate;
SvdrpConnection_v1_0 m_SvdrpConnection;
cPlugin *m_SvdrpPlugin;
struct dvb_frontend_info m_FrontendInfo;
int m_Number;
int m_OldNumber;
int m_InputTime;
uint16_t m_SNR;
uint16_t m_Signal;
uint32_t m_BER;
uint32_t m_UNC;
fe_status_t m_FrontendStatus;
int m_DisplayMode;
const cFont *m_Font;
cTimeMs m_InputTime;
eDvbFont m_Font;
cMutex* m_Mutex;
static cBitmap bmStereo, bmMonoLeft, bmMonoRight, bmDD, bmDD20, bmDD51;
static cBitmap bmNumbers[MAX_BMNUMBERS];
static cBitmap bmDevice, bmPAL, bmNTSC, bmSVDRP;
static cBitmap bmAspectRatio_1_1, bmAspectRatio_16_9, bmAspectRatio_2_21_1, bmAspectRatio_4_3;
static cBitmap bmLock, bmSignal, bmCarrier, bmViterbi, bmSync;
void DrawStatusWindow(void);
void DrawInfoWindow(void);
bool SvdrpConnect(void);
bool SvdrpTune(void);
protected:
cFemonOsd();
cFemonOsd(const cFemonOsd&);
cFemonOsd& operator= (const cFemonOsd&);
virtual void Action(void);
virtual void ChannelSwitch(const cDevice * device, int channelNumber);
virtual void SetAudioTrack(int Index, const char * const *Tracks);
public:
static cFemonOsd *Instance(bool create = false);
cFemonOsd(void);
~cFemonOsd();
virtual void Show(void);
virtual eOSState ProcessKey(eKeys Key);
bool DeviceSwitch(int direction);
double GetVideoBitrate(void);
double GetAudioBitrate(void);
double GetDolbyBitrate(void);
};
#endif //__FEMONOSD_H

View File

@@ -7,7 +7,6 @@
*/
#include <unistd.h>
#include "femontools.h"
#include "femoncfg.h"
#include "femonreceiver.h"
@@ -17,17 +16,18 @@
#define PAYLOAD 0x10
#define PTS_DTS_FLAGS 0xC0
cFemonReceiver::cFemonReceiver(tChannelID ChannelID, int Ca, int Vpid, int Apid[], int Dpid[])
#if defined(APIVERSNUM) && APIVERSNUM < 10500
:cReceiver(Ca, -1, Vpid, Apid, Dpid, NULL), cThread("femon receiver")
cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid)
#if VDRVERSNUM >= 10300
:cReceiver(Ca, -1, 3, Vpid, Apid, Dpid), cThread("femon receiver")
#else
:cReceiver(ChannelID, -1, Vpid, Apid, Dpid, NULL), cThread("femon receiver")
:cReceiver(Ca, -1, 3, Vpid, Apid, Dpid)
#endif
{
Dprintf("%s()\n", __PRETTY_FUNCTION__);
//printf("cFemonReceiver::cFemonReceiver()\n");
m_Active = false;
m_VideoPid = Vpid;
m_AudioPid = Apid[0];
m_AC3Pid = Dpid[0];
m_AudioPid = Apid;
m_AC3Pid = Dpid;
m_VideoValid = false;
m_VideoPacketCount = 0;
m_VideoHorizontalSize = 0;
@@ -61,19 +61,21 @@ cFemonReceiver::cFemonReceiver(tChannelID ChannelID, int Ca, int Vpid, int Apid[
cFemonReceiver::~cFemonReceiver(void)
{
Dprintf("%s()\n", __PRETTY_FUNCTION__);
if (Running())
Cancel(3);
Detach();
//printf("cFemonReceiver::~cFemonReceiver()\n");
if (m_Active) {
m_Active = false;
Cancel(0);
}
}
/* The following function originates from libdvbmpeg: */
void cFemonReceiver::GetVideoInfo(uint8_t *mbuf, int count)
{
//printf("cFemonReceiver::GetVideoInfo()\n");
uint8_t *headr;
int found = 0;
int c = 0;
//m_VideoValid = false;
m_VideoValid = false;
while ((found < 4) && ((c + 4) < count)) {
uint8_t *b;
b = mbuf + c;
@@ -146,7 +148,7 @@ void cFemonReceiver::GetVideoInfo(uint8_t *mbuf, int count)
m_VideoFormat = VF_UNKNOWN;
break;
}
m_VideoStreamBitrate = 400.0 * (((headr[4] << 10) & 0x0003FC00UL) | ((headr[5] << 2) & 0x000003FCUL) | (((headr[6] & 0xC0) >> 6) & 0x00000003UL));
m_VideoStreamBitrate = 400 * (((headr[4] << 10) & 0x0003FC00UL) | ((headr[5] << 2) & 0x000003FCUL) | (((headr[6] & 0xC0) >> 6) & 0x00000003UL)) / 1000000.0;
}
static unsigned int bitrates[3][16] =
@@ -162,11 +164,12 @@ static unsigned int samplerates[4] =
/* The following function originates from libdvbmpeg: */
void cFemonReceiver::GetAudioInfo(uint8_t *mbuf, int count)
{
//printf("cFemonReceiver::GetAudioInfo()\n");
uint8_t *headr;
int found = 0;
int c = 0;
int tmp = 0;
//m_AudioValid = false;
m_AudioValid = false;
while (!found && (c < count)) {
uint8_t *b = mbuf + c;
if ((b[0] == 0xff) && ((b[1] & 0xf8) == 0xf8))
@@ -184,7 +187,7 @@ void cFemonReceiver::GetAudioInfo(uint8_t *mbuf, int count)
else if (tmp == 0xf)
m_AudioStreamBitrate = (double)FR_RESERVED;
else
m_AudioStreamBitrate = tmp;
m_AudioStreamBitrate = tmp / 1000.0;
tmp = samplerates[((headr[2] & 0x0c) >> 2)] * 100;
if (tmp == 3)
m_AudioSamplingFreq = FR_RESERVED;
@@ -215,7 +218,7 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
int found = 0;
int c = 0;
uint8_t frame;
//m_AC3Valid = false;
m_AC3Valid = false;
while (!found && (c < count)) {
uint8_t *b = mbuf + c;
if ((b[0] == 0x0b) && (b[1] == 0x77))
@@ -227,7 +230,7 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
m_AC3Valid = true;
headr = mbuf + c + 2;
frame = (headr[2] & 0x3f);
m_AC3StreamBitrate = ac3_bitrates[frame >> 1] * 1000;
m_AC3StreamBitrate = ac3_bitrates[frame >> 1];
int fr = (headr[2] & 0xc0 ) >> 6;
m_AC3SamplingFreq = ac3_freq[fr] * 100;
m_AC3FrameSize = ac3_frames[fr][frame >> 1];
@@ -235,84 +238,31 @@ void cFemonReceiver::GetAC3Info(uint8_t *mbuf, int count)
m_AC3FrameSize <<= 1;
m_AC3BitStreamMode = (headr[3] & 7);
m_AC3AudioCodingMode = (headr[4] & 0xE0) >> 5;
if ((m_AC3AudioCodingMode & 0x01) && (m_AC3AudioCodingMode != 0x01)) {
// 3 front channels
if ((m_AC3AudioCodingMode & 0x01) && (m_AC3AudioCodingMode != 0x01)) // if 3 front channels
m_AC3CenterMixLevel = (headr[4] & 0x18) >> 3;
if (m_AC3AudioCodingMode & 0x04) {
// a surround channel exists
m_AC3SurroundMixLevel = (headr[4] & 0x06) >> 1;
if (m_AC3AudioCodingMode == 0x02) {
// if in 2/0 mode
m_AC3DolbySurroundMode = ((headr[4] & 0x01) << 1) | ((headr[5] & 0x80) >> 7);
m_AC3LfeOn = (headr[5] & 0x40) >> 6;
m_AC3DialogLevel = (headr[5] & 0x3e) >> 1;
}
else {
m_AC3DolbySurroundMode = FR_NOTVALID;
m_AC3LfeOn = (headr[4] & 0x01);
m_AC3DialogLevel = (headr[5] & 0xF8) >> 3;
}
}
else {
m_AC3SurroundMixLevel = FR_NOTVALID;
if (m_AC3AudioCodingMode == 0x02) {
// if in 2/0 mode
m_AC3DolbySurroundMode = (headr[4] & 0x06) >> 1;
m_AC3LfeOn = (headr[4] & 0x01);
m_AC3DialogLevel = (headr[5] & 0xF8) >> 3;
}
else {
m_AC3DolbySurroundMode = FR_NOTVALID;
m_AC3LfeOn = (headr[4] & 0x04) >> 2;
m_AC3DialogLevel = (headr[4] & 0x03) << 3 | ((headr[5] & 0xE0) >> 5);
}
}
}
else {
else
m_AC3CenterMixLevel = FR_NOTVALID;
if (m_AC3AudioCodingMode & 0x04) {
// a surround channel exists
m_AC3SurroundMixLevel = (headr[4] & 0x18) >> 3;
if (m_AC3AudioCodingMode == 0x02) {
// if in 2/0 mode
m_AC3DolbySurroundMode = (headr[4] & 0x06) >> 1;
m_AC3LfeOn = (headr[4] & 0x01);
m_AC3DialogLevel = (headr[5] & 0xF8) >> 3;
}
else {
m_AC3DolbySurroundMode = FR_NOTVALID;
m_AC3LfeOn = (headr[4] & 0x04) >> 2;
m_AC3DialogLevel = (headr[4] & 0x03) << 3 | ((headr[5] & 0xE0) >> 5);
}
}
else {
m_AC3SurroundMixLevel = FR_NOTVALID;
if (m_AC3AudioCodingMode == 0x02) {
// if in 2/0 mode
m_AC3DolbySurroundMode = (headr[4] & 0x18) >> 3;
m_AC3LfeOn = (headr[4] & 0x04) >> 2;
m_AC3DialogLevel = (headr[4] & 0x03) << 3 | ((headr[5] & 0xE0) >> 5);
}
else {
m_AC3DolbySurroundMode = FR_NOTVALID;
m_AC3LfeOn = (headr[4] & 0x10) >> 4;
m_AC3DialogLevel = ((headr[4] & 0x0F) << 1) | ((headr[5] & 0x80) >> 7);
}
}
}
if (m_AC3AudioCodingMode & 0x04) // if a surround channel exists
m_AC3SurroundMixLevel = (headr[4] & 0x06) >> 1;
else
m_AC3SurroundMixLevel = FR_NOTVALID;
if (m_AC3AudioCodingMode == 0x02) // if in 2/0 mode
m_AC3DolbySurroundMode = ((headr[4] & 1) << 1) | ((headr[5] & 0x80) >> 7);
else
m_AC3DolbySurroundMode = FR_NOTVALID;
m_AC3LfeOn = (headr[5] & 0x40) >> 6;
m_AC3DialogLevel = (headr[5] & 0x3e) >> 1;
}
void cFemonReceiver::Activate(bool On)
{
Dprintf("%s(%d)\n", __PRETTY_FUNCTION__, On);
if (On)
Start();
else
Cancel();
//printf("cFemonReceiver::Activate()\n");
Start();
}
void cFemonReceiver::Receive(uchar *Data, int Length)
{
//printf("cFemonReceiver::Receive()\n");
// TS packet length: TS_SIZE
if (Length == TS_SIZE) {
int pid = ((Data[1] & 0x1f) << 8) | (Data[2]);
@@ -355,17 +305,22 @@ void cFemonReceiver::Receive(uchar *Data, int Length)
void cFemonReceiver::Action(void)
{
Dprintf("%s()\n", __PRETTY_FUNCTION__);
cTimeMs t;
while (Running()) {
t.Set(0);
//printf("cFemonReceiver::Action()\n");
#if (VDRVERSNUM < 10300)
isyslog("femon receiver: thread started (pid = %d)", getpid());
#endif
m_Active = true;
while (m_Active) {
// TS packet 188 bytes - 4 byte header; MPEG standard defines 1Mbit = 1000000bit
m_VideoBitrate = (10.0 * 8.0 * 184.0 * m_VideoPacketCount) / femonConfig.calcinterval;
m_VideoBitrate = (8.0 * 184.0 * m_VideoPacketCount) / (femonConfig.calcinterval * 100000.0);
m_VideoPacketCount = 0;
m_AudioBitrate = (10.0 * 8.0 * 184.0 * m_AudioPacketCount) / femonConfig.calcinterval;
m_AudioBitrate = (8.0 * 184.0 * m_AudioPacketCount) / (femonConfig.calcinterval * 100.0);
m_AudioPacketCount = 0;
m_AC3Bitrate = (10.0 * 8.0 * 184.0 * m_AC3PacketCount) / femonConfig.calcinterval;
m_AC3Bitrate = (8.0 * 184.0 * m_AC3PacketCount) / (femonConfig.calcinterval * 100.0);
m_AC3PacketCount = 0;
cCondWait::SleepMs(100 * femonConfig.calcinterval - t.Elapsed());
usleep(100000L * femonConfig.calcinterval);
}
#if (VDRVERSNUM < 10300)
isyslog("femon receiver: thread stopped (pid = %d)", getpid());
#endif
}

View File

@@ -47,14 +47,13 @@ enum eDolbySurroundMode {
DSM_RESERVED = 3,
};
enum eReveiverCodes {
FR_RESERVED = -1,
FR_FREE = -2,
FR_NOTVALID = -3
};
#define FR_RESERVED -1
#define FR_FREE -2
#define FR_NOTVALID -3
class cFemonReceiver : public cReceiver, public cThread {
private:
bool m_Active;
int m_VideoPid;
int m_AudioPid;
int m_AC3Pid;
@@ -96,7 +95,7 @@ protected:
virtual void Action(void);
public:
cFemonReceiver(tChannelID ChannelID, int Ca, int Vpid, int Apid[], int Dpid[]);
cFemonReceiver(int Ca, int Vpid, int Apid, int Dpid);
virtual ~cFemonReceiver();
bool VideoValid(void) { return m_VideoValid; }; // boolean
@@ -105,19 +104,19 @@ public:
int VideoAspectRatio(void) { return m_VideoAspectRatio; }; // eAspectRatio
int VideoFormat(void) { return m_VideoFormat; }; // eVideoFormat
double VideoFrameRate(void) { return m_VideoFrameRate; }; // Hz
double VideoStreamBitrate(void) { return m_VideoStreamBitrate; }; // bit/s
double VideoBitrate(void) { return m_VideoBitrate; }; // bit/s
double VideoStreamBitrate(void) { return m_VideoStreamBitrate; }; // Mbit/s
double VideoBitrate(void) { return m_VideoBitrate; }; // Mbit/s
bool AudioValid(void) { return m_AudioValid; }; // boolean
int AudioMPEGLayer(void) { return m_AudioMPEGLayer; }; // layer number
int AudioSamplingFreq(void) { return m_AudioSamplingFreq; }; // Hz
double AudioStreamBitrate(void) { return m_AudioStreamBitrate; }; // bit/s
double AudioBitrate(void) { return m_AudioBitrate; }; // bit/s
double AudioStreamBitrate(void) { return m_AudioStreamBitrate; }; // kbit/s
double AudioBitrate(void) { return m_AudioBitrate; }; // kbit/s
bool AC3Valid(void) { return m_AC3Valid; }; // boolean
int AC3SamplingFreq(void) { return m_AC3SamplingFreq; }; // Hz
double AC3StreamBitrate(void) { return m_AC3StreamBitrate; }; // bit/s
double AC3Bitrate(void) { return m_AC3Bitrate; }; // bit/s
double AC3StreamBitrate(void) { return m_AC3StreamBitrate; }; // kbit/s
double AC3Bitrate(void) { return m_AC3Bitrate; }; // kbit/s
int AC3FrameSize(void) { return m_AC3FrameSize; }; // Bytes
int AC3BitStreamMode(void) { return m_AC3BitStreamMode; }; // 0..7
int AC3AudioCodingMode(void) { return m_AC3AudioCodingMode; }; // 0..7

View File

@@ -1,27 +0,0 @@
/*
* Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id$
*/
#ifndef __FEMONSERVICE_H
#define __FEMONSERVICE_H
#include <linux/dvb/frontend.h>
struct FemonService_v1_0 {
cString fe_name;
cString fe_status;
uint16_t fe_snr;
uint16_t fe_signal;
uint32_t fe_ber;
uint32_t fe_unc;
double video_bitrate;
double audio_bitrate;
double dolby_bitrate;
};
#endif //__FEMONSERVICE_H

View File

@@ -1,425 +0,0 @@
/*
* Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id$
*/
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/dvb/frontend.h>
#include "femonreceiver.h"
#include "femonosd.h"
#include "femontools.h"
cString getFrontendInfo(int cardIndex)
{
cString info;
struct dvb_frontend_info value;
fe_status_t status;
uint16_t signal = 0;
uint16_t snr = 0;
uint32_t ber = 0;
uint32_t unc = 0;
char *dev = NULL;
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
asprintf(&dev, FRONTEND_DEVICE, cardIndex, 0);
int fe = open(dev, O_RDONLY | O_NONBLOCK);
free(dev);
if (fe < 0)
return NULL;
CHECK(ioctl(fe, FE_GET_INFO, &value));
CHECK(ioctl(fe, FE_READ_STATUS, &status));
CHECK(ioctl(fe, FE_READ_SIGNAL_STRENGTH, &signal));
CHECK(ioctl(fe, FE_READ_SNR, &snr));
CHECK(ioctl(fe, FE_READ_BER, &ber));
CHECK(ioctl(fe, FE_READ_UNCORRECTED_BLOCKS, &unc));
close(fe);
info = cString::sprintf("CARD:%d\nTYPE:%d\nNAME:%s\nSTAT:%02X\nSGNL:%04X\nSNRA:%04X\nBERA:%08X\nUNCB:%08X", cardIndex, value.type, value.name, status, signal, snr, ber, unc);
if (cFemonOsd::Instance())
info = cString::sprintf("%s\nVIBR:%.0f\nAUBR:%.0f\nDDBR:%.0f", *info, cFemonOsd::Instance()->GetVideoBitrate(), cFemonOsd::Instance()->GetAudioBitrate(), cFemonOsd::Instance()->GetDolbyBitrate());
if (channel)
info = cString::sprintf("%s\nCHAN:%s", *info, *channel->ToText());
return info;
}
cString getFrontendName(int cardIndex)
{
struct dvb_frontend_info value;
char *dev = NULL;
asprintf(&dev, FRONTEND_DEVICE, cardIndex, 0);
int fe = open(dev, O_RDONLY | O_NONBLOCK);
free(dev);
if (fe < 0)
return NULL;
CHECK(ioctl(fe, FE_GET_INFO, &value));
close(fe);
return (cString::sprintf("%s on device #%d", value.name, cardIndex));
}
cString getFrontendStatus(int cardIndex)
{
fe_status_t value;
char *dev = NULL;
asprintf(&dev, FRONTEND_DEVICE, cardIndex, 0);
int fe = open(dev, O_RDONLY | O_NONBLOCK);
free(dev);
if (fe < 0)
return NULL;
CHECK(ioctl(fe, FE_READ_STATUS, &value));
close(fe);
return (cString::sprintf("Status %s:%s:%s:%s:%s on device #%d", (value & FE_HAS_LOCK) ? "LOCKED" : "-", (value & FE_HAS_SIGNAL) ? "SIGNAL" : "-", (value & FE_HAS_CARRIER) ? "CARRIER" : "-", (value & FE_HAS_VITERBI) ? "VITERBI" : "-", (value & FE_HAS_SYNC) ? "SYNC" : "-", cardIndex));
}
uint16_t getSignal(int cardIndex)
{
uint16_t value = 0;
char *dev = NULL;
asprintf(&dev, FRONTEND_DEVICE, cardIndex, 0);
int fe = open(dev, O_RDONLY | O_NONBLOCK);
free(dev);
if (fe < 0)
return (value);
CHECK(ioctl(fe, FE_READ_SIGNAL_STRENGTH, &value));
close(fe);
return (value);
}
uint16_t getSNR(int cardIndex)
{
uint16_t value = 0;
char *dev = NULL;
asprintf(&dev, FRONTEND_DEVICE, cardIndex, 0);
int fe = open(dev, O_RDONLY | O_NONBLOCK);
free(dev);
if (fe < 0)
return (value);
CHECK(ioctl(fe, FE_READ_SNR, &value));
close(fe);
return (value);
}
uint32_t getBER(int cardIndex)
{
uint32_t value = 0;
char *dev = NULL;
asprintf(&dev, FRONTEND_DEVICE, cardIndex, 0);
int fe = open(dev, O_RDONLY | O_NONBLOCK);
free(dev);
if (fe < 0)
return (value);
CHECK(ioctl(fe, FE_READ_BER, &value));
close(fe);
return (value);
}
uint32_t getUNC(int cardIndex)
{
uint32_t value = 0;
char *dev = NULL;
asprintf(&dev, FRONTEND_DEVICE, cardIndex, 0);
int fe = open(dev, O_RDONLY | O_NONBLOCK);
free(dev);
if (fe < 0)
return (value);
CHECK(ioctl(fe, FE_READ_UNCORRECTED_BLOCKS, &value));
close(fe);
return (value);
}
cString getApids(const cChannel *channel)
{
int value = 0;
cString apids = cString::sprintf("%d", channel->Apid(value));
while (channel->Apid(++value) && (value < MAXAPIDS))
apids = cString::sprintf("%s, %d", *apids, channel->Apid(value));
return apids;
}
cString getDpids(const cChannel *channel)
{
int value = 0;
cString dpids = cString::sprintf("%d", channel->Dpid(value));
while (channel->Dpid(++value) && (value < MAXDPIDS))
dpids = cString::sprintf("%s, %d", *dpids, channel->Dpid(value));
return dpids;
}
cString getCAids(const cChannel *channel, bool identify)
{
cString caids;
int value = 0;
if (identify) {
caids = cString::sprintf("%s", *getCA(channel->Ca(value)));
while (channel->Ca(++value) && (value < MAXCAIDS))
caids = cString::sprintf("%s, %s", *caids, *getCA(channel->Ca(value)));
}
else {
caids = cString::sprintf("%04x", channel->Ca(value));
while (channel->Ca(++value) && (value < MAXCAIDS))
caids = cString::sprintf("%s, %04x", *caids, channel->Ca(value));
}
return caids;
}
cString getCA(int value)
{
/* http://www.dvb.org/index.php?id=174 */
switch (value) {
case 0x0000: return cString::sprintf("%s", tr("Free to Air")); /* Reserved */
case 0x0001 ... 0x009F:
case 0x00A2 ... 0x00FF: return cString::sprintf("%s", tr("Fixed")); /* Standardized systems */
case 0x00A0 ... 0x00A1: return cString::sprintf("%s", tr("Analog")); /* Analog signals */
case 0x0100 ... 0x01FF: return cString::sprintf("%s", tr("SECA/Mediaguard")); /* Canal Plus */
case 0x0500 ... 0x05FF: return cString::sprintf("%s", tr("Viaccess")); /* France Telecom */
case 0x0600 ... 0x06FF: return cString::sprintf("%s", tr("Irdeto")); /* Irdeto */
case 0x0900 ... 0x09FF: return cString::sprintf("%s", tr("NDS/Videoguard")); /* News Datacom */
case 0x0B00 ... 0x0BFF: return cString::sprintf("%s", tr("Conax")); /* Norwegian Telekom */
case 0x0D00 ... 0x0DFF: return cString::sprintf("%s", tr("CryptoWorks")); /* Philips */
case 0x0E00 ... 0x0EFF: return cString::sprintf("%s", tr("PowerVu")); /* Scientific Atlanta */
case 0x1200 ... 0x12FF: return cString::sprintf("%s", tr("NagraVision")); /* BellVu Express */
case 0x1700 ... 0x17FF: return cString::sprintf("%s", tr("BetaCrypt")); /* BetaTechnik */
case 0x1800 ... 0x18FF: return cString::sprintf("%s", tr("NagraVision")); /* Kudelski SA */
case 0x4A60 ... 0x4A6F: return cString::sprintf("%s", tr("SkyCrypt")); /* @Sky */
}
return cString::sprintf("%X", value);
}
cString getCoderate(int value)
{
switch (value) {
case FEC_NONE: return cString::sprintf("%s", tr("None"));
case FEC_1_2: return cString::sprintf("1/2");
case FEC_2_3: return cString::sprintf("2/3");
case FEC_3_4: return cString::sprintf("3/4");
case FEC_4_5: return cString::sprintf("4/5");
case FEC_5_6: return cString::sprintf("5/6");
case FEC_6_7: return cString::sprintf("6/7");
case FEC_7_8: return cString::sprintf("7/8");
case FEC_8_9: return cString::sprintf("8/9");
case FEC_AUTO: return cString::sprintf("%s", tr("Auto"));
}
return cString::sprintf("---");
}
cString getTransmission(int value)
{
switch (value) {
case TRANSMISSION_MODE_2K: return cString::sprintf("2K");
case TRANSMISSION_MODE_8K: return cString::sprintf("8K");
case TRANSMISSION_MODE_AUTO: return cString::sprintf("%s", tr("Auto"));
}
return cString::sprintf("---");
}
cString getBandwidth(int value)
{
switch (value) {
case BANDWIDTH_8_MHZ: return cString::sprintf("8 %s", tr("MHz"));
case BANDWIDTH_7_MHZ: return cString::sprintf("7 %s", tr("MHz"));
case BANDWIDTH_6_MHZ: return cString::sprintf("6 %s", tr("MHz"));
case BANDWIDTH_AUTO: return cString::sprintf("%s", tr("Auto"));
}
return cString::sprintf("---");
}
cString getInversion(int value)
{
switch (value) {
case INVERSION_OFF: return cString::sprintf("%s", tr("Off"));
case INVERSION_ON: return cString::sprintf("%s", tr("On"));
case INVERSION_AUTO: return cString::sprintf("%s", tr("Auto"));
}
return cString::sprintf("---");
}
cString getHierarchy(int value)
{
switch (value) {
case HIERARCHY_NONE: return cString::sprintf("%s", tr("None"));
case HIERARCHY_1: return cString::sprintf("1");
case HIERARCHY_2: return cString::sprintf("2");
case HIERARCHY_4: return cString::sprintf("4");
case HIERARCHY_AUTO: cString::sprintf("%s", tr("Auto"));
}
return cString::sprintf("---");
}
cString getGuard(int value)
{
switch (value) {
case GUARD_INTERVAL_1_32: return cString::sprintf("1/32");
case GUARD_INTERVAL_1_16: return cString::sprintf("1/16");
case GUARD_INTERVAL_1_8: return cString::sprintf("1/8");
case GUARD_INTERVAL_1_4: return cString::sprintf("1/4");
case GUARD_INTERVAL_AUTO: cString::sprintf("%s", tr("Auto"));
}
return cString::sprintf("---");
}
cString getModulation(int value)
{
switch (value) {
case QPSK: return cString::sprintf("QPSK");
case QAM_16: return cString::sprintf("QAM 16");
case QAM_32: return cString::sprintf("QAM 32");
case QAM_64: return cString::sprintf("QAM 64");
case QAM_128: return cString::sprintf("QAM 128");
case QAM_256: return cString::sprintf("QAM 256");
case QAM_AUTO: return cString::sprintf("QAM %s", tr("Auto"));
}
return cString::sprintf("---");
}
cString getAspectRatio(int value)
{
switch (value) {
case AR_RESERVED: return cString::sprintf("%s", tr("reserved"));
case AR_1_1: return cString::sprintf("1:1");
case AR_4_3: return cString::sprintf("4:3");
case AR_16_9: return cString::sprintf("16:9");
case AR_2_21_1: return cString::sprintf("2.21:1");
}
return cString::sprintf("---");
}
cString getVideoFormat(int value)
{
switch (value) {
case VF_UNKNOWN: return cString::sprintf("%s", tr("unknown"));
case VF_PAL: return cString::sprintf("%s", tr("PAL"));
case VF_NTSC: return cString::sprintf("%s", tr("NTSC"));
}
return cString::sprintf("---");
}
cString getAC3BitStreamMode(int value, int coding)
{
switch (value) {
case 0: return cString::sprintf("%s", tr("Complete Main (CM)"));
case 1: return cString::sprintf("%s", tr("Music and Effects (ME)"));
case 2: return cString::sprintf("%s", tr("Visually Impaired (VI)"));
case 3: return cString::sprintf("%s", tr("Hearing Impaired (HI)"));
case 4: return cString::sprintf("%s", tr("Dialogue (D)"));
case 5: return cString::sprintf("%s", tr("Commentary (C)"));
case 6: return cString::sprintf("%s", tr("Emergency (E)"));
case 7: return cString::sprintf("%s", (coding == 1) ? tr("Voice Over (VO)") : tr("Karaoke"));
}
return cString::sprintf("---");
}
cString getAC3AudioCodingMode(int value, int stream)
{
if (stream != 7) {
switch (value) {
case 0: return cString::sprintf("1+1 - %s, %s", tr("Ch1"), tr("Ch2"));
case 1: return cString::sprintf("1/0 - %s", tr("C"));
case 2: return cString::sprintf("2/0 - %s, %s", tr("L"), tr("R"));
case 3: return cString::sprintf("3/0 - %s, %s, %s", tr("L"), tr("C"), tr("R"));
case 4: return cString::sprintf("2/1 - %s, %s, %s", tr("L"), tr("R"), tr("S"));
case 5: return cString::sprintf("3/1 - %s, %s, %s, %s", tr("L"), tr("C"), tr("R"), tr("S"));
case 6: return cString::sprintf("2/2 - %s, %s, %s, %s", tr("L"), tr("R"), tr("SL"), tr("SR"));
case 7: return cString::sprintf("3/2 - %s, %s, %s, %s, %s", tr("L"), tr("C"), tr("R"), tr("SL"), tr("SR"));
}
}
return cString::sprintf("---");
}
cString getAC3CenterMixLevel(int value)
{
switch (value) {
case CML_MINUS_3dB: return cString::sprintf("-3.0 %s", tr("dB"));
case CML_MINUS_4_5dB: return cString::sprintf("-4.5 %s", tr("dB"));
case CML_MINUS_6dB: return cString::sprintf("-6.0 %s", tr("dB"));
case CML_RESERVED: return cString::sprintf("%s", tr("reserved"));
}
return cString::sprintf("---");
}
cString getAC3SurroundMixLevel(int value)
{
switch (value) {
case SML_MINUS_3dB: return cString::sprintf("-3 %s", tr("dB"));
case SML_MINUS_6dB: return cString::sprintf("-6 %s", tr("dB"));
case SML_0_dB: return cString::sprintf("0 %s", tr("dB"));
case SML_RESERVED: return cString::sprintf("%s", tr("reserved"));
}
return cString::sprintf("---");
}
cString getAC3DolbySurroundMode(int value)
{
switch (value) {
case DSM_NOT_INDICATED: return cString::sprintf("%s", tr("not indicated"));
case DSM_NOT_DOLBYSURROUND: return cString::sprintf("%s", tr("no"));
case DSM_DOLBYSURROUND: return cString::sprintf("%s", tr("yes"));
case DSM_RESERVED: return cString::sprintf("%s", tr("reserved"));
}
return cString::sprintf("---");
}
cString getAC3DialogLevel(int value)
{
if (value > 0)
return cString::sprintf("-%d %s", value, tr("dB"));
return cString::sprintf("---");
}
cString getFrequencyMHz(int value)
{
while (value > 20000) value /= 1000;
return cString::sprintf("%d %s", value, tr("MHz"));
}
cString getAudioSamplingFreq(int value)
{
switch (value) {
case FR_NOTVALID: return cString::sprintf("---");
case FR_RESERVED: return cString::sprintf("%s", tr("reserved"));
}
return cString::sprintf("%.1f %s", ((double)value / 1000.0), tr("kHz"));
}
cString getAudioBitrate(double value, double stream)
{
switch ((int)stream) {
case FR_NOTVALID: return cString::sprintf("---");
case FR_RESERVED: return cString::sprintf("%s (%s)", tr("reserved"), *getBitrateKbits(value));
case FR_FREE: return cString::sprintf("%s (%s)", tr("free"), *getBitrateKbits(value));
}
return cString::sprintf("%s (%s)", *getBitrateKbits(stream), *getBitrateKbits(value));
}
cString getBitrateMbits(double value)
{
if (value >= 0)
return cString::sprintf("%.2f %s", value / 1000000.0, tr("Mbit/s"));
return cString::sprintf("--- %s", tr("Mbit/s"));
}
cString getBitrateKbits(double value)
{
if (value >= 0)
return cString::sprintf("%.0f %s", value / 1000.0, tr("kbit/s"));
return cString::sprintf("--- %s", tr("kbit/s"));
}

View File

@@ -1,59 +0,0 @@
/*
* Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id$
*/
#ifndef __FEMONTOOLS_H
#define __FEMONTOOLS_H
#include <stdint.h>
#include <vdr/channels.h>
#include <vdr/tools.h>
#ifdef DEBUG
#define Dprintf(x...) printf(x);
#else
#define Dprintf(x...) ;
#endif
#define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d"
cString getFrontendInfo(int cardIndex = 0);
cString getFrontendName(int cardIndex = 0);
cString getFrontendStatus(int cardIndex = 0);
uint16_t getSNR(int cardIndex = 0);
uint16_t getSignal(int cardIndex = 0);
uint32_t getBER(int cardIndex = 0);
uint32_t getUNC(int cardIndex = 0);
cString getApids(const cChannel *channel);
cString getDpids(const cChannel *channel);
cString getCAids(const cChannel *channel, bool identify = false);
cString getCA(int value);
cString getCoderate(int value);
cString getTransmission(int value);
cString getBandwidth(int value);
cString getInversion(int value);
cString getHierarchy(int value);
cString getGuard(int value);
cString getModulation(int value);
cString getAspectRatio(int value);
cString getVideoFormat(int value);
cString getAC3BitStreamMode(int value, int coding);
cString getAC3AudioCodingMode(int value, int stream);
cString getAC3CenterMixLevel(int value);
cString getAC3SurroundMixLevel(int value);
cString getAC3DolbySurroundMode(int value);
cString getAC3DialogLevel(int value);
cString getFrequencyMHz(int value);
cString getAudioSamplingFreq(int value);
cString getAudioBitrate(double value, double stream);
cString getBitrateMbits(double value);
cString getBitrateKbits(double value);
#endif // __FEMONTOOLS_H

View File

@@ -1,535 +0,0 @@
# VDR plugin language source file.
# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
# This file is distributed under the same license as the VDR package.
# Peter Marquardt
# Andreas Brachold
# Christian Wieninger
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2007-08-12 23:22+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Christian Wieninger\n"
"Language-Team: <vdr@linuxtv.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
#: femon.c:22
msgid "DVB Signal Information Monitor (OSD)"
msgstr "DVB Signal Informationsanzeige (OSD)"
#: femon.c:23
msgid "Signal Information"
msgstr "Signalinformationen"
#: femon.c:101
msgid "Femon not available while replaying"
msgstr "Femon w<>hrend Wiedergabe nicht verf<72>gbar"
#: femon.c:278
msgid "basic"
msgstr "Standard"
#: femon.c:279
msgid "transponder"
msgstr "Transponder"
#: femon.c:280
msgid "stream"
msgstr "Stream"
#: femon.c:281 femonosd.c:276
msgid "AC-3"
msgstr "AC-3"
#: femon.c:283 femon.c:286
msgid "Classic"
msgstr "Klassischer"
#: femon.c:284 femon.c:287
msgid "Elchi"
msgstr "Elchi"
#: femon.c:288
msgid "DeepBlue"
msgstr "DeepBlue"
#: femon.c:289
msgid "Moronimo"
msgstr "Moronimo"
#: femon.c:290
msgid "Enigma"
msgstr "Enigma"
#: femon.c:291
msgid "EgalsTry"
msgstr "EgalsTry"
#: femon.c:292
msgid "Duotone"
msgstr "Duotone"
#: femon.c:293
msgid "SilverGreen"
msgstr "SilverGreen"
#: femon.c:304
msgid "Hide main menu entry"
msgstr "Hauptmen<65>eintrag verstecken"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:374
msgid "no"
msgstr "nein"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:375
msgid "yes"
msgstr "ja"
#: femon.c:305
msgid "Default display mode"
msgstr "Standard Anzeigemodus"
#: femon.c:306
msgid "Skin"
msgstr "Oberfl<66>che"
#: femon.c:307
msgid "Theme"
msgstr "Thema"
#: femon.c:308
msgid "Position"
msgstr "Position"
#: femon.c:308
msgid "bottom"
msgstr "unten"
#: femon.c:308
msgid "top"
msgstr "oben"
#: femon.c:309
msgid "Height"
msgstr "H<>he"
#: femon.c:310
msgid "Horizontal offset"
msgstr "Horizontaler Offset"
#: femon.c:311
msgid "Show CA system"
msgstr "CA System anzeigen"
#: femon.c:312
msgid "Red limit [%]"
msgstr "Grenze Rot [%]"
#: femon.c:313
msgid "Green limit [%]"
msgstr "Grenze Gr<47>n [%]"
#: femon.c:314
msgid "OSD update interval [0.1s]"
msgstr "OSD Updateintervall [0.1s]"
#: femon.c:315
msgid "Analyze stream"
msgstr "Stream analysieren"
#: femon.c:317
msgid "Calculation interval [0.1s]"
msgstr "Berechnungsintervall [0.1s]"
#: femon.c:318
msgid "Use SVDRP service"
msgstr "SVDRP Service verwenden"
#: femon.c:320
msgid "SVDRP service port"
msgstr "SVDRP Service Port"
#: femon.c:321
msgid "SVDRP service IP"
msgstr "SVDRP Service IP"
#: femonosd.c:268
msgid "Video"
msgstr "Video"
#: femonosd.c:276
msgid "Audio"
msgstr "Audio"
#: femonosd.c:305
msgid "Transponder Information"
msgstr "Transponderinformation"
#: femonosd.c:311
msgid "Vpid"
msgstr "Vpid"
#: femonosd.c:313
msgid "Ppid"
msgstr "Ppid"
#: femonosd.c:316
msgid "Apid"
msgstr "Apid"
#: femonosd.c:318
msgid "Dpid"
msgstr "Dpid"
#: femonosd.c:321
msgid "CA"
msgstr "CA"
#: femonosd.c:323
msgid "Tpid"
msgstr "Tpid"
#: femonosd.c:326
msgid "Sid"
msgstr "Sid"
#: femonosd.c:328
msgid "Nid"
msgstr "Nid"
#: femonosd.c:331
msgid "Tid"
msgstr "Tid"
#: femonosd.c:333
msgid "Rid"
msgstr "Rid"
#: femonosd.c:338
msgid "Satellite Card"
msgstr "Satellitenkarte"
#: femonosd.c:340 femonosd.c:359 femonosd.c:378
msgid "Frequency"
msgstr "Frequenz"
#: femonosd.c:342 femonosd.c:361
msgid "Source"
msgstr "Quelle"
#: femonosd.c:345 femonosd.c:364
msgid "Srate"
msgstr "Srate"
#: femonosd.c:347
msgid "Polarization"
msgstr "Polarisation"
#: femonosd.c:350 femonosd.c:369 femonosd.c:388
msgid "Inversion"
msgstr "Inversion"
#: femonosd.c:352 femonosd.c:371
msgid "CoderateH"
msgstr "CoderateH"
#: femonosd.c:357
msgid "Cable Card"
msgstr "Kabelkarte"
#: femonosd.c:366 femonosd.c:385
msgid "Modulation"
msgstr "Modulation"
#: femonosd.c:376
msgid "Terrestrial Card"
msgstr "Terrestrische Karte"
#: femonosd.c:380
msgid "Transmission"
msgstr "Transmission"
#: femonosd.c:383
msgid "Bandwidth"
msgstr "Bandbreite"
#: femonosd.c:390
msgid "Coderate"
msgstr "Coderate"
#: femonosd.c:393
msgid "Hierarchy"
msgstr "Hierarchie"
#: femonosd.c:395
msgid "Guard"
msgstr "Guard"
#: femonosd.c:410 femonosd.c:453
msgid "Stream Information"
msgstr "Streaminformation"
#: femonosd.c:416
msgid "Video Stream"
msgstr "Video Stream"
#: femonosd.c:419 femonosd.c:437 femonosd.c:460
msgid "Bitrate"
msgstr "Bitrate"
#: femonosd.c:422
msgid "Aspect Ratio"
msgstr "Seitenverh<72>ltnis"
#: femonosd.c:425
msgid "Frame Rate"
msgstr "Bildrate"
#: femonosd.c:426
msgid "Hz"
msgstr "Hz"
#: femonosd.c:428
msgid "Video Format"
msgstr "Bildformat"
#: femonosd.c:431
msgid "Resolution"
msgstr "Aufl<66>sung"
#: femonosd.c:434
msgid "Audio Stream"
msgstr "Audio Stream"
#: femonosd.c:440
msgid "MPEG Layer"
msgstr "MPEG Layer"
#: femonosd.c:443 femonosd.c:463
msgid "Sampling Frequency"
msgstr "Abtastrate"
#: femonosd.c:453
msgid "AC-3 Stream"
msgstr "AC-3 Stream"
#: femonosd.c:464 femontools.c:400
msgid "kHz"
msgstr "kHz"
#: femonosd.c:466
msgid "Frame Size"
msgstr "Frame Gr<47><72>e"
#: femonosd.c:469
msgid "Bit Stream Mode"
msgstr "Bitstream Modus"
#: femonosd.c:472
msgid "Audio Coding Mode"
msgstr "Audiokodierung"
#: femonosd.c:475
msgid "Center Mix Level"
msgstr "Center Mix Pegel"
#: femonosd.c:478
msgid "Surround Mix Level"
msgstr "Surround Mix Pegel"
#: femonosd.c:481
msgid "Dolby Surround Mode"
msgstr "Dolby Surround Modus"
#: femonosd.c:484
msgid "Low Frequency Effects"
msgstr "Tieft<66>ner Effekte"
#: femonosd.c:485 femontools.c:249
msgid "Off"
msgstr "Aus"
#: femonosd.c:485 femontools.c:250
msgid "On"
msgstr "Ein"
#: femonosd.c:487
msgid "Dialogue Normalization"
msgstr "Dialog Normalisierung"
#: femontools.c:189
msgid "Free to Air"
msgstr "Frei empfangbar"
#: femontools.c:191
msgid "Fixed"
msgstr "Fest"
#: femontools.c:192
msgid "Analog"
msgstr "Analog"
#: femontools.c:193
msgid "SECA/Mediaguard"
msgstr "SECA/Mediaguard"
#: femontools.c:194
msgid "Viaccess"
msgstr "Viaccess"
#: femontools.c:195
msgid "Irdeto"
msgstr "Irdeto"
#: femontools.c:196
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
#: femontools.c:197
msgid "Conax"
msgstr "Conax"
#: femontools.c:198
msgid "CryptoWorks"
msgstr "CryptoWorks"
#: femontools.c:199
msgid "PowerVu"
msgstr "PowerVu"
#: femontools.c:200 femontools.c:202
msgid "NagraVision"
msgstr "NagraVision"
#: femontools.c:201
msgid "BetaCrypt"
msgstr "BetaCrypt"
#: femontools.c:203
msgid "SkyCrypt"
msgstr "SkyCrypt"
#: femontools.c:211 femontools.c:259
msgid "None"
msgstr "Nichts"
#: femontools.c:220 femontools.c:230 femontools.c:241 femontools.c:251
#: femontools.c:263 femontools.c:275 femontools.c:289
msgid "Auto"
msgstr "Auto"
#: femontools.c:238 femontools.c:239 femontools.c:240 femontools.c:391
msgid "MHz"
msgstr "MHz"
#: femontools.c:297 femontools.c:354 femontools.c:365 femontools.c:376
#: femontools.c:398 femontools.c:407
msgid "reserved"
msgstr "belegt"
#: femontools.c:309
msgid "unknown"
msgstr "unbekannt"
#: femontools.c:310
msgid "PAL"
msgstr "PAL"
#: femontools.c:311
msgid "NTSC"
msgstr "NTSC"
#: femontools.c:319
msgid "Complete Main (CM)"
msgstr "Complete Main (CM)"
#: femontools.c:320
msgid "Music and Effects (ME)"
msgstr "Musik und Effekte (ME)"
#: femontools.c:321
msgid "Visually Impaired (VI)"
msgstr "Sehbehindert (VI)"
#: femontools.c:322
msgid "Hearing Impaired (HI)"
msgstr "H<>rbehindert (HI)"
#: femontools.c:323
msgid "Dialogue (D)"
msgstr "Dialog (D)"
#: femontools.c:324
msgid "Commentary (C)"
msgstr "Kommentar (C)"
#: femontools.c:325
msgid "Emergency (E)"
msgstr "Notfall (E)"
#: femontools.c:326
msgid "Karaoke"
msgstr "Karaoke"
#: femontools.c:326
msgid "Voice Over (VO)"
msgstr "<22>berlagerte Stimme (VO)"
#: femontools.c:335
msgid "Ch1"
msgstr "Kan1"
#: femontools.c:335
msgid "Ch2"
msgstr "Kan2"
#: femontools.c:336 femontools.c:338 femontools.c:340 femontools.c:342
msgid "C"
msgstr "C"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "L"
msgstr "L"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "R"
msgstr "R"
#: femontools.c:339 femontools.c:340
msgid "S"
msgstr "S"
#: femontools.c:341 femontools.c:342
msgid "SL"
msgstr "SL"
#: femontools.c:341 femontools.c:342
msgid "SR"
msgstr "SR"
#: femontools.c:351 femontools.c:352 femontools.c:353 femontools.c:362
#: femontools.c:363 femontools.c:364 femontools.c:384
msgid "dB"
msgstr "dB"
#: femontools.c:373
msgid "not indicated"
msgstr "nicht angegeben"
#: femontools.c:408
msgid "free"
msgstr "frei"
#: femontools.c:416 femontools.c:417
msgid "Mbit/s"
msgstr "Mbit/s"
#: femontools.c:423 femontools.c:424
msgid "kbit/s"
msgstr "kbit/s"

View File

@@ -1,533 +0,0 @@
# VDR plugin language source file.
# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
# This file is distributed under the same license as the VDR package.
# Luis Palacios
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2007-08-12 23:22+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Luis Palacios\n"
"Language-Team: <vdr@linuxtv.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
#: femon.c:22
msgid "DVB Signal Information Monitor (OSD)"
msgstr "Monitorizaci<63>n de la se<73>al DVB"
#: femon.c:23
msgid "Signal Information"
msgstr "Monitorizaci<63>n de la se<73>al DVB"
#: femon.c:101
msgid "Femon not available while replaying"
msgstr ""
#: femon.c:278
msgid "basic"
msgstr "B<>sico"
#: femon.c:279
msgid "transponder"
msgstr "Transpondedor"
#: femon.c:280
msgid "stream"
msgstr "Flujo"
#: femon.c:281 femonosd.c:276
msgid "AC-3"
msgstr "AC-3"
#: femon.c:283 femon.c:286
msgid "Classic"
msgstr "Cl<43>sico"
#: femon.c:284 femon.c:287
msgid "Elchi"
msgstr "Elchi"
#: femon.c:288
msgid "DeepBlue"
msgstr "DeepBlue"
#: femon.c:289
msgid "Moronimo"
msgstr "Moronimo"
#: femon.c:290
msgid "Enigma"
msgstr "Enigma"
#: femon.c:291
msgid "EgalsTry"
msgstr "EgalsTry"
#: femon.c:292
msgid "Duotone"
msgstr "Duotone"
#: femon.c:293
msgid "SilverGreen"
msgstr "SilverGreen"
#: femon.c:304
msgid "Hide main menu entry"
msgstr "Ocultar en el men<65> principal"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:374
msgid "no"
msgstr "no"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:375
msgid "yes"
msgstr "s<>"
#: femon.c:305
msgid "Default display mode"
msgstr "Modo de visualizaci<63>n estandar"
#: femon.c:306
msgid "Skin"
msgstr "Piel"
#: femon.c:307
msgid "Theme"
msgstr "Tema"
#: femon.c:308
msgid "Position"
msgstr "Posici<63>n"
#: femon.c:308
msgid "bottom"
msgstr "abajo"
#: femon.c:308
msgid "top"
msgstr "arriba"
#: femon.c:309
msgid "Height"
msgstr "Altura"
#: femon.c:310
msgid "Horizontal offset"
msgstr "Desplazamiento horizontal"
#: femon.c:311
msgid "Show CA system"
msgstr "Mostrar sistema CA"
#: femon.c:312
msgid "Red limit [%]"
msgstr "L<>mite de rojo [%s]"
#: femon.c:313
msgid "Green limit [%]"
msgstr "L<>mite verde [%]"
#: femon.c:314
msgid "OSD update interval [0.1s]"
msgstr "Intervalo de actualizaci<63>n (0,1)"
#: femon.c:315
msgid "Analyze stream"
msgstr "Analizar el flujo"
#: femon.c:317
msgid "Calculation interval [0.1s]"
msgstr "Intervalo de c<>lculo (0,1s)"
#: femon.c:318
msgid "Use SVDRP service"
msgstr ""
#: femon.c:320
msgid "SVDRP service port"
msgstr ""
#: femon.c:321
msgid "SVDRP service IP"
msgstr ""
#: femonosd.c:268
msgid "Video"
msgstr "Video"
#: femonosd.c:276
msgid "Audio"
msgstr "Audio"
#: femonosd.c:305
msgid "Transponder Information"
msgstr "Informaci<63>n del transpondedor"
#: femonosd.c:311
msgid "Vpid"
msgstr "Vpid"
#: femonosd.c:313
msgid "Ppid"
msgstr "Ppid"
#: femonosd.c:316
msgid "Apid"
msgstr "Apid"
#: femonosd.c:318
msgid "Dpid"
msgstr "Dpid"
#: femonosd.c:321
msgid "CA"
msgstr "Acceso condicional (CA)"
#: femonosd.c:323
msgid "Tpid"
msgstr "Tpid"
#: femonosd.c:326
msgid "Sid"
msgstr "Sid"
#: femonosd.c:328
msgid "Nid"
msgstr "Nid"
#: femonosd.c:331
msgid "Tid"
msgstr "Tid"
#: femonosd.c:333
msgid "Rid"
msgstr "Rid"
#: femonosd.c:338
msgid "Satellite Card"
msgstr "Tarjeta Sat<61>lite"
#: femonosd.c:340 femonosd.c:359 femonosd.c:378
msgid "Frequency"
msgstr "Frecuencia"
#: femonosd.c:342 femonosd.c:361
msgid "Source"
msgstr "Fuente"
#: femonosd.c:345 femonosd.c:364
msgid "Srate"
msgstr "T.s<>mbolos"
#: femonosd.c:347
msgid "Polarization"
msgstr "Polarizaci<63>n"
#: femonosd.c:350 femonosd.c:369 femonosd.c:388
msgid "Inversion"
msgstr "Inversion"
#: femonosd.c:352 femonosd.c:371
msgid "CoderateH"
msgstr "CoderateH"
#: femonosd.c:357
msgid "Cable Card"
msgstr "Tarjeta Cable"
#: femonosd.c:366 femonosd.c:385
msgid "Modulation"
msgstr "Modulaci<63>n"
#: femonosd.c:376
msgid "Terrestrial Card"
msgstr "Tarjeta TDT"
#: femonosd.c:380
msgid "Transmission"
msgstr "Transmisi<73>n"
#: femonosd.c:383
msgid "Bandwidth"
msgstr "Ancho de banda"
#: femonosd.c:390
msgid "Coderate"
msgstr "Coderate"
#: femonosd.c:393
msgid "Hierarchy"
msgstr "Jerarqu<71>a"
#: femonosd.c:395
msgid "Guard"
msgstr "Int.Guarda"
#: femonosd.c:410 femonosd.c:453
msgid "Stream Information"
msgstr "Informaci<63>n del flujo"
#: femonosd.c:416
msgid "Video Stream"
msgstr "Flujo de video"
#: femonosd.c:419 femonosd.c:437 femonosd.c:460
msgid "Bitrate"
msgstr "Tasa de bits"
#: femonosd.c:422
msgid "Aspect Ratio"
msgstr "Proporciones de la imagen"
#: femonosd.c:425
msgid "Frame Rate"
msgstr "Tasa de frames"
#: femonosd.c:426
msgid "Hz"
msgstr "Hz"
#: femonosd.c:428
msgid "Video Format"
msgstr "Formato de video"
#: femonosd.c:431
msgid "Resolution"
msgstr "Resoluci<63>n"
#: femonosd.c:434
msgid "Audio Stream"
msgstr "Flujo de audio"
#: femonosd.c:440
msgid "MPEG Layer"
msgstr "Nivel MPEG"
#: femonosd.c:443 femonosd.c:463
msgid "Sampling Frequency"
msgstr "Frecuencia de muestreo"
#: femonosd.c:453
msgid "AC-3 Stream"
msgstr "Flujo AC-3"
#: femonosd.c:464 femontools.c:400
msgid "kHz"
msgstr "kHz"
#: femonosd.c:466
msgid "Frame Size"
msgstr "Tama<6D>o de frame"
#: femonosd.c:469
msgid "Bit Stream Mode"
msgstr "Modo bitstream"
#: femonosd.c:472
msgid "Audio Coding Mode"
msgstr "Modo de codificaci<63>n de audio"
#: femonosd.c:475
msgid "Center Mix Level"
msgstr "Nivel sonoro central"
#: femonosd.c:478
msgid "Surround Mix Level"
msgstr "Nivel sonoro surround"
#: femonosd.c:481
msgid "Dolby Surround Mode"
msgstr "Nivel sonoro Dolby Surround"
#: femonosd.c:484
msgid "Low Frequency Effects"
msgstr "Efectos de baja frecuencia"
#: femonosd.c:485 femontools.c:249
msgid "Off"
msgstr "Off"
#: femonosd.c:485 femontools.c:250
msgid "On"
msgstr "On"
#: femonosd.c:487
msgid "Dialogue Normalization"
msgstr "Normalizaci<63>n del di<64>logo"
#: femontools.c:189
msgid "Free to Air"
msgstr "Free to air"
#: femontools.c:191
msgid "Fixed"
msgstr "Fijo"
#: femontools.c:192
msgid "Analog"
msgstr "Anal<61>gico"
#: femontools.c:193
msgid "SECA/Mediaguard"
msgstr "SECA/Mediguard"
#: femontools.c:194
msgid "Viaccess"
msgstr "Viaccess"
#: femontools.c:195
msgid "Irdeto"
msgstr "Irdeto"
#: femontools.c:196
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
#: femontools.c:197
msgid "Conax"
msgstr "Conax"
#: femontools.c:198
msgid "CryptoWorks"
msgstr "CryptoWorks"
#: femontools.c:199
msgid "PowerVu"
msgstr "PowerVu"
#: femontools.c:200 femontools.c:202
msgid "NagraVision"
msgstr "NagraVision"
#: femontools.c:201
msgid "BetaCrypt"
msgstr "BetaCrypt"
#: femontools.c:203
msgid "SkyCrypt"
msgstr "SkyCrypt"
#: femontools.c:211 femontools.c:259
msgid "None"
msgstr "Ninguno"
#: femontools.c:220 femontools.c:230 femontools.c:241 femontools.c:251
#: femontools.c:263 femontools.c:275 femontools.c:289
msgid "Auto"
msgstr "Auto"
#: femontools.c:238 femontools.c:239 femontools.c:240 femontools.c:391
msgid "MHz"
msgstr "MHz"
#: femontools.c:297 femontools.c:354 femontools.c:365 femontools.c:376
#: femontools.c:398 femontools.c:407
msgid "reserved"
msgstr "reservado"
#: femontools.c:309
msgid "unknown"
msgstr "desconocido"
#: femontools.c:310
msgid "PAL"
msgstr "PAL"
#: femontools.c:311
msgid "NTSC"
msgstr "NTSC"
#: femontools.c:319
msgid "Complete Main (CM)"
msgstr "Principal (CM)"
#: femontools.c:320
msgid "Music and Effects (ME)"
msgstr "M<>sica y efectos (ME)"
#: femontools.c:321
msgid "Visually Impaired (VI)"
msgstr "Imagen deteriorada (VI)"
#: femontools.c:322
msgid "Hearing Impaired (HI)"
msgstr "Hearing deteriorado"
#: femontools.c:323
msgid "Dialogue (D)"
msgstr "Di<44>logo (D)"
#: femontools.c:324
msgid "Commentary (C)"
msgstr "Comentario (C)"
#: femontools.c:325
msgid "Emergency (E)"
msgstr "Emergencia (E)"
#: femontools.c:326
msgid "Karaoke"
msgstr "Karaoke"
#: femontools.c:326
msgid "Voice Over (VO)"
msgstr "Voz off (VO)"
#: femontools.c:335
msgid "Ch1"
msgstr "Can. 1"
#: femontools.c:335
msgid "Ch2"
msgstr "Can. 2"
#: femontools.c:336 femontools.c:338 femontools.c:340 femontools.c:342
msgid "C"
msgstr "C"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "L"
msgstr "I"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "R"
msgstr "D"
#: femontools.c:339 femontools.c:340
msgid "S"
msgstr "S"
#: femontools.c:341 femontools.c:342
msgid "SL"
msgstr "SI"
#: femontools.c:341 femontools.c:342
msgid "SR"
msgstr "SD"
#: femontools.c:351 femontools.c:352 femontools.c:353 femontools.c:362
#: femontools.c:363 femontools.c:364 femontools.c:384
msgid "dB"
msgstr "dB"
#: femontools.c:373
msgid "not indicated"
msgstr "no indicado"
#: femontools.c:408
msgid "free"
msgstr "libre"
#: femontools.c:416 femontools.c:417
msgid "Mbit/s"
msgstr "Mbit/s"
#: femontools.c:423 femontools.c:424
msgid "kbit/s"
msgstr "kbit/s"

View File

@@ -1,533 +0,0 @@
# VDR plugin language source file.
# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
# This file is distributed under the same license as the VDR package.
# Arthur Konovalov
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2007-08-12 23:22+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Arthur Konovalov\n"
"Language-Team: <vdr@linuxtv.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-13\n"
"Content-Transfer-Encoding: 8bit\n"
#: femon.c:22
msgid "DVB Signal Information Monitor (OSD)"
msgstr "DVB Signaalmonitor (OSD)"
#: femon.c:23
msgid "Signal Information"
msgstr "Signaaliinfo"
#: femon.c:101
msgid "Femon not available while replaying"
msgstr ""
#: femon.c:278
msgid "basic"
msgstr "standard"
#: femon.c:279
msgid "transponder"
msgstr "transponder"
#: femon.c:280
msgid "stream"
msgstr "voog"
#: femon.c:281 femonosd.c:276
msgid "AC-3"
msgstr "AC-3"
#: femon.c:283 femon.c:286
msgid "Classic"
msgstr "Klassikaline"
#: femon.c:284 femon.c:287
msgid "Elchi"
msgstr "Elchi"
#: femon.c:288
msgid "DeepBlue"
msgstr "DeepBlue"
#: femon.c:289
msgid "Moronimo"
msgstr "Moronimo"
#: femon.c:290
msgid "Enigma"
msgstr "Enigma"
#: femon.c:291
msgid "EgalsTry"
msgstr "EgalsTry"
#: femon.c:292
msgid "Duotone"
msgstr "Duotone"
#: femon.c:293
msgid "SilverGreen"
msgstr "SilverGreen"
#: femon.c:304
msgid "Hide main menu entry"
msgstr "Peida valik peamen<65><6E>s"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:374
msgid "no"
msgstr "ei"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:375
msgid "yes"
msgstr "jah"
#: femon.c:305
msgid "Default display mode"
msgstr "Vaikimisi displei moodus"
#: femon.c:306
msgid "Skin"
msgstr "Kest"
#: femon.c:307
msgid "Theme"
msgstr "Teema"
#: femon.c:308
msgid "Position"
msgstr "Positsioon"
#: femon.c:308
msgid "bottom"
msgstr "all"
#: femon.c:308
msgid "top"
msgstr "<22>leval"
#: femon.c:309
msgid "Height"
msgstr "K<>rgus"
#: femon.c:310
msgid "Horizontal offset"
msgstr "Horisontaalne nihe"
#: femon.c:311
msgid "Show CA system"
msgstr "N<>ita CA s<>steemi"
#: femon.c:312
msgid "Red limit [%]"
msgstr "Punase limiit [%]"
#: femon.c:313
msgid "Green limit [%]"
msgstr "Rohelise limiit [%]"
#: femon.c:314
msgid "OSD update interval [0.1s]"
msgstr "Uuendusintervall [0,1s]"
#: femon.c:315
msgid "Analyze stream"
msgstr "Voo anal<61><6C>s"
#: femon.c:317
msgid "Calculation interval [0.1s]"
msgstr "Kalkulatsiooni intervall [0,1s]"
#: femon.c:318
msgid "Use SVDRP service"
msgstr ""
#: femon.c:320
msgid "SVDRP service port"
msgstr ""
#: femon.c:321
msgid "SVDRP service IP"
msgstr ""
#: femonosd.c:268
msgid "Video"
msgstr "Video"
#: femonosd.c:276
msgid "Audio"
msgstr "Audio"
#: femonosd.c:305
msgid "Transponder Information"
msgstr "Transponderi info"
#: femonosd.c:311
msgid "Vpid"
msgstr "Vpid"
#: femonosd.c:313
msgid "Ppid"
msgstr "Ppid"
#: femonosd.c:316
msgid "Apid"
msgstr "Apid"
#: femonosd.c:318
msgid "Dpid"
msgstr "Dpid"
#: femonosd.c:321
msgid "CA"
msgstr "CA"
#: femonosd.c:323
msgid "Tpid"
msgstr "Tpid"
#: femonosd.c:326
msgid "Sid"
msgstr "Sid"
#: femonosd.c:328
msgid "Nid"
msgstr "Nid"
#: femonosd.c:331
msgid "Tid"
msgstr "Tid"
#: femonosd.c:333
msgid "Rid"
msgstr "Rid"
#: femonosd.c:338
msgid "Satellite Card"
msgstr "Satelliidikaart"
#: femonosd.c:340 femonosd.c:359 femonosd.c:378
msgid "Frequency"
msgstr "Sagedus"
#: femonosd.c:342 femonosd.c:361
msgid "Source"
msgstr "Allikas"
#: femonosd.c:345 femonosd.c:364
msgid "Srate"
msgstr "Srate"
#: femonosd.c:347
msgid "Polarization"
msgstr "Polarisatsioon"
#: femonosd.c:350 femonosd.c:369 femonosd.c:388
msgid "Inversion"
msgstr "Inversioon"
#: femonosd.c:352 femonosd.c:371
msgid "CoderateH"
msgstr "CoderateH"
#: femonosd.c:357
msgid "Cable Card"
msgstr "Kaablikaart"
#: femonosd.c:366 femonosd.c:385
msgid "Modulation"
msgstr "Modulatsioon"
#: femonosd.c:376
msgid "Terrestrial Card"
msgstr "Terrestiaalkaart"
#: femonosd.c:380
msgid "Transmission"
msgstr "Transmissioon"
#: femonosd.c:383
msgid "Bandwidth"
msgstr "Ribalaius"
#: femonosd.c:390
msgid "Coderate"
msgstr "Coderate"
#: femonosd.c:393
msgid "Hierarchy"
msgstr "Hierarhia"
#: femonosd.c:395
msgid "Guard"
msgstr "Guard"
#: femonosd.c:410 femonosd.c:453
msgid "Stream Information"
msgstr "Voo info"
#: femonosd.c:416
msgid "Video Stream"
msgstr "Videovoog"
#: femonosd.c:419 femonosd.c:437 femonosd.c:460
msgid "Bitrate"
msgstr "Bitikiirus"
#: femonosd.c:422
msgid "Aspect Ratio"
msgstr "K<>lgsuhe"
#: femonosd.c:425
msgid "Frame Rate"
msgstr "Kaadrisagedus"
#: femonosd.c:426
msgid "Hz"
msgstr "Hz"
#: femonosd.c:428
msgid "Video Format"
msgstr "Videoformaat"
#: femonosd.c:431
msgid "Resolution"
msgstr "Resolutsioon"
#: femonosd.c:434
msgid "Audio Stream"
msgstr "Audiovoog"
#: femonosd.c:440
msgid "MPEG Layer"
msgstr "MPEG tase"
#: femonosd.c:443 femonosd.c:463
msgid "Sampling Frequency"
msgstr "S<>mplimissagedus"
#: femonosd.c:453
msgid "AC-3 Stream"
msgstr "AC-3 voog"
#: femonosd.c:464 femontools.c:400
msgid "kHz"
msgstr "kHz"
#: femonosd.c:466
msgid "Frame Size"
msgstr "Kaadri suurus"
#: femonosd.c:469
msgid "Bit Stream Mode"
msgstr "Bitivoo t<><74>p"
#: femonosd.c:472
msgid "Audio Coding Mode"
msgstr "Audiokodeering"
#: femonosd.c:475
msgid "Center Mix Level"
msgstr "Keskmise kanali tase"
#: femonosd.c:478
msgid "Surround Mix Level"
msgstr "Surround kanali tase"
#: femonosd.c:481
msgid "Dolby Surround Mode"
msgstr "Dolby Surround'i t<><74>p"
#: femonosd.c:484
msgid "Low Frequency Effects"
msgstr "LFE kanal"
#: femonosd.c:485 femontools.c:249
msgid "Off"
msgstr "V<>ljas"
#: femonosd.c:485 femontools.c:250
msgid "On"
msgstr "Sees"
#: femonosd.c:487
msgid "Dialogue Normalization"
msgstr "Dialoogi normalisatsioon"
#: femontools.c:189
msgid "Free to Air"
msgstr "FTA"
#: femontools.c:191
msgid "Fixed"
msgstr "Fikseeritud"
#: femontools.c:192
msgid "Analog"
msgstr ""
#: femontools.c:193
msgid "SECA/Mediaguard"
msgstr "SECA/Mediaguard"
#: femontools.c:194
msgid "Viaccess"
msgstr "Viaccess"
#: femontools.c:195
msgid "Irdeto"
msgstr "Irdeto"
#: femontools.c:196
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
#: femontools.c:197
msgid "Conax"
msgstr "Conax"
#: femontools.c:198
msgid "CryptoWorks"
msgstr "CryptoWorks"
#: femontools.c:199
msgid "PowerVu"
msgstr "PowerVu"
#: femontools.c:200 femontools.c:202
msgid "NagraVision"
msgstr "NagraVision"
#: femontools.c:201
msgid "BetaCrypt"
msgstr "BetaCrypt"
#: femontools.c:203
msgid "SkyCrypt"
msgstr "SkyCrypt"
#: femontools.c:211 femontools.c:259
msgid "None"
msgstr "Ei"
#: femontools.c:220 femontools.c:230 femontools.c:241 femontools.c:251
#: femontools.c:263 femontools.c:275 femontools.c:289
msgid "Auto"
msgstr "Auto"
#: femontools.c:238 femontools.c:239 femontools.c:240 femontools.c:391
msgid "MHz"
msgstr "MHz"
#: femontools.c:297 femontools.c:354 femontools.c:365 femontools.c:376
#: femontools.c:398 femontools.c:407
msgid "reserved"
msgstr "reserveeritud"
#: femontools.c:309
msgid "unknown"
msgstr "tundmatu"
#: femontools.c:310
msgid "PAL"
msgstr "PAL"
#: femontools.c:311
msgid "NTSC"
msgstr "NTSC"
#: femontools.c:319
msgid "Complete Main (CM)"
msgstr "T<>iskomplekt (CM)"
#: femontools.c:320
msgid "Music and Effects (ME)"
msgstr "Muusika ja efektid (ME)"
#: femontools.c:321
msgid "Visually Impaired (VI)"
msgstr "Vaegn<67>gemine (VE)"
#: femontools.c:322
msgid "Hearing Impaired (HI)"
msgstr "Vaegkuulmine (HI)"
#: femontools.c:323
msgid "Dialogue (D)"
msgstr "Dialoog (D)"
#: femontools.c:324
msgid "Commentary (C)"
msgstr "Kommentaar (C)"
#: femontools.c:325
msgid "Emergency (E)"
msgstr "H<>dateade (E)"
#: femontools.c:326
msgid "Karaoke"
msgstr "Karaoke"
#: femontools.c:326
msgid "Voice Over (VO)"
msgstr "Pealer<65><72>kimine (VO)"
#: femontools.c:335
msgid "Ch1"
msgstr "Kan. 1"
#: femontools.c:335
msgid "Ch2"
msgstr "Kan. 2"
#: femontools.c:336 femontools.c:338 femontools.c:340 femontools.c:342
msgid "C"
msgstr "C"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "L"
msgstr "L"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "R"
msgstr "R"
#: femontools.c:339 femontools.c:340
msgid "S"
msgstr "S"
#: femontools.c:341 femontools.c:342
msgid "SL"
msgstr "SL"
#: femontools.c:341 femontools.c:342
msgid "SR"
msgstr "SR"
#: femontools.c:351 femontools.c:352 femontools.c:353 femontools.c:362
#: femontools.c:363 femontools.c:364 femontools.c:384
msgid "dB"
msgstr "dB"
#: femontools.c:373
msgid "not indicated"
msgstr "m<>rkimata"
#: femontools.c:408
msgid "free"
msgstr "vaba"
#: femontools.c:416 femontools.c:417
msgid "Mbit/s"
msgstr "Mbit/s"
#: femontools.c:423 femontools.c:424
msgid "kbit/s"
msgstr "kbit/s"

View File

@@ -1,533 +0,0 @@
# VDR plugin language source file.
# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
# This file is distributed under the same license as the VDR package.
# Rolf Ahrenberg
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2007-08-12 23:22+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Rolf Ahrenberg\n"
"Language-Team: <vdr@linuxtv.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
#: femon.c:22
msgid "DVB Signal Information Monitor (OSD)"
msgstr "Signaalimittari (OSD)"
#: femon.c:23
msgid "Signal Information"
msgstr "Signaalimittari"
#: femon.c:101
msgid "Femon not available while replaying"
msgstr "Signaalimittari ei ole k<>ytett<74>viss<73> toiston aikana"
#: femon.c:278
msgid "basic"
msgstr "perus"
#: femon.c:279
msgid "transponder"
msgstr "transponderi"
#: femon.c:280
msgid "stream"
msgstr "l<>hete"
#: femon.c:281 femonosd.c:276
msgid "AC-3"
msgstr "AC-3"
#: femon.c:283 femon.c:286
msgid "Classic"
msgstr "Klassinen"
#: femon.c:284 femon.c:287
msgid "Elchi"
msgstr "Elchi"
#: femon.c:288
msgid "DeepBlue"
msgstr "DeepBlue"
#: femon.c:289
msgid "Moronimo"
msgstr "Moronimo"
#: femon.c:290
msgid "Enigma"
msgstr "Enigma"
#: femon.c:291
msgid "EgalsTry"
msgstr "EgalsTry"
#: femon.c:292
msgid "Duotone"
msgstr "Duotone"
#: femon.c:293
msgid "SilverGreen"
msgstr "SilverGreen"
#: femon.c:304
msgid "Hide main menu entry"
msgstr "Piilota valinta p<><70>valikosta"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:374
msgid "no"
msgstr "ei"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:375
msgid "yes"
msgstr "kyll<6C>"
#: femon.c:305
msgid "Default display mode"
msgstr "Oletusn<73>ytt<74>tila"
#: femon.c:306
msgid "Skin"
msgstr "Ulkoasu"
#: femon.c:307
msgid "Theme"
msgstr "Teema"
#: femon.c:308
msgid "Position"
msgstr "Sijainti"
#: femon.c:308
msgid "bottom"
msgstr "alareuna"
#: femon.c:308
msgid "top"
msgstr "yl<79>reuna"
#: femon.c:309
msgid "Height"
msgstr "Korkeus"
#: femon.c:310
msgid "Horizontal offset"
msgstr "Vaakakeskitys"
#: femon.c:311
msgid "Show CA system"
msgstr "N<>yt<79> salausj<73>rjestelm<6C>"
#: femon.c:312
msgid "Red limit [%]"
msgstr "Punaisen taso [%]"
#: femon.c:313
msgid "Green limit [%]"
msgstr "Vihre<72>n taso [%]"
#: femon.c:314
msgid "OSD update interval [0.1s]"
msgstr "N<>yt<79>n p<>ivitysv<73>li [0.1s]"
#: femon.c:315
msgid "Analyze stream"
msgstr "L<>hetteen analysointi"
#: femon.c:317
msgid "Calculation interval [0.1s]"
msgstr "Laskennan p<>ivitysv<73>li [0.1s]"
#: femon.c:318
msgid "Use SVDRP service"
msgstr "K<>yt<79> SVDRP-palvelua"
#: femon.c:320
msgid "SVDRP service port"
msgstr "SVDRP-palvelun portti"
#: femon.c:321
msgid "SVDRP service IP"
msgstr "SVDRP-palvelun IP-osoite"
#: femonosd.c:268
msgid "Video"
msgstr "Kuva"
#: femonosd.c:276
msgid "Audio"
msgstr "<22><>ni"
#: femonosd.c:305
msgid "Transponder Information"
msgstr "Transponderin tiedot"
#: femonosd.c:311
msgid "Vpid"
msgstr "Kuva-PID"
#: femonosd.c:313
msgid "Ppid"
msgstr "PCR-PID"
#: femonosd.c:316
msgid "Apid"
msgstr "<22><>ni-PID"
#: femonosd.c:318
msgid "Dpid"
msgstr "Dolby-PID"
#: femonosd.c:321
msgid "CA"
msgstr "Salaus (CA)"
#: femonosd.c:323
msgid "Tpid"
msgstr "Teksti-TV-PID"
#: femonosd.c:326
msgid "Sid"
msgstr "Palvelu-ID"
#: femonosd.c:328
msgid "Nid"
msgstr "Verkko-ID"
#: femonosd.c:331
msgid "Tid"
msgstr "L<>hete-ID"
#: femonosd.c:333
msgid "Rid"
msgstr "Radio-ID"
#: femonosd.c:338
msgid "Satellite Card"
msgstr "Satelliittikortti"
#: femonosd.c:340 femonosd.c:359 femonosd.c:378
msgid "Frequency"
msgstr "Taajuus"
#: femonosd.c:342 femonosd.c:361
msgid "Source"
msgstr "L<>hde"
#: femonosd.c:345 femonosd.c:364
msgid "Srate"
msgstr "Symbolinopeus"
#: femonosd.c:347
msgid "Polarization"
msgstr "Polarisaatio"
#: femonosd.c:350 femonosd.c:369 femonosd.c:388
msgid "Inversion"
msgstr "Inversio"
#: femonosd.c:352 femonosd.c:371
msgid "CoderateH"
msgstr "Suojaustaso (HP)"
#: femonosd.c:357
msgid "Cable Card"
msgstr "Kaapelikortti"
#: femonosd.c:366 femonosd.c:385
msgid "Modulation"
msgstr "Modulaatio"
#: femonosd.c:376
msgid "Terrestrial Card"
msgstr "Terrestriaalikortti"
#: femonosd.c:380
msgid "Transmission"
msgstr "Transmissio"
#: femonosd.c:383
msgid "Bandwidth"
msgstr "Kaistanleveys"
#: femonosd.c:390
msgid "Coderate"
msgstr "Suojaustaso"
#: femonosd.c:393
msgid "Hierarchy"
msgstr "Hierarkia"
#: femonosd.c:395
msgid "Guard"
msgstr "Suojav<61>li"
#: femonosd.c:410 femonosd.c:453
msgid "Stream Information"
msgstr "L<>hetteen tiedot"
#: femonosd.c:416
msgid "Video Stream"
msgstr "Kuvaraita"
#: femonosd.c:419 femonosd.c:437 femonosd.c:460
msgid "Bitrate"
msgstr "Bittinopeus"
#: femonosd.c:422
msgid "Aspect Ratio"
msgstr "Kuvasuhde"
#: femonosd.c:425
msgid "Frame Rate"
msgstr "Ruudunp<6E>ivitystaajuus"
#: femonosd.c:426
msgid "Hz"
msgstr "Hz"
#: femonosd.c:428
msgid "Video Format"
msgstr "Kuvaformaatti"
#: femonosd.c:431
msgid "Resolution"
msgstr "Resoluutio"
#: femonosd.c:434
msgid "Audio Stream"
msgstr "<22><>niraita"
#: femonosd.c:440
msgid "MPEG Layer"
msgstr "MPEG-taso"
#: femonosd.c:443 femonosd.c:463
msgid "Sampling Frequency"
msgstr "N<>ytteenottotaajuus"
#: femonosd.c:453
msgid "AC-3 Stream"
msgstr "AC-3-<2D><>niraita"
#: femonosd.c:464 femontools.c:400
msgid "kHz"
msgstr "kHz"
#: femonosd.c:466
msgid "Frame Size"
msgstr "Kehyksen koko"
#: femonosd.c:469
msgid "Bit Stream Mode"
msgstr "L<>hetteen tyyppi"
#: femonosd.c:472
msgid "Audio Coding Mode"
msgstr "<22><>nikoodaus"
#: femonosd.c:475
msgid "Center Mix Level"
msgstr "Keskikanavan taso"
#: femonosd.c:478
msgid "Surround Mix Level"
msgstr "Tehostekanavien taso"
#: femonosd.c:481
msgid "Dolby Surround Mode"
msgstr "Dolby Surround -tehoste"
#: femonosd.c:484
msgid "Low Frequency Effects"
msgstr "LFE-kanava"
#: femonosd.c:485 femontools.c:249
msgid "Off"
msgstr "poissa"
#: femonosd.c:485 femontools.c:250
msgid "On"
msgstr "p<><70>ll<6C>"
#: femonosd.c:487
msgid "Dialogue Normalization"
msgstr "Dialogin normalisointi"
#: femontools.c:189
msgid "Free to Air"
msgstr "salaamaton"
#: femontools.c:191
msgid "Fixed"
msgstr "kiinte<74>"
#: femontools.c:192
msgid "Analog"
msgstr "analoginen"
#: femontools.c:193
msgid "SECA/Mediaguard"
msgstr "SECA/Mediaguard"
#: femontools.c:194
msgid "Viaccess"
msgstr "Viaccess"
#: femontools.c:195
msgid "Irdeto"
msgstr "Irdeto"
#: femontools.c:196
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
#: femontools.c:197
msgid "Conax"
msgstr "Conax"
#: femontools.c:198
msgid "CryptoWorks"
msgstr "CryptoWorks"
#: femontools.c:199
msgid "PowerVu"
msgstr "PowerVu"
#: femontools.c:200 femontools.c:202
msgid "NagraVision"
msgstr "NagraVision"
#: femontools.c:201
msgid "BetaCrypt"
msgstr "BetaCrypt"
#: femontools.c:203
msgid "SkyCrypt"
msgstr "SkyCrypt"
#: femontools.c:211 femontools.c:259
msgid "None"
msgstr "ei"
#: femontools.c:220 femontools.c:230 femontools.c:241 femontools.c:251
#: femontools.c:263 femontools.c:275 femontools.c:289
msgid "Auto"
msgstr "auto"
#: femontools.c:238 femontools.c:239 femontools.c:240 femontools.c:391
msgid "MHz"
msgstr "MHz"
#: femontools.c:297 femontools.c:354 femontools.c:365 femontools.c:376
#: femontools.c:398 femontools.c:407
msgid "reserved"
msgstr "varattu"
#: femontools.c:309
msgid "unknown"
msgstr "tuntematon"
#: femontools.c:310
msgid "PAL"
msgstr "PAL"
#: femontools.c:311
msgid "NTSC"
msgstr "NTSC"
#: femontools.c:319
msgid "Complete Main (CM)"
msgstr "P<><50>asiallinen (CM)"
#: femontools.c:320
msgid "Music and Effects (ME)"
msgstr "Musiikki ja tehosteet (ME)"
#: femontools.c:321
msgid "Visually Impaired (VI)"
msgstr "N<>k<EFBFBD>rajoitteinen (VI)"
#: femontools.c:322
msgid "Hearing Impaired (HI)"
msgstr "Kuulorajoitteinen (HI)"
#: femontools.c:323
msgid "Dialogue (D)"
msgstr "Vuoropuhelu (D)"
#: femontools.c:324
msgid "Commentary (C)"
msgstr "Kommentointi (C)"
#: femontools.c:325
msgid "Emergency (E)"
msgstr "H<>t<EFBFBD>tiedote (E)"
#: femontools.c:326
msgid "Karaoke"
msgstr "Karaoke"
#: femontools.c:326
msgid "Voice Over (VO)"
msgstr "P<><50>lle puhuttu (VO)"
#: femontools.c:335
msgid "Ch1"
msgstr "kan. 1"
#: femontools.c:335
msgid "Ch2"
msgstr "kan. 2"
#: femontools.c:336 femontools.c:338 femontools.c:340 femontools.c:342
msgid "C"
msgstr "K"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "L"
msgstr "V"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "R"
msgstr "O"
#: femontools.c:339 femontools.c:340
msgid "S"
msgstr "T"
#: femontools.c:341 femontools.c:342
msgid "SL"
msgstr "TV"
#: femontools.c:341 femontools.c:342
msgid "SR"
msgstr "TO"
#: femontools.c:351 femontools.c:352 femontools.c:353 femontools.c:362
#: femontools.c:363 femontools.c:364 femontools.c:384
msgid "dB"
msgstr "dB"
#: femontools.c:373
msgid "not indicated"
msgstr "ei ilmaistu"
#: femontools.c:408
msgid "free"
msgstr "vapaa"
#: femontools.c:416 femontools.c:417
msgid "Mbit/s"
msgstr "Mbit/s"
#: femontools.c:423 femontools.c:424
msgid "kbit/s"
msgstr "kbit/s"

View File

@@ -1,533 +0,0 @@
# VDR plugin language source file.
# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
# This file is distributed under the same license as the VDR package.
# Nicolas Huillard
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2007-08-12 23:22+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Nicolas Huillard\n"
"Language-Team: <vdr@linuxtv.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#: femon.c:22
msgid "DVB Signal Information Monitor (OSD)"
msgstr "Affiche les informations du signal DVB"
#: femon.c:23
msgid "Signal Information"
msgstr "Signal DVB"
#: femon.c:101
msgid "Femon not available while replaying"
msgstr ""
#: femon.c:278
msgid "basic"
msgstr "basique"
#: femon.c:279
msgid "transponder"
msgstr "transpondeur"
#: femon.c:280
msgid "stream"
msgstr "flux"
#: femon.c:281 femonosd.c:276
msgid "AC-3"
msgstr "AC-3"
#: femon.c:283 femon.c:286
msgid "Classic"
msgstr "Classique"
#: femon.c:284 femon.c:287
msgid "Elchi"
msgstr "Elchi"
#: femon.c:288
msgid "DeepBlue"
msgstr "DeepBlue"
#: femon.c:289
msgid "Moronimo"
msgstr "Moronimo"
#: femon.c:290
msgid "Enigma"
msgstr "Enigma"
#: femon.c:291
msgid "EgalsTry"
msgstr "EgalsTry"
#: femon.c:292
msgid "Duotone"
msgstr "Duotone"
#: femon.c:293
msgid "SilverGreen"
msgstr "SilverGreen"
#: femon.c:304
msgid "Hide main menu entry"
msgstr "Masquer dans le menu principal"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:374
msgid "no"
msgstr "non"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:375
msgid "yes"
msgstr "oui"
#: femon.c:305
msgid "Default display mode"
msgstr "Affichage par d<>faut"
#: femon.c:306
msgid "Skin"
msgstr "Skin"
#: femon.c:307
msgid "Theme"
msgstr "Th<54>me"
#: femon.c:308
msgid "Position"
msgstr "Position"
#: femon.c:308
msgid "bottom"
msgstr "bas"
#: femon.c:308
msgid "top"
msgstr "haut"
#: femon.c:309
msgid "Height"
msgstr "Hauteur"
#: femon.c:310
msgid "Horizontal offset"
msgstr "D<>placement horizontal"
#: femon.c:311
msgid "Show CA system"
msgstr "Syst<73>me CA"
#: femon.c:312
msgid "Red limit [%]"
msgstr "Limite du rouge (%)"
#: femon.c:313
msgid "Green limit [%]"
msgstr "Limite du vert (%)"
#: femon.c:314
msgid "OSD update interval [0.1s]"
msgstr "Intervalle de mise <20> jour (0,1s)"
#: femon.c:315
msgid "Analyze stream"
msgstr "Analyser le flux"
#: femon.c:317
msgid "Calculation interval [0.1s]"
msgstr "Intervalle de calcul (0,1s)"
#: femon.c:318
msgid "Use SVDRP service"
msgstr ""
#: femon.c:320
msgid "SVDRP service port"
msgstr ""
#: femon.c:321
msgid "SVDRP service IP"
msgstr ""
#: femonosd.c:268
msgid "Video"
msgstr "Vid<69>o"
#: femonosd.c:276
msgid "Audio"
msgstr "Audio"
#: femonosd.c:305
msgid "Transponder Information"
msgstr "Information transpondeur"
#: femonosd.c:311
msgid "Vpid"
msgstr "PID Vid<69>o"
#: femonosd.c:313
msgid "Ppid"
msgstr "Ppid"
#: femonosd.c:316
msgid "Apid"
msgstr "Apid"
#: femonosd.c:318
msgid "Dpid"
msgstr "Dpid"
#: femonosd.c:321
msgid "CA"
msgstr "Cryptage"
#: femonosd.c:323
msgid "Tpid"
msgstr "PID T<>l<EFBFBD>texte"
#: femonosd.c:326
msgid "Sid"
msgstr "Sid"
#: femonosd.c:328
msgid "Nid"
msgstr "Nid"
#: femonosd.c:331
msgid "Tid"
msgstr "Tid"
#: femonosd.c:333
msgid "Rid"
msgstr "Rid"
#: femonosd.c:338
msgid "Satellite Card"
msgstr "Carte Satellite"
#: femonosd.c:340 femonosd.c:359 femonosd.c:378
msgid "Frequency"
msgstr "Fr<46>quence"
#: femonosd.c:342 femonosd.c:361
msgid "Source"
msgstr "Source"
#: femonosd.c:345 femonosd.c:364
msgid "Srate"
msgstr "Fr<46>q. Symbole"
#: femonosd.c:347
msgid "Polarization"
msgstr "Polarisation"
#: femonosd.c:350 femonosd.c:369 femonosd.c:388
msgid "Inversion"
msgstr "Inversion"
#: femonosd.c:352 femonosd.c:371
msgid "CoderateH"
msgstr "CoderateH"
#: femonosd.c:357
msgid "Cable Card"
msgstr "Carte C<>ble"
#: femonosd.c:366 femonosd.c:385
msgid "Modulation"
msgstr "Modulation"
#: femonosd.c:376
msgid "Terrestrial Card"
msgstr "Carte TNT"
#: femonosd.c:380
msgid "Transmission"
msgstr "Transmission"
#: femonosd.c:383
msgid "Bandwidth"
msgstr "Bande passante"
#: femonosd.c:390
msgid "Coderate"
msgstr "Coderate"
#: femonosd.c:393
msgid "Hierarchy"
msgstr "Hi<48>rarchie"
#: femonosd.c:395
msgid "Guard"
msgstr "Guard"
#: femonosd.c:410 femonosd.c:453
msgid "Stream Information"
msgstr "Information flux"
#: femonosd.c:416
msgid "Video Stream"
msgstr "Flux vid<69>o"
#: femonosd.c:419 femonosd.c:437 femonosd.c:460
msgid "Bitrate"
msgstr "Bitrate"
#: femonosd.c:422
msgid "Aspect Ratio"
msgstr "Proportions d'image"
#: femonosd.c:425
msgid "Frame Rate"
msgstr "Rafra<72>chissement"
#: femonosd.c:426
msgid "Hz"
msgstr "Hz"
#: femonosd.c:428
msgid "Video Format"
msgstr "Standard vid<69>o"
#: femonosd.c:431
msgid "Resolution"
msgstr "R<>solution"
#: femonosd.c:434
msgid "Audio Stream"
msgstr "Flux audio"
#: femonosd.c:440
msgid "MPEG Layer"
msgstr "MPEG Layer"
#: femonosd.c:443 femonosd.c:463
msgid "Sampling Frequency"
msgstr "Fr<46>quence d'<27>chantillonage"
#: femonosd.c:453
msgid "AC-3 Stream"
msgstr "Flux AC-3"
#: femonosd.c:464 femontools.c:400
msgid "kHz"
msgstr "kHz"
#: femonosd.c:466
msgid "Frame Size"
msgstr "Taille de paquet"
#: femonosd.c:469
msgid "Bit Stream Mode"
msgstr "Mode bitstream"
#: femonosd.c:472
msgid "Audio Coding Mode"
msgstr "Mode de codage audio"
#: femonosd.c:475
msgid "Center Mix Level"
msgstr "Niveau sonore milieu"
#: femonosd.c:478
msgid "Surround Mix Level"
msgstr "Niveau sonore surround"
#: femonosd.c:481
msgid "Dolby Surround Mode"
msgstr "Mode Dolby Surround"
#: femonosd.c:484
msgid "Low Frequency Effects"
msgstr "Effets de basses"
#: femonosd.c:485 femontools.c:249
msgid "Off"
msgstr "Non"
#: femonosd.c:485 femontools.c:250
msgid "On"
msgstr "Oui"
#: femonosd.c:487
msgid "Dialogue Normalization"
msgstr "Normalisation des dialogues"
#: femontools.c:189
msgid "Free to Air"
msgstr "Free To Air"
#: femontools.c:191
msgid "Fixed"
msgstr "Fixe"
#: femontools.c:192
msgid "Analog"
msgstr "Analogique"
#: femontools.c:193
msgid "SECA/Mediaguard"
msgstr "SECA/Mediaguard"
#: femontools.c:194
msgid "Viaccess"
msgstr "Viaccess"
#: femontools.c:195
msgid "Irdeto"
msgstr "Irdeto"
#: femontools.c:196
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
#: femontools.c:197
msgid "Conax"
msgstr "Conax"
#: femontools.c:198
msgid "CryptoWorks"
msgstr "CryptoWorks"
#: femontools.c:199
msgid "PowerVu"
msgstr "PowerVu"
#: femontools.c:200 femontools.c:202
msgid "NagraVision"
msgstr "NagraVision"
#: femontools.c:201
msgid "BetaCrypt"
msgstr "BetaCrypt"
#: femontools.c:203
msgid "SkyCrypt"
msgstr "SkyCrypt"
#: femontools.c:211 femontools.c:259
msgid "None"
msgstr "Aucun"
#: femontools.c:220 femontools.c:230 femontools.c:241 femontools.c:251
#: femontools.c:263 femontools.c:275 femontools.c:289
msgid "Auto"
msgstr "Auto"
#: femontools.c:238 femontools.c:239 femontools.c:240 femontools.c:391
msgid "MHz"
msgstr "MHz"
#: femontools.c:297 femontools.c:354 femontools.c:365 femontools.c:376
#: femontools.c:398 femontools.c:407
msgid "reserved"
msgstr "r<>serv<72>"
#: femontools.c:309
msgid "unknown"
msgstr "inconnu"
#: femontools.c:310
msgid "PAL"
msgstr "PAL"
#: femontools.c:311
msgid "NTSC"
msgstr "NTSC"
#: femontools.c:319
msgid "Complete Main (CM)"
msgstr "Principal (CM)"
#: femontools.c:320
msgid "Music and Effects (ME)"
msgstr "Musique et effets (ME)"
#: femontools.c:321
msgid "Visually Impaired (VI)"
msgstr "Malvoyants (VI)"
#: femontools.c:322
msgid "Hearing Impaired (HI)"
msgstr "Malentendants (HI)"
#: femontools.c:323
msgid "Dialogue (D)"
msgstr "Dialogue (D)"
#: femontools.c:324
msgid "Commentary (C)"
msgstr "Commentaires (C)"
#: femontools.c:325
msgid "Emergency (E)"
msgstr "Urgence (E)"
#: femontools.c:326
msgid "Karaoke"
msgstr "Karaoke"
#: femontools.c:326
msgid "Voice Over (VO)"
msgstr "Voix off (VO)"
#: femontools.c:335
msgid "Ch1"
msgstr "Can. 1"
#: femontools.c:335
msgid "Ch2"
msgstr "Can. 2"
#: femontools.c:336 femontools.c:338 femontools.c:340 femontools.c:342
msgid "C"
msgstr "Centre"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "L"
msgstr "Gauche"
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "R"
msgstr "Droite"
#: femontools.c:339 femontools.c:340
msgid "S"
msgstr "Surround"
#: femontools.c:341 femontools.c:342
msgid "SL"
msgstr "Surround gauche"
#: femontools.c:341 femontools.c:342
msgid "SR"
msgstr "Surround droit"
#: femontools.c:351 femontools.c:352 femontools.c:353 femontools.c:362
#: femontools.c:363 femontools.c:364 femontools.c:384
msgid "dB"
msgstr "dB"
#: femontools.c:373
msgid "not indicated"
msgstr "non indiqu<71>"
#: femontools.c:408
msgid "free"
msgstr "libre"
#: femontools.c:416 femontools.c:417
msgid "Mbit/s"
msgstr "Mbit/s"
#: femontools.c:423 femontools.c:424
msgid "kbit/s"
msgstr "kbit/s"

View File

@@ -1,533 +0,0 @@
# VDR plugin language source file.
# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
# This file is distributed under the same license as the VDR package.
# Sean Carlos
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2007-08-12 23:22+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Sean Carlos\n"
"Language-Team: <vdr@linuxtv.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
#: femon.c:22
msgid "DVB Signal Information Monitor (OSD)"
msgstr "Visualizza le informazioni sul segnale DVB"
#: femon.c:23
msgid "Signal Information"
msgstr "Informazioni sul segnale"
#: femon.c:101
msgid "Femon not available while replaying"
msgstr ""
#: femon.c:278
msgid "basic"
msgstr ""
#: femon.c:279
msgid "transponder"
msgstr ""
#: femon.c:280
msgid "stream"
msgstr ""
#: femon.c:281 femonosd.c:276
msgid "AC-3"
msgstr "AC-3"
#: femon.c:283 femon.c:286
msgid "Classic"
msgstr ""
#: femon.c:284 femon.c:287
msgid "Elchi"
msgstr "Elchi"
#: femon.c:288
msgid "DeepBlue"
msgstr "DeepBlue"
#: femon.c:289
msgid "Moronimo"
msgstr "Moronimo"
#: femon.c:290
msgid "Enigma"
msgstr "Enigma"
#: femon.c:291
msgid "EgalsTry"
msgstr "EgalsTry"
#: femon.c:292
msgid "Duotone"
msgstr "Duotone"
#: femon.c:293
msgid "SilverGreen"
msgstr "SilverGreen"
#: femon.c:304
msgid "Hide main menu entry"
msgstr "Nascondi voce men<65>"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:374
msgid "no"
msgstr "no"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:375
msgid "yes"
msgstr "si"
#: femon.c:305
msgid "Default display mode"
msgstr "Modo di visualizzazione standard"
#: femon.c:306
msgid "Skin"
msgstr "Stile interfaccia"
#: femon.c:307
msgid "Theme"
msgstr "Tema colori"
#: femon.c:308
msgid "Position"
msgstr "Posizione"
#: femon.c:308
msgid "bottom"
msgstr "in basso"
#: femon.c:308
msgid "top"
msgstr "in alto"
#: femon.c:309
msgid "Height"
msgstr "Altezza"
#: femon.c:310
msgid "Horizontal offset"
msgstr ""
#: femon.c:311
msgid "Show CA system"
msgstr ""
#: femon.c:312
msgid "Red limit [%]"
msgstr "Limite rosso [%]"
#: femon.c:313
msgid "Green limit [%]"
msgstr "Limite de verde [%]"
#: femon.c:314
msgid "OSD update interval [0.1s]"
msgstr "Intervallo di aggiornamento [0.1s]"
#: femon.c:315
msgid "Analyze stream"
msgstr ""
#: femon.c:317
msgid "Calculation interval [0.1s]"
msgstr "Intervallo di calcolo [0.1s]"
#: femon.c:318
msgid "Use SVDRP service"
msgstr ""
#: femon.c:320
msgid "SVDRP service port"
msgstr ""
#: femon.c:321
msgid "SVDRP service IP"
msgstr ""
#: femonosd.c:268
msgid "Video"
msgstr "Video"
#: femonosd.c:276
msgid "Audio"
msgstr "Audio"
#: femonosd.c:305
msgid "Transponder Information"
msgstr "Informazioni transponder"
#: femonosd.c:311
msgid "Vpid"
msgstr "PID Video"
#: femonosd.c:313
msgid "Ppid"
msgstr "PID Pcr"
#: femonosd.c:316
msgid "Apid"
msgstr "Apid"
#: femonosd.c:318
msgid "Dpid"
msgstr "Dpid"
#: femonosd.c:321
msgid "CA"
msgstr "CA"
#: femonosd.c:323
msgid "Tpid"
msgstr "PID Teletext"
#: femonosd.c:326
msgid "Sid"
msgstr "Sid"
#: femonosd.c:328
msgid "Nid"
msgstr "Nid"
#: femonosd.c:331
msgid "Tid"
msgstr "Tid"
#: femonosd.c:333
msgid "Rid"
msgstr "Rid"
#: femonosd.c:338
msgid "Satellite Card"
msgstr "Scheda satellitare"
#: femonosd.c:340 femonosd.c:359 femonosd.c:378
msgid "Frequency"
msgstr "Frequenza"
#: femonosd.c:342 femonosd.c:361
msgid "Source"
msgstr "Sorgente"
#: femonosd.c:345 femonosd.c:364
msgid "Srate"
msgstr "SymbolRate"
#: femonosd.c:347
msgid "Polarization"
msgstr "Polarizzazione"
#: femonosd.c:350 femonosd.c:369 femonosd.c:388
msgid "Inversion"
msgstr "Inversion"
#: femonosd.c:352 femonosd.c:371
msgid "CoderateH"
msgstr "CoderateH"
#: femonosd.c:357
msgid "Cable Card"
msgstr "Scheda via cavo"
#: femonosd.c:366 femonosd.c:385
msgid "Modulation"
msgstr "Modulation"
#: femonosd.c:376
msgid "Terrestrial Card"
msgstr "Scheda terrestre"
#: femonosd.c:380
msgid "Transmission"
msgstr "Transmission"
#: femonosd.c:383
msgid "Bandwidth"
msgstr "Banda passante"
#: femonosd.c:390
msgid "Coderate"
msgstr "Coderate"
#: femonosd.c:393
msgid "Hierarchy"
msgstr "Hierarchy"
#: femonosd.c:395
msgid "Guard"
msgstr "Guard"
#: femonosd.c:410 femonosd.c:453
msgid "Stream Information"
msgstr ""
#: femonosd.c:416
msgid "Video Stream"
msgstr ""
#: femonosd.c:419 femonosd.c:437 femonosd.c:460
msgid "Bitrate"
msgstr ""
#: femonosd.c:422
msgid "Aspect Ratio"
msgstr ""
#: femonosd.c:425
msgid "Frame Rate"
msgstr ""
#: femonosd.c:426
msgid "Hz"
msgstr "Hz"
#: femonosd.c:428
msgid "Video Format"
msgstr ""
#: femonosd.c:431
msgid "Resolution"
msgstr ""
#: femonosd.c:434
msgid "Audio Stream"
msgstr ""
#: femonosd.c:440
msgid "MPEG Layer"
msgstr ""
#: femonosd.c:443 femonosd.c:463
msgid "Sampling Frequency"
msgstr ""
#: femonosd.c:453
msgid "AC-3 Stream"
msgstr ""
#: femonosd.c:464 femontools.c:400
msgid "kHz"
msgstr "kHz"
#: femonosd.c:466
msgid "Frame Size"
msgstr ""
#: femonosd.c:469
msgid "Bit Stream Mode"
msgstr ""
#: femonosd.c:472
msgid "Audio Coding Mode"
msgstr ""
#: femonosd.c:475
msgid "Center Mix Level"
msgstr ""
#: femonosd.c:478
msgid "Surround Mix Level"
msgstr ""
#: femonosd.c:481
msgid "Dolby Surround Mode"
msgstr ""
#: femonosd.c:484
msgid "Low Frequency Effects"
msgstr ""
#: femonosd.c:485 femontools.c:249
msgid "Off"
msgstr "Off"
#: femonosd.c:485 femontools.c:250
msgid "On"
msgstr "On"
#: femonosd.c:487
msgid "Dialogue Normalization"
msgstr ""
#: femontools.c:189
msgid "Free to Air"
msgstr ""
#: femontools.c:191
msgid "Fixed"
msgstr ""
#: femontools.c:192
msgid "Analog"
msgstr ""
#: femontools.c:193
msgid "SECA/Mediaguard"
msgstr ""
#: femontools.c:194
msgid "Viaccess"
msgstr ""
#: femontools.c:195
msgid "Irdeto"
msgstr ""
#: femontools.c:196
msgid "NDS/Videoguard"
msgstr ""
#: femontools.c:197
msgid "Conax"
msgstr ""
#: femontools.c:198
msgid "CryptoWorks"
msgstr ""
#: femontools.c:199
msgid "PowerVu"
msgstr ""
#: femontools.c:200 femontools.c:202
msgid "NagraVision"
msgstr ""
#: femontools.c:201
msgid "BetaCrypt"
msgstr ""
#: femontools.c:203
msgid "SkyCrypt"
msgstr ""
#: femontools.c:211 femontools.c:259
msgid "None"
msgstr "None"
#: femontools.c:220 femontools.c:230 femontools.c:241 femontools.c:251
#: femontools.c:263 femontools.c:275 femontools.c:289
msgid "Auto"
msgstr "Auto"
#: femontools.c:238 femontools.c:239 femontools.c:240 femontools.c:391
msgid "MHz"
msgstr "MHz"
#: femontools.c:297 femontools.c:354 femontools.c:365 femontools.c:376
#: femontools.c:398 femontools.c:407
msgid "reserved"
msgstr ""
#: femontools.c:309
msgid "unknown"
msgstr ""
#: femontools.c:310
msgid "PAL"
msgstr "PAL"
#: femontools.c:311
msgid "NTSC"
msgstr "NTSC"
#: femontools.c:319
msgid "Complete Main (CM)"
msgstr ""
#: femontools.c:320
msgid "Music and Effects (ME)"
msgstr ""
#: femontools.c:321
msgid "Visually Impaired (VI)"
msgstr ""
#: femontools.c:322
msgid "Hearing Impaired (HI)"
msgstr ""
#: femontools.c:323
msgid "Dialogue (D)"
msgstr ""
#: femontools.c:324
msgid "Commentary (C)"
msgstr ""
#: femontools.c:325
msgid "Emergency (E)"
msgstr ""
#: femontools.c:326
msgid "Karaoke"
msgstr ""
#: femontools.c:326
msgid "Voice Over (VO)"
msgstr ""
#: femontools.c:335
msgid "Ch1"
msgstr ""
#: femontools.c:335
msgid "Ch2"
msgstr ""
#: femontools.c:336 femontools.c:338 femontools.c:340 femontools.c:342
msgid "C"
msgstr ""
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "L"
msgstr ""
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "R"
msgstr ""
#: femontools.c:339 femontools.c:340
msgid "S"
msgstr ""
#: femontools.c:341 femontools.c:342
msgid "SL"
msgstr ""
#: femontools.c:341 femontools.c:342
msgid "SR"
msgstr ""
#: femontools.c:351 femontools.c:352 femontools.c:353 femontools.c:362
#: femontools.c:363 femontools.c:364 femontools.c:384
msgid "dB"
msgstr "dB"
#: femontools.c:373
msgid "not indicated"
msgstr ""
#: femontools.c:408
msgid "free"
msgstr ""
#: femontools.c:416 femontools.c:417
msgid "Mbit/s"
msgstr "Mbit/s"
#: femontools.c:423 femontools.c:424
msgid "kbit/s"
msgstr "kbit/s"

View File

@@ -1,533 +0,0 @@
# VDR plugin language source file.
# Copyright (C) 2007 Klaus Schmidinger <kls@cadsoft.de>
# This file is distributed under the same license as the VDR package.
# Vyacheslav Dikonov
#
msgid ""
msgstr ""
"Project-Id-Version: VDR 1.5.7\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2007-08-12 23:22+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Vyacheslav Dikonov\n"
"Language-Team: <vdr@linuxtv.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-5\n"
"Content-Transfer-Encoding: 8bit\n"
#: femon.c:22
msgid "DVB Signal Information Monitor (OSD)"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femon.c:23
msgid "Signal Information"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femon.c:101
msgid "Femon not available while replaying"
msgstr ""
#: femon.c:278
msgid "basic"
msgstr ""
#: femon.c:279
msgid "transponder"
msgstr ""
#: femon.c:280
msgid "stream"
msgstr ""
#: femon.c:281 femonosd.c:276
msgid "AC-3"
msgstr "AC-3"
#: femon.c:283 femon.c:286
msgid "Classic"
msgstr ""
#: femon.c:284 femon.c:287
msgid "Elchi"
msgstr "Elchi"
#: femon.c:288
msgid "DeepBlue"
msgstr "DeepBlue"
#: femon.c:289
msgid "Moronimo"
msgstr "Moronimo"
#: femon.c:290
msgid "Enigma"
msgstr "Enigma"
#: femon.c:291
msgid "EgalsTry"
msgstr "EgalsTry"
#: femon.c:292
msgid "Duotone"
msgstr "Duotone"
#: femon.c:293
msgid "SilverGreen"
msgstr "SilverGreen"
#: femon.c:304
msgid "Hide main menu entry"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:374
msgid "no"
msgstr "<22><><EFBFBD>"
#: femon.c:304 femon.c:311 femon.c:315 femontools.c:375
msgid "yes"
msgstr "<22><>"
#: femon.c:305
msgid "Default display mode"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femon.c:306
msgid "Skin"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: femon.c:307
msgid "Theme"
msgstr "<22><><EFBFBD><EFBFBD>"
#: femon.c:308
msgid "Position"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
#: femon.c:308
msgid "bottom"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: femon.c:308
msgid "top"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femon.c:309
msgid "Height"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femon.c:310
msgid "Horizontal offset"
msgstr ""
#: femon.c:311
msgid "Show CA system"
msgstr ""
#: femon.c:312
msgid "Red limit [%]"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (%)"
#: femon.c:313
msgid "Green limit [%]"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (%)"
#: femon.c:314
msgid "OSD update interval [0.1s]"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0,1 <20><><EFBFBD>)"
#: femon.c:315
msgid "Analyze stream"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femon.c:317
msgid "Calculation interval [0.1s]"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0,1 <20><><EFBFBD>)"
#: femon.c:318
msgid "Use SVDRP service"
msgstr ""
#: femon.c:320
msgid "SVDRP service port"
msgstr ""
#: femon.c:321
msgid "SVDRP service IP"
msgstr ""
#: femonosd.c:268
msgid "Video"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:276
msgid "Audio"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:305
msgid "Transponder Information"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:311
msgid "Vpid"
msgstr "Vpid (<28><><EFBFBD><EFBFBD><EFBFBD>)"
#: femonosd.c:313
msgid "Ppid"
msgstr "Ppid"
#: femonosd.c:316
msgid "Apid"
msgstr "Apid"
#: femonosd.c:318
msgid "Dpid"
msgstr "Dpid"
#: femonosd.c:321
msgid "CA"
msgstr "CA (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
#: femonosd.c:323
msgid "Tpid"
msgstr "Tpid (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
#: femonosd.c:326
msgid "Sid"
msgstr "Sid"
#: femonosd.c:328
msgid "Nid"
msgstr "Nid"
#: femonosd.c:331
msgid "Tid"
msgstr "Tid"
#: femonosd.c:333
msgid "Rid"
msgstr "Rid"
#: femonosd.c:338
msgid "Satellite Card"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:340 femonosd.c:359 femonosd.c:378
msgid "Frequency"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:342 femonosd.c:361
msgid "Source"
msgstr ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:345 femonosd.c:364
msgid "Srate"
msgstr "<22><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:347
msgid "Polarization"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:350 femonosd.c:369 femonosd.c:388
msgid "Inversion"
msgstr ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:352 femonosd.c:371
msgid "CoderateH"
msgstr "CoderateH"
#: femonosd.c:357
msgid "Cable Card"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:366 femonosd.c:385
msgid "Modulation"
msgstr ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:376
msgid "Terrestrial Card"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:380
msgid "Transmission"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:383
msgid "Bandwidth"
msgstr ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:390
msgid "Coderate"
msgstr "Coderate"
#: femonosd.c:393
msgid "Hierarchy"
msgstr ".<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:395
msgid "Guard"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#: femonosd.c:410 femonosd.c:453
msgid "Stream Information"
msgstr ""
#: femonosd.c:416
msgid "Video Stream"
msgstr ""
#: femonosd.c:419 femonosd.c:437 femonosd.c:460
msgid "Bitrate"
msgstr ""
#: femonosd.c:422
msgid "Aspect Ratio"
msgstr ""
#: femonosd.c:425
msgid "Frame Rate"
msgstr ""
#: femonosd.c:426
msgid "Hz"
msgstr "<22><>"
#: femonosd.c:428
msgid "Video Format"
msgstr ""
#: femonosd.c:431
msgid "Resolution"
msgstr ""
#: femonosd.c:434
msgid "Audio Stream"
msgstr ""
#: femonosd.c:440
msgid "MPEG Layer"
msgstr ""
#: femonosd.c:443 femonosd.c:463
msgid "Sampling Frequency"
msgstr ""
#: femonosd.c:453
msgid "AC-3 Stream"
msgstr ""
#: femonosd.c:464 femontools.c:400
msgid "kHz"
msgstr "ڳ<>"
#: femonosd.c:466
msgid "Frame Size"
msgstr ""
#: femonosd.c:469
msgid "Bit Stream Mode"
msgstr ""
#: femonosd.c:472
msgid "Audio Coding Mode"
msgstr ""
#: femonosd.c:475
msgid "Center Mix Level"
msgstr ""
#: femonosd.c:478
msgid "Surround Mix Level"
msgstr ""
#: femonosd.c:481
msgid "Dolby Surround Mode"
msgstr ""
#: femonosd.c:484
msgid "Low Frequency Effects"
msgstr ""
#: femonosd.c:485 femontools.c:249
msgid "Off"
msgstr "<22><><EFBFBD><EFBFBD>"
#: femonosd.c:485 femontools.c:250
msgid "On"
msgstr "<22><><EFBFBD>"
#: femonosd.c:487
msgid "Dialogue Normalization"
msgstr ""
#: femontools.c:189
msgid "Free to Air"
msgstr ""
#: femontools.c:191
msgid "Fixed"
msgstr ""
#: femontools.c:192
msgid "Analog"
msgstr ""
#: femontools.c:193
msgid "SECA/Mediaguard"
msgstr ""
#: femontools.c:194
msgid "Viaccess"
msgstr ""
#: femontools.c:195
msgid "Irdeto"
msgstr ""
#: femontools.c:196
msgid "NDS/Videoguard"
msgstr ""
#: femontools.c:197
msgid "Conax"
msgstr ""
#: femontools.c:198
msgid "CryptoWorks"
msgstr ""
#: femontools.c:199
msgid "PowerVu"
msgstr ""
#: femontools.c:200 femontools.c:202
msgid "NagraVision"
msgstr ""
#: femontools.c:201
msgid "BetaCrypt"
msgstr ""
#: femontools.c:203
msgid "SkyCrypt"
msgstr ""
#: femontools.c:211 femontools.c:259
msgid "None"
msgstr "<22><><EFBFBD>"
#: femontools.c:220 femontools.c:230 femontools.c:241 femontools.c:251
#: femontools.c:263 femontools.c:275 femontools.c:289
msgid "Auto"
msgstr "<22><><EFBFBD><EFBFBD>"
#: femontools.c:238 femontools.c:239 femontools.c:240 femontools.c:391
msgid "MHz"
msgstr "<22><><EFBFBD>"
#: femontools.c:297 femontools.c:354 femontools.c:365 femontools.c:376
#: femontools.c:398 femontools.c:407
msgid "reserved"
msgstr ""
#: femontools.c:309
msgid "unknown"
msgstr ""
#: femontools.c:310
msgid "PAL"
msgstr "PAL"
#: femontools.c:311
msgid "NTSC"
msgstr "NTSC"
#: femontools.c:319
msgid "Complete Main (CM)"
msgstr ""
#: femontools.c:320
msgid "Music and Effects (ME)"
msgstr ""
#: femontools.c:321
msgid "Visually Impaired (VI)"
msgstr ""
#: femontools.c:322
msgid "Hearing Impaired (HI)"
msgstr ""
#: femontools.c:323
msgid "Dialogue (D)"
msgstr ""
#: femontools.c:324
msgid "Commentary (C)"
msgstr ""
#: femontools.c:325
msgid "Emergency (E)"
msgstr ""
#: femontools.c:326
msgid "Karaoke"
msgstr ""
#: femontools.c:326
msgid "Voice Over (VO)"
msgstr ""
#: femontools.c:335
msgid "Ch1"
msgstr ""
#: femontools.c:335
msgid "Ch2"
msgstr ""
#: femontools.c:336 femontools.c:338 femontools.c:340 femontools.c:342
msgid "C"
msgstr ""
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "L"
msgstr ""
#: femontools.c:337 femontools.c:338 femontools.c:339 femontools.c:340
#: femontools.c:341 femontools.c:342
msgid "R"
msgstr ""
#: femontools.c:339 femontools.c:340
msgid "S"
msgstr ""
#: femontools.c:341 femontools.c:342
msgid "SL"
msgstr ""
#: femontools.c:341 femontools.c:342
msgid "SR"
msgstr ""
#: femontools.c:351 femontools.c:352 femontools.c:353 femontools.c:362
#: femontools.c:363 femontools.c:364 femontools.c:384
msgid "dB"
msgstr "dB"
#: femontools.c:373
msgid "not indicated"
msgstr ""
#: femontools.c:408
msgid "free"
msgstr ""
#: femontools.c:416 femontools.c:417
msgid "Mbit/s"
msgstr "<22><><EFBFBD><EFBFBD>/<2F>"
#: femontools.c:423 femontools.c:424
msgid "kbit/s"
msgstr "<22><><EFBFBD><EFBFBD>/<2F>"

View File

@@ -1,39 +0,0 @@
/*
* svdrpservice.h: Public interface of the plugin's services
*
* See the README file for copyright information and how to reach the author.
*/
#ifndef _SVDRPSERVICE__H
#define _SVDRPSERVICE__H
#include <vdr/tools.h>
class cLine: public cListObject {
private:
char *Line;
public:
const char *Text() { return Line; }
cLine(const char *s) { Line = s ? strdup(s) : NULL; };
virtual ~cLine() { if (Line) free(Line); };
};
struct SvdrpConnection_v1_0 {
// in
cString serverIp;
unsigned short serverPort;
bool shared;
// in+out
int handle;
};
struct SvdrpCommand_v1_0 {
// in
cString command;
int handle;
// out
cList<cLine> reply;
unsigned short responseCode;
};
#endif //_SVDRPSERVICE__H

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const ar11_xpm[] = {
"26 18 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++",
"+........................+",
"+......++..........++....+",
"+...+++++.......+++++....+",
"+...+++++.......+++++....+",
"+......++...++.....++....+",
"+......++...++.....++....+",
"+......++..........++....+",
"+......++..........++....+",
"+......++..........++....+",
"+......++..........++....+",
"+......++..........++....+",
"+......++..........++....+",
"+......++..........++....+",
"+......++...++.....++....+",
"+......++...++.....++....+",
"+........................+",
"++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const ar169_xpm[] = {
"38 18 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++",
"+....................................+",
"+......++.....++++..........++++.....+",
"+...+++++....+++++++.......++++++....+",
"+...+++++....++...++......++...+++...+",
"+......++...++........++..++....++...+",
"+......++...++........++..++....++...+",
"+......++...++............++....++...+",
"+......++...++.+++.........+++++++...+",
"+......++...+++++++.........+++.++...+",
"+......++...++....++............++...+",
"+......++...++....++............++...+",
"+......++...++....++............++...+",
"+......++...+++...++......++...++....+",
"+......++....++++++...++..+++++++....+",
"+......++.....++++....++...+++++.....+",
"+....................................+",
"++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const ar2211_xpm[] = {
"52 18 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++",
"+..................................................+",
"+.....++++..........++++........++...........++....+",
"+...+++++++.......+++++++....+++++........+++++....+",
"+...++....++......++....++...+++++........+++++....+",
"+.........++............++......++...++......++....+",
"+.........++............++......++...++......++....+",
"+........+++...........+++......++...........++....+",
"+.......+++...........+++.......++...........++....+",
"+......+++...........+++........++...........++....+",
"+.....+++...........+++.........++...........++....+",
"+....+++...........+++..........++...........++....+",
"+...+++...........+++...........++...........++....+",
"+...++............++............++...........++....+",
"+...++++++++..++..++++++++......++...++......++....+",
"+...++++++++..++..++++++++......++...++......++....+",
"+..................................................+",
"++++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const ar43_xpm[] = {
"31 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++++++++++++++++",
"+.............................+",
"+.........++.........+++++....+",
"+........+++........+++++++...+",
"+.......++++.......++....++...+",
"+......++.++...++..++....++...+",
"+.....++..++...++........++...+",
"+.....++..++............++....+",
"+....++...++..........+++.....+",
"+...++....++..........++++....+",
"+...+++++++++...........+++...+",
"+...+++++++++............++...+",
"+.........++.......++....++...+",
"+.........++.......++...+++...+",
"+.........++...++...++++++....+",
"+.........++...++....++++.....+",
"+.............................+",
"+++++++++++++++++++++++++++++++"};

View File

@@ -1,24 +0,0 @@
/* XPM */
static const char *const carrier_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++...........+++++.......+++++.....++++++++....++++++++....+++...++++++++...++++++++..........++",
"++..........+++++++......+++++.....+++++++++...+++++++++...+++...++++++++...+++++++++.........++",
"++..........+++.++++.....+++++.....+++...+++...+++...+++...+++...+++........+++...+++.........++",
"++.........+++...++.....+++.+++....+++...+++...+++...+++...+++...+++........+++...+++.........++",
"++.........+++..........+++.+++....++++++++....++++++++....+++...+++++++....++++++++..........++",
"++.........+++..........+++.+++....+++++++.....+++++++.....+++...+++++++....+++++++...........++",
"++.........+++.........+++...+++...+++..+++....+++..+++....+++...+++........+++..+++..........++",
"++.........+++...++....+++++++++...+++..+++....+++..+++....+++...+++........+++..+++..........++",
"++..........+++.++++...+++++++++...+++...+++...+++...+++...+++...+++........+++...+++.........++",
"++..........+++++++...+++.....+++..+++...+++...+++...+++...+++...++++++++...+++...+++.........++",
"++...........+++++....+++.....+++..+++....+++..+++....+++..+++...++++++++...+++....+++........++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const device_xpm[] = {
"14 18 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++",
"+.............",
"+.......+..+..",
"+.......+..+..",
"+.......+..+..",
"+....+++++++++",
"+....+++++++++",
"+......+..+...",
"+......+..+...",
"+......+..+...",
"+......+..+...",
"+...+++++++++.",
"+...+++++++++.",
"+.....+..+....",
"+.....+..+....",
"+.....+..+....",
"+.............",
"++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const dolbydigital_xpm[] = {
"31 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++++++++++++++++",
"+.............................+",
"+...+++++++++++.+++++++++++...+",
"+...++.++++++++.++++++++.++...+",
"+...++...++++++.++++++...++...+",
"+...++.....++++.++++.....++...+",
"+...++......+++.+++......++...+",
"+...++.......++.++.......++...+",
"+...++.......++.++.......++...+",
"+...++.......++.++.......++...+",
"+...++.......++.++.......++...+",
"+...++......+++.+++......++...+",
"+...++.....++++.++++.....++...+",
"+...++...++++++.++++++...++...+",
"+...++.++++++++.++++++++.++...+",
"+...+++++++++++.+++++++++++...+",
"+.............................+",
"+++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const dolbydigital20_xpm[] = {
"55 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"+.....................................................+",
"+...+++++++++++.+++++++++++.....++++.........++++.....+",
"+...++.++++++++.++++++++.++...+++++++.......++++++....+",
"+...++...++++++.++++++...++...++....++......++..++....+",
"+...++.....++++.++++.....++.........++.....++....++...+",
"+...++......+++.+++......++.........++.....++....++...+",
"+...++.......++.++.......++........+++.....++....++...+",
"+...++.......++.++.......++.......+++......++....++...+",
"+...++.......++.++.......++......+++.......++....++...+",
"+...++.......++.++.......++.....+++........++....++...+",
"+...++......+++.+++......++....+++.........++....++...+",
"+...++.....++++.++++.....++...+++..........++....++...+",
"+...++...++++++.++++++...++...++............++..++....+",
"+...++.++++++++.++++++++.++...++++++++..++..++++++....+",
"+...+++++++++++.+++++++++++...++++++++..++...++++.....+",
"+.....................................................+",
"+++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const dolbydigital51_xpm[] = {
"51 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++++++++++++++++++++++++++++++++++++",
"+.................................................+",
"+...+++++++++++.+++++++++++...+++++++........++...+",
"+...++.++++++++.++++++++.++...+++++++.....+++++...+",
"+...++...++++++.++++++...++...++..........+++++...+",
"+...++.....++++.++++.....++...++.............++...+",
"+...++......+++.+++......++...++++++.........++...+",
"+...++.......++.++.......++...+++++++........++...+",
"+...++.......++.++.......++...++...+++.......++...+",
"+...++.......++.++.......++.........++.......++...+",
"+...++.......++.++.......++.........++.......++...+",
"+...++......+++.+++......++.........++.......++...+",
"+...++.....++++.++++.....++...++....++.......++...+",
"+...++...++++++.++++++...++...++...+++.......++...+",
"+...++.++++++++.++++++++.++...+++++++...++...++...+",
"+...+++++++++++.+++++++++++....+++++....++...++...+",
"+.................................................+",
"+++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const five_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
"...+++++++....+",
"...+++++++....+",
"...++.........+",
"...++.........+",
"...++.........+",
"...++++++.....+",
"...+++++++....+",
"...++...+++...+",
".........++...+",
".........++...+",
"...++....++...+",
"...++...+++...+",
"...+++++++....+",
"....+++++.....+",
"..............+",
"+++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const four_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".........++...+",
"........+++...+",
".......++++...+",
"......++.++...+",
".....++..++...+",
".....++..++...+",
"....++...++...+",
"...++....++...+",
"...+++++++++..+",
"...+++++++++..+",
".........++...+",
".........++...+",
".........++...+",
".........++...+",
"..............+",
"+++++++++++++++"};

View File

@@ -1,24 +0,0 @@
/* XPM */
static const char *const lock_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++........................+++........+++++........+++++.....+++....+++........................++",
"++........................+++.......++++++++.....+++++++....+++...+++.........................++",
"++........................+++.......+++..+++.....+++.++++...+++..+++..........................++",
"++........................+++......+++....+++...+++...++....+++.+++...........................++",
"++........................+++......+++....+++...+++.........+++++++...........................++",
"++........................+++......+++....+++...+++.........++++.+++..........................++",
"++........................+++......+++....+++...+++.........+++..+++..........................++",
"++........................+++......+++....+++...+++...++....+++...+++.........................++",
"++........................+++.......+++..+++.....+++.++++...+++...+++.........................++",
"++........................+++++++...++++++++.....+++++++....+++....+++........................++",
"++........................+++++++.....++++........+++++.....+++.....+++.......................++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const monoleft_xpm[] = {
"17 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++",
"+................",
"+...++...........",
"+...++++.........",
"+...++++++.......",
"+...++++++++.....",
"+...+++++++++++++",
"+...+++++++++++++",
"+...+++++++++..++",
"+...+++++++++..++",
"+...+++++++++++++",
"+...+++++++++++++",
"+...++++++++.....",
"+...++++++.......",
"+...++++.........",
"+...+++..........",
"+................",
"+++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const monoright_xpm[] = {
"17 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++",
"+................",
"+..............++",
"+............++++",
"+..........++++++",
"+........++++++++",
"+...+++++++++++++",
"+...+++++++++++++",
"+...++..+++++++++",
"+...++..+++++++++",
"+...+++++++++++++",
"+...+++++++++++++",
"+........++++++++",
"+..........++++++",
"+............++++",
"+.............+++",
"+................",
"+++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const ntsc_xpm[] = {
"19 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++++",
"+.................+",
"+...++.......++...+",
"+...+++......++...+",
"+...++++.....++...+",
"+...++++.....++...+",
"+...++.++....++...+",
"+...++..++...++...+",
"+...++..++...++...+",
"+...++...++..++...+",
"+...++...++..++...+",
"+...++....++.++...+",
"+...++.....++++...+",
"+...++.....++++...+",
"+...++......+++...+",
"+...++.......++...+",
"+.................+",
"+++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const one_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".......++.....+",
"....+++++.....+",
"....+++++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
".......++.....+",
"..............+",
"+++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const pal_xpm[] = {
"18 18 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++",
"+................+",
"+...++++++++.....+",
"+...+++++++++....+",
"+...++.....+++...+",
"+...++......++...+",
"+...++......++...+",
"+...++.....+++...+",
"+...+++++++++....+",
"+...++++++++.....+",
"+...++...........+",
"+...++...........+",
"+...++...........+",
"+...++...........+",
"+...++...........+",
"+...++...........+",
"+................+",
"++++++++++++++++++"};

View File

@@ -1,24 +0,0 @@
/* XPM */
static const char *const signal_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++.................+++++....+++......+++++.....+++....+++.....+++++.....+++...................++",
"++...............++++++++...+++....++++++++....++++...+++.....+++++.....+++...................++",
"++...............+++..+++...+++....+++..++++...+++++..+++.....+++++.....+++...................++",
"++...............+++........+++...+++....++....+++++..+++....+++.+++....+++...................++",
"++...............++++++.....+++...+++..........++++++.+++....+++.+++....+++...................++",
"++................++++++....+++...+++..+++++...+++.++.+++....+++.+++....+++...................++",
"++..................+++++...+++...+++..+++++...+++.++++++...+++...+++...+++...................++",
"++...............+++..+++...+++...+++....+++...+++..+++++...+++++++++...+++...................++",
"++...............+++..+++...+++....+++...+++...+++..+++++...+++++++++...+++...................++",
"++................++++++....+++....+++++++++...+++...++++..+++.....+++..+++++++...............++",
"++.................++++.....+++......+++++.....+++....+++..+++.....+++..+++++++...............++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const stereo_xpm[] = {
"17 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++++",
"+................",
"+..............++",
"+............++++",
"+..........+++.++",
"+........+++...++",
"+...+++++++....++",
"+...++++++.....++",
"+...++..++.....++",
"+...++..++.....++",
"+...++++++.....++",
"+...+++++++....++",
"+........+++...++",
"+..........+++.++",
"+............++++",
"+.............+++",
"+................",
"+++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const svdrp_xpm[] = {
"60 18 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"+..........................................................+",
"+.....+++++....++....++...++++++.....++++++.....++++++.....+",
"+....+++++++...++....++...+++++++....+++++++....+++++++....+",
"+...+++...++...++....++...++...+++...++...+++...++...+++...+",
"+...++....++...++....++...++....++...++....++...++....++...+",
"+...++.........++....++...++....++...++....++...++....++...+",
"+...+++.........++..++....++....++...++...+++...++...+++...+",
"+....+++++......++..++....++....++...+++++++....+++++++....+",
"+.....+++++.....++..++....++....++...++++++.....++++++.....+",
"+........+++....++..++....++....++...++...++....++.........+",
"+.........++.....++++.....++....++...++...++....++.........+",
"+...++....++.....++++.....++....++...++...++....++.........+",
"+...++...+++......++......++...+++...++....++...++.........+",
"+...+++++++.......++......+++++++....++....++...++.........+",
"+....+++++........++......++++++.....++....++...++.........+",
"+..........................................................+",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,24 +0,0 @@
/* XPM */
static const char *const sync_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++.........................+++++...+++.....+++..+++....+++.....+++++..........................++",
"++.......................++++++++...+++...+++...++++...+++....+++++++.........................++",
"++.......................+++..+++....+++.+++....+++++..+++....+++.++++........................++",
"++.......................+++.........+++.+++....+++++..+++...+++...++.........................++",
"++.......................++++++.......+++++.....++++++.+++...+++..............................++",
"++........................++++++......+++++.....+++.++.+++...+++..............................++",
"++..........................+++++......+++......+++.++++++...+++..............................++",
"++.......................+++..+++......+++......+++..+++++...+++...++.........................++",
"++.......................+++..+++......+++......+++..+++++....+++.++++........................++",
"++........................++++++.......+++......+++...++++....+++++++.........................++",
"++.........................++++........+++......+++....+++.....+++++..........................++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const three_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".....+++++....+",
"....+++++++...+",
"...++....++...+",
"...++....++...+",
".........++...+",
"........++....+",
"......+++.....+",
"......++++....+",
"........+++...+",
".........++...+",
"...++....++...+",
"...++...+++...+",
"....++++++....+",
".....++++.....+",
"..............+",
"+++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const two_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".....++++.....+",
"...+++++++....+",
"...++....++...+",
".........++...+",
".........++...+",
"........+++...+",
".......+++....+",
"......+++.....+",
".....+++......+",
"....+++.......+",
"...+++........+",
"...++.........+",
"...++++++++...+",
"...++++++++...+",
"..............+",
"+++++++++++++++"};

View File

@@ -1,24 +0,0 @@
/* XPM */
static const char *const viterbi_xpm[] = {
"96 19 2 1",
". c #FFFFFF",
"+ c #000000",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++............................................................................................++",
"++............................................................................................++",
"++............+++.....+++..+++...+++++++++..++++++++...++++++++....++++++++....+++............++",
"++.............++.....++...+++...+++++++++..++++++++...+++++++++...+++++++++...+++............++",
"++.............+++...+++...+++......+++.....+++........+++...+++...+++...+++...+++............++",
"++.............+++...+++...+++......+++.....+++........+++...+++...+++...+++...+++............++",
"++..............++...++....+++......+++.....+++++++....++++++++....++++++++....+++............++",
"++..............+++.+++....+++......+++.....+++++++....+++++++.....++++++++....+++............++",
"++..............+++.+++....+++......+++.....+++........+++..+++....+++...+++...+++............++",
"++...............++.++.....+++......+++.....+++........+++..+++....+++...+++...+++............++",
"++...............+++++.....+++......+++.....+++........+++...+++...+++...+++...+++............++",
"++...............+++++.....+++......+++.....++++++++...+++...+++...+++++++++...+++............++",
"++................+++......+++......+++.....++++++++...+++....+++..++++++++....+++............++",
"++............................................................................................++",
"++............................................................................................++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"};

View File

@@ -1,23 +0,0 @@
/* XPM */
static const char *const zero_xpm[] = {
"15 18 2 1",
". c #FFFFFF",
"+ c #000000",
"+++++++++++++++",
"..............+",
".....++++.....+",
"....++++++....+",
"....++..++....+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"...++....++...+",
"....++..++....+",
"....++++++....+",
".....++++.....+",
"..............+",
"+++++++++++++++"};