mirror of
				https://github.com/rofafor/vdr-plugin-femon.git
				synced 2023-10-10 11:36:53 +00:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 136c9fb73c | ||
|  | 9ca1fcb378 | ||
|  | 1cfbd0b730 | ||
|  | 152e87d443 | ||
|  | 08223cf6c4 | ||
|  | 84572d2187 | 
							
								
								
									
										12
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -480,3 +480,15 @@ VDR Plugin 'femon' Revision History | ||||
|  | ||||
| - 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
									
								
								femon.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								femon.c
									
									
									
									
									
								
							| @@ -22,7 +22,7 @@ | ||||
| #define GITVERSION "" | ||||
| #endif | ||||
|  | ||||
| static const char VERSION[]       = "2.0.1" GITVERSION; | ||||
| static const char VERSION[]       = "2.0.4" GITVERSION; | ||||
| static const char DESCRIPTION[]   = trNOOP("DVB Signal Information Monitor (OSD)"); | ||||
| static const char MAINMENUENTRY[] = trNOOP("Signal Information"); | ||||
|  | ||||
|   | ||||
							
								
								
									
										120
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										120
									
								
								femonosd.c
									
									
									
									
									
								
							| @@ -625,6 +625,23 @@ void cFemonOsd::Action(void) | ||||
