mirror of
				https://github.com/rofafor/vdr-plugin-femon.git
				synced 2023-10-10 11:36:53 +00:00 
			
		
		
		
	Compare commits
	
		
			34 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 9420ab95e3 | ||
|  | 89b7befce4 | ||
|  | 5b0f1e2572 | ||
|  | e38047eab0 | ||
|  | 377e73dfe1 | ||
|  | 749e3e3238 | ||
|  | 7f1e5130a6 | ||
|  | 667da1f5fe | ||
|  | e043190855 | ||
|  | 3a2af94f74 | ||
|  | bd23a0793b | ||
|  | 91a1360e09 | ||
|  | 2e5dad9ec5 | ||
|  | 136c9fb73c | ||
|  | 9ca1fcb378 | ||
|  | 1cfbd0b730 | ||
|  | 152e87d443 | ||
|  | 08223cf6c4 | ||
|  | 84572d2187 | ||
|  | 78554b53b6 | ||
|  | 11554a8d7e | ||
|  | 0d06635520 | ||
|  | eedab47c35 | ||
|  | cba5171a09 | ||
|  | 91d6cb4074 | ||
|  | bf222dc7ff | ||
|  | 33176e9a77 | ||
|  | 0a4e5d912c | ||
|  | 3648b46fa2 | ||
|  | c5267f5390 | ||
|  | 30d7eea514 | ||
|  | 09d17772d2 | ||
|  | ee43f5936f | ||
|  | 10b8463283 | 
							
								
								
									
										62
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -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,62 @@ 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. | ||||
|  | ||||
|  | ||||
| =================================== | ||||
| VDR Plugin 'femon' Revision History | ||||
| =================================== | ||||
|  | ||||
| 2014-03-16: Version 2.1.0 | ||||
|  | ||||
| - Updated for vdr-2.1.6. | ||||
|  | ||||
| 2014-05-10: Version 2.1.1 | ||||
|  | ||||
| - Fixed the channel frequency value. | ||||
|  | ||||
| 2015-01-10: Version 2.1.2 | ||||
|  | ||||
|  | ||||
| =================================== | ||||
| VDR Plugin 'femon' Revision History | ||||
| =================================== | ||||
|  | ||||
| 2015-02-19: Version 2.2.0 | ||||
|  | ||||
| - Updated for vdr-2.2.0. | ||||
| - Updated CA definitions. | ||||
| - Fixed the SVDRP service IP menu item (Thanks to Toerless Eckert). | ||||
| - Fixed the detaching of receiver during a channel switch. | ||||
|   | ||||
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								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) | ||||
| @@ -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
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								README
									
									
									
									
									
								
							| @@ -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: | ||||
|  | ||||
|   | ||||
							
								
								
									
										19
									
								
								femon.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								femon.c
									
									
									
									
									
								
							| @@ -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 < 20200 | ||||
| #error "VDR-2.2.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.2.0" 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(); | ||||
| } | ||||
|  | ||||
| @@ -370,7 +371,7 @@ void cMenuFemonSetup::Setup(void) | ||||
|      Add(new cMenuEditIntItem(tr("SVDRP service port"), &data.svdrpport, 1, 65535)); | ||||
|      help.Append(tr("Define the port number of SVDRP service.")); | ||||
|  | ||||
|      Add(new cMenuEditStrItem(tr("SVDRP service IP"), data.svdrpip, MaxSvdrpIp, ".1234567890")); | ||||
|      Add(new cMenuEditStrItem(tr("SVDRP service IP"), data.svdrpip, sizeof(data.svdrpip), ".1234567890")); | ||||
|      help.Append(tr("Define the IP address of SVDRP service.")); | ||||
|      } | ||||
|  | ||||
|   | ||||
										
											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.
										
									
								
							
							
								
								
									
										244
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										244
									
								
								femonosd.c
									
									
									
									
									
								
							| @@ -24,7 +24,7 @@ | ||||
