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

Compare commits

..

6 Commits

Author SHA1 Message Date
Rolf Ahrenberg
55b5e0c293 Added missing MINFONTSIZE and MAXFONTSIZE defines. 2009-06-18 23:05:30 +03:00
Rolf Ahrenberg
cbc39db870 Cleaned up compilation warnings. 2009-06-18 17:40:44 +03:00
Rolf Ahrenberg
ecb79fe6db Cleaned up compilation warnings. 2009-06-18 17:30:54 +03:00
Rolf Ahrenberg
4a5318371d Backported from 1.7.2. 2009-06-18 12:17:42 +03:00
Rolf Ahrenberg
c69a018337 Backported from 1.7.1. 2009-01-06 23:39:59 +02:00
Rolf Ahrenberg
88b263aa02 Backported from 1.7.0. 2008-12-16 12:53:19 +02:00
20 changed files with 220 additions and 518 deletions

66
HISTORY
View File

@@ -29,7 +29,8 @@ VDR Plugin 'femon' Revision History
- Redesigned the user interface.
- Transponder information is now available in advanced display mode:
Press 'OK' key to switch between the simple and the advanced display mode.
Press 'OK' key to switch between the simple and the advanced display
mode.
- Moved bitrate calculation to it's own thread for improved accurancy.
2004-03-07: Version 0.0.3a
@@ -41,7 +42,8 @@ VDR Plugin 'femon' Revision History
2004-03-16: Version 0.0.3b
- Fixed channel toggling with '0' key.
- Bitrate calculation thread is now canceled immediately to speed up channel switching.
- Bitrate calculation thread is now canceled immediately to speed up
channel switching.
2004-04-04: Version 0.0.3c
@@ -88,7 +90,8 @@ VDR Plugin 'femon' Revision History
2004-06-11: Version 0.1.3
- Added "AC-3 Stream Information" display mode (Thanks to Lothar Englisch).
- Added "AC-3 Stream Information" display mode (Thanks to Lothar
Englisch).
2004-06-24: Version 0.1.4
@@ -100,7 +103,8 @@ VDR Plugin 'femon' Revision History
- Fixed OSDSTATUSWIN_XC define.
- Added preliminary NTSC support (make NTSC_SYSTEM=1 plugins).
- Fixed "Setup/OSD/Use Small Fonts" bug (Thanks to Winni for reporting this one).
- Fixed "Setup/OSD/Use Small Fonts" bug (Thanks to Winni for reporting
this one).
- Added patches directory: CA system names by Lauri Tischler.
2004-09-11: Version 0.1.6
@@ -146,7 +150,8 @@ VDR Plugin 'femon' Revision History
2005-04-01: Version 0.8.7
- Default make target is now all.
- Fixed the access rights of symbols subdirectory (Thanks to Harri Kukkonen).
- 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
@@ -160,7 +165,8 @@ VDR Plugin 'femon' Revision History
2005-05-20: Version 0.9.0
- Renamed compiling switches ('DEBUG' to 'FEMON_DEBUG' and 'NTSC_SYSTEM' to 'FEMON_NTSC').
- 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
@@ -200,7 +206,8 @@ VDR Plugin 'femon' Revision History
- 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 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
@@ -248,7 +255,8 @@ VDR Plugin 'femon' Revision History
2007-05-01: Version 1.1.2
- Fixed opening while replaying (Thanks to Antti Seppälä for reporting this one).
- Fixed opening while replaying (Thanks to Antti Seppälä for reporting
this one).
2007-05-15: Version 1.1.3
@@ -298,7 +306,7 @@ VDR Plugin 'femon' Revision History
2008-06-20: Version 1.6.1
- Updated Italian translation (Thanks to Diego Pierotto).
- Fixed a crash if no channel available (Thanks to Winfried Köhler)
- Fixed a crash if no channel available (Thanks to Winfried Köhler).
2008-10-12: Version 1.6.2
@@ -317,6 +325,42 @@ VDR Plugin 'femon' Revision History
- Updated Italian translation (Thanks to Diego Pierotto).
- Fixed a memory leak.
- Added a check for the minimum OSD height.
- Replaced "Use single area (8bpp)" option with VDR's "Setup/OSD/Anti-alias".
- Replaced "Use single area (8bpp)" option with VDR's
"Setup/OSD/Anti-alias".
- Removed the FEMON_NTSC option.
- Fixed a deadlock in cFemonReceiver (Thanks to Antti Seppälä for reporting this one).
- Fixed a deadlock in cFemonReceiver (Thanks to Antti Seppälä for
reporting this one).
2008-12-16: Version 1.6.5
- Backported from 1.7.0.
2009-01-06: Version 1.6.6
- Backported from 1.7.1.
2009-06-18: Version 1.6.7
- Backported from 1.7.2.
===================================
VDR Plugin 'femon' Revision History
===================================
2008-12-16: Version 1.7.0
- Updated for vdr-1.7.2.
- Added whitespace cleanups.
- Changed info window to use the channel source instead of the frontend
type.
- Removed the "Show CA system" setup option.
2009-01-06: Version 1.7.1
- Fixed closing of frontend file handles (Thanks to Brendon Higgins for
reporting this one).
2009-06-18: Version 1.7.2
- Cleaned up compilation warnings.
- Fixed font handling to be thread-safe.

View File

@@ -23,7 +23,7 @@ VERSION = $(shell grep 'static const char VERSION\[\] *=' $(PLUGIN).c | awk '{ p
### The C++ compiler and options:
CXX ?= g++
CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
CXXFLAGS ?= -fPIC -g -O2 -Wall -Wextra -Wswitch-default -Wfloat-equal -Wundef -Wpointer-arith -Wconversion -Wcast-align -Wredundant-decls -Wno-unused-parameter -Woverloaded-virtual -Wno-parentheses
### The directory environment:

View File

@@ -18,7 +18,7 @@
#error "VDR-1.6.0 API version or greater is required!"
#endif
static const char VERSION[] = "1.6.4";
static const char VERSION[] = "1.6.7";
static const char DESCRIPTION[] = trNOOP("DVB Signal Information Monitor (OSD)");
static const char MAINMENUENTRY[] = trNOOP("Signal Information");
@@ -114,7 +114,6 @@ bool cPluginFemon::SetupParse(const char *Name, const char *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);
@@ -328,9 +327,6 @@ void cMenuFemonSetup::Setup(void)
Add(new cMenuEditIntItem(tr("Horizontal offset"), &data.osdoffset, -50, 50));
help.Append(tr("Define the horizontal offset of OSD."));
Add(new cMenuEditBoolItem(tr("Show CA system"), &data.showcasystem));
help.Append(tr("Define whether the CA system is shown as text."));
Add(new cMenuEditIntItem(tr("Red limit [%]"), &data.redlimit, 1, 50));
help.Append(tr("Define a limit for red bar, which is used to indicate a bad signal."));
@@ -374,7 +370,6 @@ void cMenuFemonSetup::Store(void)
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);

