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

Compare commits

...

21 Commits

Author SHA1 Message Date
Rolf Ahrenberg
136c9fb73c Refactored the SAT>IP support. 2014-03-15 12:35:49 +02:00
Rolf Ahrenberg
9ca1fcb378 Added support for SAT>IP devices. 2014-03-08 13:28:31 +02:00
Rolf Ahrenberg
1cfbd0b730 Updated translation files and HISTORY. 2014-01-19 00:14:13 +02:00
Rolf Ahrenberg
152e87d443 Updated version number. 2014-01-12 22:27:23 +02:00
Rolf Ahrenberg
08223cf6c4 Added initial support for CAMs. 2014-01-12 22:24:50 +02:00
Rolf Ahrenberg
84572d2187 Fixed indentation. 2014-01-12 01:02:03 +02:00
Rolf Ahrenberg
78554b53b6 Updated translation files and HISTORY. 2014-01-11 00:08:06 +02:00
Rolf Ahrenberg
11554a8d7e Updated the femonclient package. 2014-01-06 22:40:31 +02:00
Rolf Ahrenberg
0d06635520 Fixed freeing memory. 2014-01-06 22:36:54 +02:00
Rolf Ahrenberg
eedab47c35 Updated Makefile. 2014-01-06 22:00:59 +02:00
Rolf Ahrenberg
cba5171a09 Fixed scan-build issues. 2014-01-02 21:33:34 +02:00
Rolf Ahrenberg
91d6cb4074 Fixed a crash in SVDRP (Thanks for Lothar Englisch for reporting). 2013-11-19 22:29:36 +02:00
Rolf Ahrenberg
bf222dc7ff Updated for vdr-2.0.0. 2013-04-01 22:35:11 +03:00
Rolf Ahrenberg
33176e9a77 Updated French translation (Thanks to Bernard Jaulin). 2013-03-23 19:13:35 +02:00
Rolf Ahrenberg
0a4e5d912c Added Slovak translation (Thanks to Milan Hrala). 2013-03-20 21:43:45 +02:00
Rolf Ahrenberg
3648b46fa2 Added SetMenuCategory(mcSetupPlugins). 2013-03-13 23:36:15 +02:00
Rolf Ahrenberg
c5267f5390 Updated HISTORY. 2013-03-10 21:18:23 +02:00
Rolf Ahrenberg
30d7eea514 Fixed Rolloff/StreamId layouts and updated Finnish translation. 2013-03-10 20:12:17 +02:00
Rolf Ahrenberg
09d17772d2 Updated for vdr-1.7.40. 2013-03-10 18:52:01 +02:00
Rolf Ahrenberg
ee43f5936f Updated French translation (Thanks to Bernard Jaulin). 2013-03-09 13:19:03 +02:00
Rolf Ahrenberg
10b8463283 Fixed cppcheck warnings. 2013-03-06 09:28:16 +02:00
24 changed files with 704 additions and 213 deletions

35
HISTORY
View File

@@ -1,4 +1,3 @@
===================================
VDR Plugin 'femon' Revision History
===================================
@@ -66,6 +65,7 @@ VDR Plugin 'femon' Revision History
- Backported changes and fixes from version 0.1.6.
===================================
VDR Plugin 'femon' Revision History
===================================
@@ -343,6 +343,7 @@ VDR Plugin 'femon' Revision History
- Backported from 1.7.2.
===================================
VDR Plugin 'femon' Revision History
===================================
@@ -459,3 +460,35 @@ VDR Plugin 'femon' Revision History
- Updated for vdr-1.7.37.
- Modified how the receiver is detached.
- Added Ukrainian translation (Thanks to Yarema aka Knedlyk).
2013-03-10: Version 1.7.19
- Updated for vdr-1.7.40.
- Updated French translation (Thanks to Bernard Jaulin).
===================================
VDR Plugin 'femon' Revision History
===================================
2013-04-01: Version 2.0.0
- Updated for vdr-2.0.0.
- Added Slovak translation (Thanks to Milan Hrala).
2014-01-10: Version 2.0.1
- Fixed a crash in SVDRP (Thanks for Lothar Englisch for reporting).
- Fixed a memory leak and issues reported by scan-build tool.
2014-01-18: Version 2.0.2
- Added initial support for CAMs.
2014-03-08: Version 2.0.3
- Added support for SAT>IP devices.
2014-03-15: Version 2.0.4
- Refactored the SAT>IP support.

View File

@@ -24,7 +24,7 @@ GITTAG = $(shell git describe --always 2>/dev/null)
### The directory environment:
# Use package data if installed...otherwise assume we're under the VDR source directory:
PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
LOCDIR = $(call PKGCFG,locdir)
PLGCFG = $(call PKGCFG,plgcfg)
@@ -145,4 +145,4 @@ clean:
.PHONY: cppcheck
cppcheck:
@cppcheck --enable=all -v -f $(OBJS:%.o=%.c)
@cppcheck --language=c++ --enable=all -v -f $(OBJS:%.o=%.c)

7
README
View File

@@ -71,13 +71,8 @@ Left/Right - Switch to next/previous device that provides the current channel
Installation:
cd /put/your/path/here/VDR/PLUGINS/src
tar -xzf /put/your/path/here/vdr-femon-X.Y.Z.tgz
ln -s femon-X.Y.Z femon
cd /put/your/path/here/VDR
make
make plugins
./vdr -P femon
make -C femon-X.Y.Z install
Client-server architecture:

17
femon.c
View File