|               m_BERValid = (ioctl(m_Frontend, FE_READ_BER, &m_BER) >= 0); | ||||
|               m_UNCValid = (ioctl(m_Frontend, FE_READ_UNCORRECTED_BLOCKS, &m_UNC) >= 0); | ||||
|               } | ||||
|            else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||
|               m_Quality = cDevice::ActualDevice()->SignalQuality(); | ||||
|               m_QualityValid = (m_Quality >= 0); | ||||
|               m_Strength = cDevice::ActualDevice()->SignalStrength(); | ||||
|               m_StrengthValid = (m_Strength >= 0); | ||||
|               m_FrontendName = cDevice::ActualDevice()->DeviceName(); | ||||
|               m_FrontendStatus = (fe_status_t)(cDevice::ActualDevice()->HasLock() ? (FE_HAS_LOCK | FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC) : 0); | ||||
|               m_FrontendStatusValid = m_StrengthValid; | ||||
|               m_Signal = uint16_t(m_Strength * 0xFFFF / 100); | ||||
|               m_SignalValid = m_StrengthValid; | ||||
|               m_SNR = uint16_t(m_Quality * 0xFFFF / 100); | ||||
|               m_SNRValid = m_QualityValid; | ||||
|               m_BER = 0; | ||||
|               m_BERValid = false; | ||||
|               m_UNC = 0; | ||||
|               m_UNCValid = false; | ||||
|               } | ||||
|            else if (m_SvdrpConnection.handle >= 0) { | ||||
|               cmd.handle = m_SvdrpConnection.handle; | ||||
|               m_SvdrpPlugin->Service("SvdrpCommand-v1.0", &cmd); | ||||
| @@ -715,6 +732,9 @@ void cFemonOsd::Show(void) | ||||
|            return; | ||||
|            } | ||||
|         } | ||||
|      else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||
|         // nop | ||||
|         } | ||||
|      else if (femonConfig.usesvdrp) { | ||||
|         if (!SvdrpConnect() || !SvdrpTune()) | ||||
|            return; | ||||
| @@ -789,6 +809,9 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber, bool li | ||||
|            return; | ||||
|            } | ||||
|         } | ||||
|      else if (strstr(*cDevice::ActualDevice()->DeviceType(), SATIP_DEVICE)) { | ||||
|         // nop | ||||
|         } | ||||
|      else if (femonConfig.usesvdrp) { | ||||
|         if (!SvdrpConnect() || !SvdrpTune()) | ||||
|            return; | ||||
| @@ -835,26 +858,83 @@ bool cFemonOsd::DeviceSwitch(int direction) | ||||
|      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||
|      if (channel) { | ||||
|         for (int i = 0; i < cDevice::NumDevices() - 1; i++) { | ||||
|            if (direction >= 0) { | ||||
|               if (++device >= cDevice::NumDevices()) | ||||
|                  device = 0; | ||||
|               } | ||||
|            else { | ||||
|               if (--device < 0) | ||||
|                  device = cDevice::NumDevices() - 1; | ||||
|               } | ||||
|            if (cDevice::GetDevice(device)->ProvidesChannel(channel, 0)) { | ||||
|               debug("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, direction, device); | ||||
|               cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), 0, true); | ||||
|               cControl::Shutdown(); | ||||
|               cDevice::GetDevice(device)->SwitchChannel(channel, true); | ||||
|               if (cDevice::GetDevice(device) == cDevice::PrimaryDevice()) | ||||
|                  cDevice::GetDevice(device)->ForceTransferMode(); | ||||
|               cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel)); | ||||
|               cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number(), true); | ||||
|               return (true); | ||||
|               } | ||||
|            } | ||||
|             if (direction >= 0) { | ||||
|                if (++device >= cDevice::NumDevices()) | ||||
|                   device = 0; | ||||
|                } | ||||
|             else { | ||||
|                if (--device < 0) | ||||
|                   device = cDevice::NumDevices() - 1; | ||||
|                } | ||||
|             // Collect the current priorities of all CAM slots that can decrypt the channel: | ||||
|             int NumCamSlots = CamSlots.Count(); | ||||
|             int SlotPriority[NumCamSlots]; | ||||
|             int NumUsableSlots = 0; | ||||
|             bool NeedsDetachAllReceivers = false; | ||||
|             bool InternalCamNeeded = false; | ||||
|             bool ValidDevice = false; | ||||
|             cCamSlot *s = NULL; | ||||
|             cDevice *d = cDevice::GetDevice(device); | ||||
|             if (channel->Ca() >= CA_ENCRYPTED_MIN) { | ||||
|                for (cCamSlot *CamSlot = CamSlots.First(); CamSlot; CamSlot = CamSlots.Next(CamSlot)) { | ||||
|                    SlotPriority[CamSlot->Index()] = MAXPRIORITY + 1; // assumes it can't be used | ||||
|                    if (CamSlot->ModuleStatus() == msReady) { | ||||
|                       if (CamSlot->ProvidesCa(channel->Caids())) { | ||||
|                          if (!ChannelCamRelations.CamChecked(channel->GetChannelID(), CamSlot->SlotNumber())) { | ||||
|                             SlotPriority[CamSlot->Index()] = CamSlot->Priority(); | ||||
|                             NumUsableSlots++; | ||||
|                             } | ||||
|                          } | ||||
|                       } | ||||
|                   } | ||||
|                if (!NumUsableSlots) | ||||
|                   InternalCamNeeded = true; // no CAM is able to decrypt this channel | ||||
|                } | ||||
|             for (int j = 0; j < NumCamSlots || !NumUsableSlots; ++j) { | ||||
|                 if (NumUsableSlots && SlotPriority[j] > MAXPRIORITY) | ||||
|                    continue; // there is no CAM available in this slot | ||||
|                 bool HasInternalCam = d->HasInternalCam(); | ||||
|                 if (InternalCamNeeded && !HasInternalCam) | ||||
|                    continue; // no CAM is able to decrypt this channel and the device uses vdr handled CAMs | ||||
|                 if (NumUsableSlots && !HasInternalCam && !CamSlots.Get(j)->Assign(d, true)) | ||||
|                    continue; // CAM slot can't be used with this device | ||||
|                 if (d->ProvidesChannel(channel, 0, &NeedsDetachAllReceivers)) { // this device is basically able to do the job | ||||
|                    debug("%s(%d) device(%d)\n", __PRETTY_FUNCTION__, direction, device); | ||||
|                    if (NumUsableSlots && !HasInternalCam && d->CamSlot() && d->CamSlot() != CamSlots.Get(j)) | ||||
|                       NeedsDetachAllReceivers = true; // using a different CAM slot requires detaching receivers | ||||
|                    if (NumUsableSlots && !HasInternalCam) | ||||
|                       s = CamSlots.Get(j); | ||||
|                    ValidDevice = true; | ||||
|                    break; | ||||
|                    } | ||||
|                 if (!NumUsableSlots) | ||||
|                    break; // no CAM necessary, so just one loop over the devices | ||||
|                 } | ||||
|             // Do the actual switch if valid device found | ||||
|             if (d && ValidDevice) { | ||||
|                cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), 0, true); | ||||
|                cControl::Shutdown(); | ||||
|                if (NeedsDetachAllReceivers) | ||||
|                   d->DetachAllReceivers(); | ||||
|                if (s) { | ||||
|                   if (s->Device() != d) { | ||||
|                      if (s->Device()) | ||||
|                         s->Device()->DetachAllReceivers(); | ||||
|                      if (d->CamSlot()) | ||||
|                         d->CamSlot()->Assign(NULL); | ||||
|                      s->Assign(d); | ||||
|                      } | ||||
|                   } | ||||
|                else if (d->CamSlot() && !d->CamSlot()->IsDecrypting()) | ||||
|                   d->CamSlot()->Assign(NULL); | ||||
|                d->SwitchChannel(channel, true); | ||||
|                if (d == cDevice::PrimaryDevice()) | ||||
|                   d->ForceTransferMode(); | ||||
|                cControl::Launch(new cTransferControl(d, channel)); | ||||
|                cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number(), true); | ||||
|                return (true); | ||||
|                } | ||||
|             } | ||||
|         } | ||||
|      } | ||||
|    return (false); | ||||
|   | ||||
| @@ -9,6 +9,7 @@ | ||||
| #define __STDC_FORMAT_MACROS | ||||
| #endif | ||||
|  | ||||
| #include <ctype.h> | ||||
| #include <stdint.h> | ||||
| #include <stdlib.h> | ||||
| #include <unistd.h> | ||||
|   | ||||
| @@ -26,6 +26,8 @@ | ||||
|  | ||||
| #define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d" | ||||
|  | ||||
| #define SATIP_DEVICE "SAT>IP" | ||||
|  | ||||
| cDvbDevice *getDvbDevice(cDevice* device); | ||||
|  | ||||
| cString getFrontendInfo(cDvbDevice *device); | ||||
|   | ||||
| @@ -7,10 +7,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Christian Wieninger\n" | ||||
| "Language-Team: German <vdr@linuxtv.org>\n" | ||||
| "Language: de\n" | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Luis Palacios\n" | ||||
| "Language-Team: Spanish <vdr@linuxtv.org>\n" | ||||
| "Language: es\n" | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Arthur Konovalov\n" | ||||
| "Language-Team: Estonian <vdr@linuxtv.org>\n" | ||||
| "Language: et\n" | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Rolf Ahrenberg\n" | ||||
| "Language-Team: Finnish <vdr@linuxtv.org>\n" | ||||
| "Language: fi\n" | ||||
|   | ||||
| @@ -7,10 +7,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Bernard Jaulin <bernard.jaulin@gmail.com>\n" | ||||
| "Language-Team: French <vdr@linuxtv.org>\n" | ||||
| "Language: fr\n" | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2010-10-10 10:10+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: F<>ley Istv<74>n <ifuley at tigercomp dot ro>\n" | ||||
| "Language-Team: Hungarian <ifuley at tigercomp dot ro>\n" | ||||
| "Language: hu\n" | ||||
|   | ||||
| @@ -6,10 +6,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" | ||||
| "Language-Team: Italian <vdr@linuxtv.org>\n" | ||||
| "Language: it\n" | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" | ||||
| "Language-Team: Lithuanian <vdr@linuxtv.org>\n" | ||||
| "Language: lt\n" | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Vyacheslav Dikonov\n" | ||||
| "Language-Team: Russian <vdr@linuxtv.org>\n" | ||||
| "Language: ru\n" | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" | ||||
| "Language-Team: Slovak <vdr@linuxtv.org>\n" | ||||
| "Language: sk\n" | ||||
| @@ -387,4 +387,3 @@ 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 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: Yarema aka Knedlyk <yupadmin@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 сервісу" | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: NanFeng <nfgx@21cn.com>\n" | ||||
| "Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n" | ||||
| "Language: zh_CN\n" | ||||
|   | ||||
| @@ -5,10 +5,10 @@ | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: vdr-femon 2.0.1\n" | ||||
| "Project-Id-Version: vdr-femon 2.0.4\n" | ||||
| "Report-Msgid-Bugs-To: <see README>\n" | ||||
| "POT-Creation-Date: 2013-04-01 04:01+0200\n" | ||||
| "PO-Revision-Date: 2013-04-01 04:01+0200\n" | ||||
| "POT-Creation-Date: 2014-03-15 03:15+0200\n" | ||||
| "PO-Revision-Date: 2014-03-15 03:15+0200\n" | ||||
| "Last-Translator: NanFeng <nfgx@21cn.com>\n" | ||||
| "Language-Team: Chinese (traditional) <vdr@linuxtv.org>\n" | ||||
| "Language: zh_TW\n" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user