| #define OSDWIDTH                  m_OsdWidth              // in pixels | ||||
| #define OSDHEIGHT                 m_OsdHeight             // in pixels | ||||
| #define OSDROWHEIGHT              m_Font->Height()        // in pixels | ||||
| #define OSDINFOHEIGHT             (OSDROWHEIGHT * 13)     // in pixels (13 rows) | ||||
| #define OSDINFOHEIGHT             (OSDROWHEIGHT * 14)     // in pixels (14 rows) | ||||
| #define OSDSTATUSHEIGHT           (OSDROWHEIGHT * 6)      // in pixels (6 rows) | ||||
| #define OSDSYMBOL(id)             femonSymbols.Get(id) | ||||
| #define OSDSPACING                femonSymbols.GetSpacing() | ||||
| @@ -434,8 +434,11 @@ 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())); | ||||
|                       offset += OSDROWHEIGHT; | ||||
|                       OSDDRAWINFOLEFT( trVDR("Pilot"),     *getPilot(dtp.Pilot())); | ||||
|                       } | ||||
|                    } | ||||
|                    break; | ||||
|  | ||||
| @@ -471,8 +474,12 @@ 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())); | ||||
|                       offset += OSDROWHEIGHT; | ||||
|                       OSDDRAWINFOLEFT( trVDR("T2SystemId"),*cString::sprintf("%d", dtp.T2SystemId())); | ||||
|                       OSDDRAWINFORIGHT(trVDR("SISO/MISO"), *cString::sprintf("%d", dtp.SisoMiso())); | ||||
|                       } | ||||
|                    } | ||||
|                    break; | ||||
|  | ||||
| @@ -488,7 +495,6 @@ void cFemonOsd::DrawInfoWindow(void) | ||||
|                          OSDDRAWINFOLEFT(tr("Protocol"),   *data.protocol); | ||||
|                          offset += OSDROWHEIGHT; | ||||
|                          OSDDRAWINFOLEFT(tr("Bitrate"),    *data.bitrate); | ||||
|                          offset += OSDROWHEIGHT; | ||||
|                          } | ||||
|                       } | ||||
|                    } | ||||
| @@ -624,6 +630,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); | ||||
| @@ -702,26 +725,28 @@ void cFemonOsd::Show(void) | ||||
|      } | ||||
|  | ||||
|   if (m_DeviceSource == DEVICESOURCE_DVBAPI) { | ||||
|      cDvbDevice *dev = getDvbDevice(cDevice::ActualDevice()); | ||||
|      m_Frontend = dev ? open(*cString::sprintf(FRONTEND_DEVICE, dev->Adapter(), dev->Frontend()), O_RDONLY | O_NONBLOCK) : -1; | ||||
|      if (m_Frontend >= 0) { | ||||
|         if (ioctl(m_Frontend, FE_GET_INFO, &m_FrontendInfo) < 0) { | ||||
|            if (!femonConfig.usesvdrp) | ||||
|               error("cFemonOsd::Show() cannot read frontend info."); | ||||
|            close(m_Frontend); | ||||
|            m_Frontend = -1; | ||||
|            memset(&m_FrontendInfo, 0, sizeof(m_FrontendInfo)); | ||||
|      if (!strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||
|         cDvbDevice *dev = getDvbDevice(cDevice::ActualDevice()); | ||||
|         m_Frontend = dev ? open(*cString::sprintf(FRONTEND_DEVICE, dev->Adapter(), dev->Frontend()), O_RDONLY | O_NONBLOCK) : -1; | ||||
|         if (m_Frontend >= 0) { | ||||
|            if (ioctl(m_Frontend, FE_GET_INFO, &m_FrontendInfo) < 0) { | ||||
|               if (!femonConfig.usesvdrp) | ||||
|                  error("cFemonOsd::Show() cannot read frontend info."); | ||||
|               close(m_Frontend); | ||||
|               m_Frontend = -1; | ||||
|               memset(&m_FrontendInfo, 0, sizeof(m_FrontendInfo)); | ||||
|               return; | ||||
|               } | ||||
|            } | ||||
|         else if (femonConfig.usesvdrp) { | ||||
|            if (!SvdrpConnect() || !SvdrpTune()) | ||||
|               return; | ||||
|            } | ||||
|         else { | ||||
|            error("cFemonOsd::Show() cannot open frontend device."); | ||||
|            return; | ||||
|            } | ||||
|         } | ||||
|      else if (femonConfig.usesvdrp) { | ||||
|         if (!SvdrpConnect() || !SvdrpTune()) | ||||
|            return; | ||||
|         } | ||||
|      else { | ||||
|         error("cFemonOsd::Show() cannot open frontend device."); | ||||
|         return; | ||||
|         } | ||||
|      } | ||||
|   else | ||||
|      m_Frontend = -1; | ||||
| @@ -759,52 +784,60 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber, bool li | ||||
|   eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack(); | ||||
|   const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||
|  | ||||
|   if (!liveView || !channelNumber || !channel || channel->Number() != channelNumber) | ||||
|   if (!device || !liveView) | ||||
|      return; | ||||
|  | ||||
|   m_DeviceSource = DEVICESOURCE_DVBAPI; | ||||
|   if (channel) { | ||||
|   if (!channelNumber) { | ||||
|      if (m_Receiver) { | ||||
|         m_Receiver->Deactivate(); | ||||
|         DELETENULL(m_Receiver); | ||||
|         } | ||||
|      return; | ||||
|      } | ||||
|  | ||||
|   if (channel && femonConfig.analyzestream) { | ||||
|      m_DeviceSource = DEVICESOURCE_DVBAPI; | ||||
|      if (channel->IsSourceType('I')) | ||||
|         m_DeviceSource = DEVICESOURCE_IPTV; | ||||
|      else if (channel->IsSourceType('V')) | ||||
|         m_DeviceSource = DEVICESOURCE_PVRINPUT; | ||||
|      } | ||||
|  | ||||
|   if (m_Frontend >= 0) { | ||||
|      close(m_Frontend); | ||||
|      m_Frontend = -1; | ||||
|      } | ||||
|  | ||||
|   if (m_DeviceSource == DEVICESOURCE_DVBAPI) { | ||||
|      cDvbDevice *dev = getDvbDevice(cDevice::ActualDevice()); | ||||
|      m_Frontend = dev ? open(*cString::sprintf(FRONTEND_DEVICE, dev->Adapter(), dev->Frontend()), O_RDONLY | O_NONBLOCK) : -1; | ||||
|      if (m_Frontend >= 0) { | ||||
|         if (ioctl(m_Frontend, FE_GET_INFO, &m_FrontendInfo) < 0) { | ||||
|            if (!femonConfig.usesvdrp) | ||||
|               error("cFemonOsd::ChannelSwitch() cannot read frontend info."); | ||||
|            close(m_Frontend); | ||||
|            m_Frontend = -1; | ||||
|            memset(&m_FrontendInfo, 0, sizeof(m_FrontendInfo)); | ||||
|            return; | ||||
|            } | ||||
|         close(m_Frontend); | ||||
|         m_Frontend = -1; | ||||
|         } | ||||
|      else if (femonConfig.usesvdrp) { | ||||
|         if (!SvdrpConnect() || !SvdrpTune()) | ||||
|            return; | ||||
|         } | ||||
|      else { | ||||
|         error("cFemonOsd::ChannelSwitch() cannot open frontend device."); | ||||
|         return; | ||||
|         } | ||||
|      } | ||||
|  | ||||
|   if (m_Receiver) { | ||||
|      m_Receiver->Deactivate(); | ||||
|      DELETENULL(m_Receiver); | ||||
|      } | ||||
|   if (femonConfig.analyzestream && channel) { | ||||
|      m_Receiver = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0); | ||||
|      cDevice::ActualDevice()->AttachReceiver(m_Receiver); | ||||
|      if (m_DeviceSource == DEVICESOURCE_DVBAPI) { | ||||
|         if (!strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||
|            cDvbDevice *dev = getDvbDevice(cDevice::ActualDevice()); | ||||
|            m_Frontend = dev ? open(*cString::sprintf(FRONTEND_DEVICE, dev->Adapter(), dev->Frontend()), O_RDONLY | O_NONBLOCK) : -1; | ||||
|            if (m_Frontend >= 0) { | ||||
|               if (ioctl(m_Frontend, FE_GET_INFO, &m_FrontendInfo) < 0) { | ||||
|                  if (!femonConfig.usesvdrp) | ||||
|                     error("cFemonOsd::ChannelSwitch() cannot read frontend info."); | ||||
|                  close(m_Frontend); | ||||
|                  m_Frontend = -1; | ||||
|                  memset(&m_FrontendInfo, 0, sizeof(m_FrontendInfo)); | ||||
|                  return; | ||||
|                  } | ||||
|               } | ||||
|            else if (femonConfig.usesvdrp) { | ||||
|               if (!SvdrpConnect() || !SvdrpTune()) | ||||
|                  return; | ||||
|               } | ||||
|            else { | ||||
|               error("cFemonOsd::ChannelSwitch() cannot open frontend device."); | ||||
|               return; | ||||
|               } | ||||
|            } | ||||
|  | ||||
|         if (m_Receiver) { | ||||
|            m_Receiver->Deactivate(); | ||||
|            DELETENULL(m_Receiver); | ||||
|            } | ||||
|         m_Receiver = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0); | ||||
|         cDevice::ActualDevice()->AttachReceiver(m_Receiver); | ||||
|         } | ||||
|      } | ||||
| } | ||||
|  | ||||
| @@ -834,26 +867,79 @@ 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) { | ||||
|                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, false); | ||||
|                cControl::Launch(new cTransferControl(d, channel)); | ||||
|                return (true); | ||||
|                } | ||||
|             } | ||||
|         } | ||||
|      } | ||||
|    return (false); | ||||
|   | ||||
| @@ -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]; | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
							
								
								
									
										40
									
								
								femontools.c
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								femontools.c
									
									
									
									
									
								
							| @@ -9,6 +9,7 @@ | ||||