@@ -14,15 +14,15 @@
#include "femonservice.h"
#include "femontools.h"
#if defined(APIVERSNUM) && APIVERSNUM < 10737
#error "VDR-1.7.37 API version or greater is required!"
#if defined(APIVERSNUM) && APIVERSNUM < 20000
#error "VDR-2.0.0 API version or greater is required!"
#endif
#ifndef GITVERSION
#define GITVERSION ""
#endif
static const char VERSION[] = "1.7.18" GITVERSION;
static const char VERSION[] = "2.0.4" GITVERSION;
static const char DESCRIPTION[] = trNOOP("DVB Signal Information Monitor (OSD)");
static const char MAINMENUENTRY[] = trNOOP("Signal Information");
@@ -136,7 +136,7 @@ bool cPluginFemon::Service(const char *Id, void *Data)
{
if (strcmp(Id,"FemonService-v1.0") == 0) {
if (Data) {
FemonService_v1_0 *data = (FemonService_v1_0*)Data;
FemonService_v1_0 *data = reinterpret_cast<FemonService_v1_0*>(Data);
if (!cDevice::ActualDevice())
return false;
cDvbDevice *dev = getDvbDevice(cDevice::ActualDevice());
@@ -204,11 +204,11 @@ cString cPluginFemon::SVDRPCommand(const char *Command, const char *Option, int
if (dev2)
dev = dev2;
}
if (cReplayControl::NowReplaying() || !dev) {
ReplyCode = 550; // Requested action not taken
return cString("Cannot open femon plugin while replaying");
}
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(Name());
return cString("Opening femon plugin");
@@ -318,6 +318,7 @@ cMenuFemonSetup::cMenuFemonSetup(void)
themes[eFemonThemePearlHD] = tr("PearlHD");
data = femonConfig;
SetMenuCategory(mcSetupPlugins);
Setup();
}

Binary file not shown.

View File

@@ -434,8 +434,9 @@ void cFemonOsd::DrawInfoWindow(void)
OSDDRAWINFORIGHT(trVDR("CoderateH"), *getCoderate(dtp.CoderateH()));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("System"), *getSatelliteSystem(dtp.System()));
if (dtp.System())
OSDDRAWINFORIGHT(trVDR("RollOff"), *getRollOff(dtp.RollOff()));
if (dtp.System()) {
OSDDRAWINFORIGHT(trVDR("RollOff"), *getRollOff(dtp.RollOff()));
}
}
break;
@@ -471,8 +472,9 @@ void cFemonOsd::DrawInfoWindow(void)
OSDDRAWINFORIGHT(trVDR("Guard"), *getGuard(dtp.Guard()));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("System"), *getTerrestrialSystem(dtp.System()));
if (dtp.System())
OSDDRAWINFORIGHT(trVDR("PlpId"), *cString::sprintf("%d", dtp.PlpId()));
if (dtp.System()) {
OSDDRAWINFORIGHT(trVDR("StreamId"), *cString::sprintf("%d", dtp.StreamId()));
}
}
break;
@@ -488,7 +490,6 @@ void cFemonOsd::DrawInfoWindow(void)
OSDDRAWINFOLEFT(tr("Protocol"), *data.protocol);
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT(tr("Bitrate"), *data.bitrate);
offset += OSDROWHEIGHT;
}
}
}
@@ -624,6 +625,23 @@ void cFemonOsd::Action(void)
m_BERValid = (ioctl(m_Frontend, FE_READ_BER, &m_BER) >= 0);
m_UNCValid = (ioctl(m_Frontend, FE_READ_UNCORRECTED_BLOCKS, &m_UNC) >= 0);
}
else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) {
m_Quality = cDevice::ActualDevice()->SignalQuality();
m_QualityValid = (m_Quality >= 0);
m_Strength = cDevice::ActualDevice()->SignalStrength();
m_StrengthValid = (m_Strength >= 0);
m_FrontendName = cDevice::ActualDevice()->DeviceName();
m_FrontendStatus = (fe_status_t)(cDevice::ActualDevice()->HasLock() ? (FE_HAS_LOCK | FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC) : 0);
m_FrontendStatusValid = m_StrengthValid;
m_Signal = uint16_t(m_Strength * 0xFFFF / 100);
m_SignalValid = m_StrengthValid;
m_SNR = uint16_t(m_Quality * 0xFFFF / 100);
m_SNRValid = m_QualityValid;
m_BER = 0;
m_BERValid = false;
m_UNC = 0;
m_UNCValid = false;
}
else if (m_SvdrpConnection.handle >= 0) {
cmd.handle = m_SvdrpConnection.handle;
m_SvdrpPlugin->Service("SvdrpCommand-v1.0", &cmd);
@@ -714,6 +732,9 @@ void cFemonOsd::Show(void)
return;
}
}
else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) {
// nop
}
else if (femonConfig.usesvdrp) {
if (!SvdrpConnect() || !SvdrpTune())
return;
@@ -788,6 +809,9 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber, bool li
return;
}
}
else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) {
// nop
}
else if (femonConfig.usesvdrp) {
if (!SvdrpConnect() || !SvdrpTune())
return;
@@ -834,26 +858,83 @@ bool cFemonOsd::DeviceSwitch(int direction)
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
if (channel) {
for (int i = 0; i < cDevice::NumDevices() - 1; i++) {
if (direction >= 0) {
if (++device >= cDevice::NumDevices())
device = 0;
}
else {
if (--device < 0)
device = cDevice::NumDevices() - 1;
}
if (cDevice::GetDevice(device)->ProvidesChannel(channel, 0)) {
debug("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, direction, device);
cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), 0, true);
cControl::Shutdown();
cDevice::GetDevice(device)->SwitchChannel(channel, true);
if (cDevice::GetDevice(device) == cDevice::PrimaryDevice())
cDevice::GetDevice(device)->ForceTransferMode();
cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel));
cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number(), true);
return (true);
}
}
if (direction >= 0) {
if (++device >= cDevice::NumDevices())
device = 0;
}
else {
if (--device < 0)
device = cDevice::NumDevices() - 1;
}
// Collect the current priorities of all CAM slots that can decrypt the channel:
int NumCamSlots = CamSlots.Count();
int SlotPriority[NumCamSlots];
int NumUsableSlots = 0;
bool NeedsDetachAllReceivers = false;
bool InternalCamNeeded = false;
bool ValidDevice = false;
cCamSlot *s = NULL;
cDevice *d = cDevice::GetDevice(device);
if (channel->Ca() >= CA_ENCRYPTED_MIN) {
for (cCamSlot *CamSlot = CamSlots.First(); CamSlot; CamSlot = CamSlots.Next(CamSlot)) {
SlotPriority[CamSlot->Index()] = MAXPRIORITY + 1; // assumes it can't be used
if (CamSlot->ModuleStatus() == msReady) {
if (CamSlot->ProvidesCa(channel->Caids())) {
if (!ChannelCamRelations.CamChecked(channel->GetChannelID(), CamSlot->SlotNumber())) {
SlotPriority[CamSlot->Index()] = CamSlot->Priority();
NumUsableSlots++;
}
}
}
}
if (!NumUsableSlots)
InternalCamNeeded = true; // no CAM is able to decrypt this channel
}
for (int j = 0; j < NumCamSlots || !NumUsableSlots; ++j) {
if (NumUsableSlots && SlotPriority[j] > MAXPRIORITY)
continue; // there is no CAM available in this slot
bool HasInternalCam = d->HasInternalCam();
if (InternalCamNeeded && !HasInternalCam)
continue; // no CAM is able to decrypt this channel and the device uses vdr handled CAMs
if (NumUsableSlots && !HasInternalCam && !CamSlots.Get(j)->Assign(d, true))
continue; // CAM slot can't be used with this device
if (d->ProvidesChannel(channel, 0, &NeedsDetachAllReceivers)) { // this device is basically able to do the job
debug("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, direction, device);
if (NumUsableSlots && !HasInternalCam && d->CamSlot() && d->CamSlot() != CamSlots.Get(j))
NeedsDetachAllReceivers = true; // using a different CAM slot requires detaching receivers
if (NumUsableSlots && !HasInternalCam)
s = CamSlots.Get(j);
ValidDevice = true;
break;
}
if (!NumUsableSlots)
break; // no CAM necessary, so just one loop over the devices
}
// Do the actual switch if valid device found
if (d && ValidDevice) {
cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), 0, true);
cControl::Shutdown();
if (NeedsDetachAllReceivers)
d->DetachAllReceivers();
if (s) {
if (s->Device() != d) {
if (s->Device())
s->Device()->DetachAllReceivers();
if (d->CamSlot())
d->CamSlot()->Assign(NULL);
s->Assign(d);
}
}
else if (d->CamSlot() && !d->CamSlot()->IsDecrypting())
d->CamSlot()->Assign(NULL);
d->SwitchChannel(channel, true);
if (d == cDevice::PrimaryDevice())
d->ForceTransferMode();
cControl::Launch(new cTransferControl(d, channel));
cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number(), true);
return (true);
}
}
}
}
return (false);

