diff --git a/HISTORY b/HISTORY index 8295013c..5f5c89f1 100644 --- a/HISTORY +++ b/HISTORY @@ -6309,7 +6309,7 @@ Video Disk Recorder Revision History - The files "commands.conf" and "reccmd.conf" can now contain nested lists of commands. See vdr.5 for information about the new file format. -2010-02-21: Version 1.7.13 +2010-02-28: Version 1.7.13 - Updated the Italian OSD texts (thanks to Diego Pierotto). - Changed the position of Sirius 4 to S4.8E in sources.conf (thanks to Alexander Gross). @@ -6364,3 +6364,15 @@ Video Disk Recorder Revision History - Fixed the German translation of "Folder name must not contain '%c'!" (thanks to Frank Schmirler). - Updated the Estonian OSD texts (thanks to Arthur Konovalov). +- Plugins can now define new sources. In order to implement this, the following + changes were made: + + The transponder parameter string is no longer interpreted by cChannel, but rather + stored as is and used only by the respective device. That way plugins can use a + channel's parameter string to store arbitrary data (see vdr.5). + + The new class cSourceParam can be used by plugins to define new sources, and to + implement OSD items that will be used in the channel editor for editing the source + specific parameters of a channel (see dvbdevice.c for an example of how this is + done for the default DVB devices). + + Purely numerical values are no longer accepted in the 'source' parameter of a + channel. + This obsoletes the PLUGINPARAM patch. diff --git a/Makefile b/Makefile index a59945cf..31f05b04 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ # See the main source file 'vdr.c' for copyright information and # how to reach the author. # -# $Id: Makefile 2.7 2010/02/06 14:50:03 kls Exp $ +# $Id: Makefile 2.8 2010/02/21 11:44:38 kls Exp $ .DELETE_ON_ERROR: @@ -41,7 +41,7 @@ OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o d dvbplayer.o dvbspu.o dvbsubtitle.o eit.o eitscan.o epg.o filter.o font.o i18n.o interface.o keys.o\ lirc.o menu.o menuitems.o nit.o osdbase.o osd.o pat.o player.o plugin.o rcu.o\ receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sdt.o sections.o shutdown.o\ - skinclassic.o skins.o skinsttng.o sources.o spu.o status.o svdrp.o themes.o thread.o\ + skinclassic.o skins.o skinsttng.o sourceparams.o sources.o spu.o status.o svdrp.o themes.o thread.o\ timers.o tools.o transfer.o vdr.o videodir.o ifndef NO_KBD diff --git a/channels.c b/channels.c index c14df19c..a694d54a 100644 --- a/channels.c +++ b/channels.c @@ -4,11 +4,10 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: channels.c 2.12 2010/01/02 17:38:40 kls Exp $ + * $Id: channels.c 2.13 2010/02/21 13:36:04 kls Exp $ */ #include "channels.h" -#include #include #include "device.h" #include "epg.h" @@ -18,133 +17,6 @@ // format characters in order to allow any number of blanks after a numeric // value! -// --- Channel Parameter Maps ------------------------------------------------ - -const tChannelParameterMap InversionValues[] = { - { 0, INVERSION_OFF, trNOOP("off") }, - { 1, INVERSION_ON, trNOOP("on") }, - { 999, INVERSION_AUTO, trNOOP("auto") }, - { -1, 0, NULL } - }; - -const tChannelParameterMap BandwidthValues[] = { - { 6, 6000000, "6 MHz" }, - { 7, 7000000, "7 MHz" }, - { 8, 8000000, "8 MHz" }, - { -1, 0, NULL } - }; - -const tChannelParameterMap CoderateValues[] = { - { 0, FEC_NONE, trNOOP("none") }, - { 12, FEC_1_2, "1/2" }, - { 23, FEC_2_3, "2/3" }, - { 34, FEC_3_4, "3/4" }, - { 35, FEC_3_5, "3/5" }, - { 45, FEC_4_5, "4/5" }, - { 56, FEC_5_6, "5/6" }, - { 67, FEC_6_7, "6/7" }, - { 78, FEC_7_8, "7/8" }, - { 89, FEC_8_9, "8/9" }, - { 910, FEC_9_10, "9/10" }, - { 999, FEC_AUTO, trNOOP("auto") }, - { -1, 0, NULL } - }; - -const tChannelParameterMap ModulationValues[] = { - { 16, QAM_16, "QAM16" }, - { 32, QAM_32, "QAM32" }, - { 64, QAM_64, "QAM64" }, - { 128, QAM_128, "QAM128" }, - { 256, QAM_256, "QAM256" }, - { 2, QPSK, "QPSK" }, - { 5, PSK_8, "8PSK" }, - { 6, APSK_16, "16APSK" }, - { 10, VSB_8, "VSB8" }, - { 11, VSB_16, "VSB16" }, - { 998, QAM_AUTO, "QAMAUTO" }, - { -1, 0, NULL } - }; - -const tChannelParameterMap SystemValues[] = { - { 0, SYS_DVBS, "DVB-S" }, - { 1, SYS_DVBS2, "DVB-S2" }, - { -1, 0, NULL } - }; - -const tChannelParameterMap TransmissionValues[] = { - { 2, TRANSMISSION_MODE_2K, "2K" }, - { 8, TRANSMISSION_MODE_8K, "8K" }, - { 999, TRANSMISSION_MODE_AUTO, trNOOP("auto") }, - { -1, 0, NULL } - }; - -const tChannelParameterMap GuardValues[] = { - { 4, GUARD_INTERVAL_1_4, "1/4" }, - { 8, GUARD_INTERVAL_1_8, "1/8" }, - { 16, GUARD_INTERVAL_1_16, "1/16" }, - { 32, GUARD_INTERVAL_1_32, "1/32" }, - { 999, GUARD_INTERVAL_AUTO, trNOOP("auto") }, - { -1, 0, NULL } - }; - -const tChannelParameterMap HierarchyValues[] = { - { 0, HIERARCHY_NONE, trNOOP("none") }, - { 1, HIERARCHY_1, "1" }, - { 2, HIERARCHY_2, "2" }, - { 4, HIERARCHY_4, "4" }, - { 999, HIERARCHY_AUTO, trNOOP("auto") }, - { -1, 0, NULL } - }; - -const tChannelParameterMap RollOffValues[] = { - { 0, ROLLOFF_AUTO, trNOOP("auto") }, - { 20, ROLLOFF_20, "0.20" }, - { 25, ROLLOFF_25, "0.25" }, - { 35, ROLLOFF_35, "0.35" }, - { -1, 0, NULL } - }; - -int UserIndex(int Value, const tChannelParameterMap *Map) -{ - const tChannelParameterMap *map = Map; - while (map && map->userValue != -1) { - if (map->userValue == Value) - return map - Map; - map++; - } - return -1; -} - -int DriverIndex(int Value, const tChannelParameterMap *Map) -{ - const tChannelParameterMap *map = Map; - while (map && map->userValue != -1) { - if (map->driverValue == Value) - return map - Map; - map++; - } - return -1; -} - -int MapToUser(int Value, const tChannelParameterMap *Map, const char **String) -{ - int n = DriverIndex(Value, Map); - if (n >= 0) { - if (String) - *String = tr(Map[n].userString); - return Map[n].userValue; - } - return -1; -} - -int MapToDriver(int Value, const tChannelParameterMap *Map) -{ - int n = UserIndex(Value, Map); - if (n >= 0) - return Map[n].driverValue; - return -1; -} - // --- tChannelID ------------------------------------------------------------ const tChannelID tChannelID::InvalidID; @@ -189,16 +61,6 @@ cChannel::cChannel(void) provider = strdup(""); portalName = strdup(""); memset(&__BeginData__, 0, (char *)&__EndData__ - (char *)&__BeginData__); - inversion = INVERSION_AUTO; - bandwidth = 8000000; - coderateH = FEC_AUTO; - coderateL = FEC_AUTO; - modulation = QPSK; - system = SYS_DVBS; - transmission = TRANSMISSION_MODE_AUTO; - guard = GUARD_INTERVAL_AUTO; - hierarchy = HIERARCHY_AUTO; - rollOff = ROLLOFF_AUTO; modification = CHANNELMOD_NONE; schedule = NULL; linkChannels = NULL; @@ -248,17 +110,18 @@ cChannel& cChannel::operator= (const cChannel &Channel) provider = strcpyrealloc(provider, Channel.provider); portalName = strcpyrealloc(portalName, Channel.portalName); memcpy(&__BeginData__, &Channel.__BeginData__, (char *)&Channel.__EndData__ - (char *)&Channel.__BeginData__); + parameters = Channel.parameters; return *this; } int cChannel::Transponder(int Frequency, char Polarization) { // some satellites have transponders at the same frequency, just with different polarization: - switch (tolower(Polarization)) { - case 'h': Frequency += 100000; break; - case 'v': Frequency += 200000; break; - case 'l': Frequency += 300000; break; - case 'r': Frequency += 400000; break; + switch (toupper(Polarization)) { + case 'H': Frequency += 100000; break; + case 'V': Frequency += 200000; break; + case 'L': Frequency += 300000; break; + case 'R': Frequency += 400000; break; default: esyslog("ERROR: invalid value for Polarization '%c'", Polarization); } return Frequency; @@ -269,8 +132,11 @@ int cChannel::Transponder(void) const int tf = frequency; while (tf > 20000) tf /= 1000; - if (IsSat()) - tf = Transponder(tf, polarization); + if (IsSat()) { + const char *p = strpbrk(parameters, "HVLRhvlr"); // lowercase for backwards compatibility + if (p) + tf = Transponder(tf, *p); + } return tf; } @@ -296,22 +162,16 @@ void cChannel::CopyTransponderData(const cChannel *Channel) frequency = Channel->frequency; source = Channel->source; srate = Channel->srate; - polarization = Channel->polarization; - inversion = Channel->inversion; - bandwidth = Channel->bandwidth; - coderateH = Channel->coderateH; - coderateL = Channel->coderateL; - modulation = Channel->modulation; - system = Channel->system; - transmission = Channel->transmission; - guard = Channel->guard; - hierarchy = Channel->hierarchy; - rollOff = Channel->rollOff; + parameters = Channel->parameters; } } -bool cChannel::SetSatTransponderData(int Source, int Frequency, char Polarization, int Srate, int CoderateH, int Modulation, int System, int RollOff) +bool cChannel::SetTransponderData(int Source, int Frequency, int Srate, const char *Parameters, bool Quiet) { + if (strchr(Parameters, ':')) { + esyslog("ERROR: parameter string '%s' contains ':'", Parameters); + return false; + } // Workarounds for broadcaster stupidity: // Some providers broadcast the transponder frequency of their channels with two different // values (like 12551 and 12552), so we need to allow for a little tolerance here @@ -324,60 +184,14 @@ bool cChannel::SetSatTransponderData(int Source, int Frequency, char Polarizatio if (abs(srate - Srate) <= 1) Srate = srate; - if (source != Source || frequency != Frequency || polarization != Polarization || srate != Srate || coderateH != CoderateH || modulation != Modulation || system != System || rollOff != RollOff) { + if (source != Source || frequency != Frequency || srate != Srate || strcmp(parameters, Parameters)) { cString OldTransponderData = TransponderDataToString(); source = Source; frequency = Frequency; - polarization = Polarization; srate = Srate; - coderateH = CoderateH; - modulation = Modulation; - system = System; - rollOff = RollOff; + parameters = Parameters; schedule = NULL; - if (Number()) { - dsyslog("changing transponder data of channel %d from %s to %s", Number(), *OldTransponderData, *TransponderDataToString()); - modification |= CHANNELMOD_TRANSP; - Channels.SetModified(); - } - } - return true; -} - -bool cChannel::SetCableTransponderData(int Source, int Frequency, int Modulation, int Srate, int CoderateH) -{ - if (source != Source || frequency != Frequency || modulation != Modulation || srate != Srate || coderateH != CoderateH) { - cString OldTransponderData = TransponderDataToString(); - source = Source; - frequency = Frequency; - modulation = Modulation; - srate = Srate; - coderateH = CoderateH; - schedule = NULL; - if (Number()) { - dsyslog("changing transponder data of channel %d from %s to %s", Number(), *OldTransponderData, *TransponderDataToString()); - modification |= CHANNELMOD_TRANSP; - Channels.SetModified(); - } - } - return true; -} - -bool cChannel::SetTerrTransponderData(int Source, int Frequency, int Bandwidth, int Modulation, int Hierarchy, int CoderateH, int CoderateL, int Guard, int Transmission) -{ - if (source != Source || frequency != Frequency || bandwidth != Bandwidth || modulation != Modulation || hierarchy != Hierarchy || coderateH != CoderateH || coderateL != CoderateL || guard != Guard || transmission != Transmission) { - cString OldTransponderData = TransponderDataToString(); - source = Source; - frequency = Frequency; - bandwidth = Bandwidth; - modulation = Modulation; - hierarchy = Hierarchy; - coderateH = CoderateH; - coderateL = CoderateL; - guard = Guard; - transmission = Transmission; - schedule = NULL; - if (Number()) { + if (Number() && !Quiet) { dsyslog("changing transponder data of channel %d from %s to %s", Number(), *OldTransponderData, *TransponderDataToString()); modification |= CHANNELMOD_TRANSP; Channels.SetModified(); @@ -634,90 +448,11 @@ void cChannel::SetRefChannel(cChannel *RefChannel) refChannel = RefChannel; } -static int PrintParameter(char *p, char Name, int Value) -{ - return Value >= 0 && Value != 999 ? sprintf(p, "%c%d", Name, Value) : 0; -} - cString cChannel::TransponderDataToString(void) const { if (cSource::IsTerr(source)) - return cString::sprintf("%d:%s:%s", frequency, *ParametersToString(), *cSource::ToString(source)); - return cString::sprintf("%d:%s:%s:%d", frequency, *ParametersToString(), *cSource::ToString(source), srate); -} - -cString cChannel::ParametersToString(void) const -{ - char type = **cSource::ToString(source); - if (isdigit(type)) - type = 'S'; -#define ST(s) if (strchr(s, type)) - char buffer[64]; - char *q = buffer; - *q = 0; - ST(" S ") q += sprintf(q, "%c", polarization); - ST(" T") q += PrintParameter(q, 'B', MapToUser(bandwidth, BandwidthValues)); - ST("CST") q += PrintParameter(q, 'C', MapToUser(coderateH, CoderateValues)); - ST(" T") q += PrintParameter(q, 'D', MapToUser(coderateL, CoderateValues)); - ST(" T") q += PrintParameter(q, 'G', MapToUser(guard, GuardValues)); - ST("CST") q += PrintParameter(q, 'I', MapToUser(inversion, InversionValues)); - ST("CST") q += PrintParameter(q, 'M', MapToUser(modulation, ModulationValues)); - ST(" S ") q += PrintParameter(q, 'O', MapToUser(rollOff, RollOffValues)); - ST(" S ") q += PrintParameter(q, 'S', MapToUser(system, SystemValues)); - ST(" T") q += PrintParameter(q, 'T', MapToUser(transmission, TransmissionValues)); - ST(" T") q += PrintParameter(q, 'Y', MapToUser(hierarchy, HierarchyValues)); - return buffer; -} - -static const char *ParseParameter(const char *s, int &Value, const tChannelParameterMap *Map) -{ - if (*++s) { - char *p = NULL; - errno = 0; - int n = strtol(s, &p, 10); - if (!errno && p != s) { - Value = MapToDriver(n, Map); - if (Value >= 0) - return p; - } - } - esyslog("ERROR: invalid value for parameter '%c'", *(s - 1)); - return NULL; -} - -static const char *SkipDigits(const char *s) -{ - while (*++s && isdigit(*s)) - ; - return s; -} - -bool cChannel::StringToParameters(const char *s) -{ - while (s && *s) { - switch (toupper(*s)) { - case 'A': s = SkipDigits(s); break; // for compatibility with the "multiproto" approach - may be removed in future versions - case 'B': s = ParseParameter(s, bandwidth, BandwidthValues); break; - case 'C': s = ParseParameter(s, coderateH, CoderateValues); break; - case 'D': s = ParseParameter(s, coderateL, CoderateValues); break; - case 'G': s = ParseParameter(s, guard, GuardValues); break; - case 'H': polarization = *s++; break; - case 'I': s = ParseParameter(s, inversion, InversionValues); break; - case 'L': polarization = *s++; break; - case 'M': s = ParseParameter(s, modulation, ModulationValues); break; - case 'O': s = ParseParameter(s, rollOff, RollOffValues); break; - case 'P': s = SkipDigits(s); break; // for compatibility with the "multiproto" approach - may be removed in future versions - case 'R': polarization = *s++; break; - case 'S': s = ParseParameter(s, system, SystemValues); break; - case 'T': s = ParseParameter(s, transmission, TransmissionValues); break; - case 'V': polarization = *s++; break; - case 'Y': s = ParseParameter(s, hierarchy, HierarchyValues); break; - case 'Z': s = SkipDigits(s); break; // for compatibility with the original DVB-S2 patch - may be removed in future versions - default: esyslog("ERROR: unknown parameter key '%c'", *s); - return false; - } - } - return true; + return cString::sprintf("%d:%s:%s", frequency, *parameters, *cSource::ToString(source)); + return cString::sprintf("%d:%s:%s:%d", frequency, *parameters, *cSource::ToString(source), srate); } cString cChannel::ToText(const cChannel *Channel) @@ -762,7 +497,7 @@ cString cChannel::ToText(const cChannel *Channel) q = caidbuf; q += IntArrayToString(q, Channel->caids, 16); *q = 0; - buffer = cString::sprintf("%s:%d:%s:%s:%d:%s:%s:%d:%s:%d:%d:%d:%d\n", FullName, Channel->frequency, *Channel->ParametersToString(), *cSource::ToString(Channel->source), Channel->srate, vpidbuf, apidbuf, Channel->tpid, caidbuf, Channel->sid, Channel->nid, Channel->tid, Channel->rid); + buffer = cString::sprintf("%s:%d:%s:%s:%d:%s:%s:%d:%s:%d:%d:%d:%d\n", FullName, Channel->frequency, *Channel->parameters, *cSource::ToString(Channel->source), Channel->srate, vpidbuf, apidbuf, Channel->tpid, caidbuf, Channel->sid, Channel->nid, Channel->tid, Channel->rid); } return buffer; } @@ -814,7 +549,8 @@ bool cChannel::Parse(const char *s) dpids[0] = 0; ok = false; if (parambuf && sourcebuf && vpidbuf && apidbuf) { - ok = StringToParameters(parambuf) && (source = cSource::FromString(sourcebuf)) >= 0; + parameters = parambuf; + ok = (source = cSource::FromString(sourcebuf)) >= 0; char *p; if ((p = strchr(vpidbuf, '=')) != NULL) { diff --git a/channels.h b/channels.h index b465f6a7..4ed13582 100644 --- a/channels.h +++ b/channels.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: channels.h 2.7 2009/12/06 12:57:45 kls Exp $ + * $Id: channels.h 2.8 2010/02/21 14:05:49 kls Exp $ */ #ifndef __CHANNELS_H @@ -47,27 +47,6 @@ #define CA_ENCRYPTED_MIN 0x0100 #define CA_ENCRYPTED_MAX 0xFFFF -struct tChannelParameterMap { - int userValue; - int driverValue; - const char *userString; - }; - -int MapToUser(int Value, const tChannelParameterMap *Map, const char **String = NULL); -int MapToDriver(int Value, const tChannelParameterMap *Map); -int UserIndex(int Value, const tChannelParameterMap *Map); -int DriverIndex(int Value, const tChannelParameterMap *Map); - -extern const tChannelParameterMap InversionValues[]; -extern const tChannelParameterMap BandwidthValues[]; -extern const tChannelParameterMap CoderateValues[]; -extern const tChannelParameterMap ModulationValues[]; -extern const tChannelParameterMap SystemValues[]; -extern const tChannelParameterMap TransmissionValues[]; -extern const tChannelParameterMap GuardValues[]; -extern const tChannelParameterMap HierarchyValues[]; -extern const tChannelParameterMap RollOffValues[]; - struct tChannelID { private: int source; @@ -110,6 +89,7 @@ class cSchedule; class cChannel : public cListObject { friend class cSchedules; friend class cMenuEditChannel; + friend class cDvbSourceParam; private: static cString ToText(const cChannel *Channel); char *name; @@ -140,25 +120,13 @@ private: int rid; int number; // Sequence number assigned on load bool groupSep; - char polarization; - int inversion; - int bandwidth; - int coderateH; - int coderateL; - int modulation; - int system; - int transmission; - int guard; - int hierarchy; - int rollOff; int __EndData__; + cString parameters; int modification; mutable const cSchedule *schedule; cLinkChannels *linkChannels; cChannel *refChannel; cString TransponderDataToString(void) const; - cString ParametersToString(void) const; - bool StringToParameters(const char *s); public: cChannel(void); cChannel(const cChannel &Channel); @@ -201,17 +169,7 @@ public: int Number(void) const { return number; } void SetNumber(int Number) { number = Number; } bool GroupSep(void) const { return groupSep; } - char Polarization(void) const { return polarization; } - int Inversion(void) const { return inversion; } - int Bandwidth(void) const { return bandwidth; } - int CoderateH(void) const { return coderateH; } - int CoderateL(void) const { return coderateL; } - int Modulation(void) const { return modulation; } - int System(void) const { return system; } - int Transmission(void) const { return transmission; } - int Guard(void) const { return guard; } - int Hierarchy(void) const { return hierarchy; } - int RollOff(void) const { return rollOff; } + const char *Parameters(void) const { return parameters; } const cLinkChannels* LinkChannels(void) const { return linkChannels; } const cChannel *RefChannel(void) const { return refChannel; } bool IsCable(void) const { return cSource::IsCable(source); } @@ -221,9 +179,7 @@ public: bool HasTimer(void) const; int Modification(int Mask = CHANNELMOD_ALL); void CopyTransponderData(const cChannel *Channel); - bool SetSatTransponderData(int Source, int Frequency, char Polarization, int Srate, int CoderateH, int Modulation, int System, int RollOff); - bool SetCableTransponderData(int Source, int Frequency, int Modulation, int Srate, int CoderateH); - bool SetTerrTransponderData(int Source, int Frequency, int Bandwidth, int Modulation, int Hierarchy, int CodeRateH, int CodeRateL, int Guard, int Transmission); + bool SetTransponderData(int Source, int Frequency, int Srate, const char *Parameters, bool Quiet = false); void SetId(int Nid, int Tid, int Sid, int Rid = 0); void SetName(const char *Name, const char *ShortName, const char *Provider); void SetPortalName(const char *PortalName); diff --git a/dvbdevice.c b/dvbdevice.c index cb36f7ae..73f5261c 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,10 +4,11 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 2.28 2010/02/07 13:21:05 kls Exp $ + * $Id: dvbdevice.c 2.29 2010/02/21 17:10:35 kls Exp $ */ #include "dvbdevice.h" +#include #include #include #include @@ -17,6 +18,8 @@ #include "channels.h" #include "diseqc.h" #include "dvbci.h" +#include "menuitems.h" +#include "sourceparams.h" #define DVBS_TUNE_TIMEOUT 9000 //ms #define DVBS_LOCK_TIMEOUT 2000 //ms @@ -25,6 +28,217 @@ #define DVBT_TUNE_TIMEOUT 9000 //ms #define DVBT_LOCK_TIMEOUT 2000 //ms +// --- DVB Parameter Maps ---------------------------------------------------- + +const tDvbParameterMap InversionValues[] = { + { 0, INVERSION_OFF, trNOOP("off") }, + { 1, INVERSION_ON, trNOOP("on") }, + { 999, INVERSION_AUTO, trNOOP("auto") }, + { -1, 0, NULL } + }; + +const tDvbParameterMap BandwidthValues[] = { + { 6, 6000000, "6 MHz" }, + { 7, 7000000, "7 MHz" }, + { 8, 8000000, "8 MHz" }, + { -1, 0, NULL } + }; + +const tDvbParameterMap CoderateValues[] = { + { 0, FEC_NONE, trNOOP("none") }, + { 12, FEC_1_2, "1/2" }, + { 23, FEC_2_3, "2/3" }, + { 34, FEC_3_4, "3/4" }, + { 35, FEC_3_5, "3/5" }, + { 45, FEC_4_5, "4/5" }, + { 56, FEC_5_6, "5/6" }, + { 67, FEC_6_7, "6/7" }, + { 78, FEC_7_8, "7/8" }, + { 89, FEC_8_9, "8/9" }, + { 910, FEC_9_10, "9/10" }, + { 999, FEC_AUTO, trNOOP("auto") }, + { -1, 0, NULL } + }; + +const tDvbParameterMap ModulationValues[] = { + { 16, QAM_16, "QAM16" }, + { 32, QAM_32, "QAM32" }, + { 64, QAM_64, "QAM64" }, + { 128, QAM_128, "QAM128" }, + { 256, QAM_256, "QAM256" }, + { 2, QPSK, "QPSK" }, + { 5, PSK_8, "8PSK" }, + { 6, APSK_16, "16APSK" }, + { 10, VSB_8, "VSB8" }, + { 11, VSB_16, "VSB16" }, + { 998, QAM_AUTO, "QAMAUTO" }, + { -1, 0, NULL } + }; + +const tDvbParameterMap SystemValues[] = { + { 0, SYS_DVBS, "DVB-S" }, + { 1, SYS_DVBS2, "DVB-S2" }, + { -1, 0, NULL } + }; + +const tDvbParameterMap TransmissionValues[] = { + { 2, TRANSMISSION_MODE_2K, "2K" }, + { 8, TRANSMISSION_MODE_8K, "8K" }, + { 999, TRANSMISSION_MODE_AUTO, trNOOP("auto") }, + { -1, 0, NULL } + }; + +const tDvbParameterMap GuardValues[] = { + { 4, GUARD_INTERVAL_1_4, "1/4" }, + { 8, GUARD_INTERVAL_1_8, "1/8" }, + { 16, GUARD_INTERVAL_1_16, "1/16" }, + { 32, GUARD_INTERVAL_1_32, "1/32" }, + { 999, GUARD_INTERVAL_AUTO, trNOOP("auto") }, + { -1, 0, NULL } + }; + +const tDvbParameterMap HierarchyValues[] = { + { 0, HIERARCHY_NONE, trNOOP("none") }, + { 1, HIERARCHY_1, "1" }, + { 2, HIERARCHY_2, "2" }, + { 4, HIERARCHY_4, "4" }, + { 999, HIERARCHY_AUTO, trNOOP("auto") }, + { -1, 0, NULL } + }; + +const tDvbParameterMap RollOffValues[] = { + { 0, ROLLOFF_AUTO, trNOOP("auto") }, + { 20, ROLLOFF_20, "0.20" }, + { 25, ROLLOFF_25, "0.25" }, + { 35, ROLLOFF_35, "0.35" }, + { -1, 0, NULL } + }; + +int UserIndex(int Value, const tDvbParameterMap *Map) +{ + const tDvbParameterMap *map = Map; + while (map && map->userValue != -1) { + if (map->userValue == Value) + return map - Map; + map++; + } + return -1; +} + +int DriverIndex(int Value, const tDvbParameterMap *Map) +{ + const tDvbParameterMap *map = Map; + while (map && map->userValue != -1) { + if (map->driverValue == Value) + return map - Map; + map++; + } + return -1; +} + +int MapToUser(int Value, const tDvbParameterMap *Map, const char **String) +{ + int n = DriverIndex(Value, Map); + if (n >= 0) { + if (String) + *String = tr(Map[n].userString); + return Map[n].userValue; + } + return -1; +} + +int MapToDriver(int Value, const tDvbParameterMap *Map) +{ + int n = UserIndex(Value, Map); + if (n >= 0) + return Map[n].driverValue; + return -1; +} + +// --- cDvbTransponderParameters --------------------------------------------- + +cDvbTransponderParameters::cDvbTransponderParameters(const char *Parameters) +{ + polarization = 0; + inversion = INVERSION_AUTO; + bandwidth = 8000000; + coderateH = FEC_AUTO; + coderateL = FEC_AUTO; + modulation = QPSK; + system = SYS_DVBS; + transmission = TRANSMISSION_MODE_AUTO; + guard = GUARD_INTERVAL_AUTO; + hierarchy = HIERARCHY_AUTO; + rollOff = ROLLOFF_AUTO; + Parse(Parameters); +} + +int cDvbTransponderParameters::PrintParameter(char *p, char Name, int Value) const +{ + return Value >= 0 && Value != 999 ? sprintf(p, "%c%d", Name, Value) : 0; +} + +cString cDvbTransponderParameters::ToString(char Type) const +{ +#define ST(s) if (strchr(s, Type)) + char buffer[64]; + char *q = buffer; + *q = 0; + ST(" S ") q += sprintf(q, "%c", polarization); + ST(" T") q += PrintParameter(q, 'B', MapToUser(bandwidth, BandwidthValues)); + ST("CST") q += PrintParameter(q, 'C', MapToUser(coderateH, CoderateValues)); + ST(" T") q += PrintParameter(q, 'D', MapToUser(coderateL, CoderateValues)); + ST(" T") q += PrintParameter(q, 'G', MapToUser(guard, GuardValues)); + ST("CST") q += PrintParameter(q, 'I', MapToUser(inversion, InversionValues)); + ST("CST") q += PrintParameter(q, 'M', MapToUser(modulation, ModulationValues)); + ST(" S ") q += PrintParameter(q, 'O', MapToUser(rollOff, RollOffValues)); + ST(" S ") q += PrintParameter(q, 'S', MapToUser(system, SystemValues)); + ST(" T") q += PrintParameter(q, 'T', MapToUser(transmission, TransmissionValues)); + ST(" T") q += PrintParameter(q, 'Y', MapToUser(hierarchy, HierarchyValues)); + return buffer; +} + +const char *cDvbTransponderParameters::ParseParameter(const char *s, int &Value, const tDvbParameterMap *Map) +{ + if (*++s) { + char *p = NULL; + errno = 0; + int n = strtol(s, &p, 10); + if (!errno && p != s) { + Value = MapToDriver(n, Map); + if (Value >= 0) + return p; + } + } + esyslog("ERROR: invalid value for parameter '%c'", *(s - 1)); + return NULL; +} + +bool cDvbTransponderParameters::Parse(const char *s) +{ + while (s && *s) { + switch (toupper(*s)) { + case 'B': s = ParseParameter(s, bandwidth, BandwidthValues); break; + case 'C': s = ParseParameter(s, coderateH, CoderateValues); break; + case 'D': s = ParseParameter(s, coderateL, CoderateValues); break; + case 'G': s = ParseParameter(s, guard, GuardValues); break; + case 'H': polarization = *s++; break; + case 'I': s = ParseParameter(s, inversion, InversionValues); break; + case 'L': polarization = *s++; break; + case 'M': s = ParseParameter(s, modulation, ModulationValues); break; + case 'O': s = ParseParameter(s, rollOff, RollOffValues); break; + case 'R': polarization = *s++; break; + case 'S': s = ParseParameter(s, system, SystemValues); break; + case 'T': s = ParseParameter(s, transmission, TransmissionValues); break; + case 'V': polarization = *s++; break; + case 'Y': s = ParseParameter(s, hierarchy, HierarchyValues); break; + default: esyslog("ERROR: unknown parameter key '%c'", *s); + return false; + } + } + return true; +} + // --- cDvbTuner ------------------------------------------------------------- class cDvbTuner : public cThread { @@ -87,21 +301,8 @@ bool cDvbTuner::IsTunedTo(const cChannel *Channel) const return false; // not tuned to if (channel.Source() != Channel->Source() || channel.Transponder() != Channel->Transponder()) return false; // sufficient mismatch - char Type = **cSource::ToString(Channel->Source()); -#define ST(s, p) if (strchr(s, Type)) if (channel.p() != Channel->p()) return false; // Polarization is already checked as part of the Transponder. - ST(" T", Bandwidth); - ST("CST", CoderateH); - ST(" T", CoderateL); - ST(" T", Guard); - ST("CST", Inversion); - ST("CST", Modulation); - ST(" S ", RollOff); - ST(" S ", System); - ST("CS ", Srate); - ST(" T", Transmission); - ST(" T", Hierarchy); - return true; + return strcmp(channel.Parameters(), Channel->Parameters()) == 0; } void cDvbTuner::Set(const cChannel *Channel) @@ -174,10 +375,12 @@ bool cDvbTuner::SetFrontend(void) } CmdSeq.num = 0; + cDvbTransponderParameters dtp(channel.Parameters()); + if (frontendType == SYS_DVBS || frontendType == SYS_DVBS2) { unsigned int frequency = channel.Frequency(); if (Setup.DiSEqC) { - cDiseqc *diseqc = Diseqcs.Get(device, channel.Source(), channel.Frequency(), channel.Polarization()); + cDiseqc *diseqc = Diseqcs.Get(device, channel.Source(), channel.Frequency(), dtp.Polarization()); if (diseqc) { if (diseqc->Commands() && (!diseqcCommands || strcmp(diseqcCommands, diseqc->Commands()) != 0)) { cDiseqc::eDiseqcActions da; @@ -223,24 +426,24 @@ bool cDvbTuner::SetFrontend(void) frequency -= Setup.LnbFrequHi; tone = SEC_TONE_ON; } - int volt = (channel.Polarization() == 'v' || channel.Polarization() == 'V' || channel.Polarization() == 'r' || channel.Polarization() == 'R') ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18; + int volt = (dtp.Polarization() == 'v' || dtp.Polarization() == 'V' || dtp.Polarization() == 'r' || dtp.Polarization() == 'R') ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18; CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, volt)); CHECK(ioctl(fd_frontend, FE_SET_TONE, tone)); } frequency = abs(frequency); // Allow for C-band, where the frequency is less than the LOF // DVB-S/DVB-S2 (common parts) - SETCMD(DTV_DELIVERY_SYSTEM, channel.System()); + SETCMD(DTV_DELIVERY_SYSTEM, dtp.System()); SETCMD(DTV_FREQUENCY, frequency * 1000UL); - SETCMD(DTV_MODULATION, channel.Modulation()); + SETCMD(DTV_MODULATION, dtp.Modulation()); SETCMD(DTV_SYMBOL_RATE, channel.Srate() * 1000UL); - SETCMD(DTV_INNER_FEC, channel.CoderateH()); - SETCMD(DTV_INVERSION, channel.Inversion()); - if (channel.System() == SYS_DVBS2) { + SETCMD(DTV_INNER_FEC, dtp.CoderateH()); + SETCMD(DTV_INVERSION, dtp.Inversion()); + if (dtp.System() == SYS_DVBS2) { if (frontendType == SYS_DVBS2) { // DVB-S2 SETCMD(DTV_PILOT, PILOT_AUTO); - SETCMD(DTV_ROLLOFF, channel.RollOff()); + SETCMD(DTV_ROLLOFF, dtp.RollOff()); } else { esyslog("ERROR: frontend %d/%d doesn't provide DVB-S2", adapter, frontend); @@ -259,10 +462,10 @@ bool cDvbTuner::SetFrontend(void) // DVB-C SETCMD(DTV_DELIVERY_SYSTEM, frontendType); SETCMD(DTV_FREQUENCY, FrequencyToHz(channel.Frequency())); - SETCMD(DTV_INVERSION, channel.Inversion()); + SETCMD(DTV_INVERSION, dtp.Inversion()); SETCMD(DTV_SYMBOL_RATE, channel.Srate() * 1000UL); - SETCMD(DTV_INNER_FEC, channel.CoderateH()); - SETCMD(DTV_MODULATION, channel.Modulation()); + SETCMD(DTV_INNER_FEC, dtp.CoderateH()); + SETCMD(DTV_MODULATION, dtp.Modulation()); tuneTimeout = DVBC_TUNE_TIMEOUT; lockTimeout = DVBC_LOCK_TIMEOUT; @@ -271,14 +474,14 @@ bool cDvbTuner::SetFrontend(void) // DVB-T SETCMD(DTV_DELIVERY_SYSTEM, frontendType); SETCMD(DTV_FREQUENCY, FrequencyToHz(channel.Frequency())); - SETCMD(DTV_INVERSION, channel.Inversion()); - SETCMD(DTV_BANDWIDTH_HZ, channel.Bandwidth()); - SETCMD(DTV_CODE_RATE_HP, channel.CoderateH()); - SETCMD(DTV_CODE_RATE_LP, channel.CoderateL()); - SETCMD(DTV_MODULATION, channel.Modulation()); - SETCMD(DTV_TRANSMISSION_MODE, channel.Transmission()); - SETCMD(DTV_GUARD_INTERVAL, channel.Guard()); - SETCMD(DTV_HIERARCHY, channel.Hierarchy()); + SETCMD(DTV_INVERSION, dtp.Inversion()); + SETCMD(DTV_BANDWIDTH_HZ, dtp.Bandwidth()); + SETCMD(DTV_CODE_RATE_HP, dtp.CoderateH()); + SETCMD(DTV_CODE_RATE_LP, dtp.CoderateL()); + SETCMD(DTV_MODULATION, dtp.Modulation()); + SETCMD(DTV_TRANSMISSION_MODE, dtp.Transmission()); + SETCMD(DTV_GUARD_INTERVAL, dtp.Guard()); + SETCMD(DTV_HIERARCHY, dtp.Hierarchy()); tuneTimeout = DVBT_TUNE_TIMEOUT; lockTimeout = DVBT_LOCK_TIMEOUT; @@ -356,6 +559,62 @@ void cDvbTuner::Action(void) } } +// --- cDvbSourceParam ------------------------------------------------------- + +class cDvbSourceParam : public cSourceParam { +private: + int param; + cChannel data; + cDvbTransponderParameters dtp; +public: + cDvbSourceParam(char Source, const char *Description); + virtual void SetData(cChannel *Channel); + virtual void GetData(cChannel *Channel); + virtual cOsdItem *GetOsdItem(void); + }; + +cDvbSourceParam::cDvbSourceParam(char Source, const char *Description) +:cSourceParam(Source, Description) +{ + param = 0; +} + +void cDvbSourceParam::SetData(cChannel *Channel) +{ + data = *Channel; + dtp.Parse(data.Parameters()); + param = 0; +} + +void cDvbSourceParam::GetData(cChannel *Channel) +{ + data.SetTransponderData(Channel->Source(), Channel->Frequency(), data.Srate(), dtp.ToString(Source()), true); + *Channel = data; +} + +cOsdItem *cDvbSourceParam::GetOsdItem(void) +{ + char type = Source(); +#undef ST +#define ST(s) if (strchr(s, type)) + switch (param++) { + case 0: ST(" S ") return new cMenuEditChrItem( tr("Polarization"), &dtp.polarization, "hvlr"); else return GetOsdItem(); + case 1: ST(" S ") return new cMenuEditMapItem( tr("System"), &dtp.system, SystemValues); else return GetOsdItem(); + case 2: ST("CS ") return new cMenuEditIntItem( tr("Srate"), &data.srate); else return GetOsdItem(); + case 3: ST("CST") return new cMenuEditMapItem( tr("Inversion"), &dtp.inversion, InversionValues); else return GetOsdItem(); + case 4: ST("CST") return new cMenuEditMapItem( tr("CoderateH"), &dtp.coderateH, CoderateValues); else return GetOsdItem(); + case 5: ST(" T") return new cMenuEditMapItem( tr("CoderateL"), &dtp.coderateL, CoderateValues); else return GetOsdItem(); + case 6: ST("CST") return new cMenuEditMapItem( tr("Modulation"), &dtp.modulation, ModulationValues); else return GetOsdItem(); + case 7: ST(" T") return new cMenuEditMapItem( tr("Bandwidth"), &dtp.bandwidth, BandwidthValues); else return GetOsdItem(); + case 8: ST(" T") return new cMenuEditMapItem( tr("Transmission"), &dtp.transmission, TransmissionValues); else return GetOsdItem(); + case 9: ST(" T") return new cMenuEditMapItem( tr("Guard"), &dtp.guard, GuardValues); else return GetOsdItem(); + case 10: ST(" T") return new cMenuEditMapItem( tr("Hierarchy"), &dtp.hierarchy, HierarchyValues); else return GetOsdItem(); + case 11: ST(" S ") return new cMenuEditMapItem( tr("Rolloff"), &dtp.rollOff, RollOffValues); else return GetOsdItem(); + default: return NULL; + } + return NULL; +} + // --- cDvbDevice ------------------------------------------------------------ int cDvbDevice::setTransferModeForDolbyDigital = 1; @@ -486,6 +745,9 @@ bool cDvbDevice::Probe(int Adapter, int Frontend) bool cDvbDevice::Initialize(void) { + new cDvbSourceParam('C', "DVB-C"); + new cDvbSourceParam('S', "DVB-S"); + new cDvbSourceParam('T', "DVB-T"); int Checked = 0; int Found = 0; for (int Adapter = 0; ; Adapter++) { @@ -612,9 +874,10 @@ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const return false; // doesn't provide source if (!cSource::IsSat(Channel->Source())) return DeviceHooksProvidesTransponder(Channel); // source is sufficient for non sat - if (frontendType == SYS_DVBS && Channel->System() == SYS_DVBS2) + cDvbTransponderParameters dtp(Channel->Parameters()); + if (frontendType == SYS_DVBS && dtp.System() == SYS_DVBS2) return false; // requires modulation system which frontend doesn't provide - if (!Setup.DiSEqC || Diseqcs.Get(CardIndex() + 1, Channel->Source(), Channel->Frequency(), Channel->Polarization())) + if (!Setup.DiSEqC || Diseqcs.Get(CardIndex() + 1, Channel->Source(), Channel->Frequency(), dtp.Polarization())) return DeviceHooksProvidesTransponder(Channel); return false; } diff --git a/dvbdevice.h b/dvbdevice.h index 4f7c6e57..dceedd13 100644 --- a/dvbdevice.h +++ b/dvbdevice.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.h 2.12 2010/02/06 14:36:24 kls Exp $ + * $Id: dvbdevice.h 2.13 2010/02/21 14:06:08 kls Exp $ */ #ifndef __DVBDEVICE_H @@ -31,6 +31,71 @@ #define DEV_DVB_AUDIO "audio" #define DEV_DVB_CA "ca" +struct tDvbParameterMap { + int userValue; + int driverValue; + const char *userString; + }; + +int MapToUser(int Value, const tDvbParameterMap *Map, const char **String = NULL); +int MapToDriver(int Value, const tDvbParameterMap *Map); +int UserIndex(int Value, const tDvbParameterMap *Map); +int DriverIndex(int Value, const tDvbParameterMap *Map); + +extern const tDvbParameterMap InversionValues[]; +extern const tDvbParameterMap BandwidthValues[]; +extern const tDvbParameterMap CoderateValues[]; +extern const tDvbParameterMap ModulationValues[]; +extern const tDvbParameterMap SystemValues[]; +extern const tDvbParameterMap TransmissionValues[]; +extern const tDvbParameterMap GuardValues[]; +extern const tDvbParameterMap HierarchyValues[]; +extern const tDvbParameterMap RollOffValues[]; + +class cDvbTransponderParameters { +friend class cDvbSourceParam; +private: + char polarization; + int inversion; + int bandwidth; + int coderateH; + int coderateL; + int modulation; + int system; + int transmission; + int guard; + int hierarchy; + int rollOff; + int PrintParameter(char *p, char Name, int Value) const; + const char *ParseParameter(const char *s, int &Value, const tDvbParameterMap *Map); +public: + cDvbTransponderParameters(const char *Parameters = NULL); + char Polarization(void) const { return polarization; } + int Inversion(void) const { return inversion; } + int Bandwidth(void) const { return bandwidth; } + int CoderateH(void) const { return coderateH; } + int CoderateL(void) const { return coderateL; } + int Modulation(void) const { return modulation; } + int System(void) const { return system; } + int Transmission(void) const { return transmission; } + int Guard(void) const { return guard; } + int Hierarchy(void) const { return hierarchy; } + int RollOff(void) const { return rollOff; } + void SetPolarization(char Polarization) { polarization = Polarization; } + void SetInversion(int Inversion) { inversion = Inversion; } + void SetBandwidth(int Bandwidth) { bandwidth = Bandwidth; } + void SetCoderateH(int CoderateH) { coderateH = CoderateH; } + void SetCoderateL(int CoderateL) { coderateL = CoderateL; } + void SetModulation(int Modulation) { modulation = Modulation; } + void SetSystem(int System) { system = System; } + void SetTransmission(int Transmission) { transmission = Transmission; } + void SetGuard(int Guard) { guard = Guard; } + void SetHierarchy(int Hierarchy) { hierarchy = Hierarchy; } + void SetRollOff(int RollOff) { rollOff = RollOff; } + cString ToString(char Type) const; + bool Parse(const char *s); + }; + class cDvbTuner; /// The cDvbDevice implements a DVB device which can be accessed through the Linux DVB driver API. diff --git a/menu.c b/menu.c index 27009bae..655eb4c4 100644 --- a/menu.c +++ b/menu.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 2.16 2010/02/07 13:31:49 kls Exp $ + * $Id: menu.c 2.17 2010/02/21 14:09:19 kls Exp $ */ #include "menu.h" @@ -24,6 +24,7 @@ #include "recording.h" #include "remote.h" #include "shutdown.h" +#include "sourceparams.h" #include "sources.h" #include "status.h" #include "themes.h" @@ -189,6 +190,7 @@ class cMenuEditChannel : public cOsdMenu { private: cChannel *channel; cChannel data; + cSourceParam *sourceParam; char name[256]; void Setup(void); public: @@ -200,6 +202,7 @@ cMenuEditChannel::cMenuEditChannel(cChannel *Channel, bool New) :cOsdMenu(tr("Edit channel"), 16) { channel = Channel; + sourceParam = NULL; if (channel) { data = *channel; if (New) { @@ -215,8 +218,6 @@ cMenuEditChannel::cMenuEditChannel(cChannel *Channel, bool New) void cMenuEditChannel::Setup(void) { int current = Current(); - char type = **cSource::ToString(data.source); -#define ST(s) if (strchr(s, type)) Clear(); @@ -242,18 +243,13 @@ void cMenuEditChannel::Setup(void) Add(new cMenuEditIntItem( tr("Rid"), &data.rid, 0)); XXX*/ // Parameters for specific types of sources: - ST(" S ") Add(new cMenuEditChrItem( tr("Polarization"), &data.polarization, "hvlr")); - ST(" S ") Add(new cMenuEditMapItem( tr("System"), &data.system, SystemValues)); - ST("CS ") Add(new cMenuEditIntItem( tr("Srate"), &data.srate)); - ST("CST") Add(new cMenuEditMapItem( tr("Inversion"), &data.inversion, InversionValues)); - ST("CST") Add(new cMenuEditMapItem( tr("CoderateH"), &data.coderateH, CoderateValues)); - ST(" T") Add(new cMenuEditMapItem( tr("CoderateL"), &data.coderateL, CoderateValues)); - ST("CST") Add(new cMenuEditMapItem( tr("Modulation"), &data.modulation, ModulationValues)); - ST(" T") Add(new cMenuEditMapItem( tr("Bandwidth"), &data.bandwidth, BandwidthValues)); - ST(" T") Add(new cMenuEditMapItem( tr("Transmission"), &data.transmission, TransmissionValues)); - ST(" T") Add(new cMenuEditMapItem( tr("Guard"), &data.guard, GuardValues)); - ST(" T") Add(new cMenuEditMapItem( tr("Hierarchy"), &data.hierarchy, HierarchyValues)); - ST(" S ") Add(new cMenuEditMapItem( tr("Rolloff"), &data.rollOff, RollOffValues)); + sourceParam = SourceParams.Get(**cSource::ToString(data.source)); + if (sourceParam) { + sourceParam->SetData(&data); + cOsdItem *Item; + while ((Item = sourceParam->GetOsdItem()) != NULL) + Add(Item); + } SetCurrent(Get(current)); Display(); @@ -266,6 +262,8 @@ eOSState cMenuEditChannel::ProcessKey(eKeys Key) if (state == osUnknown) { if (Key == kOk) { + if (sourceParam) + sourceParam->GetData(&data); if (Channels.HasUniqueChannelID(&data, channel)) { data.name = strcpyrealloc(data.name, name); if (channel) { @@ -289,8 +287,11 @@ eOSState cMenuEditChannel::ProcessKey(eKeys Key) } } } - if (Key != kNone && (data.source & cSource::st_Mask) != (oldSource & cSource::st_Mask)) + if (Key != kNone && (data.source & cSource::st_Mask) != (oldSource & cSource::st_Mask)) { + if (sourceParam) + sourceParam->GetData(&data); Setup(); + } return state; } diff --git a/menuitems.c b/menuitems.c index 05521ad9..7faf2b73 100644 --- a/menuitems.c +++ b/menuitems.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menuitems.c 2.5 2009/12/06 11:31:20 kls Exp $ + * $Id: menuitems.c 2.6 2010/02/16 14:44:35 kls Exp $ */ #include "menuitems.h" @@ -1007,7 +1007,7 @@ eOSState cMenuEditTimeItem::ProcessKey(eKeys Key) // --- cMenuEditMapItem ------------------------------------------------------ -cMenuEditMapItem::cMenuEditMapItem(const char *Name, int *Value, const tChannelParameterMap *Map, const char *ZeroString) +cMenuEditMapItem::cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString) :cMenuEditItem(Name) { value = Value; diff --git a/menuitems.h b/menuitems.h index 48324757..4805e3fd 100644 --- a/menuitems.h +++ b/menuitems.h @@ -4,13 +4,14 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menuitems.h 2.2 2009/05/03 12:50:34 kls Exp $ + * $Id: menuitems.h 2.3 2010/02/21 13:58:21 kls Exp $ */ #ifndef __MENUITEMS_H #define __MENUITEMS_H #include +#include "dvbdevice.h" #include "osdbase.h" extern const char *FileNameChars; @@ -175,11 +176,11 @@ public: class cMenuEditMapItem : public cMenuEditItem { protected: int *value; - const tChannelParameterMap *map; + const tDvbParameterMap *map; const char *zeroString; virtual void Set(void); public: - cMenuEditMapItem(const char *Name, int *Value, const tChannelParameterMap *Map, const char *ZeroString = NULL); + cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString = NULL); virtual eOSState ProcessKey(eKeys Key); }; diff --git a/nit.c b/nit.c index 38640409..dfd02076 100644 --- a/nit.c +++ b/nit.c @@ -4,12 +4,13 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: nit.c 2.4 2009/12/06 11:36:16 kls Exp $ + * $Id: nit.c 2.5 2010/02/16 15:37:05 kls Exp $ */ #include "nit.h" #include #include "channels.h" +#include "dvbdevice.h" #include "eitscan.h" #include "libsi/section.h" #include "libsi/descriptor.h" @@ -124,21 +125,22 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length switch (d->getDescriptorTag()) { case SI::SatelliteDeliverySystemDescriptorTag: { SI::SatelliteDeliverySystemDescriptor *sd = (SI::SatelliteDeliverySystemDescriptor *)d; + cDvbTransponderParameters dtp; int Source = cSource::FromData(cSource::stSat, BCD2INT(sd->getOrbitalPosition()), sd->getWestEastFlag()); int Frequency = Frequencies[0] = BCD2INT(sd->getFrequency()) / 100; - static char Polarizations[] = { 'h', 'v', 'l', 'r' }; - char Polarization = Polarizations[sd->getPolarization()]; + static char Polarizations[] = { 'H', 'V', 'L', 'R' }; + dtp.SetPolarization(Polarizations[sd->getPolarization()]); static int CodeRates[] = { FEC_NONE, FEC_1_2, FEC_2_3, FEC_3_4, FEC_5_6, FEC_7_8, FEC_8_9, FEC_3_5, FEC_4_5, FEC_9_10, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_NONE }; - int CodeRate = CodeRates[sd->getFecInner()]; + dtp.SetCoderateH(CodeRates[sd->getFecInner()]); static int Modulations[] = { QAM_AUTO, QPSK, PSK_8, QAM_16 }; - int Modulation = Modulations[sd->getModulationType()]; - int System = sd->getModulationSystem() ? SYS_DVBS2 : SYS_DVBS; + dtp.SetModulation(Modulations[sd->getModulationType()]); + dtp.SetSystem(sd->getModulationSystem() ? SYS_DVBS2 : SYS_DVBS); static int RollOffs[] = { ROLLOFF_35, ROLLOFF_25, ROLLOFF_20, ROLLOFF_AUTO }; - int RollOff = sd->getModulationSystem() ? RollOffs[sd->getRollOff()] : ROLLOFF_AUTO; + dtp.SetRollOff(sd->getModulationSystem() ? RollOffs[sd->getRollOff()] : ROLLOFF_AUTO); int SymbolRate = BCD2INT(sd->getSymbolRate()) / 10; if (ThisNIT >= 0) { for (int n = 0; n < NumFrequencies; n++) { - if (ISTRANSPONDER(cChannel::Transponder(Frequencies[n], Polarization), Transponder())) { + if (ISTRANSPONDER(cChannel::Transponder(Frequencies[n], dtp.Polarization()), Transponder())) { nits[ThisNIT].hasTransponder = true; //printf("has transponder %d\n", Transponder()); break; @@ -152,23 +154,23 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) { int transponder = Channel->Transponder(); found = true; - if (!ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), transponder)) { + if (!ISTRANSPONDER(cChannel::Transponder(Frequency, dtp.Polarization()), transponder)) { for (int n = 0; n < NumFrequencies; n++) { - if (ISTRANSPONDER(cChannel::Transponder(Frequencies[n], Polarization), transponder)) { + if (ISTRANSPONDER(cChannel::Transponder(Frequencies[n], dtp.Polarization()), transponder)) { Frequency = Frequencies[n]; break; } } } - if (ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), Transponder())) // only modify channels if we're actually receiving this transponder - Channel->SetSatTransponderData(Source, Frequency, Polarization, SymbolRate, CodeRate, Modulation, System, RollOff); + if (ISTRANSPONDER(cChannel::Transponder(Frequency, dtp.Polarization()), Transponder())) // only modify channels if we're actually receiving this transponder + Channel->SetTransponderData(Source, Frequency, SymbolRate, dtp.ToString('S')); } } if (!found) { for (int n = 0; n < NumFrequencies; n++) { cChannel *Channel = new cChannel; Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0); - if (Channel->SetSatTransponderData(Source, Frequencies[n], Polarization, SymbolRate, CodeRate, Modulation, System, RollOff)) + if (Channel->SetTransponderData(Source, Frequencies[n], SymbolRate, dtp.ToString('S'))) EITScanner.AddTransponder(Channel); else delete Channel; @@ -179,13 +181,14 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length break; case SI::CableDeliverySystemDescriptorTag: { SI::CableDeliverySystemDescriptor *sd = (SI::CableDeliverySystemDescriptor *)d; + cDvbTransponderParameters dtp; int Source = cSource::FromData(cSource::stCable); int Frequency = Frequencies[0] = BCD2INT(sd->getFrequency()) / 10; //XXX FEC_outer??? static int CodeRates[] = { FEC_NONE, FEC_1_2, FEC_2_3, FEC_3_4, FEC_5_6, FEC_7_8, FEC_8_9, FEC_3_5, FEC_4_5, FEC_9_10, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_NONE }; - int CodeRate = CodeRates[sd->getFecInner()]; + dtp.SetCoderateH(CodeRates[sd->getFecInner()]); static int Modulations[] = { QPSK, QAM_16, QAM_32, QAM_64, QAM_128, QAM_256, QAM_AUTO }; - int Modulation = Modulations[min(sd->getModulation(), 6)]; + dtp.SetModulation(Modulations[min(sd->getModulation(), 6)]); int SymbolRate = BCD2INT(sd->getSymbolRate()) / 10; if (ThisNIT >= 0) { for (int n = 0; n < NumFrequencies; n++) { @@ -212,14 +215,14 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length } } if (ISTRANSPONDER(Frequency / 1000, Transponder())) // only modify channels if we're actually receiving this transponder - Channel->SetCableTransponderData(Source, Frequency, Modulation, SymbolRate, CodeRate); + Channel->SetTransponderData(Source, Frequency, SymbolRate, dtp.ToString('C')); } } if (!found) { for (int n = 0; n < NumFrequencies; n++) { cChannel *Channel = new cChannel; Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0); - if (Channel->SetCableTransponderData(Source, Frequencies[n], Modulation, SymbolRate, CodeRate)) + if (Channel->SetTransponderData(Source, Frequencies[n], SymbolRate, dtp.ToString('C'))) EITScanner.AddTransponder(Channel); else delete Channel; @@ -230,21 +233,22 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length break; case SI::TerrestrialDeliverySystemDescriptorTag: { SI::TerrestrialDeliverySystemDescriptor *sd = (SI::TerrestrialDeliverySystemDescriptor *)d; + cDvbTransponderParameters dtp; int Source = cSource::FromData(cSource::stTerr); int Frequency = Frequencies[0] = sd->getFrequency() * 10; static int Bandwidths[] = { 8000000, 7000000, 6000000, 0, 0, 0, 0, 0 }; - int Bandwidth = Bandwidths[sd->getBandwidth()]; + dtp.SetBandwidth(Bandwidths[sd->getBandwidth()]); static int Constellations[] = { QPSK, QAM_16, QAM_64, QAM_AUTO }; - int Constellation = Constellations[sd->getConstellation()]; + dtp.SetModulation(Constellations[sd->getConstellation()]); static int Hierarchies[] = { HIERARCHY_NONE, HIERARCHY_1, HIERARCHY_2, HIERARCHY_4, HIERARCHY_AUTO, HIERARCHY_AUTO, HIERARCHY_AUTO, HIERARCHY_AUTO }; - int Hierarchy = Hierarchies[sd->getHierarchy()]; + dtp.SetHierarchy(Hierarchies[sd->getHierarchy()]); static int CodeRates[] = { FEC_1_2, FEC_2_3, FEC_3_4, FEC_5_6, FEC_7_8, FEC_AUTO, FEC_AUTO, FEC_AUTO }; - int CodeRateHP = CodeRates[sd->getCodeRateHP()]; - int CodeRateLP = CodeRates[sd->getCodeRateLP()]; + dtp.SetCoderateH(CodeRates[sd->getCodeRateHP()]); + dtp.SetCoderateL(CodeRates[sd->getCodeRateLP()]); static int GuardIntervals[] = { GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, GUARD_INTERVAL_1_4 }; - int GuardInterval = GuardIntervals[sd->getGuardInterval()]; + dtp.SetGuard(GuardIntervals[sd->getGuardInterval()]); static int TransmissionModes[] = { TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, TRANSMISSION_MODE_AUTO, TRANSMISSION_MODE_AUTO }; - int TransmissionMode = TransmissionModes[sd->getTransmissionMode()]; + dtp.SetTransmission(TransmissionModes[sd->getTransmissionMode()]); if (ThisNIT >= 0) { for (int n = 0; n < NumFrequencies; n++) { if (ISTRANSPONDER(Frequencies[n] / 1000000, Transponder())) { @@ -270,14 +274,14 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length } } if (ISTRANSPONDER(Frequency / 1000000, Transponder())) // only modify channels if we're actually receiving this transponder - Channel->SetTerrTransponderData(Source, Frequency, Bandwidth, Constellation, Hierarchy, CodeRateHP, CodeRateLP, GuardInterval, TransmissionMode); + Channel->SetTransponderData(Source, Frequency, 0, dtp.ToString('T')); } } if (!found) { for (int n = 0; n < NumFrequencies; n++) { cChannel *Channel = new cChannel; Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0); - if (Channel->SetTerrTransponderData(Source, Frequencies[n], Bandwidth, Constellation, Hierarchy, CodeRateHP, CodeRateLP, GuardInterval, TransmissionMode)) + if (Channel->SetTransponderData(Source, Frequencies[n], 0, dtp.ToString('T'))) EITScanner.AddTransponder(Channel); else delete Channel; diff --git a/po/ca_ES.po b/po/ca_ES.po index fcdf6724..40198f8e 100644 --- a/po/ca_ES.po +++ b/po/ca_ES.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-03-02 19:02+0100\n" "Last-Translator: Luca Olivetti \n" "Language-Team: Catalanian\n" @@ -18,6 +18,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Canal incorrecte ***" + +msgid "Channel not available!" +msgstr "Canal no disponible!" + +msgid "Can't start Transfer Mode!" +msgstr "No puc iniciar el mode de transferncia!" + msgid "off" msgstr "off" @@ -30,14 +39,41 @@ msgstr "auto" msgid "none" msgstr "cap" -msgid "*** Invalid Channel ***" -msgstr "*** Canal incorrecte ***" +msgid "Polarization" +msgstr "Polaritzaci" -msgid "Channel not available!" -msgstr "Canal no disponible!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "No puc iniciar el mode de transferncia!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inversi" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulaci" + +msgid "Bandwidth" +msgstr "Amplada de banda" + +msgid "Transmission" +msgstr "Transmissi" + +msgid "Guard" +msgstr "Protegir" + +msgid "Hierarchy" +msgstr "Jerarquia" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Iniciant exploraci EPG" @@ -526,42 +562,6 @@ msgstr "Acc msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polaritzaci" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inversi" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulaci" - -msgid "Bandwidth" -msgstr "Amplada de banda" - -msgid "Transmission" -msgstr "Transmissi" - -msgid "Guard" -msgstr "Protegir" - -msgid "Hierarchy" -msgstr "Jerarquia" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Propietats del canal duplicades!" diff --git a/po/cs_CZ.po b/po/cs_CZ.po index 3bbd6eb3..63b5d1c1 100644 --- a/po/cs_CZ.po +++ b/po/cs_CZ.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-02-28 15:00+0200\n" "Last-Translator: Vladimr Brta , Ji Dobr \n" "Language-Team: Czech\n" @@ -16,6 +16,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Neplatn kanl ***" + +msgid "Channel not available!" +msgstr "Kanl nen dostupn!" + +msgid "Can't start Transfer Mode!" +msgstr "Nelze zat s penosem" + msgid "off" msgstr "vyp." @@ -28,14 +37,41 @@ msgstr "auto" msgid "none" msgstr "dn" -msgid "*** Invalid Channel ***" -msgstr "*** Neplatn kanl ***" +msgid "Polarization" +msgstr "Polarizace" -msgid "Channel not available!" -msgstr "Kanl nen dostupn!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Nelze zat s penosem" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulace" + +msgid "Bandwidth" +msgstr "ka psma" + +msgid "Transmission" +msgstr "Penos" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Hierarchy" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Zan prohledvn EPG" @@ -524,42 +560,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarizace" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulace" - -msgid "Bandwidth" -msgstr "ka psma" - -msgid "Transmission" -msgstr "Penos" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Hierarchy" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Nastaven kanl nejsou uniktn!" diff --git a/po/da_DK.po b/po/da_DK.po index fbad9094..99af59b5 100644 --- a/po/da_DK.po +++ b/po/da_DK.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n" "Last-Translator: Mogens Elneff \n" "Language-Team: Danish\n" @@ -15,6 +15,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Ugyldig kanal! ***" + +msgid "Channel not available!" +msgstr "Kanal er ikke tilgngelig!" + +msgid "Can't start Transfer Mode!" +msgstr "Kan ikke starte Transfer Mode!" + msgid "off" msgstr "fra" @@ -27,14 +36,41 @@ msgstr "automatisk" msgid "none" msgstr "ingen" -msgid "*** Invalid Channel ***" -msgstr "*** Ugyldig kanal! ***" +msgid "Polarization" +msgstr "Polarisation" -msgid "Channel not available!" -msgstr "Kanal er ikke tilgngelig!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Kan ikke starte Transfer Mode!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulation" + +msgid "Bandwidth" +msgstr "Bndbredde" + +msgid "Transmission" +msgstr "Transmission" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Hierarki" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Starter EPG skanning" @@ -523,42 +559,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarisation" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulation" - -msgid "Bandwidth" -msgstr "Bndbredde" - -msgid "Transmission" -msgstr "Transmission" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Hierarki" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Kanalindstillinger er ikke entydige!" diff --git a/po/de_DE.po b/po/de_DE.po index 41dfb8ee..6181eb30 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2010-01-16 16:46+0100\n" "Last-Translator: Klaus Schmidinger \n" "Language-Team: German\n" @@ -15,6 +15,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Ungltiger Kanal ***" + +msgid "Channel not available!" +msgstr "Kanal nicht verfgbar!" + +msgid "Can't start Transfer Mode!" +msgstr "Transfer-Mode kann nicht gestartet werden!" + msgid "off" msgstr "aus" @@ -27,14 +36,41 @@ msgstr "auto" msgid "none" msgstr "keine" -msgid "*** Invalid Channel ***" -msgstr "*** Ungltiger Kanal ***" +msgid "Polarization" +msgstr "Polarisation" -msgid "Channel not available!" -msgstr "Kanal nicht verfgbar!" +msgid "System" +msgstr "System" -msgid "Can't start Transfer Mode!" -msgstr "Transfer-Mode kann nicht gestartet werden!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulation" + +msgid "Bandwidth" +msgstr "Bandbreite" + +msgid "Transmission" +msgstr "Transmission" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Hierarchie" + +msgid "Rolloff" +msgstr "Rolloff" msgid "Starting EPG scan" msgstr "Aktualisiere EPG-Daten" @@ -523,42 +559,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarisation" - -msgid "System" -msgstr "System" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulation" - -msgid "Bandwidth" -msgstr "Bandbreite" - -msgid "Transmission" -msgstr "Transmission" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Hierarchie" - -msgid "Rolloff" -msgstr "Rolloff" - msgid "Channel settings are not unique!" msgstr "Kanaleinstellungen sind nicht eindeutig!" diff --git a/po/el_GR.po b/po/el_GR.po index e8382b86..70f6e546 100644 --- a/po/el_GR.po +++ b/po/el_GR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n" "Last-Translator: Dimitrios Dimitrakos \n" "Language-Team: Greek\n" @@ -15,6 +15,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-7\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** ***" + +msgid "Channel not available!" +msgstr " !" + +msgid "Can't start Transfer Mode!" +msgstr " !" + msgid "off" msgstr "" @@ -27,14 +36,41 @@ msgstr " msgid "none" msgstr "" -msgid "*** Invalid Channel ***" -msgstr "*** ***" +msgid "Polarization" +msgstr "" -msgid "Channel not available!" -msgstr " !" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr " !" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "" + +msgid "CoderateH" +msgstr " H" + +msgid "CoderateL" +msgstr " L" + +msgid "Modulation" +msgstr "" + +msgid "Bandwidth" +msgstr " " + +msgid "Transmission" +msgstr "" + +msgid "Guard" +msgstr "" + +msgid "Hierarchy" +msgstr "" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr " EPG" @@ -523,42 +559,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "" - -msgid "CoderateH" -msgstr " H" - -msgid "CoderateL" -msgstr " L" - -msgid "Modulation" -msgstr "" - -msgid "Bandwidth" -msgstr " " - -msgid "Transmission" -msgstr "" - -msgid "Guard" -msgstr "" - -msgid "Hierarchy" -msgstr "" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr " !" diff --git a/po/es_ES.po b/po/es_ES.po index d2bf5b00..f78c8cb6 100644 --- a/po/es_ES.po +++ b/po/es_ES.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-03-02 19:02+0100\n" "Last-Translator: Luca Olivetti \n" "Language-Team: Spanish\n" @@ -16,6 +16,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Canal no vlido ***" + +msgid "Channel not available!" +msgstr "!Canal no disponible!" + +msgid "Can't start Transfer Mode!" +msgstr "No se puede iniciar el modo de transferencia!" + msgid "off" msgstr "off" @@ -28,14 +37,41 @@ msgstr "auto" msgid "none" msgstr "ninguno" -msgid "*** Invalid Channel ***" -msgstr "*** Canal no vlido ***" +msgid "Polarization" +msgstr "Polarizacin" -msgid "Channel not available!" -msgstr "!Canal no disponible!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "No se puede iniciar el modo de transferencia!" +msgid "Srate" +msgstr "T.smbolos" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulacin" + +msgid "Bandwidth" +msgstr "Ancho de banda" + +msgid "Transmission" +msgstr "Transmisin" + +msgid "Guard" +msgstr "Int.Guarda" + +msgid "Hierarchy" +msgstr "Jerarqua" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Iniciando la exploracin de EPG" @@ -524,42 +560,6 @@ msgstr "Acceso condicional (CA)" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarizacin" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "T.smbolos" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulacin" - -msgid "Bandwidth" -msgstr "Ancho de banda" - -msgid "Transmission" -msgstr "Transmisin" - -msgid "Guard" -msgstr "Int.Guarda" - -msgid "Hierarchy" -msgstr "Jerarqua" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "!Propiedades de canal duplicadas!" diff --git a/po/et_EE.po b/po/et_EE.po index bd8d3e74..047a2f72 100644 --- a/po/et_EE.po +++ b/po/et_EE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n" "Last-Translator: Arthur Konovalov \n" "Language-Team: Estonian\n" @@ -15,6 +15,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-13\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Vigane kanal ***" + +msgid "Channel not available!" +msgstr "Kanal ei ole kttesaadav!" + +msgid "Can't start Transfer Mode!" +msgstr "lekandemooduse start nurjus!" + msgid "off" msgstr "vljas" @@ -27,14 +36,41 @@ msgstr "automaatne" msgid "none" msgstr "puudu" -msgid "*** Invalid Channel ***" -msgstr "*** Vigane kanal ***" +msgid "Polarization" +msgstr "Polarisatsioon" -msgid "Channel not available!" -msgstr "Kanal ei ole kttesaadav!" +msgid "System" +msgstr "Ssteem" -msgid "Can't start Transfer Mode!" -msgstr "lekandemooduse start nurjus!" +msgid "Srate" +msgstr "Smbolikiirus" + +msgid "Inversion" +msgstr "Inversioon" + +msgid "CoderateH" +msgstr "VeaparandusH" + +msgid "CoderateL" +msgstr "VeaparandusL" + +msgid "Modulation" +msgstr "Modulatsioon" + +msgid "Bandwidth" +msgstr "Ribalaius" + +msgid "Transmission" +msgstr "Transmissioon" + +msgid "Guard" +msgstr "Kaitseintervall" + +msgid "Hierarchy" +msgstr "Hierarhia" + +msgid "Rolloff" +msgstr "Rolloff" msgid "Starting EPG scan" msgstr "EPG skaneerimine kivitatud" @@ -523,42 +559,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarisatsioon" - -msgid "System" -msgstr "Ssteem" - -msgid "Srate" -msgstr "Smbolikiirus" - -msgid "Inversion" -msgstr "Inversioon" - -msgid "CoderateH" -msgstr "VeaparandusH" - -msgid "CoderateL" -msgstr "VeaparandusL" - -msgid "Modulation" -msgstr "Modulatsioon" - -msgid "Bandwidth" -msgstr "Ribalaius" - -msgid "Transmission" -msgstr "Transmissioon" - -msgid "Guard" -msgstr "Kaitseintervall" - -msgid "Hierarchy" -msgstr "Hierarhia" - -msgid "Rolloff" -msgstr "Rolloff" - msgid "Channel settings are not unique!" msgstr "Kanaliseaded ei ole unikaalsed!" diff --git a/po/fi_FI.po b/po/fi_FI.po index e3ceee1f..49af1561 100644 --- a/po/fi_FI.po +++ b/po/fi_FI.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2007-08-15 15:52+0200\n" "Last-Translator: Rolf Ahrenberg \n" "Language-Team: Finnish\n" @@ -18,6 +18,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Virheellinen kanavavalinta ***" + +msgid "Channel not available!" +msgstr "Kanava ei ole kytettviss!" + +msgid "Can't start Transfer Mode!" +msgstr "Siirtotilan aloitus eponnistui!" + msgid "off" msgstr "poissa" @@ -30,14 +39,41 @@ msgstr "auto" msgid "none" msgstr "tyhj" -msgid "*** Invalid Channel ***" -msgstr "*** Virheellinen kanavavalinta ***" +msgid "Polarization" +msgstr "Polarisaatio" -msgid "Channel not available!" -msgstr "Kanava ei ole kytettviss!" +msgid "System" +msgstr "Systeemi" -msgid "Can't start Transfer Mode!" -msgstr "Siirtotilan aloitus eponnistui!" +msgid "Srate" +msgstr "Symbolinopeus" + +msgid "Inversion" +msgstr "Inversio" + +msgid "CoderateH" +msgstr "Suojaustaso (HP)" + +msgid "CoderateL" +msgstr "Suojaustaso (LP)" + +msgid "Modulation" +msgstr "Modulaatio" + +msgid "Bandwidth" +msgstr "Kaistanleveys" + +msgid "Transmission" +msgstr "Transmissio" + +msgid "Guard" +msgstr "Suojavli" + +msgid "Hierarchy" +msgstr "Hierarkia" + +msgid "Rolloff" +msgstr "Rolloff" msgid "Starting EPG scan" msgstr "Ohjelmaoppaan pivitys aloitettu" @@ -526,42 +562,6 @@ msgstr "Salaus (CA)" msgid "Sid" msgstr "Palvelu-ID" -msgid "Polarization" -msgstr "Polarisaatio" - -msgid "System" -msgstr "Systeemi" - -msgid "Srate" -msgstr "Symbolinopeus" - -msgid "Inversion" -msgstr "Inversio" - -msgid "CoderateH" -msgstr "Suojaustaso (HP)" - -msgid "CoderateL" -msgstr "Suojaustaso (LP)" - -msgid "Modulation" -msgstr "Modulaatio" - -msgid "Bandwidth" -msgstr "Kaistanleveys" - -msgid "Transmission" -msgstr "Transmissio" - -msgid "Guard" -msgstr "Suojavli" - -msgid "Hierarchy" -msgstr "Hierarkia" - -msgid "Rolloff" -msgstr "Rolloff" - msgid "Channel settings are not unique!" msgstr "Kanava-asetukset eivt ole yksillliset!" diff --git a/po/fr_FR.po b/po/fr_FR.po index 4c4dcce0..7b23a5eb 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-02-27 18:14+0100\n" "Last-Translator: Jean-Claude Repetto \n" "Language-Team: French\n" @@ -21,6 +21,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Chane invalide ! ***" + +msgid "Channel not available!" +msgstr "Chane non disponible !" + +msgid "Can't start Transfer Mode!" +msgstr "Impossible d'utiliser le mode transfert !" + msgid "off" msgstr "off" @@ -33,14 +42,41 @@ msgstr "auto" msgid "none" msgstr "aucun" -msgid "*** Invalid Channel ***" -msgstr "*** Chane invalide ! ***" +msgid "Polarization" +msgstr "Polarisation" -msgid "Channel not available!" -msgstr "Chane non disponible !" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Impossible d'utiliser le mode transfert !" +msgid "Srate" +msgstr "Frq. symbole" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulation" + +msgid "Bandwidth" +msgstr "Bande passante" + +msgid "Transmission" +msgstr "Transmission" + +msgid "Guard" +msgstr "Intervalle de garde" + +msgid "Hierarchy" +msgstr "Hirarchie" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Mise jour du guide des programmes" @@ -529,42 +565,6 @@ msgstr "Acc msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarisation" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Frq. symbole" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulation" - -msgid "Bandwidth" -msgstr "Bande passante" - -msgid "Transmission" -msgstr "Transmission" - -msgid "Guard" -msgstr "Intervalle de garde" - -msgid "Hierarchy" -msgstr "Hirarchie" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Caractristiques des chanes non uniques" diff --git a/po/hr_HR.po b/po/hr_HR.po index b7cf5a0f..56b1bd8d 100644 --- a/po/hr_HR.po +++ b/po/hr_HR.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-03-17 19:00+0100\n" "Last-Translator: Adrian Caval \n" "Language-Team: Croatian\n" @@ -17,6 +17,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Neispravan Program ***" + +msgid "Channel not available!" +msgstr "Program nije dostupan!" + +msgid "Can't start Transfer Mode!" +msgstr "Nemogue zapoeti Prijenos!!" + msgid "off" msgstr "iskljui" @@ -29,14 +38,41 @@ msgstr "automatski" msgid "none" msgstr "nita" -msgid "*** Invalid Channel ***" -msgstr "*** Neispravan Program ***" +msgid "Polarization" +msgstr "Polarizacija" -msgid "Channel not available!" -msgstr "Program nije dostupan!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Nemogue zapoeti Prijenos!!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inverzija" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulacija" + +msgid "Bandwidth" +msgstr "Propusnost" + +msgid "Transmission" +msgstr "Prijenos" + +msgid "Guard" +msgstr "Zatita" + +msgid "Hierarchy" +msgstr "Hijerarhija" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Poinjem EPG pretragu" @@ -525,42 +561,6 @@ msgstr "Kodiranje (CA)" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarizacija" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inverzija" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulacija" - -msgid "Bandwidth" -msgstr "Propusnost" - -msgid "Transmission" -msgstr "Prijenos" - -msgid "Guard" -msgstr "Zatita" - -msgid "Hierarchy" -msgstr "Hijerarhija" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Postavke programa nisu jedinstvene!" diff --git a/po/hu_HU.po b/po/hu_HU.po index d09c8dd4..212d2fe9 100644 --- a/po/hu_HU.po +++ b/po/hu_HU.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2007-12-01 21:42+0200\n" "Last-Translator: Istvn Fley \n" "Language-Team: Hungarian\n" @@ -18,6 +18,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** rvnytelen csatorna ***" + +msgid "Channel not available!" +msgstr "Az ad nem elrhet" + +msgid "Can't start Transfer Mode!" +msgstr "Transfer-Mode nem indthat!" + msgid "off" msgstr "ki" @@ -30,14 +39,41 @@ msgstr "auto" msgid "none" msgstr "semmi" -msgid "*** Invalid Channel ***" -msgstr "*** rvnytelen csatorna ***" +msgid "Polarization" +msgstr "Polarizci" -msgid "Channel not available!" -msgstr "Az ad nem elrhet" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Transfer-Mode nem indthat!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulci" + +msgid "Bandwidth" +msgstr "Svszlessg" + +msgid "Transmission" +msgstr "tvitel" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Hierarhia" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "EPG adatok aktualizlsa" @@ -526,42 +562,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarizci" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulci" - -msgid "Bandwidth" -msgstr "Svszlessg" - -msgid "Transmission" -msgstr "tvitel" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Hierarhia" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Az adbelltsok nem egyrtelmek" diff --git a/po/it_IT.po b/po/it_IT.po index aa7ff1b4..ba7c57ce 100644 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2010-01-31 23:06+0100\n" "Last-Translator: Diego Pierotto \n" "Language-Team: Italian\n" @@ -22,6 +22,15 @@ msgstr "" "X-Poedit-Country: ITALY\n" "X-Poedit-SourceCharset: utf-8\n" +msgid "*** Invalid Channel ***" +msgstr "*** Canale NON valido ***" + +msgid "Channel not available!" +msgstr "Canale non disponibile!" + +msgid "Can't start Transfer Mode!" +msgstr "Impossibile avviare mod. trasferimento!" + msgid "off" msgstr "off" @@ -34,14 +43,41 @@ msgstr "automatico" msgid "none" msgstr "nessuno" -msgid "*** Invalid Channel ***" -msgstr "*** Canale NON valido ***" +msgid "Polarization" +msgstr "Polarizzazione" -msgid "Channel not available!" -msgstr "Canale non disponibile!" +msgid "System" +msgstr "Sistema" -msgid "Can't start Transfer Mode!" -msgstr "Impossibile avviare mod. trasferimento!" +msgid "Srate" +msgstr "SymbolRate" + +msgid "Inversion" +msgstr "Inversione" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulazione" + +msgid "Bandwidth" +msgstr "Banda passante" + +msgid "Transmission" +msgstr "Trasmissione" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Gerarchia" + +msgid "Rolloff" +msgstr "Rolloff" msgid "Starting EPG scan" msgstr "Inizio scansione EPG" @@ -530,42 +566,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarizzazione" - -msgid "System" -msgstr "Sistema" - -msgid "Srate" -msgstr "SymbolRate" - -msgid "Inversion" -msgstr "Inversione" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulazione" - -msgid "Bandwidth" -msgstr "Banda passante" - -msgid "Transmission" -msgstr "Trasmissione" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Gerarchia" - -msgid "Rolloff" -msgstr "Rolloff" - msgid "Channel settings are not unique!" msgstr "Parametri canale non univoci!" diff --git a/po/lt_LT.po b/po/lt_LT.po index 93583c57..02843da9 100644 --- a/po/lt_LT.po +++ b/po/lt_LT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.7.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2009-10-17 14:19+0200\n" "Last-Translator: Valdemaras Pipiras \n" "Language-Team: Lithuanian\n" @@ -15,6 +15,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Klaidingas kanalas ***" + +msgid "Channel not available!" +msgstr "Kanalas neegzistuoja!" + +msgid "Can't start Transfer Mode!" +msgstr "Negali pradėti perdavimo" + msgid "off" msgstr "įjungt" @@ -27,14 +36,41 @@ msgstr "auto" msgid "none" msgstr "nėra" -msgid "*** Invalid Channel ***" -msgstr "*** Klaidingas kanalas ***" +msgid "Polarization" +msgstr "Poliarizacija" -msgid "Channel not available!" -msgstr "Kanalas neegzistuoja!" +msgid "System" +msgstr "Sistema" -msgid "Can't start Transfer Mode!" -msgstr "Negali pradėti perdavimo" +msgid "Srate" +msgstr "Perdavimo greitis (Symbol rate)" + +msgid "Inversion" +msgstr "Inversija" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Moduliacija" + +msgid "Bandwidth" +msgstr "Pralaidumas" + +msgid "Transmission" +msgstr "Perdavimas" + +msgid "Guard" +msgstr "Apsauga" + +msgid "Hierarchy" +msgstr "Hierarchija" + +msgid "Rolloff" +msgstr "Rolloff" msgid "Starting EPG scan" msgstr "Pradedamas EPG skanavimas" @@ -523,42 +559,6 @@ msgstr "CA (dekodavimo sistema)" msgid "Sid" msgstr "Serviso id" -msgid "Polarization" -msgstr "Poliarizacija" - -msgid "System" -msgstr "Sistema" - -msgid "Srate" -msgstr "Perdavimo greitis (Symbol rate)" - -msgid "Inversion" -msgstr "Inversija" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Moduliacija" - -msgid "Bandwidth" -msgstr "Pralaidumas" - -msgid "Transmission" -msgstr "Perdavimas" - -msgid "Guard" -msgstr "Apsauga" - -msgid "Hierarchy" -msgstr "Hierarchija" - -msgid "Rolloff" -msgstr "Rolloff" - msgid "Channel settings are not unique!" msgstr "Kanalų nustatymai neunikalūs!" diff --git a/po/nl_NL.po b/po/nl_NL.po index fdfaf8d1..1e1d3820 100644 --- a/po/nl_NL.po +++ b/po/nl_NL.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-02-26 17:20+0100\n" "Last-Translator: Johan Schuring \n" "Language-Team: Dutch\n" @@ -19,6 +19,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Ongeldig kanaal ***" + +msgid "Channel not available!" +msgstr "Kanaal niet beschikbaar" + +msgid "Can't start Transfer Mode!" +msgstr "Kan Transfer-Mode niet starten" + msgid "off" msgstr "uit" @@ -31,14 +40,41 @@ msgstr "auto" msgid "none" msgstr "geen" -msgid "*** Invalid Channel ***" -msgstr "*** Ongeldig kanaal ***" +msgid "Polarization" +msgstr "Polarisatie" -msgid "Channel not available!" -msgstr "Kanaal niet beschikbaar" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Kan Transfer-Mode niet starten" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulatie" + +msgid "Bandwidth" +msgstr "Bandbreedte" + +msgid "Transmission" +msgstr "Transmissie" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Hierarchie" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Bezig met starten EPG scan" @@ -527,42 +563,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarisatie" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulatie" - -msgid "Bandwidth" -msgstr "Bandbreedte" - -msgid "Transmission" -msgstr "Transmissie" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Hierarchie" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Kanaalinstellingen zijn niet uniek!" diff --git a/po/nn_NO.po b/po/nn_NO.po index 1f50117f..11668c75 100644 --- a/po/nn_NO.po +++ b/po/nn_NO.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n" "Last-Translator: Truls Slevigen \n" "Language-Team: Norwegian\n" @@ -16,6 +16,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Ugyldig Kanal! ***" + +msgid "Channel not available!" +msgstr "" + +msgid "Can't start Transfer Mode!" +msgstr "Kan ikke starte transfer modus!" + msgid "off" msgstr "" @@ -28,14 +37,41 @@ msgstr "" msgid "none" msgstr "" -msgid "*** Invalid Channel ***" -msgstr "*** Ugyldig Kanal! ***" +msgid "Polarization" +msgstr "Polarisasjon" -msgid "Channel not available!" +msgid "System" msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Kan ikke starte transfer modus!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulation" + +msgid "Bandwidth" +msgstr "Bandwidth" + +msgid "Transmission" +msgstr "Transmission" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Hierarchy" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "" @@ -524,42 +560,6 @@ msgstr "Kortleser" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarisasjon" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulation" - -msgid "Bandwidth" -msgstr "Bandwidth" - -msgid "Transmission" -msgstr "Transmission" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Hierarchy" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "" diff --git a/po/pl_PL.po b/po/pl_PL.po index 038d058a..d1944cb4 100644 --- a/po/pl_PL.po +++ b/po/pl_PL.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-03-09 12:59+0100\n" "Last-Translator: Michael Rakowski \n" "Language-Team: Polish\n" @@ -16,6 +16,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Niepoprawny kana ***" + +msgid "Channel not available!" +msgstr "Kana nie jest dostpny!" + +msgid "Can't start Transfer Mode!" +msgstr "Nie mona uruchomi trybu transferu!" + msgid "off" msgstr "wycz" @@ -28,14 +37,41 @@ msgstr "auto" msgid "none" msgstr "brak" -msgid "*** Invalid Channel ***" -msgstr "*** Niepoprawny kana ***" +msgid "Polarization" +msgstr "Polaryzacja" -msgid "Channel not available!" -msgstr "Kana nie jest dostpny!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Nie mona uruchomi trybu transferu!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inwersja" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulacja" + +msgid "Bandwidth" +msgstr "Pasmo" + +msgid "Transmission" +msgstr "Transmisja" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Hierarchia" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Rozpoczynam skanowanie EPG" @@ -524,42 +560,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polaryzacja" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inwersja" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulacja" - -msgid "Bandwidth" -msgstr "Pasmo" - -msgid "Transmission" -msgstr "Transmisja" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Hierarchia" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Ustawienia kanau nie s unikalne!" diff --git a/po/pt_PT.po b/po/pt_PT.po index e409581c..99d81687 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-03-18 17:04+0100\n" "Last-Translator: anonymous\n" "Language-Team: Portuguese\n" @@ -15,6 +15,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Canal invlido ***" + +msgid "Channel not available!" +msgstr "Canal indisponivel!" + +msgid "Can't start Transfer Mode!" +msgstr "Impossvel iniciar modo de transferncia!" + msgid "off" msgstr "off" @@ -27,14 +36,41 @@ msgstr "Autom msgid "none" msgstr "nenhum" -msgid "*** Invalid Channel ***" -msgstr "*** Canal invlido ***" +msgid "Polarization" +msgstr "Polarizao" -msgid "Channel not available!" -msgstr "Canal indisponivel!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Impossvel iniciar modo de transferncia!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inverso" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulao" + +msgid "Bandwidth" +msgstr "Bandwidth" + +msgid "Transmission" +msgstr "Transmisso" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Hierarquia" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Iniciar a procura de EPG" @@ -523,42 +559,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarizao" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inverso" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulao" - -msgid "Bandwidth" -msgstr "Bandwidth" - -msgid "Transmission" -msgstr "Transmisso" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Hierarquia" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Propriedades do canal no so nicas!" diff --git a/po/ro_RO.po b/po/ro_RO.po index cae620a1..31e6b176 100644 --- a/po/ro_RO.po +++ b/po/ro_RO.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.7.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2010-02-11 13:38+0100\n" "Last-Translator: Lucian Muresan \n" "Language-Team: Romanian\n" @@ -18,6 +18,15 @@ msgstr "" "X-Poedit-Language: Romanian\n" "X-Poedit-Country: ROMANIA\n" +msgid "*** Invalid Channel ***" +msgstr "*** Canal invalid ***" + +msgid "Channel not available!" +msgstr "Canal indisponibil" + +msgid "Can't start Transfer Mode!" +msgstr "Nu pot porni modul de transfer!" + msgid "off" msgstr "oprit" @@ -30,14 +39,41 @@ msgstr "automat" msgid "none" msgstr "niciuna(ul)" -msgid "*** Invalid Channel ***" -msgstr "*** Canal invalid ***" +msgid "Polarization" +msgstr "Polarizare" -msgid "Channel not available!" -msgstr "Canal indisponibil" +msgid "System" +msgstr "Sistem" -msgid "Can't start Transfer Mode!" -msgstr "Nu pot porni modul de transfer!" +msgid "Srate" +msgstr "Rat simboluri" + +msgid "Inversion" +msgstr "Inversiune" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulaie" + +msgid "Bandwidth" +msgstr "Lrgime de band" + +msgid "Transmission" +msgstr "Transmisie" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Ierarhie" + +msgid "Rolloff" +msgstr "Rolloff" msgid "Starting EPG scan" msgstr "Pornesc achiziia EPG" @@ -526,42 +562,6 @@ msgstr "CA (Acces Condi msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarizare" - -msgid "System" -msgstr "Sistem" - -msgid "Srate" -msgstr "Rat simboluri" - -msgid "Inversion" -msgstr "Inversiune" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulaie" - -msgid "Bandwidth" -msgstr "Lrgime de band" - -msgid "Transmission" -msgstr "Transmisie" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Ierarhie" - -msgid "Rolloff" -msgstr "Rolloff" - msgid "Channel settings are not unique!" msgstr "Parametrii canalului nu sunt univoci!" diff --git a/po/ru_RU.po b/po/ru_RU.po index c6d6aca0..0796c194 100644 --- a/po/ru_RU.po +++ b/po/ru_RU.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-12-15 14:37+0100\n" "Last-Translator: Oleg Roitburd \n" "Language-Team: Russian\n" @@ -16,6 +16,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-5\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** ***" + +msgid "Channel not available!" +msgstr " !" + +msgid "Can't start Transfer Mode!" +msgstr " !" + msgid "off" msgstr "" @@ -28,14 +37,41 @@ msgstr " msgid "none" msgstr "" -msgid "*** Invalid Channel ***" -msgstr "*** ***" +msgid "Polarization" +msgstr "" -msgid "Channel not available!" -msgstr " !" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr " !" +msgid "Srate" +msgstr ". " + +msgid "Inversion" +msgstr "" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "" + +msgid "Bandwidth" +msgstr "" + +msgid "Transmission" +msgstr "" + +msgid "Guard" +msgstr "" + +msgid "Hierarchy" +msgstr "" + +msgid "Rolloff" +msgstr "Rolloff" msgid "Starting EPG scan" msgstr " EPG-" @@ -524,42 +560,6 @@ msgstr "CA ( msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr ". " - -msgid "Inversion" -msgstr "" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "" - -msgid "Bandwidth" -msgstr "" - -msgid "Transmission" -msgstr "" - -msgid "Guard" -msgstr "" - -msgid "Hierarchy" -msgstr "" - -msgid "Rolloff" -msgstr "Rolloff" - msgid "Channel settings are not unique!" msgstr " !" diff --git a/po/sk_SK.po b/po/sk_SK.po index c66132ad..f53c2513 100644 --- a/po/sk_SK.po +++ b/po/sk_SK.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2009-09-30 12:50+0100\n" "Last-Translator: Milan Hrala \n" "Language-Team: Slovak\n" @@ -16,6 +16,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Neplatn kanl ***" + +msgid "Channel not available!" +msgstr "Kanl nie je dostupn!" + +msgid "Can't start Transfer Mode!" +msgstr "Neme spusti prenos!" + msgid "off" msgstr "vypnut" @@ -28,14 +37,41 @@ msgstr "automaticky" msgid "none" msgstr "iadny" -msgid "*** Invalid Channel ***" -msgstr "*** Neplatn kanl ***" +msgid "Polarization" +msgstr "Polarizcia" -msgid "Channel not available!" -msgstr "Kanl nie je dostupn!" +msgid "System" +msgstr "systm" -msgid "Can't start Transfer Mode!" -msgstr "Neme spusti prenos!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulcia" + +msgid "Bandwidth" +msgstr "rka psma" + +msgid "Transmission" +msgstr "Prenos" + +msgid "Guard" +msgstr "Ochrana" + +msgid "Hierarchy" +msgstr "Hierarchia" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Zana prehadva EPG" @@ -524,42 +560,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarizcia" - -msgid "System" -msgstr "systm" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulcia" - -msgid "Bandwidth" -msgstr "rka psma" - -msgid "Transmission" -msgstr "Prenos" - -msgid "Guard" -msgstr "Ochrana" - -msgid "Hierarchy" -msgstr "Hierarchia" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Nastavenia kanlu nie s obyajn!" diff --git a/po/sl_SI.po b/po/sl_SI.po index 2c20440e..88858e5e 100644 --- a/po/sl_SI.po +++ b/po/sl_SI.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-02-28 19:44+0100\n" "Last-Translator: Matjaz Thaler \n" "Language-Team: Slovenian\n" @@ -16,6 +16,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Neznan kanal ***" + +msgid "Channel not available!" +msgstr "Kanal ni razpololjiv!" + +msgid "Can't start Transfer Mode!" +msgstr "Ne morem zaeti s prenosnim nainom!" + msgid "off" msgstr "izklop" @@ -28,14 +37,41 @@ msgstr "avtomatsko" msgid "none" msgstr "nobeden" -msgid "*** Invalid Channel ***" -msgstr "*** Neznan kanal ***" +msgid "Polarization" +msgstr "Polarizacija" -msgid "Channel not available!" -msgstr "Kanal ni razpololjiv!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Ne morem zaeti s prenosnim nainom!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inverzija" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulacija" + +msgid "Bandwidth" +msgstr "Pasovna irina" + +msgid "Transmission" +msgstr "Prenos" + +msgid "Guard" +msgstr "Zaita" + +msgid "Hierarchy" +msgstr "Hierarhija" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Prienjam EPG-scan" @@ -524,42 +560,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarizacija" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inverzija" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulacija" - -msgid "Bandwidth" -msgstr "Pasovna irina" - -msgid "Transmission" -msgstr "Prenos" - -msgid "Guard" -msgstr "Zaita" - -msgid "Hierarchy" -msgstr "Hierarhija" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Nastavitve kanala niso edinstvene!" diff --git a/po/sv_SE.po b/po/sv_SE.po index 4ac9a0f5..1c5821b5 100644 --- a/po/sv_SE.po +++ b/po/sv_SE.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-03-12 18:25+0100\n" "Last-Translator: Magnus Andersson \n" "Language-Team: Swedish\n" @@ -18,6 +18,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Felaktig kanal ***" + +msgid "Channel not available!" +msgstr "Kanalen r inte tillgnglig!" + +msgid "Can't start Transfer Mode!" +msgstr "Kan inte starta Transfer Mode!" + msgid "off" msgstr "av" @@ -30,14 +39,41 @@ msgstr "automatisk" msgid "none" msgstr "ingen" -msgid "*** Invalid Channel ***" -msgstr "*** Felaktig kanal ***" +msgid "Polarization" +msgstr "Polarisation" -msgid "Channel not available!" -msgstr "Kanalen r inte tillgnglig!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Kan inte starta Transfer Mode!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "Inversion" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modulation" + +msgid "Bandwidth" +msgstr "Bandbredd" + +msgid "Transmission" +msgstr "Transmission" + +msgid "Guard" +msgstr "Guard" + +msgid "Hierarchy" +msgstr "Hierarchy" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "Pbrjar EPG skanning" @@ -526,42 +562,6 @@ msgstr "Kortl msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Polarisation" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "Inversion" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modulation" - -msgid "Bandwidth" -msgstr "Bandbredd" - -msgid "Transmission" -msgstr "Transmission" - -msgid "Guard" -msgstr "Guard" - -msgid "Hierarchy" -msgstr "Hierarchy" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Kanalinstllningarna r ej unika!" diff --git a/po/tr_TR.po b/po/tr_TR.po index 02a96424..763a6b64 100644 --- a/po/tr_TR.po +++ b/po/tr_TR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2008-02-28 00:33+0100\n" "Last-Translator: Oktay Yolgeen \n" "Language-Team: Turkish\n" @@ -15,6 +15,15 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-9\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Geersiz kanal ***" + +msgid "Channel not available!" +msgstr "Kanal kullanlamyor!" + +msgid "Can't start Transfer Mode!" +msgstr "Transfer modu balatlamyor!" + msgid "off" msgstr "kapal" @@ -27,14 +36,41 @@ msgstr "otomatik" msgid "none" msgstr "hi" -msgid "*** Invalid Channel ***" -msgstr "*** Geersiz kanal ***" +msgid "Polarization" +msgstr "Kutuplama" -msgid "Channel not available!" -msgstr "Kanal kullanlamyor!" +msgid "System" +msgstr "" -msgid "Can't start Transfer Mode!" -msgstr "Transfer modu balatlamyor!" +msgid "Srate" +msgstr "Srate" + +msgid "Inversion" +msgstr "nversiyon" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Modlasyon" + +msgid "Bandwidth" +msgstr "Bant genilii" + +msgid "Transmission" +msgstr "letim" + +msgid "Guard" +msgstr "Koruma" + +msgid "Hierarchy" +msgstr "Hiyerari" + +msgid "Rolloff" +msgstr "" msgid "Starting EPG scan" msgstr "EPG tarama balyor" @@ -523,42 +559,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Kutuplama" - -msgid "System" -msgstr "" - -msgid "Srate" -msgstr "Srate" - -msgid "Inversion" -msgstr "nversiyon" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Modlasyon" - -msgid "Bandwidth" -msgstr "Bant genilii" - -msgid "Transmission" -msgstr "letim" - -msgid "Guard" -msgstr "Koruma" - -msgid "Hierarchy" -msgstr "Hiyerari" - -msgid "Rolloff" -msgstr "" - msgid "Channel settings are not unique!" msgstr "Kanal ayarlar belli del!" diff --git a/po/uk_UA.po b/po/uk_UA.po index 7e3010c0..2c080fe1 100644 --- a/po/uk_UA.po +++ b/po/uk_UA.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.7.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2009-05-31 13:17+0200\n" "Last-Translator: Yarema aka Knedlyk \n" "Language-Team: Ukrainian\n" @@ -15,6 +15,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "*** Invalid Channel ***" +msgstr "*** Неправильний канал ***" + +msgid "Channel not available!" +msgstr "Канал недоступний!" + +msgid "Can't start Transfer Mode!" +msgstr "Неможливо включити режим пропуску!" + msgid "off" msgstr "викл" @@ -27,14 +36,41 @@ msgstr "авто" msgid "none" msgstr "нічого" -msgid "*** Invalid Channel ***" -msgstr "*** Неправильний канал ***" +msgid "Polarization" +msgstr "Поляризація" -msgid "Channel not available!" -msgstr "Канал недоступний!" +msgid "System" +msgstr "Система" -msgid "Can't start Transfer Mode!" -msgstr "Неможливо включити режим пропуску!" +msgid "Srate" +msgstr "Симв. швидкість" + +msgid "Inversion" +msgstr "Інверсія" + +msgid "CoderateH" +msgstr "CoderateH" + +msgid "CoderateL" +msgstr "CoderateL" + +msgid "Modulation" +msgstr "Модуляція" + +msgid "Bandwidth" +msgstr "Діапазон" + +msgid "Transmission" +msgstr "Передача" + +msgid "Guard" +msgstr "Захист" + +msgid "Hierarchy" +msgstr "Ієрархія" + +msgid "Rolloff" +msgstr "Крен" msgid "Starting EPG scan" msgstr "Починаю EPG-сканування" @@ -523,42 +559,6 @@ msgstr "CA (декодер)" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "Поляризація" - -msgid "System" -msgstr "Система" - -msgid "Srate" -msgstr "Симв. швидкість" - -msgid "Inversion" -msgstr "Інверсія" - -msgid "CoderateH" -msgstr "CoderateH" - -msgid "CoderateL" -msgstr "CoderateL" - -msgid "Modulation" -msgstr "Модуляція" - -msgid "Bandwidth" -msgstr "Діапазон" - -msgid "Transmission" -msgstr "Передача" - -msgid "Guard" -msgstr "Захист" - -msgid "Hierarchy" -msgstr "Ієрархія" - -msgid "Rolloff" -msgstr "Крен" - msgid "Channel settings are not unique!" msgstr "Настройки каналу не єдині!" diff --git a/po/zh_CN.po b/po/zh_CN.po index 1d12f71e..30d10943 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR 1.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-17 16:18+0100\n" +"POT-Creation-Date: 2010-02-28 13:19+0100\n" "PO-Revision-Date: 2009-09-23 23:50+0800\n" "Last-Translator: Nan Feng \n" "Language-Team: Chinese\n" @@ -18,6 +18,15 @@ msgstr "" "X-Poedit-Country: CHINA\n" "X-Poedit-SourceCharset: utf-8\n" +msgid "*** Invalid Channel ***" +msgstr "***无效的频道 ***" + +msgid "Channel not available!" +msgstr "频道不可用!" + +msgid "Can't start Transfer Mode!" +msgstr "不能启动传送模式" + msgid "off" msgstr "关" @@ -30,14 +39,41 @@ msgstr "自动" msgid "none" msgstr "无" -msgid "*** Invalid Channel ***" -msgstr "***无效的频道 ***" +msgid "Polarization" +msgstr "极化方式" -msgid "Channel not available!" -msgstr "频道不可用!" +msgid "System" +msgstr "卫星系统" -msgid "Can't start Transfer Mode!" -msgstr "不能启动传送模式" +msgid "Srate" +msgstr "符号率" + +msgid "Inversion" +msgstr "反向" + +msgid "CoderateH" +msgstr "高符号频率" + +msgid "CoderateL" +msgstr "论符号频率" + +msgid "Modulation" +msgstr "调制" + +msgid "Bandwidth" +msgstr "带宽" + +msgid "Transmission" +msgstr "传送" + +msgid "Guard" +msgstr "防护" + +msgid "Hierarchy" +msgstr "层次" + +msgid "Rolloff" +msgstr "越零率" msgid "Starting EPG scan" msgstr "开始节目单扫描" @@ -526,42 +562,6 @@ msgstr "CA" msgid "Sid" msgstr "Sid" -msgid "Polarization" -msgstr "极化方式" - -msgid "System" -msgstr "卫星系统" - -msgid "Srate" -msgstr "符号率" - -msgid "Inversion" -msgstr "反向" - -msgid "CoderateH" -msgstr "高符号频率" - -msgid "CoderateL" -msgstr "论符号频率" - -msgid "Modulation" -msgstr "调制" - -msgid "Bandwidth" -msgstr "带宽" - -msgid "Transmission" -msgstr "传送" - -msgid "Guard" -msgstr "防护" - -msgid "Hierarchy" -msgstr "层次" - -msgid "Rolloff" -msgstr "越零率" - msgid "Channel settings are not unique!" msgstr "频道设置不是唯一的!" diff --git a/sourceparams.c b/sourceparams.c new file mode 100644 index 00000000..9a55540b --- /dev/null +++ b/sourceparams.c @@ -0,0 +1,43 @@ +/* + * sourceparams.c: Source parameter handling + * + * See the main source file 'vdr.c' for copyright information and + * how to reach the author. + * + * $Id: sourceparams.c 1.1 2010/02/28 12:15:49 kls Exp $ + */ + +#include "sourceparams.h" +#include "sources.h" + +// --- cSourceParam ---------------------------------------------------------- + +cSourceParam::cSourceParam(char Source, const char *Description) +{ + source = Source; + if ('A' <= source && source <= 'Z') { + if (SourceParams.Get(source)) { + esyslog("ERROR: source parameters for '%c' already defined", source); + return; + } + SourceParams.Add(this); + if (Source != 'C' && Source != 'S' && Source != 'T') + Sources.Add(new cSource(Source, Description)); + dsyslog("registered source parameters for '%c - %s'", source, Description); + } + else + esyslog("ERROR: invalid source '%c'", source); +} + +// --- cSourceParams --------------------------------------------------------- + +cSourceParams SourceParams; + +cSourceParam *cSourceParams::Get(char Source) const +{ + for (cSourceParam *sp = First(); sp; sp = Next(sp)) { + if (sp->Source() == Source) + return sp; + } + return NULL; +} diff --git a/sourceparams.h b/sourceparams.h new file mode 100644 index 00000000..be04b567 --- /dev/null +++ b/sourceparams.h @@ -0,0 +1,53 @@ +/* + * sourceparams.h: Source parameter handling + * + * See the main source file 'vdr.c' for copyright information and + * how to reach the author. + * + * $Id: sourceparams.h 1.1 2010/02/28 11:58:03 kls Exp $ + */ + +#ifndef __SOURCEPARAMS_H +#define __SOURCEPARAMS_H + +#include "channels.h" +#include "osdbase.h" +#include "tools.h" + +class cSourceParam : public cListObject { +private: + char source; +public: + cSourceParam(char Source, const char *Description); + ///< Sets up a parameter handler for the given Source. + ///< Source must be in the range 'A'...'Z', and there can only + ///< be one cSourceParam for any given source. + ///< Description contains a short, one line description of this source. + ///< If a plugin sets up a new cSourceParam, this will also trigger + ///< defining the appropriate cSource automatically. + ///< Objects of cSourceParam shall only be created on the heap, and + ///< shall never be deleted (they will be deleted automatically when + ///< the program ends). + char Source(void) const { return source; } + virtual void SetData(cChannel *Channel) = 0; + ///< Sets all source specific parameters to those of the given Channel. + ///< Must also reset a counter to use with later calls to GetOsdItem(). + virtual void GetData(cChannel *Channel) = 0; + ///< Copies all source specific parameters to the given Channel. + virtual cOsdItem *GetOsdItem(void) = 0; + ///< Returns all the OSD items necessary for editing the source + ///< specific parameters of the channel that was given in the last + ///< call to SetData(). Each call to GetOsdItem() returns exactly + ///< one such item. After all items have been fetched, any further + ///< calls to GetOsdItem() return NULL. After another call to + ///< SetData(), the OSD items can be fetched again. + }; + +class cSourceParams : public cList { +public: + cSourceParam *Get(char Source) const; + }; + +extern cSourceParams SourceParams; + +#endif //__SOURCEPARAMS_H diff --git a/sources.c b/sources.c index 65002a5a..66d441d7 100644 --- a/sources.c +++ b/sources.c @@ -4,11 +4,10 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: sources.c 1.4 2008/02/10 14:07:26 kls Exp $ + * $Id: sources.c 2.1 2010/02/28 12:00:31 kls Exp $ */ #include "sources.h" -#include // --- cSource --------------------------------------------------------------- @@ -18,6 +17,12 @@ cSource::cSource(void) description = NULL; } +cSource::cSource(char Source, const char *Description) +{ + code = int(Source) << 24; + description = strdup(Description); +} + cSource::~cSource() { free(description); @@ -36,58 +41,50 @@ cString cSource::ToString(int Code) { char buffer[16]; char *q = buffer; - switch (Code & st_Mask) { - case stCable: *q++ = 'C'; break; - case stSat: *q++ = 'S'; - { - int pos = Code & ~st_Mask; - q += snprintf(q, sizeof(buffer) - 2, "%u.%u", (pos & ~st_Neg) / 10, (pos & ~st_Neg) % 10); // can't simply use "%g" here since the silly 'locale' messes up the decimal point - *q++ = (Code & st_Neg) ? 'E' : 'W'; - } - break; - case stTerr: *q++ = 'T'; break; - default: *q++ = Code + '0'; // backward compatibility - } + *q++ = (Code & st_Mask) >> 24; + int n = (Code & st_Pos); + if (n > 0x00007FFF) + n |= 0xFFFF0000; + if (n) { + q += snprintf(q, sizeof(buffer) - 2, "%u.%u", abs(n) / 10, abs(n) % 10); // can't simply use "%g" here since the silly 'locale' messes up the decimal point + *q++ = (n < 0) ? 'E' : 'W'; + } *q = 0; return buffer; } int cSource::FromString(const char *s) { - int type = stNone; - switch (toupper(*s)) { - case 'C': type = stCable; break; - case 'S': type = stSat; break; - case 'T': type = stTerr; break; - case '0' ... '9': type = *s - '0'; break; // backward compatibility - default: esyslog("ERROR: unknown source key '%c'", *s); - return stNone; - } - int code = type; - if (type == stSat) { - int pos = 0; - bool dot = false; - bool neg = false; - while (*++s) { - switch (toupper(*s)) { - case '0' ... '9': pos *= 10; - pos += *s - '0'; - break; - case '.': dot = true; - break; - case 'E': neg = true; // fall through to 'W' - case 'W': if (!dot) - pos *= 10; - break; - default: esyslog("ERROR: unknown source character '%c'", *s); - return stNone; - } - } - if (neg) - pos |= st_Neg; - code |= pos; + if ('A' <= *s && *s <= 'Z') { + int code = int(*s) << 24; + if (code == stSat) { + int pos = 0; + bool dot = false; + bool neg = false; + while (*++s) { + switch (*s) { + case '0' ... '9': pos *= 10; + pos += *s - '0'; + break; + case '.': dot = true; + break; + case 'E': neg = true; // fall through to 'W' + case 'W': if (!dot) + pos *= 10; + break; + default: esyslog("ERROR: unknown source character '%c'", *s); + return stNone; + } + } + if (neg) + pos = -pos; + code |= (pos & st_Pos); + } + return code; } - return code; + else + esyslog("ERROR: unknown source key '%c'", *s); + return stNone; } int cSource::FromData(eSourceType SourceType, int Position, bool East) @@ -95,7 +92,7 @@ int cSource::FromData(eSourceType SourceType, int Position, bool East) int code = SourceType; if (SourceType == stSat) { if (East) - code |= st_Neg; + Position = -Position; code |= (Position & st_Pos);; } return code; diff --git a/sources.conf b/sources.conf index 13ba2629..034edae8 100644 --- a/sources.conf +++ b/sources.conf @@ -190,8 +190,8 @@ S148W Echostar 1/2 # Cable -C Cable +C DVB-C # Terrestrial -T Terrestrial +T DVB-T diff --git a/sources.h b/sources.h index ae941f84..3d00d2cf 100644 --- a/sources.h +++ b/sources.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: sources.h 1.4 2005/05/14 09:30:41 kls Exp $ + * $Id: sources.h 2.1 2010/02/21 16:11:19 kls Exp $ */ #ifndef __SOURCES_H @@ -15,19 +15,19 @@ class cSource : public cListObject { public: enum eSourceType { - stNone = 0x0000, - stCable = 0x4000, - stSat = 0x8000, - stTerr = 0xC000, - st_Mask = 0xC000, - st_Neg = 0x0800, - st_Pos = 0x07FF, + stNone = 0x00000000, + stCable = ('C' << 24), + stSat = ('S' << 24), + stTerr = ('T' << 24), + st_Mask = 0xFF000000, + st_Pos = 0x0000FFFF, }; private: int code; char *description; public: cSource(void); + cSource(char Source, const char *Description); ~cSource(); int Code(void) const { return code; } const char *Description(void) const { return description; } diff --git a/vdr.5 b/vdr.5 index 9d974abf..7f5cce2e 100644 --- a/vdr.5 +++ b/vdr.5 @@ -8,7 +8,7 @@ .\" License as specified in the file COPYING that comes with the .\" vdr distribution. .\" -.\" $Id: vdr.5 2.14 2010/02/06 15:52:38 kls Exp $ +.\" $Id: vdr.5 2.15 2010/02/21 14:29:06 kls Exp $ .\" .TH vdr 5 "10 Feb 2008" "1.6" "Video Disk Recorder Files" .SH NAME @@ -142,7 +142,7 @@ If in doubt, try 0 (off). (DVB-T only). \fBDelivery System:\fR The satellite delivery system (0 = DVB-S, 1 = DVB-S2). \fBPolarization:\fR Satellite antenna polarization. -h = horizontal, v = vertical, r = circular right, l = circular left. +H = horizontal, V = vertical, R = circular right, L = circular left. The polarization parameters have no integer numbers following them. This is for compatibility with files from older versions and also to keep the DVB-S entries @@ -163,13 +163,13 @@ An example of a parameter field for a DVB-S channel might look like this: An example of a parameter field for a DVB-S2 channel might look like this: \fBhC910M2O35S1\fR +Plugins that implement devices that need their own set of parameters may +store those in the parameters string in arbitrary format (not necessarily +the "character/number" format listed above). The only condition is that +the string may not contain colons (':') or newline characters. .TP .B Source The signal source of this channel, as defined in the file \fIsources.conf\fR. -For compatibility with files from older versions numeric values will be accepted -and also written back correctly, but they will have no meaning for the \fBDiSEqC\fR -settings. You should replace the numerical values with the proper source identifiers -defined in \fIsources.conf\fR. .TP .B Srate The symbol rate of this channel (DVB-S and DVB-C only). @@ -406,6 +406,7 @@ l l. \fBC\fR@Cable \fBT\fR@Terrestrial .TE + and is followed by further data pertaining to that particular source. In case of \fBS\fRatellite this is the orbital position in degrees, followed by \fBE\fR for east or \fBW\fR for west. diff --git a/vdr.c b/vdr.c index e0773015..e7abdcb9 100644 --- a/vdr.c +++ b/vdr.c @@ -22,7 +22,7 @@ * * The project's page is at http://www.tvdr.de * - * $Id: vdr.c 2.16 2010/01/31 11:14:40 kls Exp $ + * $Id: vdr.c 2.17 2010/02/21 14:08:09 kls Exp $ */ #include @@ -58,6 +58,7 @@ #include "shutdown.h" #include "skinclassic.h" #include "skinsttng.h" +#include "sourceparams.h" #include "sources.h" #include "themes.h" #include "timers.h" @@ -1303,6 +1304,7 @@ Exit: Remotes.Clear(); Audios.Clear(); Skins.Clear(); + SourceParams.Clear(); if (ShutdownHandler.GetExitCode() != 2) { Setup.CurrentChannel = cDevice::CurrentChannel(); Setup.CurrentVolume = cDevice::CurrentVolume();