mirror of
				https://github.com/rofafor/vdr-plugin-femon.git
				synced 2023-10-10 11:36:53 +00:00 
			
		
		
		
	Compare commits
	
		
			12 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 136c9fb73c | ||
|  | 9ca1fcb378 | ||
|  | 1cfbd0b730 | ||
|  | 152e87d443 | ||
|  | 08223cf6c4 | ||
|  | 84572d2187 | ||
|  | 78554b53b6 | ||
|  | 11554a8d7e | ||
|  | 0d06635520 | ||
|  | eedab47c35 | ||
|  | cba5171a09 | ||
|  | 91d6cb4074 | 
							
								
								
									
										17
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -475,3 +475,20 @@ VDR Plugin 'femon' Revision History | |||||||
|  |  | ||||||
| - Updated for vdr-2.0.0. | - Updated for vdr-2.0.0. | ||||||
| - Added Slovak translation (Thanks to Milan Hrala). | - 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. | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @@ -24,7 +24,7 @@ GITTAG  = $(shell git describe --always 2>/dev/null) | |||||||
| ### The directory environment: | ### The directory environment: | ||||||
|  |  | ||||||
| # Use package data if installed...otherwise assume we're under the VDR source directory: | # 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) | LIBDIR = $(call PKGCFG,libdir) | ||||||
| LOCDIR = $(call PKGCFG,locdir) | LOCDIR = $(call PKGCFG,locdir) | ||||||
| PLGCFG = $(call PKGCFG,plgcfg) | PLGCFG = $(call PKGCFG,plgcfg) | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								femon.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								femon.c
									
									
									
									
									
								
							| @@ -22,7 +22,7 @@ | |||||||