View File

@@ -53,6 +53,7 @@
#include "symbols/format480i.xpm"
#include "symbols/format480p.xpm"
static cBitmap bmOnePixel(1, 1, 1);
static cBitmap bmStereo(stereo_xpm);
static cBitmap bmMonoLeft(monoleft_xpm);
static cBitmap bmMonoRight(monoright_xpm);
@@ -134,49 +135,50 @@ bool cFemonSymbolCache::Populate(void)
Flush();
// pushing order must follow the enumeration - keep original proportions except for frontend status ones
cacheM.Append(bmStereo.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_STEREO
cacheM.Append(bmMonoLeft.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MONO_LEFT
cacheM.Append(bmMonoRight.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MONO_RIGHT
cacheM.Append(bmDolbyDigital.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD
cacheM.Append(bmDolbyDigital20.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD20
cacheM.Append(bmDolbyDigital51.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD51
cacheM.Append(bmMpeg2.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MPEG2
cacheM.Append(bmH264.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_H264
cacheM.Append(bmPal.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_PAL
cacheM.Append(bmNtsc.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_NTSC
cacheM.Append(bmEncrypted.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ENCRYPTED
cacheM.Append(bmSvdrp.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SVDRP
cacheM.Append(bmLock.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_LOCK
cacheM.Append(bmSignal.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_SIGNAL
cacheM.Append(bmCarrier.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_CARRIER
cacheM.Append(bmViterbi.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_VITERBI
cacheM.Append(bmSync.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_SYNC
cacheM.Append(bmAspectRatio11.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_1_1
cacheM.Append(bmAspectRatio169.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_16_9
cacheM.Append(bmOnePixel.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ONEPIXEL
cacheM.Append(bmStereo.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_STEREO
cacheM.Append(bmMonoLeft.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MONO_LEFT
cacheM.Append(bmMonoRight.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MONO_RIGHT
cacheM.Append(bmDolbyDigital.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD
cacheM.Append(bmDolbyDigital20.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD20
cacheM.Append(bmDolbyDigital51.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD51
cacheM.Append(bmMpeg2.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MPEG2
cacheM.Append(bmH264.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_H264
cacheM.Append(bmPal.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_PAL
cacheM.Append(bmNtsc.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_NTSC
cacheM.Append(bmEncrypted.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ENCRYPTED
cacheM.Append(bmSvdrp.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SVDRP
cacheM.Append(bmLock.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_LOCK
cacheM.Append(bmSignal.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_SIGNAL
cacheM.Append(bmCarrier.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_CARRIER
cacheM.Append(bmViterbi.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_VITERBI
cacheM.Append(bmSync.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_SYNC
cacheM.Append(bmAspectRatio11.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_1_1
cacheM.Append(bmAspectRatio169.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_16_9
cacheM.Append(bmAspectRatio2211.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_2_21_1
cacheM.Append(bmAspectRatio43.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_4_3
cacheM.Append(bmDevice.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DEVICE
cacheM.Append(bmZero.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ZERO
cacheM.Append(bmOne.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ONE
cacheM.Append(bmTwo.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_TWO
cacheM.Append(bmThree.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_THREE
cacheM.Append(bmFour.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FOUR
cacheM.Append(bmFive.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FIVE
cacheM.Append(bmSix.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SIX
cacheM.Append(bmSeven.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SEVEN
cacheM.Append(bmEight.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_EIGHT
cacheM.Append(bmFormat1080.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080
cacheM.Append(bmFormat1080i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080i
cacheM.Append(bmFormat1080p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080p
cacheM.Append(bmFormat720.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720
cacheM.Append(bmFormat720i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720i
cacheM.Append(bmFormat720p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720p
cacheM.Append(bmFormat576.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576
cacheM.Append(bmFormat576i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576i
cacheM.Append(bmFormat576p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576p
cacheM.Append(bmFormat480.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480
cacheM.Append(bmFormat480i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480i
cacheM.Append(bmFormat480p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480p
cacheM.Append(bmAspectRatio43.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_4_3
cacheM.Append(bmDevice.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DEVICE
cacheM.Append(bmZero.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ZERO
cacheM.Append(bmOne.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ONE
cacheM.Append(bmTwo.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_TWO
cacheM.Append(bmThree.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_THREE
cacheM.Append(bmFour.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FOUR
cacheM.Append(bmFive.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FIVE
cacheM.Append(bmSix.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SIX
cacheM.Append(bmSeven.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SEVEN
cacheM.Append(bmEight.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_EIGHT
cacheM.Append(bmFormat1080.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080
cacheM.Append(bmFormat1080i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080i
cacheM.Append(bmFormat1080p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080p
cacheM.Append(bmFormat720.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720
cacheM.Append(bmFormat720i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720i
cacheM.Append(bmFormat720p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720p
cacheM.Append(bmFormat576.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576
cacheM.Append(bmFormat576i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576i
cacheM.Append(bmFormat576p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576p
cacheM.Append(bmFormat480.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480
cacheM.Append(bmFormat480i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480i
cacheM.Append(bmFormat480p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480p
return true;
}
@@ -197,7 +199,7 @@ bool cFemonSymbolCache::Flush(void)
cBitmap& cFemonSymbolCache::Get(eSymbols symbolP)
{
cBitmap *bitmapM = NULL;
cBitmap *bitmapM = cacheM[SYMBOL_ONEPIXEL];
if (symbolP < cacheM.Size())
bitmapM = cacheM[symbolP];

View File

@@ -12,6 +12,7 @@
#include <vdr/osd.h>
enum eSymbols {
SYMBOL_ONEPIXEL,
SYMBOL_STEREO,
SYMBOL_MONO_LEFT,
SYMBOL_MONO_RIGHT,
@@ -77,8 +78,8 @@ public:
~cFemonSymbolCache();
void Refresh();
cBitmap& Get(eSymbols symbolP);
int GetSpacing() { return int(yFactorM * DEFAULT_SPACING); }
int GetRounding() { return int(yFactorM * DEFAULT_ROUNDING); }
int GetSpacing() { return int(yFactorM * cFemonSymbolCache::DEFAULT_SPACING); }
int GetRounding() { return int(yFactorM * cFemonSymbolCache::DEFAULT_ROUNDING); }
};
extern cFemonSymbolCache femonSymbols;

View File

@@ -9,6 +9,7 @@
#define __STDC_FORMAT_MACROS
#endif
#include <ctype.h>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>

View File

@@ -26,6 +26,8 @@
#define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d"
#define SATIP_DEVICE "SAT>IP"
cDvbDevice *getDvbDevice(cDevice* device);
cString getFrontendInfo(cDvbDevice *device);

View File

@@ -1,5 +1,5 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Peter Marquardt
# Andreas Brachold
@@ -7,10 +7,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Christian Wieninger\n"
"Language-Team: German <vdr@linuxtv.org>\n"
"Language: de\n"

View File

@@ -1,14 +1,14 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Luis Palacios
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Luis Palacios\n"
"Language-Team: Spanish <vdr@linuxtv.org>\n"
"Language: es\n"

View File

@@ -1,14 +1,14 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Arthur Konovalov
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Arthur Konovalov\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n"
"Language: et\n"

View File

@@ -1,14 +1,14 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Rolf Ahrenberg
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Rolf Ahrenberg\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n"
"Language: fi\n"
@@ -170,7 +170,7 @@ msgid "Nid"
msgstr "Verkko-ID"
msgid "Tid"
msgstr "Lähete-ID"
msgstr "TS-ID"
msgid "Rid"
msgstr "Radio-ID"
@@ -387,9 +387,3 @@ msgstr "Mbit/s"
msgid "kbit/s"
msgstr "kbit/s"
#~ msgid "Information"
#~ msgstr "Tiedot"
#~ msgid "Statistics"
#~ msgstr "Tilastot"

View File

@@ -1,26 +1,28 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Nicolas Huillard
# Michaël Nival <mnival@club-internet.fr>, 2010
# Bernard Jaulin <bernard.jaulin@gmail.com>, 2013
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: NIVAL Micha<68>l <mnival@club-internet.fr>\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Bernard Jaulin <bernard.jaulin@gmail.com>\n"
"Language-Team: French <vdr@linuxtv.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "DVB Signal Information Monitor (OSD)"
msgstr "Affiche les informations du signal DVB"
msgstr "Moniteur sur le signal DVB"
msgid "Signal Information"
msgstr "Signal DVB"
msgstr "Infos sur le signal DVB"
msgid "Femon not available"
msgstr "Femon n'est pas disponible"
@@ -71,91 +73,91 @@ msgid "Hide main menu entry"
msgstr "Masquer dans le menu principal"
msgid "Define whether the main menu entry is hidden."
msgstr "D<EFBFBD>finit si l'entr<EFBFBD>e doit <EFBFBD>tre masqu<EFBFBD>e dans le menu principal."
msgstr "Définit si l'entrée doit être masquée dans le menu principal."
msgid "Default display mode"
msgstr "Affichage par d<EFBFBD>faut"
msgstr "Affichage par défaut"
msgid "Define the default display mode at startup."
msgstr "D<EFBFBD>finit l'affichage par d<EFBFBD>faut au d<EFBFBD>marrage."
msgstr "Définit l'affichage par défaut au démarrage."
msgid "Define the used OSD skin."
msgstr "D<EFBFBD>finit le skin OSD <EFBFBD> utiliser."
msgstr "Définit le skin OSD à utiliser."
msgid "Define the used OSD theme."
msgstr "D<EFBFBD>finit le th<EFBFBD>me OSD <EFBFBD> utiliser."
msgstr "Définit le thème OSD à utiliser."
msgid "Position"
msgstr "Position"
msgid "Define the position of OSD."
msgstr "D<EFBFBD>finit la position de l'OSD."
msgstr "Définit la position de l'OSD."
msgid "Downscale OSD size [%]"
msgstr ""
msgstr "Réduit la taille de l'OSD (%)"
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgstr "Définit le ration de réduction de l'OSD."
msgid "Red limit [%]"
msgstr "Limite du rouge (%)"
msgid "Define a limit for red bar, which is used to indicate a bad signal."
msgstr "D<EFBFBD>finit la limite de la barre rouge, qui est utilis<EFBFBD> pour indiquer un mauvais signal."
msgstr "Définit la limite de la barre rouge, qui est utilisé pour indiquer un mauvais signal."
msgid "Green limit [%]"
msgstr "Limite du vert (%)"
msgid "Define a limit for green bar, which is used to indicate a good signal."
msgstr "D<EFBFBD>finit la limite de la barre rouge, qui est utilis<EFBFBD> pour indiquer un bon signal."
msgstr "Définit la limite de la barre rouge, qui est utilisé pour indiquer un bon signal."
msgid "OSD update interval [0.1s]"
msgstr "Intervalle de mise <EFBFBD> jour (0,1s)"
msgstr "Intervalle de mise à jour (0,1s)"
msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load."
msgstr "D<EFBFBD>finit l'intervalle de mise <EFBFBD> jour de l'OSD. Un petit intervalle g<EFBFBD>n<EFBFBD>re une charge CPU plus importante."
msgstr "Définit l'intervalle de mise à jour de l'OSD. Un petit intervalle génère une charge CPU plus importante."
msgid "Analyze stream"
msgstr "Analyser le flux"
msgid "Define whether the DVB stream is analyzed and bitrates calculated."
msgstr "D<EFBFBD>finit si le flux DVB est analys<EFBFBD> et le bitrates calcul<EFBFBD>."
msgstr "Définit si le flux DVB est analysé et le taux d'échantillonnage fixe calculé."
msgid "Calculation interval [0.1s]"
msgstr "Intervalle de calcul (0,1s)"
msgid "Define an interval for calculation. The bigger interval generates more stable values."
msgstr "D<EFBFBD>finit l'intervalle de cacul. Un plus grand intervalle g<EFBFBD>n<EFBFBD>re une valeur plus stable."
msgstr "Définit l'intervalle de cacul. Un plus grand intervalle génère une valeur plus stable."
msgid "Use SVDRP service"
msgstr "Utiliser le service SVDRP"
msgid "Define whether the SVDRP service is used in client/server setups."
msgstr "D<EFBFBD>finit si le service SVDRP est utilis<EFBFBD> en configuration client/serveur."
msgstr "Définit si le service SVDRP est utilisé dans la configuration client/serveur."
msgid "SVDRP service port"
msgstr "Port du service SVDRP"
msgid "Define the port number of SVDRP service."
msgstr "D<EFBFBD>finit le port d'<EFBFBD>coute du service SVDRP."
msgstr "Définit le port d'écoute du service SVDRP."
msgid "SVDRP service IP"
msgstr "IP du service SVDRP"
msgid "Define the IP address of SVDRP service."
msgstr "D<EFBFBD>finit l'adresse IP du service SVDRP."
msgstr "Définit l'adresse IP du service SVDRP."
msgid "Help"
msgstr "Aide"
msgid "Video"
msgstr "Vid<EFBFBD>o"
msgstr "Vidéo"
msgid "Audio"
msgstr "Audio"
msgid "Transponder Information"
msgstr "Information transpondeur"
msgstr "Information du transpondeur"
msgid "Apid"
msgstr "Apid"
@@ -179,40 +181,40 @@ msgid "Coderate"
msgstr "Coderate"
msgid "Protocol"
msgstr ""
msgstr "Protocole"
msgid "Bitrate"
msgstr "Bitrate"
msgstr "Taux d'échantillonnage fixe"
msgid "Stream Information"
msgstr "Information flux"
msgstr "Information sur le flux"
msgid "Video Stream"
msgstr "Flux vid<EFBFBD>o"
msgstr "Flux vidéo"
msgid "Codec"
msgstr ""
msgstr "Codec"
msgid "Aspect Ratio"
msgstr "Proportions d'image"
msgstr "Format de l'image"
msgid "Frame Rate"
msgstr "Rafra<EFBFBD>chissement"
msgstr "Rafraîchissement"
msgid "Video Format"
msgstr "Standard vid<EFBFBD>o"
msgstr "Standard vidéo"
msgid "Resolution"
msgstr "R<EFBFBD>solution"
msgstr "Résolution"
msgid "Audio Stream"
msgstr "Flux audio"
msgid "Channel Mode"
msgstr ""
msgstr "Mode chaîne"
msgid "Sampling Frequency"
msgstr "Fr<EFBFBD>quence d'<EFBFBD>chantillonage"
msgstr "Fréquence d'échantillonage"
msgid "AC-3 Stream"
msgstr "Flux AC-3"
@@ -245,64 +247,64 @@ msgid "Analog"
msgstr "Analogique"
msgid "MPEG-2"
msgstr ""
msgstr "MPEG-2"
msgid "H.264"
msgstr ""
msgstr "H.264"
msgid "MPEG-1 Layer I"
msgstr ""
msgstr "MPEG-1 Layer I"
msgid "MPEG-1 Layer II"
msgstr ""
msgstr "MPEG-1 Layer II"
msgid "MPEG-1 Layer III"
msgstr ""
msgstr "MPEG-1 Layer III"
msgid "MPEG-2 Layer I"
msgstr ""
msgstr "MPEG-2 Layer I"
msgid "MPEG-2 Layer II"
msgstr ""
msgstr "MPEG-2 Layer II"
msgid "MPEG-2 Layer III"
msgstr ""
msgstr "MPEG-2 Layer III"
msgid "HE-AAC"
msgstr ""
msgstr "HE-AAC"
msgid "LATM"
msgstr ""
msgstr "LATM"
msgid "stereo"
msgstr ""
msgstr "stéréo"
msgid "joint Stereo"
msgstr ""
msgstr "joint Stereo"
msgid "dual"
msgstr ""
msgstr "double"
msgid "mono"
msgstr ""
msgstr "mono"
msgid "interlaced"
msgstr ""
msgstr "entrelacé"
msgid "progressive"
msgstr ""
msgstr "progressif"
msgid "reserved"
msgstr "r<EFBFBD>serv<EFBFBD>"
msgstr "réservé"
msgid "extended"
msgstr ""
msgstr "étendu"
msgid "unknown"
msgstr "inconnu"
msgid "component"
msgstr ""
msgstr "composant"
msgid "PAL"
msgstr "PAL"
@@ -311,10 +313,10 @@ msgid "NTSC"
msgstr "NTSC"
msgid "SECAM"
msgstr ""
msgstr "SECAM"
msgid "MAC"
msgstr ""
msgstr "MAC"
msgid "Hz"
msgstr "Hz"
@@ -374,7 +376,7 @@ msgid "dB"
msgstr "dB"
msgid "not indicated"
msgstr "non indiqu<EFBFBD>"
msgstr "non indiqué"
msgid "MHz"
msgstr "MHz"

View File

@@ -1,14 +1,14 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# F<>ley Istv<74>n <ifuley at tigercomp dot ro>, 2011
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0200\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: F<>ley Istv<74>n <ifuley at tigercomp dot ro>\n"
"Language-Team: Hungarian <ifuley at tigercomp dot ro>\n"
"Language: hu\n"

View File

@@ -1,15 +1,15 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Sean Carlos
# Diego Pierotto <vdr-italian@tiscali.it>
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n"
"Language: it\n"

View File

@@ -1,14 +1,14 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Valdemaras Pipiras
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n"
"Language: lt\n"

View File

@@ -1,14 +1,14 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Vyacheslav Dikonov
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Vyacheslav Dikonov\n"
"Language-Team: Russian <vdr@linuxtv.org>\n"
"Language: ru\n"

389
po/sk_SK.po Normal file
View File

@@ -0,0 +1,389 @@
# VDR plugin language source file.
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Milan Hrala
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "DVB Signal Information Monitor (OSD)"
msgstr "DVB Inform<72>cie o sign<67>le (OSD)"
msgid "Signal Information"
msgstr "Inform<72>cie o sign<67>le"
msgid "Femon not available"
msgstr "Femon nie je k dispoz<6F>cii"
msgid "basic"
msgstr "<22>tandardtn<74>"
msgid "transponder"
msgstr "Transpond<6E>r"
msgid "stream"
msgstr "d<>tov<6F> tok"
msgid "AC-3"
msgstr "AC-3"
msgid "Classic"
msgstr "Klasick<63>"
msgid "Elchi"
msgstr "Elchi"
msgid "ST:TNG"
msgstr "ST:TNG"
msgid "DeepBlue"
msgstr "tmavo modr<64>"
msgid "Moronimo"
msgstr "Moronimo"
msgid "Enigma"
msgstr "Enigma"
msgid "EgalsTry"
msgstr "EgalsTry"
msgid "Duotone"
msgstr "Duotone"
msgid "SilverGreen"
msgstr "strieborno zelen<65>"
msgid "PearlHD"
msgstr "PearlHD"
msgid "Hide main menu entry"
msgstr "Schova<76> polo<6C>ku v hlavnom menu"
msgid "Define whether the main menu entry is hidden."
msgstr "Ur<55>ite, <20>i v hlavnom menu bude polo<6C>ka skryt<79>."
msgid "Default display mode"
msgstr "<22>tandardn<64> re<72>im zobrazenia"
msgid "Define the default display mode at startup."
msgstr "Zadajte predvolen<65> re<72>im zobrazenia pri spusten<65>."
msgid "Define the used OSD skin."
msgstr "Zadajte pou<6F>it<69> OSD vzh<7A>ad."
msgid "Define the used OSD theme."
msgstr "Definujte pou<6F>it<69> OSD t<>mu."
msgid "Position"
msgstr "Poz<6F>cia"
msgid "Define the position of OSD."
msgstr "Definujte poz<6F>ciu OSD."
msgid "Downscale OSD size [%]"
msgstr "Zmen<65>i<EFBFBD> ve<76>kos<6F> OSD [%]"
msgid "Define the downscale ratio for OSD size."
msgstr "Zadajte zmen<65>enie pomeru pre OSD ve<76>kosti."
msgid "Red limit [%]"
msgstr "<22>erven<65> limit [%]"
msgid "Define a limit for red bar, which is used to indicate a bad signal."
msgstr "Zadajte limit pre <20>erven<65> pruh , ktor<6F> sa pou<6F><75>va na ozna<6E>enie zl<7A>ho sign<67>lu."
msgid "Green limit [%]"
msgstr "Zelen<65> limit [%]"
msgid "Define a limit for green bar, which is used to indicate a good signal."
msgstr "Zadajte limit pre zelen<65>ho pruhu, ktor<6F> sa pou<6F>ije na ozna<6E>enie dobr<62>ho sign<67>lu."
msgid "OSD update interval [0.1s]"
msgstr "OSD aktualiza<7A>n<EFBFBD> interval [0.1s]"
msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load."
msgstr "Zadajte interval pre aktualiz<69>cie OSD. Men<65><6E> interval vytv<74>ra vy<76><79>ie za<7A>a<EFBFBD>enie CPU."
msgid "Analyze stream"
msgstr "Anal<61>za d<>tov<6F>ho toku"
msgid "Define whether the DVB stream is analyzed and bitrates calculated."
msgstr "Zadajte <20>i sa DVB pr<70>d analyzuje a d<>tov<6F> tok vypo<70><6F>ta."
msgid "Calculation interval [0.1s]"
msgstr "V<>po<70>tov<6F> interval [0.1s]"
msgid "Define an interval for calculation. The bigger interval generates more stable values."
msgstr "Zadajte interval pre v<>po<70>et. V<><56><EFBFBD><EFBFBD> interval vytv<74>ra stabilnej<65>ie hodnoty."
msgid "Use SVDRP service"
msgstr "Pou<6F>i<EFBFBD> SVDRP slu<6C>bu"
msgid "Define whether the SVDRP service is used in client/server setups."
msgstr "Zadajte <20>i sa pou<6F>ije slu<6C>ba SVDRP v klient / server nastaveniach."
msgid "SVDRP service port"
msgstr "Port SVDRP slu<6C>by"
msgid "Define the port number of SVDRP service."
msgstr "Zadajte <20><>slo portu slu<6C>by SVDRP."
msgid "SVDRP service IP"
msgstr "IP SVDRP slu<6C>by"
msgid "Define the IP address of SVDRP service."
msgstr "zadajte IP adresu slu<6C>by SVDRP."
msgid "Help"
msgstr "Pomoc"
msgid "Video"
msgstr "Video"
msgid "Audio"
msgstr "Zvuk"
msgid "Transponder Information"
msgstr "Inform<72>cie transpond<6E>ra"
msgid "Apid"
msgstr "Apid"
msgid "Dpid"
msgstr "Dpid"
msgid "Spid"
msgstr "Spid"
msgid "Nid"
msgstr "Nid"
msgid "Tid"
msgstr "Tid"
msgid "Rid"
msgstr "Rid"
msgid "Coderate"
msgstr "r<>chlos<6F> k<>dovania"
msgid "Protocol"
msgstr "Protokol"
msgid "Bitrate"
msgstr "D<>tov<6F> tok"
msgid "Stream Information"
msgstr "Inform<72>cie o d<>tovom toku"
msgid "Video Stream"
msgstr "Video stopa"
msgid "Codec"
msgstr "kodek"
msgid "Aspect Ratio"
msgstr "Pomer str<74>n"
msgid "Frame Rate"
msgstr "Po<50>et sn<73>mkov"
msgid "Video Format"
msgstr "Video form<72>t"
msgid "Resolution"
msgstr "Rozl<7A><6C>enie"
msgid "Audio Stream"
msgstr "Zvukov<6F> stopa"
msgid "Channel Mode"
msgstr "re<72>im kan<61>la"
msgid "Sampling Frequency"
msgstr "Vzorkovacia frekvencia"
msgid "AC-3 Stream"
msgstr "AC-3 d<>tov<6F> tok"
msgid "Bit Stream Mode"
msgstr "re<72>im bitov<6F>ho toku"
msgid "Audio Coding Mode"
msgstr "Re<52><65>m k<>dovania zvuku"
msgid "Center Mix Level"
msgstr "<22>rove<76> Center mix"
msgid "Surround Mix Level"
msgstr "<22>rove<76> Surround mix"
msgid "Dolby Surround Mode"
msgstr "Dolby Surround re<72><65>m"
msgid "Low Frequency Effects"
msgstr "Basov<6F> efekty"
msgid "Dialogue Normalization"
msgstr "<22>tandartn<74> dial<61>g"
msgid "Fixed"
msgstr "Pevn<76>"
msgid "Analog"
msgstr "Anal<61>g"
msgid "MPEG-2"
msgstr "MPEG-2"
msgid "H.264"
msgstr "H.264"
msgid "MPEG-1 Layer I"
msgstr "MPEG-1 vrstva I"
msgid "MPEG-1 Layer II"
msgstr "MPEG-1 vrstva II"
msgid "MPEG-1 Layer III"
msgstr "MPEG-1 vrstva III"
msgid "MPEG-2 Layer I"
msgstr "MPEG-2 vrstva I"
msgid "MPEG-2 Layer II"
msgstr "MPEG-2 vrstva II"
msgid "MPEG-2 Layer III"
msgstr "MPEG-2 vrstva III"
msgid "HE-AAC"
msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo"
msgstr "stereo"
msgid "joint Stereo"
msgstr "spojen<65> stereo"
msgid "dual"
msgstr "dvojit<69>"
msgid "mono"
msgstr "mono"
msgid "interlaced"
msgstr "prekladan<61>"
msgid "progressive"
msgstr "progres<65>vny"
msgid "reserved"
msgstr "obsaden<65>"
msgid "extended"
msgstr "roz<6F><7A>ren<65>"
msgid "unknown"
msgstr "nezn<7A>my"
msgid "component"
msgstr "s<><73>as<61>"
msgid "PAL"
msgstr "PAL"
msgid "NTSC"
msgstr "NTSC"
msgid "SECAM"
msgstr "SECAM"
msgid "MAC"
msgstr "MAC"
msgid "Hz"
msgstr "Hz"
msgid "Complete Main (CM)"
msgstr "Kompletne hlavn<76> (CM)"
msgid "Music and Effects (ME)"
msgstr "Hudba a efekty (ME)"
msgid "Visually Impaired (VI)"
msgstr "zrakovo postihnut<75> (VI)"
msgid "Hearing Impaired (HI)"
msgstr "sluchovo postihnut<75> (HI)"
msgid "Dialogue (D)"
msgstr "Dial<61>g (D)"
msgid "Commentary (C)"
msgstr "Koment<6E>r (C)"
msgid "Emergency (E)"
msgstr "Pohotovostn<74> (E)"
msgid "Voice Over (VO)"
msgstr "Viacvrstvov<6F> hlas (VO)"
msgid "Karaoke"
msgstr "Karaoke"
msgid "Ch1"
msgstr "kan<61>l1"
msgid "Ch2"
msgstr "kan<61>l2"
msgid "C"
msgstr "C"
msgid "L"
msgstr "L"
msgid "R"
msgstr "R"
msgid "S"
msgstr "S"
msgid "SL"
msgstr "SL"
msgid "SR"
msgstr "SR"
msgid "dB"
msgstr "dB"
msgid "not indicated"
msgstr "nie je uveden<65>"
msgid "MHz"
msgstr "MHz"
msgid "free"
msgstr "vo<76>n<EFBFBD>"
msgid "Mbit/s"
msgstr "Mbit/s"
msgid "kbit/s"
msgstr "kbit/s"

View File

@@ -4,18 +4,17 @@
# Yarema aka Knedlyk <yupadmin@gmail.com>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n"
"Language-Team: Ukrainian <translation@linux.org.ua>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\n"
msgid "DVB Signal Information Monitor (OSD)"
msgstr "Монітор інформації про DVB сигнал"
@@ -113,12 +112,8 @@ msgstr "Визначення границі зеленої поділки, як
msgid "OSD update interval [0.1s]"
msgstr "Інтервал оновлення повідомлень [0.1с]"
msgid ""
"Define an interval for OSD updates. The smaller interval generates higher "
"CPU load."
msgstr ""
"Визначення інтервалу оновлення повідомлень. Малий інтервал спричинює більше "
"завантаження процесора."
msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load."
msgstr "Визначення інтервалу оновлення повідомлень. Малий інтервал спричинює більше завантаження процесора."
msgid "Analyze stream"
msgstr "Аналіз потоку"
@@ -129,19 +124,14 @@ msgstr "Визначення, чи проводити аналіз DVB пото
msgid "Calculation interval [0.1s]"
msgstr "Інтервал обчислення [0.1с]"
msgid ""
"Define an interval for calculation. The bigger interval generates more "
"stable values."
msgstr ""
"Визначення інтервалу обчислення. Більший інтервал дає стабільніші значення."
msgid "Define an interval for calculation. The bigger interval generates more stable values."
msgstr "Визначення інтервалу обчислення. Більший інтервал дає стабільніші значення."
msgid "Use SVDRP service"
msgstr "Використати SVDRP сервіс"
msgid "Define whether the SVDRP service is used in client/server setups."
msgstr ""
"Визначення чи буде використовуватися SVDRP сервіс в налаштуваннях клієнта/"
"сервера"
msgstr "Визначення чи буде використовуватися SVDRP сервіс в налаштуваннях клієнта/сервера"
msgid "SVDRP service port"
msgstr "Порт SVDRP сервісу"

View File

@@ -1,14 +1,14 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Nan Feng VDR <nfgx@21cn.com>, 2009.2
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: NanFeng <nfgx@21cn.com>\n"
"Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n"
"Language: zh_CN\n"

View File

@@ -1,14 +1,14 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Nan Feng VDR <nfgx@21cn.com>, 2009.2
#
msgid ""
msgstr ""
"Project-Id-Version: vdr-femon 1.7.18\n"
"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"POT-Creation-Date: 2014-03-15 03:15+0200\n"
"PO-Revision-Date: 2014-03-15 03:15+0200\n"
"Last-Translator: NanFeng <nfgx@21cn.com>\n"
"Language-Team: Chinese (traditional) <vdr@linuxtv.org>\n"
"Language: zh_TW\n"