[vdr-plugin-femon] 02/04: Imported Upstream version 2.0.4
Tobias Grimm
tiber-guest at moszumanska.debian.org
Mon Oct 27 18:29:07 UTC 2014
This is an automated email from the git hooks/post-receive script.
tiber-guest pushed a commit to branch master
in repository vdr-plugin-femon.
commit de92459e157c7b5497e3b0b5738c80f22fa53e02
Author: etobi <git at e-tobi.net>
Date: Mon Oct 27 19:21:46 2014 +0100
Imported Upstream version 2.0.4
---
HISTORY | 17 +++++
Makefile | 2 +-
femon.c | 10 +--
femonclient/vdr-femonclient-0.0.5.tgz | Bin 9264 -> 0 bytes
femonclient/vdr-femonclient-0.0.6.tgz | Bin 0 -> 9294 bytes
femonosd.c | 121 ++++++++++++++++++++++++++++------
femonsymbol.c | 88 +++++++++++++------------
femonsymbol.h | 5 +-
femontools.c | 1 +
femontools.h | 2 +
po/de_DE.po | 8 +--
po/es_ES.po | 8 +--
po/et_EE.po | 8 +--
po/fi_FI.po | 8 +--
po/fr_FR.po | 8 +--
po/hu_HU.po | 8 +--
po/it_IT.po | 8 +--
po/lt_LT.po | 8 +--
po/ru_RU.po | 8 +--
po/sk_SK.po | 9 ++-
po/uk_UA.po | 28 +++-----
po/zh_CN.po | 8 +--
po/zh_TW.po | 8 +--
23 files changed, 231 insertions(+), 140 deletions(-)
diff --git a/HISTORY b/HISTORY
index 5d8bc1d..a396097 100644
--- a/HISTORY
+++ b/HISTORY
@@ -475,3 +475,20 @@ VDR Plugin 'femon' Revision History
- 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.
diff --git a/Makefile b/Makefile
index 209a364..88adc63 100644
--- a/Makefile
+++ b/Makefile
@@ -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)
diff --git a/femon.c b/femon.c
index 3568aff..4c2ee4a 100644
--- a/femon.c
+++ b/femon.c
@@ -22,7 +22,7 @@
#define GITVERSION ""
#endif
-static const char VERSION[] = "2.0.0" 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");
@@ -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");
diff --git a/femonclient/vdr-femonclient-0.0.5.tgz b/femonclient/vdr-femonclient-0.0.5.tgz
deleted file mode 100644
index 9083af1..0000000
Binary files a/femonclient/vdr-femonclient-0.0.5.tgz and /dev/null differ
diff --git a/femonclient/vdr-femonclient-0.0.6.tgz b/femonclient/vdr-femonclient-0.0.6.tgz
new file mode 100644
index 0000000..9181fe0
Binary files /dev/null and b/femonclient/vdr-femonclient-0.0.6.tgz differ
diff --git a/femonosd.c b/femonosd.c
index 29c9926..22ddd51 100644
--- a/femonosd.c
+++ b/femonosd.c
@@ -490,7 +490,6 @@ void cFemonOsd::DrawInfoWindow(void)
OSDDRAWINFOLEFT(tr("Protocol"), *data.protocol);
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT(tr("Bitrate"), *data.bitrate);
- offset += OSDROWHEIGHT;
}
}
}
@@ -626,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);
@@ -716,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;
@@ -790,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;
@@ -836,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);
diff --git a/femonsymbol.c b/femonsymbol.c
index 03a6a25..02cc351 100644
--- a/femonsymbol.c
+++ b/femonsymbol.c
@@ -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];
diff --git a/femonsymbol.h b/femonsymbol.h
index 825ba13..4fe14c6 100644
--- a/femonsymbol.h
+++ b/femonsymbol.h
@@ -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;
diff --git a/femontools.c b/femontools.c
index 619be3d..1bd0c87 100644
--- a/femontools.c
+++ b/femontools.c
@@ -9,6 +9,7 @@
#define __STDC_FORMAT_MACROS
#endif
+#include <ctype.h>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
diff --git a/femontools.h b/femontools.h
index 660d71c..d7fef1b 100644
--- a/femontools.h
+++ b/femontools.h
@@ -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);
diff --git a/po/de_DE.po b/po/de_DE.po
index e041903..7f06153 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -1,5 +1,5 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 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 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at linuxtv.org>\n"
"Language: de\n"
diff --git a/po/es_ES.po b/po/es_ES.po
index e074f49..ad2fadf 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -1,14 +1,14 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 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 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at linuxtv.org>\n"
"Language: es\n"
diff --git a/po/et_EE.po b/po/et_EE.po
index 3918e6f..6066ed5 100644
--- a/po/et_EE.po
+++ b/po/et_EE.po
@@ -1,14 +1,14 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 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 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at linuxtv.org>\n"
"Language: et\n"
diff --git a/po/fi_FI.po b/po/fi_FI.po
index 554f21b..1323a4a 100644
--- a/po/fi_FI.po
+++ b/po/fi_FI.po
@@ -1,14 +1,14 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 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 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at linuxtv.org>\n"
"Language: fi\n"
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 8fa57be..6f18db3 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -1,5 +1,5 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 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 at club-internet.fr>, 2010
@@ -7,10 +7,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: vdr-femon 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at gmail.com>\n"
"Language-Team: French <vdr at linuxtv.org>\n"
"Language: fr\n"
diff --git a/po/hu_HU.po b/po/hu_HU.po
index 5398a27..3657399 100644
--- a/po/hu_HU.po
+++ b/po/hu_HU.po
@@ -1,14 +1,14 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 Rolf Ahrenberg
+# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# F�ley Istv�n <ifuley at tigercomp dot ro>, 2011
#
msgid ""
msgstr ""
-"Project-Id-Version: vdr-femon 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\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�n <ifuley at tigercomp dot ro>\n"
"Language-Team: Hungarian <ifuley at tigercomp dot ro>\n"
"Language: hu\n"
diff --git a/po/it_IT.po b/po/it_IT.po
index 6707bab..24820d8 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -1,15 +1,15 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 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 at tiscali.it>
#
msgid ""
msgstr ""
-"Project-Id-Version: vdr-femon 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at tiscali.it>\n"
"Language-Team: Italian <vdr at linuxtv.org>\n"
"Language: it\n"
diff --git a/po/lt_LT.po b/po/lt_LT.po
index efaaa08..c33a32e 100644
--- a/po/lt_LT.po
+++ b/po/lt_LT.po
@@ -1,14 +1,14 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 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 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at ambernet.lt>\n"
"Language-Team: Lithuanian <vdr at linuxtv.org>\n"
"Language: lt\n"
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 41aae1f..34fc995 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -1,14 +1,14 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 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 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at linuxtv.org>\n"
"Language: ru\n"
diff --git a/po/sk_SK.po b/po/sk_SK.po
index 19914c8..a091f17 100644
--- a/po/sk_SK.po
+++ b/po/sk_SK.po
@@ -1,14 +1,14 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 Rolf Ahrenberg
+# 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.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at gmail.com>\n"
"Language-Team: Slovak <vdr at linuxtv.org>\n"
"Language: sk\n"
@@ -387,4 +387,3 @@ msgstr "Mbit/s"
msgid "kbit/s"
msgstr "kbit/s"
-
diff --git a/po/uk_UA.po b/po/uk_UA.po
index f8b413f..361cbed 100644
--- a/po/uk_UA.po
+++ b/po/uk_UA.po
@@ -4,18 +4,17 @@
# Yarema aka Knedlyk <yupadmin at gmail.com>, 2010.
msgid ""
msgstr ""
-"Project-Id-Version: vdr-femon 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at gmail.com>\n"
"Language-Team: Ukrainian <translation at 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 сервісу"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 878d0ea..1e721a5 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -1,14 +1,14 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 Rolf Ahrenberg
+# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Nan Feng VDR <nfgx at 21cn.com>, 2009.2
#
msgid ""
msgstr ""
-"Project-Id-Version: vdr-femon 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at 21cn.com>\n"
"Language-Team: Chinese (simplified) <vdr at linuxtv.org>\n"
"Language: zh_CN\n"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index b260d2e..be49af2 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -1,14 +1,14 @@
# VDR plugin language source file.
-# Copyright (C) 2007-2013 Rolf Ahrenberg
+# Copyright (C) 2007-2014 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Nan Feng VDR <nfgx at 21cn.com>, 2009.2
#
msgid ""
msgstr ""
-"Project-Id-Version: vdr-femon 2.0.0\n"
+"Project-Id-Version: vdr-femon 2.0.4\n"
"Report-Msgid-Bugs-To: <see README>\n"
-"POT-Creation-Date: 2013-04-01 04:01+0200\n"
-"PO-Revision-Date: 2013-04-01 04:01+0200\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 at 21cn.com>\n"
"Language-Team: Chinese (traditional) <vdr at linuxtv.org>\n"
"Language: zh_TW\n"
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vdr-dvb/vdr-plugin-femon.git
More information about the pkg-vdr-dvb-changes
mailing list