| #define __STDC_FORMAT_MACROS | ||||
| #endif | ||||
|  | ||||
| #include <ctype.h> | ||||
| #include <stdint.h> | ||||
| #include <stdlib.h> | ||||
| #include <unistd.h> | ||||
| @@ -31,35 +32,48 @@ static cString getCA(int value) | ||||
|     case 0x0464:            return cString::sprintf("EuroDec (%X)",          value); // EuroDec | ||||
|     case 0x0500 ... 0x05FF: return cString::sprintf("Viaccess (%X)",         value); // France Telecom | ||||
|     case 0x0600 ... 0x06FF: return cString::sprintf("Irdeto (%X)",           value); // Irdeto | ||||
|     case 0x0900 ... 0x09FF: return cString::sprintf("NDS Videoguard (%X)",   value); // News Datacom | ||||
|     case 0x0700 ... 0x07FF: return cString::sprintf("DigiCipher 2 (%X)",     value); // Jerrold/GI/Motorola 4DTV | ||||
|     case 0x0900 ... 0x09FF: return cString::sprintf("NDS Videoguard (%X)",   value); // NDS | ||||
|     case 0x0B00 ... 0x0BFF: return cString::sprintf("Conax (%X)",            value); // Norwegian Telekom | ||||
|     case 0x0D00 ... 0x0DFF: return cString::sprintf("CryptoWorks (%X)",      value); // Philips | ||||
|     case 0x0D00 ... 0x0DFF: return cString::sprintf("CryptoWorks (%X)",      value); // Philips CryptoTec | ||||
|     case 0x0E00 ... 0x0EFF: return cString::sprintf("PowerVu (%X)",          value); // Scientific Atlanta | ||||
|     case 0x1000:            return cString::sprintf("RAS (%X)",              value); // Tandberg Television | ||||
|     case 0x1200 ... 0x12FF: return cString::sprintf("NagraVision (%X)",      value); // BellVu Express | ||||
|     case 0x1700 ... 0x17FF: return cString::sprintf("BetaCrypt (%X)",        value); // BetaTechnik | ||||
|     case 0x1700 ... 0x17FF: return cString::sprintf("VCAS (%X)",             value); // Verimatrix Inc. former BetaTechnik | ||||
|     case 0x1800 ... 0x18FF: return cString::sprintf("NagraVision (%X)",      value); // Kudelski SA | ||||
|     case 0x22F0:            return cString::sprintf("Codicrypt (%X)",        value); // Scopus Network Technologies | ||||
|     case 0x2600:            return cString::sprintf("BISS (%X)",             value); // European Broadcasting Union | ||||
|     case 0x2719:            return cString::sprintf("VanyaCas (%X)",         value); // S-Curious Research & Technology Pvt. Ltd. | ||||
|     case 0x4347:            return cString::sprintf("CryptOn (%X)",          value); // CryptOn | ||||
|     case 0x4800:            return cString::sprintf("Accessgate (%X)",       value); // Telemann | ||||
|     case 0x4900:            return cString::sprintf("China Crypt (%X)",      value); // CryptoWorks | ||||
|     case 0x4A02:            return cString::sprintf("Tongfang (%X)",         value); // Tsinghua Tongfang Company | ||||
|     case 0x4A10:            return cString::sprintf("EasyCas (%X)",          value); // EasyCas | ||||
|     case 0x4A20:            return cString::sprintf("AlphaCrypt (%X)",       value); // AlphaCrypt | ||||
|     case 0x4A70:            return cString::sprintf("DreamCrypt (%X)",       value); // Dream Multimedia | ||||
|     case 0x4A60:            return cString::sprintf("SkyCrypt (%X)",         value); // @Sky | ||||
|     case 0x4A61:            return cString::sprintf("Neotioncrypt (%X)",     value); // Neotion | ||||
|     case 0x4A62:            return cString::sprintf("SkyCrypt (%X)",         value); // @Sky | ||||
|     case 0x4A63:            return cString::sprintf("Neotion SHL (%X)",      value); // Neotion | ||||
|     case 0x4A64 ... 0x4A6F: return cString::sprintf("SkyCrypt (%X)",         value); // @Sky | ||||
|     case 0x4A80:            return cString::sprintf("ThalesCrypt (%X)",      value); // TPS | ||||
|     case 0x4A70:            return cString::sprintf("DreamCrypt (%X)",       value); // Dream Multimedia | ||||
|     case 0x4A80:            return cString::sprintf("ThalesCrypt (%X)",      value); // Thales Broadcast & Multimedia | ||||
|     case 0x4AA1:            return cString::sprintf("KeyFly (%X)",           value); // SIDSA | ||||
|     case 0x4ABF:            return cString::sprintf("DG-Crypt (%X)",         value); // Beijing Compunicate Technology Inc. | ||||
|     case 0x4ABF:            return cString::sprintf("CTI-CAS (%X)",          value); // Beijing Compunicate Technology Inc. | ||||
|     case 0x4AC1:            return cString::sprintf("Latens (%X)",           value); // Latens Systems | ||||
|     case 0x4AD0 ... 0x4AD1: return cString::sprintf("X-Crypt (%X)",          value); // XCrypt Inc. | ||||
|     case 0x4AD4:            return cString::sprintf("OmniCrypt (%X)",        value); // Widevine Technologies, Inc. | ||||
|     case 0x4AE0:            return cString::sprintf("RossCrypt (%X)",        value); // Digi Raum Electronics Co. Ltd. | ||||
|     case 0x4AE0 ... 0x4AE1: return cString::sprintf("Z-Crypt (%X)",          value); // Digi Raum Electronics Co. Ltd. | ||||
|     case 0x4AE4:            return cString::sprintf("CoreCrypt (%X)",        value); // CoreTrust | ||||
|     case 0x4AE5:            return cString::sprintf("PRO-Crypt (%X)",        value); // IK SATPROF | ||||
|     case 0x4AEA:            return cString::sprintf("Cryptoguard (%X)",      value); // Gryptoguard AB | ||||
|     case 0x4AEB:            return cString::sprintf("Abel Quintic (%X)",     value); // Abel DRM Systems | ||||
|     case 0x4AF0:            return cString::sprintf("ABV (%X)",              value); // Alliance Broadcast Vision | ||||
|     case 0x5500:            return cString::sprintf("Z-Crypt (%X)",          value); // Digi Raum Electronics Co. Ltd. | ||||
|     case 0x5501:            return cString::sprintf("Griffin (%X)",          value); // Griffin | ||||
|     case 0x5501:            return cString::sprintf("Griffin (%X)",          value); // Nucleus Systems Ltd. | ||||
|     case 0x5581:            return cString::sprintf("Bulcrypt (%X)",         value); // Bulcrypt | ||||
|     case 0x7BE1:            return cString::sprintf("DRE-Crypt (%X)",        value); // DRE-Crypt | ||||
|     case 0xA101:            return cString::sprintf("RosCrypt-M (%X)",       value); // NIIR | ||||
|     case 0xEAD0:            return cString::sprintf("VanyaCas (%X)",         value); // S-Curious Research & Technology Pvt. Ltd. | ||||
|     default:                break; | ||||
|     } | ||||
|   return cString::sprintf("%X", value); | ||||
| @@ -377,6 +391,11 @@ cString getRollOff(int value) | ||||
|   return cString::sprintf("%s", getUserString(value, RollOffValues)); | ||||
| } | ||||
|  | ||||
| cString getPilot(int value) | ||||
| { | ||||
|   return cString::sprintf("%s", getUserString(value, PilotValues)); | ||||
| } | ||||
|  | ||||
| cString getResolution(int width, int height, int scan) | ||||
| { | ||||
|   if ((width > 0) && (height > 0)) { | ||||
| @@ -518,8 +537,9 @@ cString getAC3DialogLevel(int value) | ||||
|  | ||||
| cString getFrequencyMHz(int value) | ||||
| { | ||||
|    while (value > 20000) value /= 1000; | ||||
|    return cString::sprintf("%d %s", value, tr("MHz")); | ||||
|   double freq = value; | ||||
|   while (freq > 20000.0) freq /= 1000.0; | ||||
|   return cString::sprintf("%s %s", *dtoa(freq, "%lg"), tr("MHz")); | ||||
| } | ||||
|  | ||||
| cString getAudioSamplingFreq(int value) | ||||
|   | ||||
| @@ -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); | ||||
| @@ -57,6 +59,7 @@ cString getModulation(int value); | ||||
| cString getTerrestrialSystem(int value); | ||||
| cString getSatelliteSystem(int value); | ||||
| cString getRollOff(int value); | ||||
| cString getPilot(int value); | ||||
| cString getResolution(int width, int height, int scan); | ||||
| cString getAspectRatio(int value); | ||||
| cString getVideoFormat(int value); | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+0200\n" | ||||
| "Last-Translator: Christian Wieninger\n" | ||||
| "Language-Team: German <vdr@linuxtv.org>\n" | ||||
| "Language: de\n" | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+0200\n" | ||||
| "Last-Translator: Luis Palacios\n" | ||||
| "Language-Team: Spanish <vdr@linuxtv.org>\n" | ||||
| "Language: es\n" | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+0200\n" | ||||
| "Last-Translator: Arthur Konovalov\n" | ||||
| "Language-Team: Estonian <vdr@linuxtv.org>\n" | ||||
| "Language: et\n" | ||||
|   | ||||
							
								
								
									
										16
									
								
								po/fi_FI.po
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								po/fi_FI.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+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" | ||||
|   | ||||
							
								
								
									
										122
									
								
								po/fr_FR.po
									
									
									
									
									
								
							
							
						
						
									
										122
									
								
								po/fr_FR.po
									
									
									
									
									
								
							| @@ -1,26 +1,28 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+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" | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+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" | ||||
|   | ||||
| @@ -1,15 +1,15 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+0200\n" | ||||
| "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" | ||||
| "Language-Team: Italian <vdr@linuxtv.org>\n" | ||||
| "Language: it\n" | ||||
|   | ||||
							
								
								
									
										46
									
								
								po/lt_LT.po
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								po/lt_LT.po
									
									
									
									
									
								
							| @@ -1,14 +1,14 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+0200\n" | ||||
| "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" | ||||
| "Language-Team: Lithuanian <vdr@linuxtv.org>\n" | ||||
| "Language: lt\n" | ||||
| @@ -17,7 +17,7 @@ msgstr "" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
|  | ||||
| msgid "DVB Signal Information Monitor (OSD)" | ||||
| msgstr "DVB signalo informacijos stebėjimas (OSD)" | ||||
| msgstr "DVB signalo stebėjimas (OSD)" | ||||
|  | ||||
| msgid "Signal Information" | ||||
| msgstr "Signalo informacija" | ||||
| @@ -47,7 +47,7 @@ msgid "ST:TNG" | ||||
| msgstr "ST:TNG" | ||||
|  | ||||
| msgid "DeepBlue" | ||||
| msgstr "DeepBlue" | ||||
| msgstr "Tamsiai mėlyna" | ||||
|  | ||||
| msgid "Moronimo" | ||||
| msgstr "Moronimo" | ||||
| @@ -62,7 +62,7 @@ msgid "Duotone" | ||||
| msgstr "Duotone" | ||||
|  | ||||
| msgid "SilverGreen" | ||||
| msgstr "SilverGreen" | ||||
| msgstr "Sidabro žalia" | ||||
|  | ||||
| msgid "PearlHD" | ||||
| msgstr "PearlHD" | ||||
| @@ -92,10 +92,10 @@ msgid "Define the position of OSD." | ||||
| msgstr "Nustatyti ekrano užsklandos poziciją." | ||||
|  | ||||
| msgid "Downscale OSD size [%]" | ||||
| msgstr "" | ||||
| msgstr "Sumažinti ekrano užsklandos (OSD) dydį [%]" | ||||
|  | ||||
| msgid "Define the downscale ratio for OSD size." | ||||
| msgstr "" | ||||
| msgstr "Nustatyti ekrano užsklandos (OSD) mažinimo santykį." | ||||
|  | ||||
| msgid "Red limit [%]" | ||||
| msgstr "Raudonoji ribą [%]" | ||||
| @@ -179,7 +179,7 @@ msgid "Coderate" | ||||
| msgstr "Kodavimo dažnis" | ||||
|  | ||||
| msgid "Protocol" | ||||
| msgstr "" | ||||
| msgstr "Protokolas" | ||||
|  | ||||
| msgid "Bitrate" | ||||
| msgstr "Kokybė" | ||||
| @@ -209,7 +209,7 @@ msgid "Audio Stream" | ||||
| msgstr "Audio srautas" | ||||
|  | ||||
| msgid "Channel Mode" | ||||
| msgstr "kanalo būsena" | ||||
| msgstr "Kanalo būsena" | ||||
|  | ||||
| msgid "Sampling Frequency" | ||||
| msgstr "Parodomasis dažnis" | ||||
| @@ -218,13 +218,13 @@ msgid "AC-3 Stream" | ||||
| msgstr "AC-3 srautas" | ||||
|  | ||||
| msgid "Bit Stream Mode" | ||||
| msgstr "Bitstream būsena" | ||||
| msgstr "Srauto būsena" | ||||
|  | ||||
| msgid "Audio Coding Mode" | ||||
| msgstr "Audio kodavimas" | ||||
|  | ||||
| msgid "Center Mix Level" | ||||
| msgstr "Centerinis Mix lygis" | ||||
| msgstr "Centrinis mikserio lygis" | ||||
|  | ||||
| msgid "Surround Mix Level" | ||||
| msgstr "Surround Mix lygis" | ||||
| @@ -239,10 +239,10 @@ msgid "Dialogue Normalization" | ||||
| msgstr "Dialogo normalizacija" | ||||
|  | ||||
| msgid "Fixed" | ||||
| msgstr "Fest" | ||||
| msgstr "Sutvarkyta" | ||||
|  | ||||
| msgid "Analog" | ||||
| msgstr "Analog" | ||||
| msgstr "Analoginis" | ||||
|  | ||||
| msgid "MPEG-2" | ||||
| msgstr "MPEG-2" | ||||
| @@ -293,7 +293,7 @@ msgid "progressive" | ||||
| msgstr "progresyvinis" | ||||
|  | ||||
| msgid "reserved" | ||||
| msgstr "belegt" | ||||
| msgstr "rezervuota" | ||||
|  | ||||
| msgid "extended" | ||||
| msgstr "išplėstas" | ||||
| @@ -326,22 +326,22 @@ msgid "Music and Effects (ME)" | ||||
| msgstr "Muzika ir efektai (ME)" | ||||
|  | ||||
| msgid "Visually Impaired (VI)" | ||||
| msgstr " (VI)" | ||||
| msgstr "Skirta silpnaregiams (VI)" | ||||
|  | ||||
| msgid "Hearing Impaired (HI)" | ||||
| msgstr " (HI)" | ||||
| msgstr "Skirta žmoniems su klausos negalia (HI)" | ||||
|  | ||||
| msgid "Dialogue (D)" | ||||
| msgstr "Dialogas (D)" | ||||
|  | ||||
| msgid "Commentary (C)" | ||||
| msgstr "Komentavimas (C)" | ||||
| msgstr "Komentarai (C)" | ||||
|  | ||||
| msgid "Emergency (E)" | ||||
| msgstr "Avarinis (E)" | ||||
|  | ||||
| msgid "Voice Over (VO)" | ||||
| msgstr "Voice over (VO)" | ||||
| msgstr "Įgarsinta (VO)" | ||||
|  | ||||
| msgid "Karaoke" | ||||
| msgstr "Karaoke" | ||||
| @@ -356,10 +356,10 @@ msgid "C" | ||||
| msgstr "C" | ||||
|  | ||||
| msgid "L" | ||||
| msgstr "L" | ||||
| msgstr "K" | ||||
|  | ||||
| msgid "R" | ||||
| msgstr "R" | ||||
| msgstr "D" | ||||
|  | ||||
| msgid "S" | ||||
| msgstr "S" | ||||
| @@ -380,7 +380,7 @@ msgid "MHz" | ||||
| msgstr "MHz" | ||||
|  | ||||
| msgid "free" | ||||
| msgstr "frei" | ||||
| msgstr "nekoduota" | ||||
|  | ||||
| msgid "Mbit/s" | ||||
| msgstr "Mbit/s" | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+0200\n" | ||||
| "Last-Translator: Vyacheslav Dikonov\n" | ||||
| "Language-Team: Russian <vdr@linuxtv.org>\n" | ||||
| "Language: ru\n" | ||||
|   | ||||
							
								
								
									
										389
									
								
								po/sk_SK.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										389
									
								
								po/sk_SK.po
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,389 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007-2015 Rolf Ahrenberg | ||||
| # This file is distributed under the same license as the femon package. | ||||
| # Milan Hrala | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.2.0\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+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" | ||||
							
								
								
									
										28
									
								
								po/uk_UA.po
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								po/uk_UA.po
									
									
									
									
									
								
							| @@ -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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+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 сервісу" | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| # VDR plugin language source file. | ||||
| # Copyright (C) 2007 Rolf Ahrenberg | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+0200\n" | ||||
| "Last-Translator: NanFeng <nfgx@21cn.com>\n" | ||||
| "Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n" | ||||
| "Language: zh_CN\n" | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| # VDR plugin language source file.  | ||||
| # Copyright (C) 2007 Rolf Ahrenberg  | ||||
| # Copyright (C) 2007-2015 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.2.0\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: 2015-02-19 02:19+0200\n" | ||||
| "PO-Revision-Date: 2015-02-19 02:19+0200\n" | ||||
| "Last-Translator: NanFeng <nfgx@21cn.com>\n" | ||||
| "Language-Team: Chinese (traditional) <vdr@linuxtv.org>\n" | ||||
| "Language: zh_TW\n" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user