View File

@@ -34,7 +34,7 @@ bool getAC3AudioInfo(uint8_t *buf, int len, ac3_info_t *info)
return false;
uint8_t *data = buf + 2;
uint8_t frame = (data[2] & 0x3f);
uint8_t frame = (uint8_t)(data[2] & 0x3f);
info->bitrate = 1000 * ac3_bitrates[frame >> 1];
uint8_t fr = (data[2] & 0xc0 ) >> 6;
//uint8_t sz = ac3_frames[fr][frame >> 1];

View File

@@ -22,7 +22,6 @@ cFemonConfig::cFemonConfig(void)
updateinterval = 5;
analyzestream = 1;
calcinterval = 20;
showcasystem = 0;
osdheight = 480;
osdoffset = 0;
usesvdrp = 0;

View File

@@ -33,7 +33,6 @@ public:
int updateinterval;
int analyzestream;
int calcinterval;
int showcasystem;
int osdheight;
int osdoffset;
int usesvdrp;

View File

@@ -13,7 +13,7 @@
#define NAL_SEI 0x06 // Supplemental Enhancement Information
#define NAL_SPS 0x07 // Sequence Parameter Set
#define NAL_AUD 0x09 // Access Unit Delimiter
#define NAL_END_SEQ 0x10 // End of Sequence
#define NAL_END_SEQ 0x0A // End of Sequence
#define IS_NAL_SEI(buf) (((buf)[0] == 0x00) && ((buf)[1] == 0x00) && ((buf)[2] == 0x01) && ((buf)[3] == NAL_SEI))
#define IS_NAL_SPS(buf) (((buf)[0] == 0x00) && ((buf)[1] == 0x00) && ((buf)[2] == 0x01) && ((buf)[3] == NAL_SPS))
@@ -358,7 +358,7 @@ static int h264_get_picture_type(const uint8_t *buf, int len)
{
for (int i = 0; i < (len - 5); ++i) {
if (buf[i] == 0 && buf[i + 1] == 0 && buf[i + 2] == 1 && buf[i + 3] == NAL_AUD) {
uint8_t type = (buf[i + 4] >> 5);
uint8_t type = (uint8_t)(buf[i + 4] >> 5);
switch (type) {
case 0: case 3: case 5: return I_FRAME;
case 1: case 4: case 6: return P_FRAME;
@@ -392,7 +392,7 @@ bool getH264VideoInfo(uint8_t *buf, int len, video_info_t *info)
int nal_len;
//Dprintf("H.264: Found NAL SPS at offset %d/%d", i, len);
if (0 < (nal_len = h264_nal_unescape(nal_data, buf + i + 4, len - i - 4))) {
h264_sps_data_t sps = { 0 };
h264_sps_data_t sps = { 0, 0, VIDEO_ASPECT_RATIO_INVALID, VIDEO_FORMAT_INVALID };
if (h264_parse_sps(nal_data, nal_len, &sps)) {
info->format = sps.format;
info->width = sps.width;
@@ -408,7 +408,7 @@ bool getH264VideoInfo(uint8_t *buf, int len, video_info_t *info)
int nal_len;
//Dprintf("H.264: Found NAL SEI at offset %d/%d", i, len);
if (0 < (nal_len = h264_nal_unescape(nal_data, buf + i + 4, len - i - 4))) {
h264_sei_data_t sei = { 0 };
h264_sei_data_t sei = { 0, 0, VIDEO_SCAN_INVALID };
if (h264_parse_sei(nal_data, nal_len, &sei)) {
info->frameRate = sei.frame_rate;
info->bitrate = sei.bitrate;

View File

@@ -178,7 +178,7 @@ bool getMPEGVideoInfo(uint8_t *buf, int len, video_info_t *info)
info->format = VIDEO_FORMAT_UNKNOWN;
break;
}
info->bitrate = 400.0 * (((data[4] << 10) & 0x0003FC00UL) | ((data[5] << 2) & 0x000003FCUL) | (((data[6] & 0xC0) >> 6) & 0x00000003UL));
info->bitrate = 400.0 * (double)(((data[4] << 10) & 0x0003FC00UL) | ((data[5] << 2) & 0x000003FCUL) | (((data[6] & 0xC0) >> 6) & 0x00000003UL));
return true;
}

View File

@@ -116,12 +116,28 @@
#define OSDCLEARINFO() \
m_Osd->DrawRectangle(0, OSDINFOWIN_Y(0), OSDWIDTH, OSDINFOWIN_Y(OSDINFOHEIGHT) - 1, clrTransparent)
#ifndef MINFONTSIZE
#define MINFONTSIZE 10
#endif
#ifndef MAXFONTSIZE
#define MAXFONTSIZE 64
#endif
class cFemonDummyFont : public cFont {
public:
virtual int Width(uint c) const { return 10; }
virtual int Width(const char *s) const { return 50; }
virtual int Height(void) const { return 20; }
virtual void DrawText(cBitmap *Bitmap, int x, int y, const char *s, tColor ColorFg, tColor ColorBg, int Width) const {}
};
cFemonOsd *cFemonOsd::pInstance = NULL;
cFemonOsd *cFemonOsd::Instance(bool create)
{
Dprintf("%s()\n", __PRETTY_FUNCTION__);
if (pInstance == NULL && create)
if ((pInstance == NULL) && create)
{
pInstance = new cFemonOsd();
}
@@ -150,14 +166,11 @@ cFemonOsd::cFemonOsd()
{
Dprintf("%s()\n", __PRETTY_FUNCTION__);
m_SvdrpConnection.handle = -1;
if (Setup.UseSmallFont == 0) {
// Dirty hack to force the small fonts...
Setup.UseSmallFont = 1;
m_Font = cFont::GetFont(fontSml);
Setup.UseSmallFont = 0;
m_Font = cFont::CreateFont(Setup.FontSml, min(max(Setup.FontSmlSize, MINFONTSIZE), MAXFONTSIZE));
if (!m_Font || !m_Font->Height()) {
m_Font = new cFemonDummyFont;
esyslog("ERROR: cFemonOsd::cFemonOsd() cannot create required font.");
}
else
m_Font = cFont::GetFont(fontSml);
if (OSDHEIGHT < (OSDINFOHEIGHT + OSDROWHEIGHT + OSDSTATUSHEIGHT))
OSDHEIGHT = (OSDINFOHEIGHT + OSDROWHEIGHT + OSDSTATUSHEIGHT);
}
@@ -179,6 +192,12 @@ cFemonOsd::~cFemonOsd(void)
}
if (m_Osd)
DELETENULL(m_Osd);
if (m_Font)
DELETENULL(m_Font);
if (m_Frontend >= 0) {
close(m_Frontend);
m_Frontend = -1;
}
pInstance = NULL;
}
@@ -315,11 +334,11 @@ void cFemonOsd::DrawInfoWindow(void)
OSDDRAWINFOLEFT( tr("Tid"), *cString::sprintf("%d", channel->Tid()));
OSDDRAWINFORIGHT( tr("Rid"), *cString::sprintf("%d", channel->Rid()));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("CA"), *getCAids(channel, femonConfig.showcasystem));
OSDDRAWINFOLEFT( trVDR("CA"), *getCAids(channel));
offset += OSDROWHEIGHT;
switch (m_FrontendInfo.type) {
case FE_QPSK:
OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", tr("Satellite Card"), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name));
switch (channel->Source() & cSource::st_Mask) {
case cSource::stSat:
OSDDRAWINFOLINE(*cString::sprintf("DVB-S #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Frequency"), *getFrequencyMHz(channel->Frequency()));
OSDDRAWINFORIGHT(trVDR("Source"), *cSource::ToString(channel->Source()));
@@ -329,13 +348,10 @@ void cFemonOsd::DrawInfoWindow(void)
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Inversion"), *getInversion(channel->Inversion()));
OSDDRAWINFORIGHT(trVDR("CoderateH"), *getCoderate(channel->CoderateH()));
//offset += OSDROWHEIGHT;
//OSDDRAWINFOLEFT( trVDR("System"), *getSystem(channel->System()));
//OSDDRAWINFORIGHT(trVDR("RollOff"), *getRollOff(channel->RollOff()));
break;
case FE_QAM:
OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", tr("Cable Card"), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name));
case cSource::stCable:
OSDDRAWINFOLINE(*cString::sprintf("DVB-C #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Frequency"), *getFrequencyMHz(channel->Frequency()));
OSDDRAWINFORIGHT(trVDR("Source"), *cSource::ToString(channel->Source()));
@@ -347,8 +363,8 @@ void cFemonOsd::DrawInfoWindow(void)
OSDDRAWINFORIGHT(trVDR("CoderateH"), *getCoderate(channel->CoderateH()));
break;
case FE_OFDM:
OSDDRAWINFOLINE(*cString::sprintf("%s #%d - %s", tr("Terrestrial Card"), (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name));
case cSource::stTerr:
OSDDRAWINFOLINE(*cString::sprintf("DVB-T #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Frequency"), *getFrequencyMHz(channel->Frequency()));
OSDDRAWINFORIGHT(trVDR("Transmission"), *getTransmission(channel->Transmission()));
@@ -361,9 +377,6 @@ void cFemonOsd::DrawInfoWindow(void)
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Hierarchy"), *getHierarchy(channel->Hierarchy()));
OSDDRAWINFORIGHT(trVDR("Guard"), *getGuard(channel->Guard()));
//offset += OSDROWHEIGHT;
//OSDDRAWINFOLEFT( trVDR("Alpha"), *getAlpha(channel->Alpha()));
//OSDDRAWINFORIGHT(trVDR("Priority"), *getPriority(channel->Priority()));
break;
default:
@@ -461,28 +474,28 @@ void cFemonOsd::Action(void)
m_SvdrpPlugin->Service("SvdrpCommand-v1.0", &cmd);
if (cmd.responseCode == 900) {
for (cLine *line = cmd.reply.First(); line; line = cmd.reply.Next(line)) {
const char *s = line->Text();
if (strncasecmp(s, "CARD:", 5) == 0)
m_SvdrpFrontend = strtol(s + 5, NULL, 10);
else if (strncasecmp(s, "TYPE:", 5) == 0)
m_FrontendInfo.type = (fe_type_t) strtol(s + 5, NULL, 10);
else if (strncasecmp(s, "NAME:", 5) == 0)
strn0cpy(m_FrontendInfo.name, s + 5, sizeof(m_FrontendInfo.name));
else if (strncasecmp(s, "STAT:", 5) == 0)
m_FrontendStatus = (fe_status_t) strtol(s + 5, NULL, 16);
else if (strncasecmp(s, "SGNL:", 5) == 0)
m_Signal = strtol(s + 5, NULL, 16);
else if (strncasecmp(s, "SNRA:", 5) == 0)
m_SNR = strtol(s + 5, NULL, 16);
else if (strncasecmp(s, "BERA:", 5) == 0)
m_BER = strtol(s + 5, NULL, 16);
else if (strncasecmp(s, "UNCB:", 5) == 0)
m_UNC = strtol(s + 5, NULL, 16);
else if (strncasecmp(s, "VIBR:", 5) == 0)
m_SvdrpVideoBitrate = strtol(s + 5, NULL, 10);
else if (strncasecmp(s, "AUBR:", 5) == 0)
m_SvdrpAudioBitrate = strtol(s + 5, NULL, 10);
}
const char *s = line->Text();
if (!strncasecmp(s, "CARD:", 5))
m_SvdrpFrontend = (int)strtol(s + 5, NULL, 10);
else if (!strncasecmp(s, "TYPE:", 5))
m_FrontendInfo.type = (fe_type_t)strtol(s + 5, NULL, 10);
else if (!strncasecmp(s, "NAME:", 5))
strn0cpy(m_FrontendInfo.name, s + 5, sizeof(m_FrontendInfo.name));
else if (!strncasecmp(s, "STAT:", 5))
m_FrontendStatus = (fe_status_t)strtol(s + 5, NULL, 16);
else if (!strncasecmp(s, "SGNL:", 5))
m_Signal = (uint16_t)strtol(s + 5, NULL, 16);
else if (!strncasecmp(s, "SNRA:", 5))
m_SNR = (uint16_t)strtol(s + 5, NULL, 16);
else if (!strncasecmp(s, "BERA:", 5))
m_BER = (uint32_t)strtol(s + 5, NULL, 16);
else if (!strncasecmp(s, "UNCB:", 5))
m_UNC = (uint32_t)strtol(s + 5, NULL, 16);
else if (!strncasecmp(s, "VIBR:", 5))
m_SvdrpVideoBitrate = (double)strtol(s + 5, NULL, 10);
else if (!strncasecmp(s, "AUBR:", 5))
m_SvdrpAudioBitrate = (double)strtol(s + 5, NULL, 10);
}
}
DrawInfoWindow();
DrawStatusWindow();
@@ -652,7 +665,7 @@ bool cFemonOsd::SvdrpConnect(void)
m_SvdrpPlugin = cPluginManager::GetPlugin(SVDRPPLUGIN);
if (m_SvdrpPlugin) {
m_SvdrpConnection.serverIp = femonConfig.svdrpip;
m_SvdrpConnection.serverPort = femonConfig.svdrpport;
m_SvdrpConnection.serverPort = (unsigned short)femonConfig.svdrpport;
m_SvdrpConnection.shared = true;
m_SvdrpPlugin->Service("SvdrpConnection-v1.0", &m_SvdrpConnection);
if (m_SvdrpConnection.handle >= 0) {
@@ -847,6 +860,6 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
break;
}
state = osContinue;
}
}
return state;
}

View File

@@ -34,7 +34,7 @@ private:
double m_SvdrpAudioBitrate;
SvdrpConnection_v1_0 m_SvdrpConnection;
cPlugin *m_SvdrpPlugin;
struct dvb_frontend_info m_FrontendInfo;
dvb_frontend_info m_FrontendInfo;
int m_Number;
int m_OldNumber;
uint16_t m_SNR;
@@ -43,7 +43,7 @@ private:
uint32_t m_UNC;
fe_status_t m_FrontendStatus;
int m_DisplayMode;
const cFont *m_Font;
cFont *m_Font;
cTimeMs m_InputTime;
cCondWait m_Sleep;
cMutex m_Mutex;

View File

@@ -199,7 +199,7 @@ void cFemonReceiver::Receive(uchar *Data, int Length)
}
uint8_t off = 0;
if (Data[3] & ADAPT_FIELD) {
off = Data[4] + 1;
off = (uint8_t)(Data[4] + 1);
}
if (Data[1] & PAY_START) {
uint8_t *sb = Data + 4 + off;

View File

@@ -13,6 +13,53 @@
#include "femonosd.h"
#include "femontools.h"
static cString getCA(int value)
{
// http://www.dvb.org/index.php?id=174
// http://en.wikipedia.org/wiki/Conditional_access_system
switch (value) {
case 0x0000: return cString::sprintf("%s (%X)", trVDR("Free To Air"), value); // Reserved
case 0x0001 ... 0x009F:
case 0x00A2 ... 0x00FF: return cString::sprintf("%s (%X)", tr("Fixed"), value); // Standardized systems
case 0x00A0 ... 0x00A1: return cString::sprintf("%s (%X)", tr("Analog"), value); // Analog signals
case 0x0100 ... 0x01FF: return cString::sprintf("%s (%X)", "SECA Mediaguard", value); // Canal Plus
case 0x0464: return cString::sprintf("%s (%X)", "EuroDec", value); // EuroDec
case 0x0500 ... 0x05FF: return cString::sprintf("%s (%X)", "Viaccess", value); // France Telecom
case 0x0600 ... 0x06FF: return cString::sprintf("%s (%X)", "Irdeto", value); // Irdeto
case 0x0900 ... 0x09FF: return cString::sprintf("%s (%X)", "NDS Videoguard", value); // News Datacom
case 0x0B00 ... 0x0BFF: return cString::sprintf("%s (%X)", "Conax", value); // Norwegian Telekom
case 0x0D00 ... 0x0DFF: return cString::sprintf("%s (%X)", "CryptoWorks", value); // Philips
case 0x0E00 ... 0x0EFF: return cString::sprintf("%s (%X)", "PowerVu", value); // Scientific Atlanta
case 0x1000: return cString::sprintf("%s (%X)", "RAS", value); // Tandberg Television
case 0x1200 ... 0x12FF: return cString::sprintf("%s (%X)", "NagraVision", value); // BellVu Express
case 0x1700 ... 0x17FF: return cString::sprintf("%s (%X)", "BetaCrypt", value); // BetaTechnik
case 0x1800 ... 0x18FF: return cString::sprintf("%s (%X)", "NagraVision", value); // Kudelski SA
case 0x22F0: return cString::sprintf("%s (%X)", "Codicrypt", value); // Scopus Network Technologies
case 0x2600: return cString::sprintf("%s (%X)", "BISS", value); // European Broadcasting Union
case 0x4347: return cString::sprintf("%s (%X)", "CryptOn", value); // CryptOn
case 0x4800: return cString::sprintf("%s (%X)", "Accessgate", value); // Telemann
case 0x4900: return cString::sprintf("%s (%X)", "China Crypt", value); // CryptoWorks
case 0x4A10: return cString::sprintf("%s (%X)", "EasyCas", value); // EasyCas
case 0x4A20: return cString::sprintf("%s (%X)", "AlphaCrypt", value); // AlphaCrypt
case 0x4A70: return cString::sprintf("%s (%X)", "DreamCrypt", value); // Dream Multimedia
case 0x4A60: return cString::sprintf("%s (%X)", "SkyCrypt", value); // @Sky
case 0x4A61: return cString::sprintf("%s (%X)", "Neotioncrypt", value); // Neotion
case 0x4A62: return cString::sprintf("%s (%X)", "SkyCrypt", value); // @Sky
case 0x4A63: return cString::sprintf("%s (%X)", "Neotion SHL", value); // Neotion
case 0x4A64 ... 0x4A6F: return cString::sprintf("%s (%X)", "SkyCrypt", value); // @Sky
case 0x4A80: return cString::sprintf("%s (%X)", "ThalesCrypt", value); // TPS
case 0x4AA1: return cString::sprintf("%s (%X)", "KeyFly", value); // SIDSA
case 0x4ABF: return cString::sprintf("%s (%X)", "DG-Crypt", value); // Beijing Compunicate Technology Inc.
case 0x4AD0 ... 0x4AD1: return cString::sprintf("%s (%X)", "X-Crypt", value); // XCrypt Inc.
case 0x4AD4: return cString::sprintf("%s (%X)", "OmniCrypt", value); // Widevine Technologies, Inc.
case 0x4AE0: return cString::sprintf("%s (%X)", "RossCrypt", value); // Digi Raum Electronics Co. Ltd.
case 0x5500: return cString::sprintf("%s (%X)", "Z-Crypt", value); // Digi Raum Electronics Co. Ltd.
case 0x5501: return cString::sprintf("%s (%X)", "Griffin", value); // Griffin
default: break;
}
return cString::sprintf("%X", value);
}
cString getFrontendInfo(int cardIndex)
{
cString info;
@@ -42,7 +89,7 @@ cString getFrontendInfo(int cardIndex)
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());
info = cString::sprintf("%s\nCHAN:%s", *info, *channel->ToText());
return info;
}
@@ -158,47 +205,15 @@ cString getSpids(const cChannel *channel)
return spids;
}
cString getCAids(const cChannel *channel, bool identify)
cString getCAids(const cChannel *channel)
{
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));
}
cString caids = cString::sprintf("%s", *getCA(channel->Ca(value)));
while (channel->Ca(++value) && (value < MAXCAIDS))
caids = cString::sprintf("%s, %s", *caids, *getCA(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", trVDR("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 getVideoStream(int value)
{
if (value != 0)
@@ -239,6 +254,7 @@ cString getVideoCodec(int value)
switch (value) {
case VIDEO_CODEC_MPEG2: return cString::sprintf("%s", tr("MPEG-2"));
case VIDEO_CODEC_H264: return cString::sprintf("%s", tr("H.264"));
default: break;
}
return cString::sprintf("---");
}
@@ -253,6 +269,7 @@ cString getAudioCodec(int value)
case AUDIO_CODEC_MPEG2_II: return cString::sprintf("%s", tr("MPEG-2 Layer II"));
case AUDIO_CODEC_MPEG2_III: return cString::sprintf("%s", tr("MPEG-2 Layer III"));
case AUDIO_CODEC_HEAAC: return cString::sprintf("%s", tr("HE-AAC"));
default: break;
}
return cString::sprintf("---");
}
@@ -264,6 +281,7 @@ cString getAudioChannelMode(int value)
case AUDIO_CHANNEL_MODE_JOINT_STEREO: return cString::sprintf("%s", tr("joint Stereo"));
case AUDIO_CHANNEL_MODE_DUAL: return cString::sprintf("%s", tr("dual"));
case AUDIO_CHANNEL_MODE_SINGLE: return cString::sprintf("%s", tr("mono"));
default: break;
}
return cString::sprintf("---");
}
@@ -271,7 +289,7 @@ cString getAudioChannelMode(int value)
cString getCoderate(int value)
{
switch (value) {
case FEC_NONE: return cString::sprintf("%s", tr("none"));
case FEC_NONE: return cString::sprintf("%s", trVDR("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");
@@ -280,7 +298,8 @@ cString getCoderate(int value)
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"));
case FEC_AUTO: return cString::sprintf("%s", trVDR("auto"));
default: break;
}
return cString::sprintf("---");
}
@@ -290,7 +309,8 @@ 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"));
case TRANSMISSION_MODE_AUTO: return cString::sprintf("%s", trVDR("auto"));
default: break;
}
return cString::sprintf("---");
}
@@ -301,7 +321,8 @@ cString getBandwidth(int 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"));
case BANDWIDTH_AUTO: return cString::sprintf("%s", trVDR("auto"));
default: break;
}
return cString::sprintf("---");
}
@@ -311,7 +332,8 @@ 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"));
case INVERSION_AUTO: return cString::sprintf("%s", trVDR("auto"));
default: break;
}
return cString::sprintf("---");
}
@@ -319,11 +341,12 @@ cString getInversion(int value)
cString getHierarchy(int value)
{
switch (value) {
case HIERARCHY_NONE: return cString::sprintf("%s", tr("none"));
case HIERARCHY_NONE: return cString::sprintf("%s", trVDR("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"));
case HIERARCHY_AUTO: return cString::sprintf("%s", trVDR("auto"));
default: break;
}
return cString::sprintf("---");
}
@@ -335,7 +358,8 @@ cString getGuard(int value)
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"));
case GUARD_INTERVAL_AUTO: return cString::sprintf("%s", trVDR("auto"));
default: break;
}
return cString::sprintf("---");
}
@@ -349,31 +373,12 @@ cString getModulation(int value)
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"));
case QAM_AUTO: return cString::sprintf("QAM %s", trVDR("auto"));
default: break;
}
return cString::sprintf("---");
}
cString getAlpha(int value)
{
return cString::sprintf("---");
}
cString getPriority(int value)
{
return cString::sprintf("---");
}
cString getSystem(int value)
{
return cString::sprintf("---");
}
cString getRollOff(int value)
{
return cString::sprintf("---");
}
cString getResolution(int width, int height, int scan)
{
if ((width > 0) && (height > 0)) {
@@ -409,6 +414,7 @@ cString getAspectRatio(int value)
case VIDEO_ASPECT_RATIO_160_99: return cString::sprintf("160:99");
case VIDEO_ASPECT_RATIO_3_2: return cString::sprintf("3:2");
case VIDEO_ASPECT_RATIO_2_1: return cString::sprintf("2:1");
default: break;
}
return cString::sprintf("---");
}
@@ -423,6 +429,7 @@ cString getVideoFormat(int value)
case VIDEO_FORMAT_NTSC: return cString::sprintf("%s", tr("NTSC"));
case VIDEO_FORMAT_SECAM: return cString::sprintf("%s", tr("SECAM"));
case VIDEO_FORMAT_MAC: return cString::sprintf("%s", tr("MAC"));
default: break;
}
return cString::sprintf("---");
}
@@ -445,6 +452,7 @@ cString getAC3BitStreamMode(int value, int coding)
case AUDIO_BITSTREAM_MODE_C: return cString::sprintf("%s", tr("Commentary (C)"));
case AUDIO_BITSTREAM_MODE_E: return cString::sprintf("%s", tr("Emergency (E)"));
case AUDIO_BITSTREAM_MODE_VO_KAR: return cString::sprintf("%s", (coding == 1) ? tr("Voice Over (VO)") : tr("Karaoke"));
default: break;
}
return cString::sprintf("---");
}
@@ -461,6 +469,7 @@ cString getAC3AudioCodingMode(int value, int stream)
case AUDIO_CODING_MODE_3_1: return cString::sprintf("3/1 - %s, %s, %s, %s", tr("L"), tr("C"), tr("R"), tr("S"));
case AUDIO_CODING_MODE_2_2: return cString::sprintf("2/2 - %s, %s, %s, %s", tr("L"), tr("R"), tr("SL"), tr("SR"));
case AUDIO_CODING_MODE_3_2: return cString::sprintf("3/2 - %s, %s, %s, %s, %s", tr("L"), tr("C"), tr("R"), tr("SL"), tr("SR"));
default: break;
}
}
return cString::sprintf("---");
@@ -473,6 +482,7 @@ cString getAC3CenterMixLevel(int value)
case AUDIO_CENTER_MIX_LEVEL_MINUS_4_5dB: return cString::sprintf("-4.5 %s", tr("dB"));
case AUDIO_CENTER_MIX_LEVEL_MINUS_6dB: return cString::sprintf("-6.0 %s", tr("dB"));
case AUDIO_CENTER_MIX_LEVEL_RESERVED: return cString::sprintf("%s", tr("reserved"));
default: break;
}
return cString::sprintf("---");
}
@@ -484,6 +494,7 @@ cString getAC3SurroundMixLevel(int value)
case AUDIO_SURROUND_MIX_LEVEL_MINUS_6dB: return cString::sprintf("-6 %s", tr("dB"));
case AUDIO_SURROUND_MIX_LEVEL_0_dB: return cString::sprintf("0 %s", tr("dB"));
case AUDIO_SURROUND_MIX_LEVEL_RESERVED: return cString::sprintf("%s", tr("reserved"));
default: break;
}
return cString::sprintf("---");
}
@@ -495,6 +506,7 @@ cString getAC3DolbySurroundMode(int value)
case AUDIO_DOLBY_SURROUND_MODE_NOT_DOLBYSURROUND: return cString::sprintf("%s", trVDR("no"));
case AUDIO_DOLBY_SURROUND_MODE_DOLBYSURROUND: return cString::sprintf("%s", trVDR("yes"));
case AUDIO_DOLBY_SURROUND_MODE_RESERVED: return cString::sprintf("%s", tr("reserved"));
default: break;
}
return cString::sprintf("---");
}
@@ -517,6 +529,7 @@ cString getAudioSamplingFreq(int value)
switch (value) {
case AUDIO_SAMPLING_FREQUENCY_INVALID: return cString::sprintf("---");
case AUDIO_SAMPLING_FREQUENCY_RESERVED: return cString::sprintf("%s", tr("reserved"));
default: break;
}
return cString::sprintf("%d %s", value, tr("Hz"));
}
@@ -527,6 +540,7 @@ cString getAudioBitrate(double value, double stream)
case AUDIO_BITRATE_INVALID: return cString::sprintf("---");
case AUDIO_BITRATE_RESERVED: return cString::sprintf("%s (%s)", tr("reserved"), *getBitrateKbits(value));
case AUDIO_BITRATE_FREE: return cString::sprintf("%s (%s)", tr("free"), *getBitrateKbits(value));
default: break;
}
return cString::sprintf("%s (%s)", *getBitrateKbits(stream), *getBitrateKbits(value));
}