| #define GITVERSION "" | #define GITVERSION "" | ||||||
| #endif | #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 DESCRIPTION[]   = trNOOP("DVB Signal Information Monitor (OSD)"); | ||||||
| static const char MAINMENUENTRY[] = trNOOP("Signal Information"); | static const char MAINMENUENTRY[] = trNOOP("Signal Information"); | ||||||
|  |  | ||||||
| @@ -204,11 +204,11 @@ cString cPluginFemon::SVDRPCommand(const char *Command, const char *Option, int | |||||||
|      if (dev2) |      if (dev2) | ||||||
|         dev = 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 (strcasecmp(Command, "OPEN") == 0) { | ||||||
|      if (cReplayControl::NowReplaying()) { |  | ||||||
|         ReplyCode = 550; // Requested action not taken |  | ||||||
|         return cString("Cannot open femon plugin while replaying"); |  | ||||||
|         } |  | ||||||
|      if (!cFemonOsd::Instance()) |      if (!cFemonOsd::Instance()) | ||||||
|         cRemote::CallPlugin(Name()); |         cRemote::CallPlugin(Name()); | ||||||
|      return cString("Opening femon plugin"); |      return cString("Opening femon plugin"); | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								femonclient/vdr-femonclient-0.0.6.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								femonclient/vdr-femonclient-0.0.6.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										121
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										121
									
								
								femonosd.c
									
									
									
									
									
								
							| @@ -490,7 +490,6 @@ void cFemonOsd::DrawInfoWindow(void) | |||||||
|                          OSDDRAWINFOLEFT(tr("Protocol"),   *data.protocol); |                          OSDDRAWINFOLEFT(tr("Protocol"),   *data.protocol); | ||||||
|                          offset += OSDROWHEIGHT; |                          offset += OSDROWHEIGHT; | ||||||
|                          OSDDRAWINFOLEFT(tr("Bitrate"),    *data.bitrate); |                          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_BERValid = (ioctl(m_Frontend, FE_READ_BER, &m_BER) >= 0); | ||||||
|               m_UNCValid = (ioctl(m_Frontend, FE_READ_UNCORRECTED_BLOCKS, &m_UNC) >= 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) { |            else if (m_SvdrpConnection.handle >= 0) { | ||||||
|               cmd.handle = m_SvdrpConnection.handle; |               cmd.handle = m_SvdrpConnection.handle; | ||||||
|               m_SvdrpPlugin->Service("SvdrpCommand-v1.0", &cmd); |               m_SvdrpPlugin->Service("SvdrpCommand-v1.0", &cmd); | ||||||
| @@ -716,6 +732,9 @@ void cFemonOsd::Show(void) | |||||||
|            return; |            return; | ||||||
|            } |            } | ||||||
|         } |         } | ||||||
|  |      else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||||
|  |         // nop | ||||||
|  |         } | ||||||
|      else if (femonConfig.usesvdrp) { |      else if (femonConfig.usesvdrp) { | ||||||
|         if (!SvdrpConnect() || !SvdrpTune()) |         if (!SvdrpConnect() || !SvdrpTune()) | ||||||
|            return; |            return; | ||||||
| @@ -790,6 +809,9 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber, bool li | |||||||
|            return; |            return; | ||||||
|            } |            } | ||||||
|         } |         } | ||||||
|  |      else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||||
|  |         // nop | ||||||
|  |         } | ||||||
|      else if (femonConfig.usesvdrp) { |      else if (femonConfig.usesvdrp) { | ||||||
|         if (!SvdrpConnect() || !SvdrpTune()) |         if (!SvdrpConnect() || !SvdrpTune()) | ||||||
|            return; |            return; | ||||||
| @@ -836,26 +858,83 @@ bool cFemonOsd::DeviceSwitch(int direction) | |||||||
|      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); |      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||||
|      if (channel) { |      if (channel) { | ||||||
|         for (int i = 0; i < cDevice::NumDevices() - 1; i++) { |         for (int i = 0; i < cDevice::NumDevices() - 1; i++) { | ||||||
|            if (direction >= 0) { |             if (direction >= 0) { | ||||||
|               if (++device >= cDevice::NumDevices()) |                if (++device >= cDevice::NumDevices()) | ||||||
|                  device = 0; |                   device = 0; | ||||||
|               } |                } | ||||||
|            else { |             else { | ||||||
|               if (--device < 0) |                if (--device < 0) | ||||||
|                  device = cDevice::NumDevices() - 1; |                   device = cDevice::NumDevices() - 1; | ||||||
|               } |                } | ||||||
|            if (cDevice::GetDevice(device)->ProvidesChannel(channel, 0)) { |             // Collect the current priorities of all CAM slots that can decrypt the channel: | ||||||
|               debug("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, direction, device); |             int NumCamSlots = CamSlots.Count(); | ||||||
|               cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), 0, true); |             int SlotPriority[NumCamSlots]; | ||||||
|               cControl::Shutdown(); |             int NumUsableSlots = 0; | ||||||
|               cDevice::GetDevice(device)->SwitchChannel(channel, true); |             bool NeedsDetachAllReceivers = false; | ||||||
|               if (cDevice::GetDevice(device) == cDevice::PrimaryDevice()) |             bool InternalCamNeeded = false; | ||||||
|                  cDevice::GetDevice(device)->ForceTransferMode(); |             bool ValidDevice = false; | ||||||
|               cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel)); |             cCamSlot *s = NULL; | ||||||
|               cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number(), true); |             cDevice *d = cDevice::GetDevice(device); | ||||||
|               return (true); |             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); |    return (false); | ||||||
|   | |||||||
| @@ -53,6 +53,7 @@ | |||||||
| #include "symbols/format480i.xpm" | #include "symbols/format480i.xpm" | ||||||
| #include "symbols/format480p.xpm" | #include "symbols/format480p.xpm" | ||||||
|  |  | ||||||
|  | static cBitmap bmOnePixel(1, 1, 1); | ||||||
| static cBitmap bmStereo(stereo_xpm); | static cBitmap bmStereo(stereo_xpm); | ||||||
| static cBitmap bmMonoLeft(monoleft_xpm); | static cBitmap bmMonoLeft(monoleft_xpm); | ||||||
| static cBitmap bmMonoRight(monoright_xpm); | static cBitmap bmMonoRight(monoright_xpm); | ||||||
| @@ -134,49 +135,50 @@ bool cFemonSymbolCache::Populate(void) | |||||||
|      Flush(); |      Flush(); | ||||||
|  |  | ||||||
|      // pushing order must follow the enumeration - keep original proportions except for frontend status ones |      // 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(bmOnePixel.Scaled(yFactorM, yFactorM, antiAliasM));        // SYMBOL_ONEPIXEL | ||||||
|      cacheM.Append(bmMonoLeft.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MONO_LEFT |      cacheM.Append(bmStereo.Scaled(yFactorM, yFactorM, antiAliasM));          // SYMBOL_STEREO | ||||||
|      cacheM.Append(bmMonoRight.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MONO_RIGHT |      cacheM.Append(bmMonoLeft.Scaled(yFactorM, yFactorM, antiAliasM));        // SYMBOL_MONO_LEFT | ||||||
|      cacheM.Append(bmDolbyDigital.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD |      cacheM.Append(bmMonoRight.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_MONO_RIGHT | ||||||
|      cacheM.Append(bmDolbyDigital20.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD20 |      cacheM.Append(bmDolbyDigital.Scaled(yFactorM, yFactorM, antiAliasM));    // SYMBOL_DD | ||||||
|      cacheM.Append(bmDolbyDigital51.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DD51 |      cacheM.Append(bmDolbyDigital20.Scaled(yFactorM, yFactorM, antiAliasM));  // SYMBOL_DD20 | ||||||
|      cacheM.Append(bmMpeg2.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_MPEG2 |      cacheM.Append(bmDolbyDigital51.Scaled(yFactorM, yFactorM, antiAliasM));  // SYMBOL_DD51 | ||||||
|      cacheM.Append(bmH264.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_H264 |      cacheM.Append(bmMpeg2.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_MPEG2 | ||||||
|      cacheM.Append(bmPal.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_PAL |      cacheM.Append(bmH264.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_H264 | ||||||
|      cacheM.Append(bmNtsc.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_NTSC |      cacheM.Append(bmPal.Scaled(yFactorM, yFactorM, antiAliasM));             // SYMBOL_PAL | ||||||
|      cacheM.Append(bmEncrypted.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ENCRYPTED |      cacheM.Append(bmNtsc.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_NTSC | ||||||
|      cacheM.Append(bmSvdrp.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SVDRP |      cacheM.Append(bmEncrypted.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_ENCRYPTED | ||||||
|      cacheM.Append(bmLock.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_LOCK |      cacheM.Append(bmSvdrp.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_SVDRP | ||||||
|      cacheM.Append(bmSignal.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_SIGNAL |      cacheM.Append(bmLock.Scaled(xFactorM, yFactorM, antiAliasM));            // SYMBOL_LOCK | ||||||
|      cacheM.Append(bmCarrier.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_CARRIER |      cacheM.Append(bmSignal.Scaled(xFactorM, yFactorM, antiAliasM));          // SYMBOL_SIGNAL | ||||||
|      cacheM.Append(bmViterbi.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_VITERBI |      cacheM.Append(bmCarrier.Scaled(xFactorM, yFactorM, antiAliasM));         // SYMBOL_CARRIER | ||||||
|      cacheM.Append(bmSync.Scaled(xFactorM, yFactorM, antiAliasM)); // SYMBOL_SYNC |      cacheM.Append(bmViterbi.Scaled(xFactorM, yFactorM, antiAliasM));         // SYMBOL_VITERBI | ||||||
|      cacheM.Append(bmAspectRatio11.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_1_1 |      cacheM.Append(bmSync.Scaled(xFactorM, yFactorM, antiAliasM));            // SYMBOL_SYNC | ||||||
|      cacheM.Append(bmAspectRatio169.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_16_9 |      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(bmAspectRatio2211.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_2_21_1 | ||||||
|      cacheM.Append(bmAspectRatio43.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_AR_4_3 |      cacheM.Append(bmAspectRatio43.Scaled(yFactorM, yFactorM, antiAliasM));   // SYMBOL_AR_4_3 | ||||||
|      cacheM.Append(bmDevice.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_DEVICE |      cacheM.Append(bmDevice.Scaled(yFactorM, yFactorM, antiAliasM));          // SYMBOL_DEVICE | ||||||
|      cacheM.Append(bmZero.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ZERO |      cacheM.Append(bmZero.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_ZERO | ||||||
|      cacheM.Append(bmOne.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_ONE |      cacheM.Append(bmOne.Scaled(yFactorM, yFactorM, antiAliasM));             // SYMBOL_ONE | ||||||
|      cacheM.Append(bmTwo.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_TWO |      cacheM.Append(bmTwo.Scaled(yFactorM, yFactorM, antiAliasM));             // SYMBOL_TWO | ||||||
|      cacheM.Append(bmThree.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_THREE |      cacheM.Append(bmThree.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_THREE | ||||||
|      cacheM.Append(bmFour.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FOUR |      cacheM.Append(bmFour.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_FOUR | ||||||
|      cacheM.Append(bmFive.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FIVE |      cacheM.Append(bmFive.Scaled(yFactorM, yFactorM, antiAliasM));            // SYMBOL_FIVE | ||||||
|      cacheM.Append(bmSix.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SIX |      cacheM.Append(bmSix.Scaled(yFactorM, yFactorM, antiAliasM));             // SYMBOL_SIX | ||||||
|      cacheM.Append(bmSeven.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SEVEN |      cacheM.Append(bmSeven.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_SEVEN | ||||||
|      cacheM.Append(bmEight.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_EIGHT |      cacheM.Append(bmEight.Scaled(yFactorM, yFactorM, antiAliasM));           // SYMBOL_EIGHT | ||||||
|      cacheM.Append(bmFormat1080.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080 |      cacheM.Append(bmFormat1080.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_1080 | ||||||
|      cacheM.Append(bmFormat1080i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080i |      cacheM.Append(bmFormat1080i.Scaled(yFactorM, yFactorM, antiAliasM));     // SYMBOL_FORMAT_1080i | ||||||
|      cacheM.Append(bmFormat1080p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080p |      cacheM.Append(bmFormat1080p.Scaled(yFactorM, yFactorM, antiAliasM));     // SYMBOL_FORMAT_1080p | ||||||
|      cacheM.Append(bmFormat720.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720 |      cacheM.Append(bmFormat720.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_FORMAT_720 | ||||||
|      cacheM.Append(bmFormat720i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720i |      cacheM.Append(bmFormat720i.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_720i | ||||||
|      cacheM.Append(bmFormat720p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720p |      cacheM.Append(bmFormat720p.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_720p | ||||||
|      cacheM.Append(bmFormat576.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576 |      cacheM.Append(bmFormat576.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_FORMAT_576 | ||||||
|      cacheM.Append(bmFormat576i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576i |      cacheM.Append(bmFormat576i.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_576i | ||||||
|      cacheM.Append(bmFormat576p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576p |      cacheM.Append(bmFormat576p.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_576p | ||||||
|      cacheM.Append(bmFormat480.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480 |      cacheM.Append(bmFormat480.Scaled(yFactorM, yFactorM, antiAliasM));       // SYMBOL_FORMAT_480 | ||||||
|      cacheM.Append(bmFormat480i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480i |      cacheM.Append(bmFormat480i.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_480i | ||||||
|      cacheM.Append(bmFormat480p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480p |      cacheM.Append(bmFormat480p.Scaled(yFactorM, yFactorM, antiAliasM));      // SYMBOL_FORMAT_480p | ||||||
|  |  | ||||||
|      return true; |      return true; | ||||||
|      } |      } | ||||||
| @@ -197,7 +199,7 @@ bool cFemonSymbolCache::Flush(void) | |||||||
|  |  | ||||||
| cBitmap& cFemonSymbolCache::Get(eSymbols symbolP) | cBitmap& cFemonSymbolCache::Get(eSymbols symbolP) | ||||||
| { | { | ||||||
|   cBitmap *bitmapM = NULL; |   cBitmap *bitmapM = cacheM[SYMBOL_ONEPIXEL]; | ||||||
|  |  | ||||||
|   if (symbolP < cacheM.Size()) |   if (symbolP < cacheM.Size()) | ||||||
|      bitmapM = cacheM[symbolP]; |      bitmapM = cacheM[symbolP]; | ||||||
|   | |||||||
| @@ -12,6 +12,7 @@ | |||||||
| #include <vdr/osd.h> | #include <vdr/osd.h> | ||||||
|  |  | ||||||
| enum eSymbols { | enum eSymbols { | ||||||
|  |   SYMBOL_ONEPIXEL, | ||||||
|   SYMBOL_STEREO, |   SYMBOL_STEREO, | ||||||
|   SYMBOL_MONO_LEFT, |   SYMBOL_MONO_LEFT, | ||||||
|   SYMBOL_MONO_RIGHT, |   SYMBOL_MONO_RIGHT, | ||||||
| @@ -77,8 +78,8 @@ public: | |||||||
|   ~cFemonSymbolCache(); |   ~cFemonSymbolCache(); | ||||||
|   void Refresh(); |   void Refresh(); | ||||||
|   cBitmap& Get(eSymbols symbolP); |   cBitmap& Get(eSymbols symbolP); | ||||||
|   int GetSpacing()  { return int(yFactorM * DEFAULT_SPACING);  } |   int GetSpacing()  { return int(yFactorM * cFemonSymbolCache::DEFAULT_SPACING);  } | ||||||
|   int GetRounding() { return int(yFactorM * DEFAULT_ROUNDING); } |   int GetRounding() { return int(yFactorM * cFemonSymbolCache::DEFAULT_ROUNDING); } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| extern cFemonSymbolCache femonSymbols; | extern cFemonSymbolCache femonSymbols; | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ | |||||||
| #define __STDC_FORMAT_MACROS | #define __STDC_FORMAT_MACROS | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #include <ctype.h> | ||||||
| #include <stdint.h> | #include <stdint.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <unistd.h> | #include <unistd.h> | ||||||
|   | |||||||
| @@ -26,6 +26,8 @@ | |||||||
|  |  | ||||||
| #define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d" | #define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d" | ||||||
|  |  | ||||||
|  | #define SATIP_DEVICE "SAT>IP" | ||||||
|  |  | ||||||
| cDvbDevice *getDvbDevice(cDevice* device); | cDvbDevice *getDvbDevice(cDevice* device); | ||||||
|  |  | ||||||
| cString getFrontendInfo(cDvbDevice *device); | cString getFrontendInfo(cDvbDevice *device); | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Peter Marquardt | # Peter Marquardt | ||||||
| # Andreas Brachold | # Andreas Brachold | ||||||
| @@ -7,10 +7,10 @@ | |||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Christian Wieninger\n" | "Last-Translator: Christian Wieninger\n" | ||||||
| "Language-Team: German <vdr@linuxtv.org>\n" | "Language-Team: German <vdr@linuxtv.org>\n" | ||||||
| "Language: de\n" | "Language: de\n" | ||||||
|   | |||||||
| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Luis Palacios | # Luis Palacios | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Luis Palacios\n" | "Last-Translator: Luis Palacios\n" | ||||||
| "Language-Team: Spanish <vdr@linuxtv.org>\n" | "Language-Team: Spanish <vdr@linuxtv.org>\n" | ||||||
| "Language: es\n" | "Language: es\n" | ||||||
|   | |||||||
| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Arthur Konovalov | # Arthur Konovalov | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Arthur Konovalov\n" | "Last-Translator: Arthur Konovalov\n" | ||||||
| "Language-Team: Estonian <vdr@linuxtv.org>\n" | "Language-Team: Estonian <vdr@linuxtv.org>\n" | ||||||
| "Language: et\n" | "Language: et\n" | ||||||
|   | |||||||
| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Rolf Ahrenberg | # Rolf Ahrenberg | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Rolf Ahrenberg\n" | "Last-Translator: Rolf Ahrenberg\n" | ||||||
| "Language-Team: Finnish <vdr@linuxtv.org>\n" | "Language-Team: Finnish <vdr@linuxtv.org>\n" | ||||||
| "Language: fi\n" | "Language: fi\n" | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Nicolas Huillard | # Nicolas Huillard | ||||||
| # Michaël Nival <mnival@club-internet.fr>, 2010 | # Michaël Nival <mnival@club-internet.fr>, 2010 | ||||||
| @@ -7,10 +7,10 @@ | |||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Bernard Jaulin <bernard.jaulin@gmail.com>\n" | "Last-Translator: Bernard Jaulin <bernard.jaulin@gmail.com>\n" | ||||||
| "Language-Team: French <vdr@linuxtv.org>\n" | "Language-Team: French <vdr@linuxtv.org>\n" | ||||||
| "Language: fr\n" | "Language: fr\n" | ||||||
|   | |||||||
| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # F<>ley Istv<74>n <ifuley at tigercomp dot ro>, 2011 | # F<>ley Istv<74>n <ifuley at tigercomp dot ro>, 2011 | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2010-10-10 10:10+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" | "Last-Translator: F<>ley Istv<74>n <ifuley at tigercomp dot ro>\n" | ||||||
| "Language-Team: Hungarian <ifuley at tigercomp dot ro>\n" | "Language-Team: Hungarian <ifuley at tigercomp dot ro>\n" | ||||||
| "Language: hu\n" | "Language: hu\n" | ||||||
|   | |||||||
| @@ -1,15 +1,15 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Sean Carlos | # Sean Carlos | ||||||
| # Diego Pierotto <vdr-italian@tiscali.it> | # Diego Pierotto <vdr-italian@tiscali.it> | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" | "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" | ||||||
| "Language-Team: Italian <vdr@linuxtv.org>\n" | "Language-Team: Italian <vdr@linuxtv.org>\n" | ||||||
| "Language: it\n" | "Language: it\n" | ||||||
|   | |||||||
| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Valdemaras Pipiras | # Valdemaras Pipiras | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" | "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" | ||||||
| "Language-Team: Lithuanian <vdr@linuxtv.org>\n" | "Language-Team: Lithuanian <vdr@linuxtv.org>\n" | ||||||
| "Language: lt\n" | "Language: lt\n" | ||||||
|   | |||||||
| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Vyacheslav Dikonov | # Vyacheslav Dikonov | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Vyacheslav Dikonov\n" | "Last-Translator: Vyacheslav Dikonov\n" | ||||||
| "Language-Team: Russian <vdr@linuxtv.org>\n" | "Language-Team: Russian <vdr@linuxtv.org>\n" | ||||||
| "Language: ru\n" | "Language: ru\n" | ||||||
|   | |||||||
| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Milan Hrala | # Milan Hrala | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" | "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" | ||||||
| "Language-Team: Slovak <vdr@linuxtv.org>\n" | "Language-Team: Slovak <vdr@linuxtv.org>\n" | ||||||
| "Language: sk\n" | "Language: sk\n" | ||||||
| @@ -387,4 +387,3 @@ msgstr "Mbit/s" | |||||||
|  |  | ||||||
| msgid "kbit/s" | msgid "kbit/s" | ||||||
| msgstr "kbit/s" | msgstr "kbit/s" | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								po/uk_UA.po
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								po/uk_UA.po
									
									
									
									
									
								
							| @@ -4,18 +4,17 @@ | |||||||
| # Yarema aka Knedlyk <yupadmin@gmail.com>, 2010. | # Yarema aka Knedlyk <yupadmin@gmail.com>, 2010. | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n" | "Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n" | ||||||
| "Language-Team: Ukrainian <translation@linux.org.ua>\n" | "Language-Team: Ukrainian <translation@linux.org.ua>\n" | ||||||
| "Language: uk\n" | "Language: uk\n" | ||||||
| "MIME-Version: 1.0\n" | "MIME-Version: 1.0\n" | ||||||
| "Content-Type: text/plain; charset=UTF-8\n" | "Content-Type: text/plain; charset=UTF-8\n" | ||||||
| "Content-Transfer-Encoding: 8bit\n" | "Content-Transfer-Encoding: 8bit\n" | ||||||
| "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 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" | ||||||
| "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\n" |  | ||||||
|  |  | ||||||
| msgid "DVB Signal Information Monitor (OSD)" | msgid "DVB Signal Information Monitor (OSD)" | ||||||
| msgstr "Монітор інформації про DVB сигнал" | msgstr "Монітор інформації про DVB сигнал" | ||||||
| @@ -113,12 +112,8 @@ msgstr "Визначення границі зеленої поділки, як | |||||||
| msgid "OSD update interval [0.1s]" | msgid "OSD update interval [0.1s]" | ||||||
| msgstr "Інтервал оновлення повідомлень [0.1с]" | msgstr "Інтервал оновлення повідомлень [0.1с]" | ||||||
|  |  | ||||||
| msgid "" | msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load." | ||||||
| "Define an interval for OSD updates. The smaller interval generates higher " | msgstr "Визначення інтервалу оновлення повідомлень. Малий інтервал спричинює більше завантаження процесора." | ||||||
| "CPU load." |  | ||||||
| msgstr "" |  | ||||||
| "Визначення інтервалу оновлення повідомлень. Малий інтервал спричинює більше " |  | ||||||
| "завантаження процесора." |  | ||||||
|  |  | ||||||
| msgid "Analyze stream" | msgid "Analyze stream" | ||||||
| msgstr "Аналіз потоку" | msgstr "Аналіз потоку" | ||||||
| @@ -129,19 +124,14 @@ msgstr "Визначення, чи проводити аналіз DVB пото | |||||||
| msgid "Calculation interval [0.1s]" | msgid "Calculation interval [0.1s]" | ||||||
| msgstr "Інтервал обчислення [0.1с]" | msgstr "Інтервал обчислення [0.1с]" | ||||||
|  |  | ||||||
| msgid "" | msgid "Define an interval for calculation. The bigger interval generates more stable values." | ||||||
| "Define an interval for calculation. The bigger interval generates more " | msgstr "Визначення інтервалу обчислення. Більший інтервал дає стабільніші значення." | ||||||
| "stable values." |  | ||||||
| msgstr "" |  | ||||||
| "Визначення інтервалу обчислення. Більший інтервал дає стабільніші значення." |  | ||||||
|  |  | ||||||
| msgid "Use SVDRP service" | msgid "Use SVDRP service" | ||||||
| msgstr "Використати SVDRP сервіс" | msgstr "Використати SVDRP сервіс" | ||||||
|  |  | ||||||
| msgid "Define whether the SVDRP service is used in client/server setups." | msgid "Define whether the SVDRP service is used in client/server setups." | ||||||
| msgstr "" | msgstr "Визначення чи буде використовуватися SVDRP сервіс в налаштуваннях клієнта/сервера" | ||||||
| "Визначення чи буде використовуватися SVDRP сервіс в налаштуваннях клієнта/" |  | ||||||
| "сервера" |  | ||||||
|  |  | ||||||
| msgid "SVDRP service port" | msgid "SVDRP service port" | ||||||
| msgstr "Порт SVDRP сервісу" | msgstr "Порт SVDRP сервісу" | ||||||
|   | |||||||
| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file. | # 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. | # This file is distributed under the same license as the femon package. | ||||||
| # Nan Feng VDR <nfgx@21cn.com>, 2009.2 | # Nan Feng VDR <nfgx@21cn.com>, 2009.2 | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: NanFeng <nfgx@21cn.com>\n" | "Last-Translator: NanFeng <nfgx@21cn.com>\n" | ||||||
| "Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n" | "Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n" | ||||||
| "Language: zh_CN\n" | "Language: zh_CN\n" | ||||||
|   | |||||||
| @@ -1,14 +1,14 @@ | |||||||
| # VDR plugin language source file.  | # 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.  | # This file is distributed under the same license as the femon package.  | ||||||
| # Nan Feng VDR <nfgx@21cn.com>, 2009.2  | # Nan Feng VDR <nfgx@21cn.com>, 2009.2  | ||||||
| # | # | ||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | 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" | "Report-Msgid-Bugs-To: <see README>\n" | ||||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||||
| "Last-Translator: NanFeng <nfgx@21cn.com>\n" | "Last-Translator: NanFeng <nfgx@21cn.com>\n" | ||||||
| "Language-Team: Chinese (traditional) <vdr@linuxtv.org>\n" | "Language-Team: Chinese (traditional) <vdr@linuxtv.org>\n" | ||||||
| "Language: zh_TW\n" | "Language: zh_TW\n" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user