View File

@@ -35,8 +35,7 @@ uint32_t getUNC(int cardIndex = 0);
cString getApids(const cChannel *channel);
cString getDpids(const cChannel *channel);
cString getSpids(const cChannel *channel);
cString getCAids(const cChannel *channel, bool identify = false);
cString getCA(int value);
cString getCAids(const cChannel *channel);
cString getVideoStream(int value);
cString getVideoCodec(int value);
cString getAudioStream(int value, const cChannel *channel);
@@ -49,10 +48,6 @@ cString getInversion(int value);
cString getHierarchy(int value);
cString getGuard(int value);
cString getModulation(int value);
cString getAlpha(int value);
cString getPriority(int value);
cString getSystem(int value);
cString getRollOff(int value);
cString getResolution(int width, int height, int scan);
cString getAspectRatio(int value);
cString getVideoFormat(int value);

View File

@@ -7,9 +7,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.6.4\n"
"Project-Id-Version: femon 1.6.5\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2008-11-09 13:31+0200\n"
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Christian Wieninger\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -98,12 +98,6 @@ msgstr "Horizontaler Offset"
msgid "Define the horizontal offset of OSD."
msgstr ""
msgid "Show CA system"
msgstr "CA System anzeigen"
msgid "Define whether the CA system is shown as text."
msgstr ""
msgid "Red limit [%]"
msgstr "Grenze Rot [%]"
@@ -182,15 +176,6 @@ msgstr "Tid"
msgid "Rid"
msgstr "Rid"
msgid "Satellite Card"
msgstr "Satellitenkarte"
msgid "Cable Card"
msgstr "Kabelkarte"
msgid "Terrestrial Card"
msgstr "Terrestrische Karte"
msgid "Coderate"
msgstr "Coderate"
@@ -263,36 +248,6 @@ msgstr "Fest"
msgid "Analog"
msgstr "Analog"
msgid "SECA/Mediaguard"
msgstr "SECA/Mediaguard"
msgid "Viaccess"
msgstr "Viaccess"
msgid "Irdeto"
msgstr "Irdeto"
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
msgid "Conax"
msgstr "Conax"
msgid "CryptoWorks"
msgstr "CryptoWorks"
msgid "PowerVu"
msgstr "PowerVu"
msgid "NagraVision"
msgstr "NagraVision"
msgid "BetaCrypt"
msgstr "BetaCrypt"
msgid "SkyCrypt"
msgstr "SkyCrypt"
msgid "MPEG-2"
msgstr ""
@@ -332,12 +287,6 @@ msgstr ""
msgid "mono"
msgstr ""
msgid "none"
msgstr "Nichts"
msgid "auto"
msgstr "Auto"
msgid "MHz"
msgstr "MHz"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.6.4\n"
"Project-Id-Version: femon 1.6.5\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2008-11-09 13:31+0200\n"
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Luis Palacios\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -96,12 +96,6 @@ msgstr "Desplazamiento horizontal"
msgid "Define the horizontal offset of OSD."
msgstr ""
msgid "Show CA system"
msgstr "Mostrar sistema CA"
msgid "Define whether the CA system is shown as text."
msgstr ""
msgid "Red limit [%]"
msgstr "L<>mite de rojo [%s]"
@@ -180,15 +174,6 @@ msgstr "Tid"
msgid "Rid"
msgstr "Rid"
msgid "Satellite Card"
msgstr "Tarjeta Sat<61>lite"
msgid "Cable Card"
msgstr "Tarjeta Cable"
msgid "Terrestrial Card"
msgstr "Tarjeta TDT"
msgid "Coderate"
msgstr "Coderate"
@@ -261,36 +246,6 @@ msgstr "Fijo"
msgid "Analog"
msgstr "Anal<61>gico"
msgid "SECA/Mediaguard"
msgstr "SECA/Mediguard"
msgid "Viaccess"
msgstr "Viaccess"
msgid "Irdeto"
msgstr "Irdeto"
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
msgid "Conax"
msgstr "Conax"
msgid "CryptoWorks"
msgstr "CryptoWorks"
msgid "PowerVu"
msgstr "PowerVu"
msgid "NagraVision"
msgstr "NagraVision"
msgid "BetaCrypt"
msgstr "BetaCrypt"
msgid "SkyCrypt"
msgstr "SkyCrypt"
msgid "MPEG-2"
msgstr ""
@@ -330,12 +285,6 @@ msgstr ""
msgid "mono"
msgstr "o"
msgid "none"
msgstr "ninguno"
msgid "auto"
msgstr "auto"
msgid "MHz"
msgstr "MHz"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.6.4\n"
"Project-Id-Version: femon 1.6.5\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2008-11-09 13:31+0200\n"
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Arthur Konovalov\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -96,12 +96,6 @@ msgstr "Horisontaalne nihe"
msgid "Define the horizontal offset of OSD."
msgstr ""
msgid "Show CA system"
msgstr "N<>ita CA s<>steemi"
msgid "Define whether the CA system is shown as text."
msgstr ""
msgid "Red limit [%]"
msgstr "Punase limiit [%]"
@@ -180,15 +174,6 @@ msgstr "Tid"
msgid "Rid"
msgstr "Rid"
msgid "Satellite Card"
msgstr "Satelliidikaart"
msgid "Cable Card"
msgstr "Kaablikaart"
msgid "Terrestrial Card"
msgstr "Terrestiaalkaart"
msgid "Coderate"
msgstr "Coderate"
@@ -261,36 +246,6 @@ msgstr "Fikseeritud"
msgid "Analog"
msgstr ""
msgid "SECA/Mediaguard"
msgstr "SECA/Mediaguard"
msgid "Viaccess"
msgstr "Viaccess"
msgid "Irdeto"
msgstr "Irdeto"
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
msgid "Conax"
msgstr "Conax"
msgid "CryptoWorks"
msgstr "CryptoWorks"
msgid "PowerVu"
msgstr "PowerVu"
msgid "NagraVision"
msgstr "NagraVision"
msgid "BetaCrypt"
msgstr "BetaCrypt"
msgid "SkyCrypt"
msgstr "SkyCrypt"
msgid "MPEG-2"
msgstr ""
@@ -330,12 +285,6 @@ msgstr ""
msgid "mono"
msgstr ""
msgid "none"
msgstr "ei"
msgid "auto"
msgstr "auto"
msgid "MHz"
msgstr "MHz"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.6.4\n"
"Project-Id-Version: femon 1.6.5\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2008-11-09 13:31+0200\n"
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Rolf Ahrenberg\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -96,12 +96,6 @@ msgstr "Vaakakeskitys"
msgid "Define the horizontal offset of OSD."
msgstr "Määrittele näytön vaakakeskitys."
msgid "Show CA system"
msgstr "Näytä salausjärjestelmä"
msgid "Define whether the CA system is shown as text."
msgstr "Määrittele, näytetään salausjärjestelmä tekstinä."
msgid "Red limit [%]"
msgstr "Punaisen taso [%]"
@@ -180,15 +174,6 @@ msgstr "Lähete-ID"
msgid "Rid"
msgstr "Radio-ID"
msgid "Satellite Card"
msgstr "Satelliittikortti"
msgid "Cable Card"
msgstr "Kaapelikortti"
msgid "Terrestrial Card"
msgstr "Terrestriaalikortti"
msgid "Coderate"
msgstr "Suojaustaso"
@@ -261,36 +246,6 @@ msgstr "kiinteä"
msgid "Analog"
msgstr "analoginen"
msgid "SECA/Mediaguard"
msgstr "SECA/Mediaguard"
msgid "Viaccess"
msgstr "Viaccess"
msgid "Irdeto"
msgstr "Irdeto"
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
msgid "Conax"
msgstr "Conax"
msgid "CryptoWorks"
msgstr "CryptoWorks"
msgid "PowerVu"
msgstr "PowerVu"
msgid "NagraVision"
msgstr "NagraVision"
msgid "BetaCrypt"
msgstr "BetaCrypt"
msgid "SkyCrypt"
msgstr "SkyCrypt"
msgid "MPEG-2"
msgstr "MPEG-2"
@@ -330,12 +285,6 @@ msgstr "kaksikanavainen"
msgid "mono"
msgstr "mono"
msgid "none"
msgstr "ei"
msgid "auto"
msgstr "auto"
msgid "MHz"
msgstr "MHz"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.6.4\n"
"Project-Id-Version: femon 1.6.5\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2008-11-09 13:31+0200\n"
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
"PO-Revision-Date: 2008-01-26 09:59+0100\n"
"Last-Translator: NIVAL Micha<68>l <mnival@club-internet.fr>\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -96,12 +96,6 @@ msgstr "D
msgid "Define the horizontal offset of OSD."
msgstr "D<>finit le d<>placement horizontal de l'OSD."
msgid "Show CA system"
msgstr "Afficher syst<73>me CA"
msgid "Define whether the CA system is shown as text."
msgstr "D<>finit si le syst<73>me CA doit <20>tre affich<63>."
msgid "Red limit [%]"
msgstr "Limite du rouge (%)"
@@ -180,15 +174,6 @@ msgstr "Tid"
msgid "Rid"
msgstr "Rid"
msgid "Satellite Card"
msgstr "Carte Satellite"
msgid "Cable Card"
msgstr "Carte C<>ble"
msgid "Terrestrial Card"
msgstr "Carte TNT"
msgid "Coderate"
msgstr "Coderate"
@@ -261,36 +246,6 @@ msgstr "Fixe"
msgid "Analog"
msgstr "Analogique"
msgid "SECA/Mediaguard"
msgstr "SECA/Mediaguard"
msgid "Viaccess"
msgstr "Viaccess"
msgid "Irdeto"
msgstr "Irdeto"
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
msgid "Conax"
msgstr "Conax"
msgid "CryptoWorks"
msgstr "CryptoWorks"
msgid "PowerVu"
msgstr "PowerVu"
msgid "NagraVision"
msgstr "NagraVision"
msgid "BetaCrypt"
msgstr "BetaCrypt"
msgid "SkyCrypt"
msgstr "SkyCrypt"
msgid "MPEG-2"
msgstr ""
@@ -330,12 +285,6 @@ msgstr ""
msgid "mono"
msgstr ""
msgid "none"
msgstr "Aucun"
msgid "auto"
msgstr "Auto"
msgid "MHz"
msgstr "MHz"

View File

@@ -6,9 +6,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.6.4\n"
"Project-Id-Version: femon 1.6.5\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2008-11-09 13:31+0200\n"
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
"PO-Revision-Date: 2008-11-10 23:37+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -97,12 +97,6 @@ msgstr "Limite orizzontale"
msgid "Define the horizontal offset of OSD."
msgstr "Definisci il limite orizzontale dell'OSD."
msgid "Show CA system"
msgstr "Mostra sistema CA"
msgid "Define whether the CA system is shown as text."
msgstr "Definisci se il sistema CA viene mostrato come testo."
msgid "Red limit [%]"
msgstr "Limite rosso [%]"
@@ -181,15 +175,6 @@ msgstr "Tid"
msgid "Rid"
msgstr "Rid"
msgid "Satellite Card"
msgstr "Scheda satellite"
msgid "Cable Card"
msgstr "Scheda via cavo"
msgid "Terrestrial Card"
msgstr "Scheda terrestre"
msgid "Coderate"
msgstr "Coderate"
@@ -262,36 +247,6 @@ msgstr "Fisso"
msgid "Analog"
msgstr "Analogico"
msgid "SECA/Mediaguard"
msgstr "SECA/Mediaguard"
msgid "Viaccess"
msgstr "Viaccess"
msgid "Irdeto"
msgstr "Irdeto"
msgid "NDS/Videoguard"
msgstr "NDS/Videoguard"
msgid "Conax"
msgstr "Conax"
msgid "CryptoWorks"
msgstr "CryptoWorks"
msgid "PowerVu"
msgstr "PowerVu"
msgid "NagraVision"
msgstr "NagraVision"
msgid "BetaCrypt"
msgstr "BetaCrypt"
msgid "SkyCrypt"
msgstr "SkyCrypt"
msgid "MPEG-2"
msgstr "MPEG-2"
@@ -331,12 +286,6 @@ msgstr "dual"
msgid "mono"
msgstr "mono"
msgid "none"
msgstr "nessuna"
msgid "auto"
msgstr "auto"
msgid "MHz"
msgstr "MHz"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.6.4\n"
"Project-Id-Version: femon 1.6.5\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2008-11-09 13:31+0200\n"
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Vyacheslav Dikonov\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -96,12 +96,6 @@ msgstr ""
msgid "Define the horizontal offset of OSD."
msgstr ""
msgid "Show CA system"
msgstr ""
msgid "Define whether the CA system is shown as text."
msgstr ""
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><> (%)"
@@ -180,15 +174,6 @@ msgstr "Tid"
msgid "Rid"
msgstr "Rid"
msgid "Satellite Card"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgid "Cable Card"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgid "Terrestrial Card"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
msgid "Coderate"
msgstr "Coderate"
@@ -261,36 +246,6 @@ msgstr ""
msgid "Analog"
msgstr ""
msgid "SECA/Mediaguard"
msgstr ""
msgid "Viaccess"
msgstr ""
msgid "Irdeto"
msgstr ""
msgid "NDS/Videoguard"
msgstr ""
msgid "Conax"
msgstr ""
msgid "CryptoWorks"
msgstr ""
msgid "PowerVu"
msgstr ""
msgid "NagraVision"
msgstr ""
msgid "BetaCrypt"
msgstr ""
msgid "SkyCrypt"
msgstr ""
msgid "MPEG-2"
msgstr ""
@@ -330,12 +285,6 @@ msgstr ""
msgid "mono"
msgstr ""
msgid "none"
msgstr "<22><><EFBFBD>"
msgid "auto"
msgstr "<22><><EFBFBD><EFBFBD>"
msgid "MHz"
msgstr "<22><><EFBFBD>"