Re-implemented handling of DVB-S2

This commit is contained in:
Klaus Schmidinger 2008-04-12 13:39:12 +02:00
parent 0b82b38533
commit e59c6ac433
38 changed files with 1224 additions and 599 deletions

View File

@ -5729,3 +5729,12 @@ Video Disk Recorder Revision History
- Added Chinese language texts (thanks to Nan Feng). - Added Chinese language texts (thanks to Nan Feng).
- Updated the Portuguese language texts. - Updated the Portuguese language texts.
- Added a note about VDR_CHARSET_OVERRIDE to the INSTALL file. - Added a note about VDR_CHARSET_OVERRIDE to the INSTALL file.
2008-04-12: Version 1.7.0
- Re-implemented handling of DVB-S2, which first appeared in version 1.5.14, but was
revoked in version 1.5.15 in favor of making a stable version 1.6.0. VDR now
requires the "multiproto" DVB driver, e.g. from http://jusst.de/hg/multiproto.
Note that the channels.conf file now supports additional parameters, so you may
want to make sure you have a backup of this file in case you need to go back to
the previous version of VDR!

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: channels.c 1.60 2008/03/05 16:42:50 kls Exp $ * $Id: channels.c 2.1 2008/04/12 11:02:40 kls Exp $
*/ */
#include "channels.h" #include "channels.h"
@ -21,67 +21,114 @@
// --- Channel Parameter Maps ------------------------------------------------ // --- Channel Parameter Maps ------------------------------------------------
const tChannelParameterMap InversionValues[] = { const tChannelParameterMap InversionValues[] = {
{ 0, INVERSION_OFF }, { 0, DVBFE_INVERSION_OFF, trNOOP("off") },
{ 1, INVERSION_ON }, { 1, DVBFE_INVERSION_ON, trNOOP("on") },
{ 999, INVERSION_AUTO }, { 999, DVBFE_INVERSION_AUTO },
{ -1 } { -1 }
}; };
const tChannelParameterMap BandwidthValues[] = { const tChannelParameterMap BandwidthValues[] = {
{ 6, BANDWIDTH_6_MHZ }, { 5, DVBFE_BANDWIDTH_5_MHZ, "5 MHz" },
{ 7, BANDWIDTH_7_MHZ }, { 6, DVBFE_BANDWIDTH_6_MHZ, "6 MHz" },
{ 8, BANDWIDTH_8_MHZ }, { 7, DVBFE_BANDWIDTH_7_MHZ, "7 MHz" },
{ 999, BANDWIDTH_AUTO }, { 8, DVBFE_BANDWIDTH_8_MHZ, "8 MHz" },
{ 999, DVBFE_BANDWIDTH_AUTO },
{ -1 } { -1 }
}; };
const tChannelParameterMap CoderateValues[] = { const tChannelParameterMap CoderateValues[] = {
{ 0, FEC_NONE }, { 0, DVBFE_FEC_NONE, trNOOP("none") },
{ 12, FEC_1_2 }, { 12, DVBFE_FEC_1_2, "1/2" },
{ 23, FEC_2_3 }, { 13, DVBFE_FEC_1_3, "1/3" },
{ 34, FEC_3_4 }, { 14, DVBFE_FEC_1_4, "1/4" },
{ 45, FEC_4_5 }, { 23, DVBFE_FEC_2_3, "2/3" },
{ 56, FEC_5_6 }, { 25, DVBFE_FEC_2_5, "2/5" },
{ 67, FEC_6_7 }, { 34, DVBFE_FEC_3_4, "3/4" },
{ 78, FEC_7_8 }, { 35, DVBFE_FEC_3_5, "3/5" },
{ 89, FEC_8_9 }, { 45, DVBFE_FEC_4_5, "4/5" },
{ 999, FEC_AUTO }, { 56, DVBFE_FEC_5_6, "5/6" },
{ 67, DVBFE_FEC_6_7, "6/7" },
{ 78, DVBFE_FEC_7_8, "7/8" },
{ 89, DVBFE_FEC_8_9, "8/9" },
{ 910, DVBFE_FEC_9_10, "9/10" },
{ 999, DVBFE_FEC_AUTO },
{ -1 } { -1 }
}; };
const tChannelParameterMap ModulationValues[] = { const tChannelParameterMap ModulationValues[] = {
{ 0, QPSK }, { 0, DVBFE_MOD_NONE, trNOOP("none") },
{ 16, QAM_16 }, { 4, DVBFE_MOD_QAM4, "QAM4" },
{ 32, QAM_32 }, { 16, DVBFE_MOD_QAM16, "QAM16" },
{ 64, QAM_64 }, { 32, DVBFE_MOD_QAM32, "QAM32" },
{ 128, QAM_128 }, { 64, DVBFE_MOD_QAM64, "QAM64" },
{ 256, QAM_256 }, { 128, DVBFE_MOD_QAM128, "QAM128" },
{ 999, QAM_AUTO }, { 256, DVBFE_MOD_QAM256, "QAM256" },
{ 512, DVBFE_MOD_QAM512, "QAM512" },
{1024, DVBFE_MOD_QAM1024, "QAM1024" },
{ 1, DVBFE_MOD_BPSK, "BPSK" },
{ 2, DVBFE_MOD_QPSK, "QPSK" },
{ 3, DVBFE_MOD_OQPSK, "OQPSK" },
{ 5, DVBFE_MOD_8PSK, "8PSK" },
{ 6, DVBFE_MOD_16APSK, "16APSK" },
{ 7, DVBFE_MOD_32APSK, "32APSK" },
{ 8, DVBFE_MOD_OFDM, "OFDM" },
{ 9, DVBFE_MOD_COFDM, "COFDM" },
{ 10, DVBFE_MOD_VSB8, "VSB8" },
{ 11, DVBFE_MOD_VSB16, "VSB16" },
{ 998, DVBFE_MOD_QAMAUTO, "QAMAUTO" },
{ 999, DVBFE_MOD_AUTO },
{ -1 }
};
const tChannelParameterMap SystemValues[] = {
{ 0, DVBFE_DELSYS_DVBS, "DVB-S" },
{ 1, DVBFE_DELSYS_DVBS2, "DVB-S2" },
{ -1 } { -1 }
}; };
const tChannelParameterMap TransmissionValues[] = { const tChannelParameterMap TransmissionValues[] = {
{ 2, TRANSMISSION_MODE_2K }, { 2, DVBFE_TRANSMISSION_MODE_2K, "2K" },
{ 8, TRANSMISSION_MODE_8K }, { 4, DVBFE_TRANSMISSION_MODE_4K, "4K" },
{ 999, TRANSMISSION_MODE_AUTO }, { 8, DVBFE_TRANSMISSION_MODE_8K, "8K" },
{ 999, DVBFE_TRANSMISSION_MODE_AUTO },
{ -1 } { -1 }
}; };
const tChannelParameterMap GuardValues[] = { const tChannelParameterMap GuardValues[] = {
{ 4, GUARD_INTERVAL_1_4 }, { 4, DVBFE_GUARD_INTERVAL_1_4, "1/4" },
{ 8, GUARD_INTERVAL_1_8 }, { 8, DVBFE_GUARD_INTERVAL_1_8, "1/8" },
{ 16, GUARD_INTERVAL_1_16 }, { 16, DVBFE_GUARD_INTERVAL_1_16, "1/16" },
{ 32, GUARD_INTERVAL_1_32 }, { 32, DVBFE_GUARD_INTERVAL_1_32, "1/32" },
{ 999, GUARD_INTERVAL_AUTO }, { 999, DVBFE_GUARD_INTERVAL_AUTO },
{ -1 } { -1 }
}; };
const tChannelParameterMap HierarchyValues[] = { const tChannelParameterMap HierarchyValues[] = {
{ 0, HIERARCHY_NONE }, { 0, DVBFE_HIERARCHY_OFF, trNOOP("off") },
{ 1, HIERARCHY_1 }, { 1, DVBFE_HIERARCHY_ON, trNOOP("on") },
{ 2, HIERARCHY_2 }, { 999, DVBFE_HIERARCHY_AUTO },
{ 4, HIERARCHY_4 }, { -1 }
{ 999, HIERARCHY_AUTO }, };
const tChannelParameterMap AlphaValues[] = {
{ 0, 0 },
{ 1, DVBFE_ALPHA_1 },
{ 2, DVBFE_ALPHA_2 },
{ 4, DVBFE_ALPHA_4 },
{ -1 }
};
const tChannelParameterMap PriorityValues[] = {
{ 0, DVBFE_STREAM_PRIORITY_HP, trNOOP("high") },
{ 1, DVBFE_STREAM_PRIORITY_LP, trNOOP("low") },
{ -1 }
};
const tChannelParameterMap RollOffValues[] = {
{ 0, DVBFE_ROLLOFF_UNKNOWN },
{ 20, DVBFE_ROLLOFF_20, "0.20" },
{ 25, DVBFE_ROLLOFF_25, "0.25" },
{ 35, DVBFE_ROLLOFF_35, "0.35" },
{ -1 } { -1 }
}; };
@ -107,11 +154,14 @@ int DriverIndex(int Value, const tChannelParameterMap *Map)
return -1; return -1;
} }
int MapToUser(int Value, const tChannelParameterMap *Map) int MapToUser(int Value, const tChannelParameterMap *Map, const char **String)
{ {
int n = DriverIndex(Value, Map); int n = DriverIndex(Value, Map);
if (n >= 0) if (n >= 0) {
if (String)
*String = tr(Map[n].userString);
return Map[n].userValue; return Map[n].userValue;
}
return -1; return -1;
} }
@ -167,14 +217,18 @@ cChannel::cChannel(void)
provider = strdup(""); provider = strdup("");
portalName = strdup(""); portalName = strdup("");
memset(&__BeginData__, 0, (char *)&__EndData__ - (char *)&__BeginData__); memset(&__BeginData__, 0, (char *)&__EndData__ - (char *)&__BeginData__);
inversion = INVERSION_AUTO; inversion = DVBFE_INVERSION_AUTO;
bandwidth = BANDWIDTH_AUTO; bandwidth = DVBFE_BANDWIDTH_AUTO;
coderateH = FEC_AUTO; coderateH = DVBFE_FEC_AUTO;
coderateL = FEC_AUTO; coderateL = DVBFE_FEC_AUTO;
modulation = QAM_AUTO; modulation = DVBFE_MOD_AUTO;
transmission = TRANSMISSION_MODE_AUTO; system = DVBFE_DELSYS_DVBS;
guard = GUARD_INTERVAL_AUTO; transmission = DVBFE_TRANSMISSION_MODE_AUTO;
hierarchy = HIERARCHY_AUTO; guard = DVBFE_GUARD_INTERVAL_AUTO;
hierarchy = DVBFE_HIERARCHY_AUTO;
alpha = 0;
priority = DVBFE_STREAM_PRIORITY_HP;
rollOff = DVBFE_ROLLOFF_UNKNOWN;
modification = CHANNELMOD_NONE; modification = CHANNELMOD_NONE;
schedule = NULL; schedule = NULL;
linkChannels = NULL; linkChannels = NULL;
@ -277,13 +331,17 @@ void cChannel::CopyTransponderData(const cChannel *Channel)
coderateH = Channel->coderateH; coderateH = Channel->coderateH;
coderateL = Channel->coderateL; coderateL = Channel->coderateL;
modulation = Channel->modulation; modulation = Channel->modulation;
system = Channel->system;
transmission = Channel->transmission; transmission = Channel->transmission;
guard = Channel->guard; guard = Channel->guard;
hierarchy = Channel->hierarchy; hierarchy = Channel->hierarchy;
alpha = Channel->alpha;
priority = Channel->priority;
rollOff = Channel->rollOff;
} }
} }
bool cChannel::SetSatTransponderData(int Source, int Frequency, char Polarization, int Srate, int CoderateH) bool cChannel::SetSatTransponderData(int Source, int Frequency, char Polarization, int Srate, int CoderateH, int Modulation, int System, int RollOff)
{ {
// Workarounds for broadcaster stupidity: // Workarounds for broadcaster stupidity:
// Some providers broadcast the transponder frequency of their channels with two different // Some providers broadcast the transponder frequency of their channels with two different
@ -297,19 +355,22 @@ bool cChannel::SetSatTransponderData(int Source, int Frequency, char Polarizatio
if (abs(srate - Srate) <= 1) if (abs(srate - Srate) <= 1)
Srate = srate; Srate = srate;
if (source != Source || frequency != Frequency || polarization != Polarization || srate != Srate || coderateH != CoderateH) { if (source != Source || frequency != Frequency || polarization != Polarization || srate != Srate || coderateH != CoderateH || modulation != Modulation || system != System || rollOff != RollOff) {
if (Number()) { cString OldParameters = ParametersToString();
dsyslog("changing transponder data of channel %d from %s:%d:%c:%d:%d to %s:%d:%c:%d:%d", Number(), *cSource::ToString(source), frequency, polarization, srate, coderateH, *cSource::ToString(Source), Frequency, Polarization, Srate, CoderateH);
modification |= CHANNELMOD_TRANSP;
Channels.SetModified();
}
source = Source; source = Source;
frequency = Frequency; frequency = Frequency;
polarization = Polarization; polarization = Polarization;
srate = Srate; srate = Srate;
coderateH = CoderateH; coderateH = CoderateH;
modulation = QPSK; modulation = Modulation;
system = System;
rollOff = RollOff;
schedule = NULL; schedule = NULL;
if (Number()) {
dsyslog("changing transponder data of channel %d from %d:%s:%s:%d to %d:%s:%s:%d", Number(), frequency, *OldParameters, *cSource::ToString(source), srate, Frequency, *ParametersToString(), *cSource::ToString(Source), Srate);
modification |= CHANNELMOD_TRANSP;
Channels.SetModified();
}
} }
return true; return true;
} }
@ -317,29 +378,26 @@ bool cChannel::SetSatTransponderData(int Source, int Frequency, char Polarizatio
bool cChannel::SetCableTransponderData(int Source, int Frequency, int Modulation, int Srate, int CoderateH) bool cChannel::SetCableTransponderData(int Source, int Frequency, int Modulation, int Srate, int CoderateH)
{ {
if (source != Source || frequency != Frequency || modulation != Modulation || srate != Srate || coderateH != CoderateH) { if (source != Source || frequency != Frequency || modulation != Modulation || srate != Srate || coderateH != CoderateH) {
if (Number()) { cString OldParameters = ParametersToString();
dsyslog("changing transponder data of channel %d from %s:%d:%d:%d:%d to %s:%d:%d:%d:%d", Number(), *cSource::ToString(source), frequency, modulation, srate, coderateH, *cSource::ToString(Source), Frequency, Modulation, Srate, CoderateH);
modification |= CHANNELMOD_TRANSP;
Channels.SetModified();
}
source = Source; source = Source;
frequency = Frequency; frequency = Frequency;
modulation = Modulation; modulation = Modulation;
srate = Srate; srate = Srate;
coderateH = CoderateH; coderateH = CoderateH;
schedule = NULL; schedule = NULL;
if (Number()) {
dsyslog("changing transponder data of channel %d from %d:%s:%s:%d to %d:%s:%s:%d", Number(), frequency, *OldParameters, *cSource::ToString(source), srate, Frequency, *ParametersToString(), *cSource::ToString(Source), Srate);
modification |= CHANNELMOD_TRANSP;
Channels.SetModified();
}
} }
return true; return true;
} }
bool cChannel::SetTerrTransponderData(int Source, int Frequency, int Bandwidth, int Modulation, int Hierarchy, int CoderateH, int CoderateL, int Guard, int Transmission) bool cChannel::SetTerrTransponderData(int Source, int Frequency, int Bandwidth, int Modulation, int Hierarchy, int CoderateH, int CoderateL, int Guard, int Transmission, int Alpha, int Priority)
{ {
if (source != Source || frequency != Frequency || bandwidth != Bandwidth || modulation != Modulation || hierarchy != Hierarchy || coderateH != CoderateH || coderateL != CoderateL || guard != Guard || transmission != Transmission) { if (source != Source || frequency != Frequency || bandwidth != Bandwidth || modulation != Modulation || hierarchy != Hierarchy || coderateH != CoderateH || coderateL != CoderateL || guard != Guard || transmission != Transmission || alpha != Alpha || priority != Priority) {
if (Number()) { cString OldParameters = ParametersToString();
dsyslog("changing transponder data of channel %d from %s:%d:%d:%d:%d:%d:%d:%d:%d to %s:%d:%d:%d:%d:%d:%d:%d:%d", Number(), *cSource::ToString(source), frequency, bandwidth, modulation, hierarchy, coderateH, coderateL, guard, transmission, *cSource::ToString(Source), Frequency, Bandwidth, Modulation, Hierarchy, CoderateH, CoderateL, Guard, Transmission);
modification |= CHANNELMOD_TRANSP;
Channels.SetModified();
}
source = Source; source = Source;
frequency = Frequency; frequency = Frequency;
bandwidth = Bandwidth; bandwidth = Bandwidth;
@ -349,7 +407,14 @@ bool cChannel::SetTerrTransponderData(int Source, int Frequency, int Bandwidth,
coderateL = CoderateL; coderateL = CoderateL;
guard = Guard; guard = Guard;
transmission = Transmission; transmission = Transmission;
alpha = Alpha;
priority = Priority;
schedule = NULL; schedule = NULL;
if (Number()) {
dsyslog("changing transponder data of channel %d from %d:%s:%s to %d:%s:%s", Number(), frequency, *OldParameters, *cSource::ToString(source), Frequency, *ParametersToString(), *cSource::ToString(Source));
modification |= CHANNELMOD_TRANSP;
Channels.SetModified();
}
} }
return true; return true;
} }
@ -597,13 +662,17 @@ cString cChannel::ParametersToString(void) const
char *q = buffer; char *q = buffer;
*q = 0; *q = 0;
ST(" S ") q += sprintf(q, "%c", polarization); ST(" S ") q += sprintf(q, "%c", polarization);
ST("CST") q += PrintParameter(q, 'I', MapToUser(inversion, InversionValues)); ST(" T") q += PrintParameter(q, 'A', MapToUser(alpha, AlphaValues));
ST(" T") q += PrintParameter(q, 'B', MapToUser(bandwidth, BandwidthValues));
ST("CST") q += PrintParameter(q, 'C', MapToUser(coderateH, CoderateValues)); ST("CST") q += PrintParameter(q, 'C', MapToUser(coderateH, CoderateValues));
ST(" T") q += PrintParameter(q, 'D', MapToUser(coderateL, CoderateValues)); ST(" T") q += PrintParameter(q, 'D', MapToUser(coderateL, CoderateValues));
ST("C T") q += PrintParameter(q, 'M', MapToUser(modulation, ModulationValues));
ST(" T") q += PrintParameter(q, 'B', MapToUser(bandwidth, BandwidthValues));
ST(" T") q += PrintParameter(q, 'T', MapToUser(transmission, TransmissionValues));
ST(" T") q += PrintParameter(q, 'G', MapToUser(guard, GuardValues)); 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(" T") q += PrintParameter(q, 'P', MapToUser(priority, PriorityValues));
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)); ST(" T") q += PrintParameter(q, 'Y', MapToUser(hierarchy, HierarchyValues));
return buffer; return buffer;
} }
@ -628,6 +697,7 @@ bool cChannel::StringToParameters(const char *s)
{ {
while (s && *s) { while (s && *s) {
switch (toupper(*s)) { switch (toupper(*s)) {
case 'A': s = ParseParameter(s, alpha, AlphaValues); break;
case 'B': s = ParseParameter(s, bandwidth, BandwidthValues); break; case 'B': s = ParseParameter(s, bandwidth, BandwidthValues); break;
case 'C': s = ParseParameter(s, coderateH, CoderateValues); break; case 'C': s = ParseParameter(s, coderateH, CoderateValues); break;
case 'D': s = ParseParameter(s, coderateL, CoderateValues); break; case 'D': s = ParseParameter(s, coderateL, CoderateValues); break;
@ -636,7 +706,11 @@ bool cChannel::StringToParameters(const char *s)
case 'I': s = ParseParameter(s, inversion, InversionValues); break; case 'I': s = ParseParameter(s, inversion, InversionValues); break;
case 'L': polarization = *s++; break; case 'L': polarization = *s++; break;
case 'M': s = ParseParameter(s, modulation, ModulationValues); break; case 'M': s = ParseParameter(s, modulation, ModulationValues); break;
case 'Z':// for compatibility with the original DVB-S2 patch - may be removed in future versions
case 'O': s = ParseParameter(s, rollOff, RollOffValues); break;
case 'P': s = ParseParameter(s, priority, PriorityValues); break;
case 'R': polarization = *s++; break; case 'R': polarization = *s++; break;
case 'S': s = ParseParameter(s, system, SystemValues); break;
case 'T': s = ParseParameter(s, transmission, TransmissionValues); break; case 'T': s = ParseParameter(s, transmission, TransmissionValues); break;
case 'V': polarization = *s++; break; case 'V': polarization = *s++; break;
case 'Y': s = ParseParameter(s, hierarchy, HierarchyValues); break; case 'Y': s = ParseParameter(s, hierarchy, HierarchyValues); break;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: channels.h 1.47 2008/02/08 13:48:31 kls Exp $ * $Id: channels.h 2.1 2008/04/12 10:49:51 kls Exp $
*/ */
#ifndef __CHANNELS_H #ifndef __CHANNELS_H
@ -50,10 +50,10 @@
struct tChannelParameterMap { struct tChannelParameterMap {
int userValue; int userValue;
int driverValue; int driverValue;
const char *userString;
}; };
//XXX into cChannel??? int MapToUser(int Value, const tChannelParameterMap *Map, const char **String = NULL);
int MapToUser(int Value, const tChannelParameterMap *Map);
int MapToDriver(int Value, const tChannelParameterMap *Map); int MapToDriver(int Value, const tChannelParameterMap *Map);
int UserIndex(int Value, const tChannelParameterMap *Map); int UserIndex(int Value, const tChannelParameterMap *Map);
int DriverIndex(int Value, const tChannelParameterMap *Map); int DriverIndex(int Value, const tChannelParameterMap *Map);
@ -62,9 +62,13 @@ extern const tChannelParameterMap InversionValues[];
extern const tChannelParameterMap BandwidthValues[]; extern const tChannelParameterMap BandwidthValues[];
extern const tChannelParameterMap CoderateValues[]; extern const tChannelParameterMap CoderateValues[];
extern const tChannelParameterMap ModulationValues[]; extern const tChannelParameterMap ModulationValues[];
extern const tChannelParameterMap SystemValues[];
extern const tChannelParameterMap TransmissionValues[]; extern const tChannelParameterMap TransmissionValues[];
extern const tChannelParameterMap GuardValues[]; extern const tChannelParameterMap GuardValues[];
extern const tChannelParameterMap HierarchyValues[]; extern const tChannelParameterMap HierarchyValues[];
extern const tChannelParameterMap AlphaValues[];
extern const tChannelParameterMap PriorityValues[];
extern const tChannelParameterMap RollOffValues[];
struct tChannelID { struct tChannelID {
private: private:
@ -140,9 +144,13 @@ private:
int coderateH; int coderateH;
int coderateL; int coderateL;
int modulation; int modulation;
int system;
int transmission; int transmission;
int guard; int guard;
int hierarchy; int hierarchy;
int alpha;
int priority;
int rollOff;
int __EndData__; int __EndData__;
int modification; int modification;
mutable const cSchedule *schedule; mutable const cSchedule *schedule;
@ -194,9 +202,13 @@ public:
int CoderateH(void) const { return coderateH; } int CoderateH(void) const { return coderateH; }
int CoderateL(void) const { return coderateL; } int CoderateL(void) const { return coderateL; }
int Modulation(void) const { return modulation; } int Modulation(void) const { return modulation; }
int System(void) const { return system; }
int Transmission(void) const { return transmission; } int Transmission(void) const { return transmission; }
int Guard(void) const { return guard; } int Guard(void) const { return guard; }
int Hierarchy(void) const { return hierarchy; } int Hierarchy(void) const { return hierarchy; }
int Alpha(void) const { return alpha; }
int Priority(void) const { return priority; }
int RollOff(void) const { return rollOff; }
const cLinkChannels* LinkChannels(void) const { return linkChannels; } const cLinkChannels* LinkChannels(void) const { return linkChannels; }
const cChannel *RefChannel(void) const { return refChannel; } const cChannel *RefChannel(void) const { return refChannel; }
bool IsCable(void) const { return cSource::IsCable(source); } bool IsCable(void) const { return cSource::IsCable(source); }
@ -206,9 +218,9 @@ public:
bool HasTimer(void) const; bool HasTimer(void) const;
int Modification(int Mask = CHANNELMOD_ALL); int Modification(int Mask = CHANNELMOD_ALL);
void CopyTransponderData(const cChannel *Channel); void CopyTransponderData(const cChannel *Channel);
bool SetSatTransponderData(int Source, int Frequency, char Polarization, int Srate, int CoderateH); 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 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 SetTerrTransponderData(int Source, int Frequency, int Bandwidth, int Modulation, int Hierarchy, int CodeRateH, int CodeRateL, int Guard, int Transmission, int Alpha, int Priority);
void SetId(int Nid, int Tid, int Sid, int Rid = 0); void SetId(int Nid, int Tid, int Sid, int Rid = 0);
void SetName(const char *Name, const char *ShortName, const char *Provider); void SetName(const char *Name, const char *ShortName, const char *Provider);
void SetPortalName(const char *PortalName); void SetPortalName(const char *PortalName);

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: config.h 1.310 2008/03/23 10:26:10 kls Exp $ * $Id: config.h 2.1 2008/04/12 13:02:10 kls Exp $
*/ */
#ifndef __CONFIG_H #ifndef __CONFIG_H
@ -22,13 +22,13 @@
// VDR's own version number: // VDR's own version number:
#define VDRVERSION "1.6.0" #define VDRVERSION "1.7.0"
#define VDRVERSNUM 10600 // Version * 10000 + Major * 100 + Minor #define VDRVERSNUM 10700 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number: // The plugin API's version number:
#define APIVERSION "1.6.0" #define APIVERSION "1.7.0"
#define APIVERSNUM 10600 // Version * 10000 + Major * 100 + Minor #define APIVERSNUM 10700 // Version * 10000 + Major * 100 + Minor
// When loading plugins, VDR searches them by their APIVERSION, which // When loading plugins, VDR searches them by their APIVERSION, which
// may be smaller than VDRVERSION in case there have been no changes to // may be smaller than VDRVERSION in case there have been no changes to

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: device.c 1.157 2008/03/09 10:03:34 kls Exp $ * $Id: device.c 2.1 2008/04/12 11:15:32 kls Exp $
*/ */
#include "device.h" #include "device.h"
@ -355,6 +355,21 @@ cDevice *cDevice::GetDevice(int Index)
return (0 <= Index && Index < numDevices) ? device[Index] : NULL; return (0 <= Index && Index < numDevices) ? device[Index] : NULL;
} }
static int GetClippedNumProvidedSystems(int AvailableBits, cDevice *Device)
{
int MaxNumProvidedSystems = 1 << AvailableBits;
int NumProvidedSystems = Device->NumProvidedSystems();
if (NumProvidedSystems > MaxNumProvidedSystems) {
esyslog("ERROR: device %d supports %d modulation systems but cDevice::GetDevice() currently only supports %d delivery systems which should be fixed", Device->CardIndex() + 1, NumProvidedSystems, MaxNumProvidedSystems);
NumProvidedSystems = MaxNumProvidedSystems;
}
else if (NumProvidedSystems <= 0) {
esyslog("ERROR: device %d reported an invalid number (%d) of supported delivery systems - assuming 1", Device->CardIndex() + 1, NumProvidedSystems);
NumProvidedSystems = 1;
}
return NumProvidedSystems;
}
cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView) cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView)
{ {
cDevice *AvoidDevice = avoidDevice; cDevice *AvoidDevice = avoidDevice;
@ -408,6 +423,7 @@ cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool LiveView
imp <<= 1; imp |= LiveView ? !device[i]->IsPrimaryDevice() || ndr : 0; // prefer the primary device for live viewing if we don't need to detach existing receivers imp <<= 1; imp |= LiveView ? !device[i]->IsPrimaryDevice() || ndr : 0; // prefer the primary device for live viewing if we don't need to detach existing receivers
imp <<= 1; imp |= !device[i]->Receiving() && (device[i] != cTransferControl::ReceiverDevice() || device[i]->IsPrimaryDevice()) || ndr; // use receiving devices if we don't need to detach existing receivers, but avoid primary device in local transfer mode imp <<= 1; imp |= !device[i]->Receiving() && (device[i] != cTransferControl::ReceiverDevice() || device[i]->IsPrimaryDevice()) || ndr; // use receiving devices if we don't need to detach existing receivers, but avoid primary device in local transfer mode
imp <<= 1; imp |= device[i]->Receiving(); // avoid devices that are receiving imp <<= 1; imp |= device[i]->Receiving(); // avoid devices that are receiving
imp <<= 2; imp |= GetClippedNumProvidedSystems(2, device[i]) - 1; // avoid cards which support multiple delivery systems
imp <<= 1; imp |= device[i] == cTransferControl::ReceiverDevice(); // avoid the Transfer Mode receiver device imp <<= 1; imp |= device[i] == cTransferControl::ReceiverDevice(); // avoid the Transfer Mode receiver device
imp <<= 8; imp |= min(max(device[i]->Priority() + MAXPRIORITY, 0), 0xFF); // use the device with the lowest priority (+MAXPRIORITY to assure that values -99..99 can be used) imp <<= 8; imp |= min(max(device[i]->Priority() + MAXPRIORITY, 0), 0xFF); // use the device with the lowest priority (+MAXPRIORITY to assure that values -99..99 can be used)
imp <<= 8; imp |= min(max((NumUsableSlots ? SlotPriority[j] : 0) + MAXPRIORITY, 0), 0xFF); // use the CAM slot with the lowest priority (+MAXPRIORITY to assure that values -99..99 can be used) imp <<= 8; imp |= min(max((NumUsableSlots ? SlotPriority[j] : 0) + MAXPRIORITY, 0), 0xFF); // use the CAM slot with the lowest priority (+MAXPRIORITY to assure that values -99..99 can be used)
@ -712,6 +728,11 @@ bool cDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Needs
return false; return false;
} }
int cDevice::NumProvidedSystems(void) const
{
return 0;
}
bool cDevice::IsTunedToTransponder(const cChannel *Channel) bool cDevice::IsTunedToTransponder(const cChannel *Channel)
{ {
return false; return false;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: device.h 1.91 2008/02/23 13:13:04 kls Exp $ * $Id: device.h 2.1 2008/04/12 11:11:23 kls Exp $
*/ */
#ifndef __DEVICE_H #ifndef __DEVICE_H
@ -228,6 +228,12 @@ public:
///< function itself actually returns true. ///< function itself actually returns true.
///< The default implementation always returns false, so a derived cDevice ///< The default implementation always returns false, so a derived cDevice
///< class that can provide channels must implement this function. ///< class that can provide channels must implement this function.
virtual int NumProvidedSystems(void) const;
///< Returns the number of individual "delivery systems" this device provides.
///< The default implementation returns 0, so any derived class that can
///< actually provide channels must implement this function.
///< The result of this function is used when selecting a device, in order
///< to avoid devices that provide more than one system.
virtual bool IsTunedToTransponder(const cChannel *Channel); virtual bool IsTunedToTransponder(const cChannel *Channel);
///< Returns true if this device is currently tuned to the given Channel's ///< Returns true if this device is currently tuned to the given Channel's
///< transponder. ///< transponder.

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: dvbdevice.c 1.170 2008/02/09 16:11:44 kls Exp $ * $Id: dvbdevice.c 2.1 2008/04/12 11:32:56 kls Exp $
*/ */
#include "dvbdevice.h" #include "dvbdevice.h"
@ -76,7 +76,7 @@ private:
int tuneTimeout; int tuneTimeout;
int lockTimeout; int lockTimeout;
time_t lastTimeoutReport; time_t lastTimeoutReport;
fe_type_t frontendType; dvbfe_delsys frontendType;
cChannel channel; cChannel channel;
const char *diseqcCommands; const char *diseqcCommands;
eTunerStatus tunerStatus; eTunerStatus tunerStatus;
@ -87,14 +87,14 @@ private:
bool SetFrontend(void); bool SetFrontend(void);
virtual void Action(void); virtual void Action(void);
public: public:
cDvbTuner(int Fd_Frontend, int CardIndex, fe_type_t FrontendType); cDvbTuner(int Fd_Frontend, int CardIndex, dvbfe_delsys FrontendType);
virtual ~cDvbTuner(); virtual ~cDvbTuner();
bool IsTunedTo(const cChannel *Channel) const; bool IsTunedTo(const cChannel *Channel) const;
void Set(const cChannel *Channel, bool Tune); void Set(const cChannel *Channel, bool Tune);
bool Locked(int TimeoutMs = 0); bool Locked(int TimeoutMs = 0);
}; };
cDvbTuner::cDvbTuner(int Fd_Frontend, int CardIndex, fe_type_t FrontendType) cDvbTuner::cDvbTuner(int Fd_Frontend, int CardIndex, dvbfe_delsys FrontendType)
{ {
fd_frontend = Fd_Frontend; fd_frontend = Fd_Frontend;
cardIndex = CardIndex; cardIndex = CardIndex;
@ -104,7 +104,7 @@ cDvbTuner::cDvbTuner(int Fd_Frontend, int CardIndex, fe_type_t FrontendType)
lastTimeoutReport = 0; lastTimeoutReport = 0;
diseqcCommands = NULL; diseqcCommands = NULL;
tunerStatus = tsIdle; tunerStatus = tsIdle;
if (frontendType == FE_QPSK) if (frontendType & (DVBFE_DELSYS_DVBS | DVBFE_DELSYS_DVBS2))
CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_13)); // must explicitly turn on LNB power CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_13)); // must explicitly turn on LNB power
SetDescription("tuner on device %d", cardIndex + 1); SetDescription("tuner on device %d", cardIndex + 1);
Start(); Start();
@ -120,7 +120,26 @@ cDvbTuner::~cDvbTuner()
bool cDvbTuner::IsTunedTo(const cChannel *Channel) const bool cDvbTuner::IsTunedTo(const cChannel *Channel) const
{ {
return tunerStatus != tsIdle && channel.Source() == Channel->Source() && channel.Transponder() == Channel->Transponder(); if (tunerStatus == tsIdle)
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", Alpha);
ST(" T", Bandwidth);
ST("CST", CoderateH);
ST(" T", CoderateL);
ST(" T", Guard);
ST("CST", Inversion);
ST("CST", Modulation);
ST(" S ", RollOff);
ST(" T", Priority);
ST(" S ", System);
ST(" T", Transmission);
ST(" T", Hierarchy);
return true;
} }
void cDvbTuner::Set(const cChannel *Channel, bool Tune) void cDvbTuner::Set(const cChannel *Channel, bool Tune)
@ -173,114 +192,126 @@ static unsigned int FrequencyToHz(unsigned int f)
bool cDvbTuner::SetFrontend(void) bool cDvbTuner::SetFrontend(void)
{ {
dvb_frontend_parameters Frontend; dvbfe_params Frontend;
memset(&Frontend, 0, sizeof(Frontend)); memset(&Frontend, 0, sizeof(Frontend));
switch (frontendType) { if (frontendType & (DVBFE_DELSYS_DVBS | DVBFE_DELSYS_DVBS2)) {
case FE_QPSK: { // DVB-S unsigned int frequency = channel.Frequency();
if (Setup.DiSEqC) {
unsigned int frequency = channel.Frequency(); cDiseqc *diseqc = Diseqcs.Get(channel.Source(), channel.Frequency(), channel.Polarization());
if (diseqc) {
if (Setup.DiSEqC) { if (diseqc->Commands() && (!diseqcCommands || strcmp(diseqcCommands, diseqc->Commands()) != 0)) {
cDiseqc *diseqc = Diseqcs.Get(channel.Source(), channel.Frequency(), channel.Polarization()); cDiseqc::eDiseqcActions da;
if (diseqc) { for (char *CurrentAction = NULL; (da = diseqc->Execute(&CurrentAction)) != cDiseqc::daNone; ) {
if (diseqc->Commands() && (!diseqcCommands || strcmp(diseqcCommands, diseqc->Commands()) != 0)) { switch (da) {
cDiseqc::eDiseqcActions da; case cDiseqc::daNone: break;
for (char *CurrentAction = NULL; (da = diseqc->Execute(&CurrentAction)) != cDiseqc::daNone; ) { case cDiseqc::daToneOff: CHECK(ioctl(fd_frontend, FE_SET_TONE, SEC_TONE_OFF)); break;
switch (da) { case cDiseqc::daToneOn: CHECK(ioctl(fd_frontend, FE_SET_TONE, SEC_TONE_ON)); break;
case cDiseqc::daNone: break; case cDiseqc::daVoltage13: CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_13)); break;
case cDiseqc::daToneOff: CHECK(ioctl(fd_frontend, FE_SET_TONE, SEC_TONE_OFF)); break; case cDiseqc::daVoltage18: CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_18)); break;
case cDiseqc::daToneOn: CHECK(ioctl(fd_frontend, FE_SET_TONE, SEC_TONE_ON)); break; case cDiseqc::daMiniA: CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_BURST, SEC_MINI_A)); break;
case cDiseqc::daVoltage13: CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_13)); break; case cDiseqc::daMiniB: CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_BURST, SEC_MINI_B)); break;
case cDiseqc::daVoltage18: CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_18)); break; case cDiseqc::daCodes: {
case cDiseqc::daMiniA: CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_BURST, SEC_MINI_A)); break; int n = 0;
case cDiseqc::daMiniB: CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_BURST, SEC_MINI_B)); break; uchar *codes = diseqc->Codes(n);
case cDiseqc::daCodes: { if (codes) {
int n = 0; struct dvb_diseqc_master_cmd cmd;
uchar *codes = diseqc->Codes(n); memcpy(cmd.msg, codes, min(n, int(sizeof(cmd.msg))));
if (codes) { cmd.msg_len = n;
struct dvb_diseqc_master_cmd cmd; CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &cmd));
memcpy(cmd.msg, codes, min(n, int(sizeof(cmd.msg)))); }
cmd.msg_len = n; }
CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &cmd)); break;
} }
}
break;
}
}
diseqcCommands = diseqc->Commands();
} }
frequency -= diseqc->Lof(); diseqcCommands = diseqc->Commands();
} }
else { frequency -= diseqc->Lof();
esyslog("ERROR: no DiSEqC parameters found for channel %d", channel.Number()); }
return false; else {
} esyslog("ERROR: no DiSEqC parameters found for channel %d", channel.Number());
} return false;
else { }
int tone = SEC_TONE_OFF; }
else {
int tone = SEC_TONE_OFF;
if (frequency < (unsigned int)Setup.LnbSLOF) {
frequency -= Setup.LnbFrequLo;
tone = SEC_TONE_OFF;
}
else {
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;
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
if (frequency < (unsigned int)Setup.LnbSLOF) { Frontend.delivery = dvbfe_delsys(channel.System());
frequency -= Setup.LnbFrequLo; Frontend.frequency = frequency * 1000UL;
tone = SEC_TONE_OFF; Frontend.inversion = fe_spectral_inversion_t(channel.Inversion());
} if (Frontend.delivery == DVBFE_DELSYS_DVBS) {
else { Frontend.delsys.dvbs.modulation = dvbfe_modulation(channel.Modulation());
frequency -= Setup.LnbFrequHi; Frontend.delsys.dvbs.symbol_rate = channel.Srate() * 1000UL;
tone = SEC_TONE_ON; Frontend.delsys.dvbs.fec = dvbfe_fec(channel.CoderateH());
} }
int volt = (channel.Polarization() == 'v' || channel.Polarization() == 'V' || channel.Polarization() == 'r' || channel.Polarization() == 'R') ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18; else {
CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, volt)); Frontend.delsys.dvbs2.modulation = dvbfe_modulation(channel.Modulation());
CHECK(ioctl(fd_frontend, FE_SET_TONE, tone)); Frontend.delsys.dvbs2.symbol_rate = channel.Srate() * 1000UL;
} Frontend.delsys.dvbs2.fec = dvbfe_fec(channel.CoderateH());
Frontend.delsys.dvbs2.rolloff = dvbfe_rolloff(channel.RollOff());
}
frequency = abs(frequency); // Allow for C-band, where the frequency is less than the LOF tuneTimeout = DVBS_TUNE_TIMEOUT;
Frontend.frequency = frequency * 1000UL; lockTimeout = DVBS_LOCK_TIMEOUT;
Frontend.inversion = fe_spectral_inversion_t(channel.Inversion());
Frontend.u.qpsk.symbol_rate = channel.Srate() * 1000UL;
Frontend.u.qpsk.fec_inner = fe_code_rate_t(channel.CoderateH());
tuneTimeout = DVBS_TUNE_TIMEOUT; dvbfe_info feinfo;
lockTimeout = DVBS_LOCK_TIMEOUT; feinfo.delivery = Frontend.delivery;
} CHECK(ioctl(fd_frontend, DVBFE_GET_INFO, &feinfo)); //switch system
break; }
case FE_QAM: { // DVB-C else if (frontendType & DVBFE_DELSYS_DVBC) {
Frontend.delivery = DVBFE_DELSYS_DVBC;
Frontend.frequency = FrequencyToHz(channel.Frequency());
Frontend.inversion = fe_spectral_inversion_t(channel.Inversion());
Frontend.delsys.dvbc.symbol_rate = channel.Srate() * 1000UL;
Frontend.delsys.dvbc.fec = dvbfe_fec(channel.CoderateH());
Frontend.delsys.dvbc.modulation = dvbfe_modulation(channel.Modulation());
// Frequency and symbol rate: tuneTimeout = DVBC_TUNE_TIMEOUT;
lockTimeout = DVBC_LOCK_TIMEOUT;
Frontend.frequency = FrequencyToHz(channel.Frequency()); dvbfe_info feinfo;
Frontend.inversion = fe_spectral_inversion_t(channel.Inversion()); feinfo.delivery = Frontend.delivery;
Frontend.u.qam.symbol_rate = channel.Srate() * 1000UL; CHECK(ioctl(fd_frontend, DVBFE_GET_INFO, &feinfo)); //switch system
Frontend.u.qam.fec_inner = fe_code_rate_t(channel.CoderateH()); }
Frontend.u.qam.modulation = fe_modulation_t(channel.Modulation()); else if (frontendType & DVBFE_DELSYS_DVBT) {
Frontend.delivery = DVBFE_DELSYS_DVBT;
Frontend.frequency = FrequencyToHz(channel.Frequency());
Frontend.inversion = fe_spectral_inversion_t(channel.Inversion());
Frontend.delsys.dvbt.bandwidth = dvbfe_bandwidth(channel.Bandwidth());
Frontend.delsys.dvbt.code_rate_HP = dvbfe_fec(channel.CoderateH());
Frontend.delsys.dvbt.code_rate_LP = dvbfe_fec(channel.CoderateL());
Frontend.delsys.dvbt.constellation = dvbfe_modulation(channel.Modulation());
Frontend.delsys.dvbt.transmission_mode = dvbfe_transmission_mode(channel.Transmission());
Frontend.delsys.dvbt.guard_interval = dvbfe_guard_interval(channel.Guard());
Frontend.delsys.dvbt.hierarchy = dvbfe_hierarchy(channel.Hierarchy());
Frontend.delsys.dvbt.alpha = dvbfe_alpha(channel.Alpha());
Frontend.delsys.dvbt.priority = dvbfe_stream_priority(channel.Priority());
tuneTimeout = DVBC_TUNE_TIMEOUT; tuneTimeout = DVBT_TUNE_TIMEOUT;
lockTimeout = DVBC_LOCK_TIMEOUT; lockTimeout = DVBT_LOCK_TIMEOUT;
}
break;
case FE_OFDM: { // DVB-T
// Frequency and OFDM paramaters: dvbfe_info feinfo;
feinfo.delivery = Frontend.delivery;
Frontend.frequency = FrequencyToHz(channel.Frequency()); CHECK(ioctl(fd_frontend, DVBFE_GET_INFO, &feinfo)); //switch system
Frontend.inversion = fe_spectral_inversion_t(channel.Inversion()); }
Frontend.u.ofdm.bandwidth = fe_bandwidth_t(channel.Bandwidth()); else {
Frontend.u.ofdm.code_rate_HP = fe_code_rate_t(channel.CoderateH()); esyslog("ERROR: attempt to set channel with unknown DVB frontend type");
Frontend.u.ofdm.code_rate_LP = fe_code_rate_t(channel.CoderateL()); return false;
Frontend.u.ofdm.constellation = fe_modulation_t(channel.Modulation());
Frontend.u.ofdm.transmission_mode = fe_transmit_mode_t(channel.Transmission());
Frontend.u.ofdm.guard_interval = fe_guard_interval_t(channel.Guard());
Frontend.u.ofdm.hierarchy_information = fe_hierarchy_t(channel.Hierarchy());
tuneTimeout = DVBT_TUNE_TIMEOUT;
lockTimeout = DVBT_LOCK_TIMEOUT;
}
break;
default:
esyslog("ERROR: attempt to set channel with unknown DVB frontend type");
return false;
} }
if (ioctl(fd_frontend, FE_SET_FRONTEND, &Frontend) < 0) { if (ioctl(fd_frontend, DVBFE_SET_PARAMS, &Frontend) < 0) {
esyslog("ERROR: frontend %d: %m", cardIndex); esyslog("ERROR: frontend %d: %m", cardIndex);
return false; return false;
} }
@ -351,11 +382,23 @@ void cDvbTuner::Action(void)
int cDvbDevice::devVideoOffset = -1; int cDvbDevice::devVideoOffset = -1;
int cDvbDevice::setTransferModeForDolbyDigital = 1; int cDvbDevice::setTransferModeForDolbyDigital = 1;
const char *DeliverySystems[] = {
"DVBS",
"DSS",
"DVBS2",
"DVBC",
"DVBT",
"DVBH",
"ATSC",
NULL
};
cDvbDevice::cDvbDevice(int n) cDvbDevice::cDvbDevice(int n)
{ {
ciAdapter = NULL; ciAdapter = NULL;
dvbTuner = NULL; dvbTuner = NULL;
frontendType = fe_type_t(-1); // don't know how else to initialize this - there is no FE_UNKNOWN frontendType = DVBFE_DELSYS_DUMMY;
numProvidedSystems = 0;
spuDecoder = NULL; spuDecoder = NULL;
digitalAudio = false; digitalAudio = false;
playMode = pmNone; playMode = pmNone;
@ -417,9 +460,22 @@ cDvbDevice::cDvbDevice(int n)
// We only check the devices that must be present - the others will be checked before accessing them://XXX // We only check the devices that must be present - the others will be checked before accessing them://XXX
if (fd_frontend >= 0) { if (fd_frontend >= 0) {
dvb_frontend_info feinfo; if (ioctl(fd_frontend, DVBFE_GET_DELSYS, &frontendType) >= 0) {
if (ioctl(fd_frontend, FE_GET_INFO, &feinfo) >= 0) { const char **DeliverySystem = DeliverySystems;
frontendType = feinfo.type; cString ds;
for (int i = 0; i < 32; i++) {
if (frontendType & (1u << i)) {
numProvidedSystems++;
if (*DeliverySystem)
ds = cString::sprintf("%s %s", *ds ? *ds : "", *DeliverySystem);
else
esyslog("ERROR: unknown delivery system %d", i);
}
if (*DeliverySystem)
DeliverySystem++;
}
if (*ds)
isyslog("device %d provides:%s", CardIndex() + 1, *ds);
dvbTuner = new cDvbTuner(fd_frontend, CardIndex(), frontendType); dvbTuner = new cDvbTuner(fd_frontend, CardIndex(), frontendType);
} }
else else
@ -744,14 +800,20 @@ bool cDvbDevice::ProvidesSource(int Source) const
{ {
int type = Source & cSource::st_Mask; int type = Source & cSource::st_Mask;
return type == cSource::stNone return type == cSource::stNone
|| type == cSource::stCable && frontendType == FE_QAM || type == cSource::stCable && (frontendType & DVBFE_DELSYS_DVBC)
|| type == cSource::stSat && frontendType == FE_QPSK || type == cSource::stSat && (frontendType & (DVBFE_DELSYS_DVBS | DVBFE_DELSYS_DVBS2))
|| type == cSource::stTerr && frontendType == FE_OFDM; || type == cSource::stTerr && (frontendType & DVBFE_DELSYS_DVBT);
} }
bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const
{ {
return ProvidesSource(Channel->Source()) && (!cSource::IsSat(Channel->Source()) || !Setup.DiSEqC || Diseqcs.Get(Channel->Source(), Channel->Frequency(), Channel->Polarization())); if (!ProvidesSource(Channel->Source()))
return false; // doesn't provide source
if (!cSource::IsSat(Channel->Source()))
return true; // source is sufficient for non sat
if (!(frontendType & Channel->System()))
return false; // requires modulation system which frontend doesn't provide
return !Setup.DiSEqC || Diseqcs.Get(Channel->Source(), Channel->Frequency(), Channel->Polarization());
} }
bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *NeedsDetachReceivers) const bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *NeedsDetachReceivers) const
@ -760,7 +822,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
bool hasPriority = Priority < 0 || Priority > this->Priority(); bool hasPriority = Priority < 0 || Priority > this->Priority();
bool needsDetachReceivers = false; bool needsDetachReceivers = false;
if (ProvidesSource(Channel->Source())) { if (ProvidesTransponder(Channel)) {
result = hasPriority; result = hasPriority;
if (Priority >= 0 && Receiving(true)) { if (Priority >= 0 && Receiving(true)) {
if (dvbTuner->IsTunedTo(Channel)) { if (dvbTuner->IsTunedTo(Channel)) {
@ -792,6 +854,11 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
return result; return result;
} }
int cDvbDevice::NumProvidedSystems(void) const
{
return numProvidedSystems;
}
bool cDvbDevice::IsTunedToTransponder(const cChannel *Channel) bool cDvbDevice::IsTunedToTransponder(const cChannel *Channel)
{ {
return dvbTuner->IsTunedTo(Channel); return dvbTuner->IsTunedTo(Channel);

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: dvbdevice.h 1.47 2008/02/08 13:48:31 kls Exp $ * $Id: dvbdevice.h 2.1 2008/04/12 11:20:48 kls Exp $
*/ */
#ifndef __DVBDEVICE_H #ifndef __DVBDEVICE_H
@ -15,8 +15,8 @@
#include "device.h" #include "device.h"
#include "dvbspu.h" #include "dvbspu.h"
#if DVB_API_VERSION != 3 #if DVB_API_VERSION != 3 || DVB_API_VERSION_MINOR != 3
#error VDR requires Linux DVB driver API version 3! #error VDR requires Linux DVB driver API version 3.3!
#endif #endif
#define MAXDVBDEVICES 8 #define MAXDVBDEVICES 8
@ -35,7 +35,8 @@ public:
///< Must be called before accessing any DVB functions. ///< Must be called before accessing any DVB functions.
///< \return True if any devices are available. ///< \return True if any devices are available.
private: private:
fe_type_t frontendType; dvbfe_delsys frontendType;
int numProvidedSystems;
int fd_osd, fd_audio, fd_video, fd_dvr, fd_stc, fd_ca; int fd_osd, fd_audio, fd_video, fd_dvr, fd_stc, fd_ca;
protected: protected:
virtual void MakePrimaryDevice(bool On); virtual void MakePrimaryDevice(bool On);
@ -66,6 +67,7 @@ public:
virtual bool ProvidesSource(int Source) const; virtual bool ProvidesSource(int Source) const;
virtual bool ProvidesTransponder(const cChannel *Channel) const; virtual bool ProvidesTransponder(const cChannel *Channel) const;
virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, bool *NeedsDetachReceivers = NULL) const; virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, bool *NeedsDetachReceivers = NULL) const;
virtual int NumProvidedSystems(void) const;
virtual bool IsTunedToTransponder(const cChannel *Channel); virtual bool IsTunedToTransponder(const cChannel *Channel);
protected: protected:
virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);

80
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menu.c 1.482 2008/03/16 11:15:28 kls Exp $ * $Id: menu.c 2.1 2008/04/12 11:37:17 kls Exp $
*/ */
#include "menu.h" #include "menu.h"
@ -182,70 +182,6 @@ eOSState cMenuEditSrcItem::ProcessKey(eKeys Key)
return state; return state;
} }
// --- cMenuEditMapItem ------------------------------------------------------
class cMenuEditMapItem : public cMenuEditItem {
protected:
int *value;
const tChannelParameterMap *map;
const char *zeroString;
virtual void Set(void);
public:
cMenuEditMapItem(const char *Name, int *Value, const tChannelParameterMap *Map, const char *ZeroString = NULL);
virtual eOSState ProcessKey(eKeys Key);
};
cMenuEditMapItem::cMenuEditMapItem(const char *Name, int *Value, const tChannelParameterMap *Map, const char *ZeroString)
:cMenuEditItem(Name)
{
value = Value;
map = Map;
zeroString = ZeroString;
Set();
}
void cMenuEditMapItem::Set(void)
{
int n = MapToUser(*value, map);
if (n == 999)
SetValue(tr("auto"));
else if (n == 0 && zeroString)
SetValue(zeroString);
else if (n >= 0) {
char buf[16];
snprintf(buf, sizeof(buf), "%d", n);
SetValue(buf);
}
else
SetValue("???");
}
eOSState cMenuEditMapItem::ProcessKey(eKeys Key)
{
eOSState state = cMenuEditItem::ProcessKey(Key);
if (state == osUnknown) {
int newValue = *value;
int n = DriverIndex(*value, map);
if (NORMALKEY(Key) == kLeft) { // TODO might want to increase the delta if repeated quickly?
if (n-- > 0)
newValue = map[n].driverValue;
}
else if (NORMALKEY(Key) == kRight) {
if (map[++n].userValue >= 0)
newValue = map[n].driverValue;
}
else
return state;
if (newValue != *value) {
*value = newValue;
Set();
}
state = osContinue;
}
return state;
}
// --- cMenuEditChannel ------------------------------------------------------ // --- cMenuEditChannel ------------------------------------------------------
class cMenuEditChannel : public cOsdMenu { class cMenuEditChannel : public cOsdMenu {
@ -306,15 +242,19 @@ void cMenuEditChannel::Setup(void)
XXX*/ XXX*/
// Parameters for specific types of sources: // Parameters for specific types of sources:
ST(" S ") Add(new cMenuEditChrItem( tr("Polarization"), &data.polarization, "hvlr")); 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("CS ") Add(new cMenuEditIntItem( tr("Srate"), &data.srate));
ST("CST") Add(new cMenuEditMapItem( tr("Inversion"), &data.inversion, InversionValues, tr("off"))); ST("CST") Add(new cMenuEditMapItem( tr("Inversion"), &data.inversion, InversionValues));
ST("CST") Add(new cMenuEditMapItem( tr("CoderateH"), &data.coderateH, CoderateValues, tr("none"))); ST("CST") Add(new cMenuEditMapItem( tr("CoderateH"), &data.coderateH, CoderateValues));
ST(" T") Add(new cMenuEditMapItem( tr("CoderateL"), &data.coderateL, CoderateValues, tr("none"))); ST(" T") Add(new cMenuEditMapItem( tr("CoderateL"), &data.coderateL, CoderateValues));
ST("C T") Add(new cMenuEditMapItem( tr("Modulation"), &data.modulation, ModulationValues, "QPSK")); 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("Bandwidth"), &data.bandwidth, BandwidthValues));
ST(" T") Add(new cMenuEditMapItem( tr("Transmission"), &data.transmission, TransmissionValues)); 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("Guard"), &data.guard, GuardValues));
ST(" T") Add(new cMenuEditMapItem( tr("Hierarchy"), &data.hierarchy, HierarchyValues, tr("none"))); ST(" T") Add(new cMenuEditMapItem( tr("Hierarchy"), &data.hierarchy, HierarchyValues));
ST(" T") Add(new cMenuEditMapItem( tr("Alpha"), &data.alpha, AlphaValues));
ST(" T") Add(new cMenuEditMapItem( tr("Priority"), &data.priority, PriorityValues));
ST(" S ") Add(new cMenuEditMapItem( tr("Rolloff"), &data.rollOff, RollOffValues));
SetCurrent(Get(current)); SetCurrent(Get(current));
Display(); Display();

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menuitems.c 1.58 2008/02/10 16:03:30 kls Exp $ * $Id: menuitems.c 2.1 2008/04/12 12:05:25 kls Exp $
*/ */
#include "menuitems.h" #include "menuitems.h"
@ -936,6 +936,64 @@ eOSState cMenuEditTimeItem::ProcessKey(eKeys Key)
return state; return state;
} }
// --- cMenuEditMapItem ------------------------------------------------------
cMenuEditMapItem::cMenuEditMapItem(const char *Name, int *Value, const tChannelParameterMap *Map, const char *ZeroString)
:cMenuEditItem(Name)
{
value = Value;
map = Map;
zeroString = ZeroString;
Set();
}
void cMenuEditMapItem::Set(void)
{
const char *s = NULL;
int n = MapToUser(*value, map, &s);
if (n == 999)
SetValue(tr("auto"));
else if (n == 0 && zeroString)
SetValue(zeroString);
else if (n >= 0) {
if (s)
SetValue(s);
else {
char buf[16];
snprintf(buf, sizeof(buf), "%d", n);
SetValue(buf);
}
}
else
SetValue("???");
}
eOSState cMenuEditMapItem::ProcessKey(eKeys Key)
{
eOSState state = cMenuEditItem::ProcessKey(Key);
if (state == osUnknown) {
int newValue = *value;
int n = DriverIndex(*value, map);
if (NORMALKEY(Key) == kLeft) { // TODO might want to increase the delta if repeated quickly?
if (n-- > 0)
newValue = map[n].driverValue;
}
else if (NORMALKEY(Key) == kRight) {
if (map[++n].userValue >= 0)
newValue = map[n].driverValue;
}
else
return state;
if (newValue != *value) {
*value = newValue;
Set();
}
state = osContinue;
}
return state;
}
// --- cMenuSetupPage -------------------------------------------------------- // --- cMenuSetupPage --------------------------------------------------------
cMenuSetupPage::cMenuSetupPage(void) cMenuSetupPage::cMenuSetupPage(void)

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menuitems.h 1.25 2008/02/16 16:09:58 kls Exp $ * $Id: menuitems.h 2.1 2008/04/12 12:03:59 kls Exp $
*/ */
#ifndef __MENUITEMS_H #ifndef __MENUITEMS_H
@ -160,6 +160,17 @@ public:
virtual eOSState ProcessKey(eKeys Key); virtual eOSState ProcessKey(eKeys Key);
}; };
class cMenuEditMapItem : public cMenuEditItem {
protected:
int *value;
const tChannelParameterMap *map;
const char *zeroString;
virtual void Set(void);
public:
cMenuEditMapItem(const char *Name, int *Value, const tChannelParameterMap *Map, const char *ZeroString = NULL);
virtual eOSState ProcessKey(eKeys Key);
};
class cPlugin; class cPlugin;
class cMenuSetupPage : public cOsdMenu { class cMenuSetupPage : public cOsdMenu {

38
nit.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: nit.c 1.18 2008/02/08 13:48:31 kls Exp $ * $Id: nit.c 2.1 2008/04/12 12:06:40 kls Exp $
*/ */
#include "nit.h" #include "nit.h"
@ -127,8 +127,13 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
int Frequency = Frequencies[0] = BCD2INT(sd->getFrequency()) / 100; int Frequency = Frequencies[0] = BCD2INT(sd->getFrequency()) / 100;
static char Polarizations[] = { 'h', 'v', 'l', 'r' }; static char Polarizations[] = { 'h', 'v', 'l', 'r' };
char Polarization = Polarizations[sd->getPolarization()]; char Polarization = Polarizations[sd->getPolarization()];
static int CodeRates[] = { FEC_NONE, FEC_1_2, FEC_2_3, FEC_3_4, FEC_5_6, FEC_7_8, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_NONE }; static int CodeRates[] = { DVBFE_FEC_NONE, DVBFE_FEC_1_2, DVBFE_FEC_2_3, DVBFE_FEC_3_4, DVBFE_FEC_5_6, DVBFE_FEC_7_8, DVBFE_FEC_8_9, DVBFE_FEC_3_5, DVBFE_FEC_4_5, DVBFE_FEC_9_10, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO, DVBFE_FEC_NONE };
int CodeRate = CodeRates[sd->getFecInner()]; int CodeRate = CodeRates[sd->getFecInner()];
static int Modulations[] = { DVBFE_MOD_AUTO, DVBFE_MOD_QPSK, DVBFE_MOD_8PSK, DVBFE_MOD_QAM16 };
int Modulation = Modulations[sd->getModulationType()];
int System = sd->getModulationSystem() ? DVBFE_DELSYS_DVBS2 : DVBFE_DELSYS_DVBS;
static int RollOffs[] = { DVBFE_ROLLOFF_35, DVBFE_ROLLOFF_25, DVBFE_ROLLOFF_20, DVBFE_ROLLOFF_UNKNOWN };
int RollOff = sd->getModulationSystem() ? RollOffs[sd->getRollOff()] : DVBFE_ROLLOFF_UNKNOWN;
int SymbolRate = BCD2INT(sd->getSymbolRate()) / 10; int SymbolRate = BCD2INT(sd->getSymbolRate()) / 10;
if (ThisNIT >= 0) { if (ThisNIT >= 0) {
for (int n = 0; n < NumFrequencies; n++) { for (int n = 0; n < NumFrequencies; n++) {
@ -155,14 +160,14 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
} }
} }
if (ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), Transponder())) // only modify channels if we're actually receiving this transponder if (ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), Transponder())) // only modify channels if we're actually receiving this transponder
Channel->SetSatTransponderData(Source, Frequency, Polarization, SymbolRate, CodeRate); Channel->SetSatTransponderData(Source, Frequency, Polarization, SymbolRate, CodeRate, Modulation, System, RollOff);
} }
} }
if (!found) { if (!found) {
for (int n = 0; n < NumFrequencies; n++) { for (int n = 0; n < NumFrequencies; n++) {
cChannel *Channel = new cChannel; cChannel *Channel = new cChannel;
Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0); Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0);
if (Channel->SetSatTransponderData(Source, Frequencies[n], Polarization, SymbolRate, CodeRate)) if (Channel->SetSatTransponderData(Source, Frequencies[n], Polarization, SymbolRate, CodeRate, Modulation, System, RollOff))
EITScanner.AddTransponder(Channel); EITScanner.AddTransponder(Channel);
else else
delete Channel; delete Channel;
@ -176,9 +181,9 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
int Source = cSource::FromData(cSource::stCable); int Source = cSource::FromData(cSource::stCable);
int Frequency = Frequencies[0] = BCD2INT(sd->getFrequency()) / 10; int Frequency = Frequencies[0] = BCD2INT(sd->getFrequency()) / 10;
//XXX FEC_outer??? //XXX FEC_outer???
static int CodeRates[] = { FEC_NONE, FEC_1_2, FEC_2_3, FEC_3_4, FEC_5_6, FEC_7_8, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_AUTO, FEC_NONE }; static int CodeRates[] = { DVBFE_FEC_NONE, DVBFE_FEC_1_2, DVBFE_FEC_2_3, DVBFE_FEC_3_4, DVBFE_FEC_5_6, DVBFE_FEC_7_8, DVBFE_FEC_8_9, DVBFE_FEC_3_5, DVBFE_FEC_4_5, DVBFE_FEC_9_10, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO, DVBFE_FEC_NONE };
int CodeRate = CodeRates[sd->getFecInner()]; int CodeRate = CodeRates[sd->getFecInner()];
static int Modulations[] = { QPSK, QAM_16, QAM_32, QAM_64, QAM_128, QAM_256, QAM_AUTO }; static int Modulations[] = { DVBFE_MOD_NONE, DVBFE_MOD_QAM16, DVBFE_MOD_QAM32, DVBFE_MOD_QAM64, DVBFE_MOD_QAM128, DVBFE_MOD_QAM256, QAM_AUTO };
int Modulation = Modulations[min(sd->getModulation(), 6)]; int Modulation = Modulations[min(sd->getModulation(), 6)];
int SymbolRate = BCD2INT(sd->getSymbolRate()) / 10; int SymbolRate = BCD2INT(sd->getSymbolRate()) / 10;
if (ThisNIT >= 0) { if (ThisNIT >= 0) {
@ -226,19 +231,22 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
SI::TerrestrialDeliverySystemDescriptor *sd = (SI::TerrestrialDeliverySystemDescriptor *)d; SI::TerrestrialDeliverySystemDescriptor *sd = (SI::TerrestrialDeliverySystemDescriptor *)d;
int Source = cSource::FromData(cSource::stTerr); int Source = cSource::FromData(cSource::stTerr);
int Frequency = Frequencies[0] = sd->getFrequency() * 10; int Frequency = Frequencies[0] = sd->getFrequency() * 10;
static int Bandwidths[] = { BANDWIDTH_8_MHZ, BANDWIDTH_7_MHZ, BANDWIDTH_6_MHZ, BANDWIDTH_AUTO, BANDWIDTH_AUTO, BANDWIDTH_AUTO, BANDWIDTH_AUTO, BANDWIDTH_AUTO }; static int Bandwidths[] = { DVBFE_BANDWIDTH_8_MHZ, DVBFE_BANDWIDTH_7_MHZ, DVBFE_BANDWIDTH_6_MHZ, DVBFE_BANDWIDTH_5_MHZ, DVBFE_BANDWIDTH_AUTO, DVBFE_BANDWIDTH_AUTO, DVBFE_BANDWIDTH_AUTO, DVBFE_BANDWIDTH_AUTO };
int Bandwidth = Bandwidths[sd->getBandwidth()]; int Bandwidth = Bandwidths[sd->getBandwidth()];
static int Constellations[] = { QPSK, QAM_16, QAM_64, QAM_AUTO }; static int Constellations[] = { DVBFE_MOD_QPSK, DVBFE_MOD_QAM16, DVBFE_MOD_QAM64, DVBFE_MOD_AUTO };
int Constellation = Constellations[sd->getConstellation()]; int Constellation = Constellations[sd->getConstellation()];
static int Hierarchies[] = { HIERARCHY_NONE, HIERARCHY_1, HIERARCHY_2, HIERARCHY_4, HIERARCHY_AUTO, HIERARCHY_AUTO, HIERARCHY_AUTO, HIERARCHY_AUTO }; static int CodeRates[] = { DVBFE_FEC_1_2, DVBFE_FEC_2_3, DVBFE_FEC_3_4, DVBFE_FEC_5_6, DVBFE_FEC_7_8, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO, DVBFE_FEC_AUTO };
int Hierarchy = 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 CodeRateHP = CodeRates[sd->getCodeRateHP()];
int CodeRateLP = CodeRates[sd->getCodeRateLP()]; int CodeRateLP = CodeRates[sd->getCodeRateLP()];
static int GuardIntervals[] = { GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, GUARD_INTERVAL_1_4 }; static int GuardIntervals[] = { DVBFE_GUARD_INTERVAL_1_32, DVBFE_GUARD_INTERVAL_1_16, DVBFE_GUARD_INTERVAL_1_8, DVBFE_GUARD_INTERVAL_1_4 };
int GuardInterval = GuardIntervals[sd->getGuardInterval()]; int GuardInterval = GuardIntervals[sd->getGuardInterval()];
static int TransmissionModes[] = { TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, TRANSMISSION_MODE_AUTO, TRANSMISSION_MODE_AUTO }; static int TransmissionModes[] = { DVBFE_TRANSMISSION_MODE_2K, DVBFE_TRANSMISSION_MODE_8K, DVBFE_TRANSMISSION_MODE_4K, DVBFE_TRANSMISSION_MODE_AUTO };
int TransmissionMode = TransmissionModes[sd->getTransmissionMode()]; int TransmissionMode = TransmissionModes[sd->getTransmissionMode()];
static int Priorities[] = { DVBFE_STREAM_PRIORITY_LP, DVBFE_STREAM_PRIORITY_HP };
int Priority = Priorities[sd->getPriority()];
static int Alphas[] = { 0, DVBFE_ALPHA_1, DVBFE_ALPHA_2, DVBFE_ALPHA_4 };
int Alpha = Alphas[sd->getHierarchy() & 3];
int Hierarchy = Alpha ? DVBFE_HIERARCHY_ON : DVBFE_HIERARCHY_OFF;
if (ThisNIT >= 0) { if (ThisNIT >= 0) {
for (int n = 0; n < NumFrequencies; n++) { for (int n = 0; n < NumFrequencies; n++) {
if (ISTRANSPONDER(Frequencies[n] / 1000000, Transponder())) { if (ISTRANSPONDER(Frequencies[n] / 1000000, Transponder())) {
@ -264,14 +272,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 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->SetTerrTransponderData(Source, Frequency, Bandwidth, Constellation, Hierarchy, CodeRateHP, CodeRateLP, GuardInterval, TransmissionMode, Alpha, Priority);
} }
} }
if (!found) { if (!found) {
for (int n = 0; n < NumFrequencies; n++) { for (int n = 0; n < NumFrequencies; n++) {
cChannel *Channel = new cChannel; cChannel *Channel = new cChannel;
Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0); Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0);
if (Channel->SetTerrTransponderData(Source, Frequencies[n], Bandwidth, Constellation, Hierarchy, CodeRateHP, CodeRateLP, GuardInterval, TransmissionMode)) if (Channel->SetTerrTransponderData(Source, Frequencies[n], Bandwidth, Constellation, Hierarchy, CodeRateHP, CodeRateLP, GuardInterval, TransmissionMode, Alpha, Priority))
EITScanner.AddTransponder(Channel); EITScanner.AddTransponder(Channel);
else else
delete Channel; delete Channel;

3
pat.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: pat.c 1.20 2008/02/08 13:48:31 kls Exp $ * $Id: pat.c 2.1 2008/04/12 13:34:50 kls Exp $
*/ */
#include "pat.h" #include "pat.h"
@ -343,6 +343,7 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
switch (stream.getStreamType()) { switch (stream.getStreamType()) {
case 1: // STREAMTYPE_11172_VIDEO case 1: // STREAMTYPE_11172_VIDEO
case 2: // STREAMTYPE_13818_VIDEO case 2: // STREAMTYPE_13818_VIDEO
//TODO case 0x1B: // MPEG4
Vpid = stream.getPid(); Vpid = stream.getPid();
break; break;
case 3: // STREAMTYPE_11172_AUDIO case 3: // STREAMTYPE_11172_AUDIO

View File

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-03-02 19:02+0100\n" "PO-Revision-Date: 2008-03-02 19:02+0100\n"
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n" "Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
"Language-Team: Catalanian\n" "Language-Team: Catalanian\n"
@ -18,6 +18,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "off"
msgid "on"
msgstr ""
msgid "none"
msgstr "cap"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Canal incorrecte ***" msgstr "*** Canal incorrecte ***"
@ -228,9 +243,6 @@ msgstr "No codificat"
msgid "encrypted" msgid "encrypted"
msgstr "Codificat" msgstr "Codificat"
msgid "auto"
msgstr "auto"
msgid "Edit channel" msgid "Edit channel"
msgstr "Editar canal" msgstr "Editar canal"
@ -279,21 +291,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarització" msgstr "Polarització"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversió" msgstr "Inversió"
msgid "off"
msgstr "off"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "cap"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -312,6 +321,15 @@ msgstr "Protegir"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Jerarquia" msgstr "Jerarquia"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioritat"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Propietats del canal duplicades!" msgstr "Propietats del canal duplicades!"
@ -357,9 +375,6 @@ msgstr "Fi"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioritat"
msgid "Lifetime" msgid "Lifetime"
msgstr "Durada" msgstr "Durada"
@ -894,6 +909,9 @@ msgstr "Sobrescriure"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Inserir" msgstr "Inserir"
msgid "auto"
msgstr "auto"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-02-28 15:00+0200\n" "PO-Revision-Date: 2008-02-28 15:00+0200\n"
"Last-Translator: Vladimír Bárta <vladimir.barta@k2atmitec.cz>, Jiøí Dobrý <jdobry@centrum.cz>\n" "Last-Translator: Vladimír Bárta <vladimir.barta@k2atmitec.cz>, Jiøí Dobrý <jdobry@centrum.cz>\n"
"Language-Team: Czech\n" "Language-Team: Czech\n"
@ -16,6 +16,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "vyp."
msgid "on"
msgstr ""
msgid "none"
msgstr "¾ádný"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Neplatný kanál ***" msgstr "*** Neplatný kanál ***"
@ -226,9 +241,6 @@ msgstr "voln
msgid "encrypted" msgid "encrypted"
msgstr "kódovaný" msgstr "kódovaný"
msgid "auto"
msgstr "auto"
msgid "Edit channel" msgid "Edit channel"
msgstr "Editace kanálu" msgstr "Editace kanálu"
@ -277,21 +289,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarizace" msgstr "Polarizace"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversion" msgstr "Inversion"
msgid "off"
msgstr "vyp."
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "¾ádný"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -310,6 +319,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarchy" msgstr "Hierarchy"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Priorita"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Nastavení kanálù nejsou unikátní!" msgstr "Nastavení kanálù nejsou unikátní!"
@ -355,9 +373,6 @@ msgstr "Konec"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Priorita"
msgid "Lifetime" msgid "Lifetime"
msgstr "®ivotnost" msgstr "®ivotnost"
@ -892,6 +907,9 @@ msgstr "P
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Vlo¾it" msgstr "Vlo¾it"
msgid "auto"
msgstr "auto"
msgid "Plugin" msgid "Plugin"
msgstr "Modul" msgstr "Modul"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Mogens Elneff <mogens@elneff.dk>\n" "Last-Translator: Mogens Elneff <mogens@elneff.dk>\n"
"Language-Team: Danish\n" "Language-Team: Danish\n"
@ -15,6 +15,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "fra"
msgid "on"
msgstr ""
msgid "none"
msgstr "ingen"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Ugyldig kanal! ***" msgstr "*** Ugyldig kanal! ***"
@ -225,9 +240,6 @@ msgstr "Free To Air"
msgid "encrypted" msgid "encrypted"
msgstr "kodet" msgstr "kodet"
msgid "auto"
msgstr "automatisk"
msgid "Edit channel" msgid "Edit channel"
msgstr "Rediger kanal" msgstr "Rediger kanal"
@ -276,21 +288,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarisation" msgstr "Polarisation"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversion" msgstr "Inversion"
msgid "off"
msgstr "fra"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "ingen"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -309,6 +318,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarki" msgstr "Hierarki"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioritet"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Kanalindstillinger er ikke entydige!" msgstr "Kanalindstillinger er ikke entydige!"
@ -354,9 +372,6 @@ msgstr "Stop"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioritet"
msgid "Lifetime" msgid "Lifetime"
msgstr "Levetid" msgstr "Levetid"
@ -891,6 +906,9 @@ msgstr "Overskriv"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Indsæt" msgstr "Indsæt"
msgid "auto"
msgstr "automatisk"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2007-11-25 15:19+0200\n" "PO-Revision-Date: 2007-11-25 15:19+0200\n"
"Last-Translator: Klaus Schmidinger <kls@cadsoft.de>\n" "Last-Translator: Klaus Schmidinger <kls@cadsoft.de>\n"
"Language-Team: German\n" "Language-Team: German\n"
@ -15,6 +15,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "aus"
msgid "on"
msgstr "ein"
msgid "none"
msgstr "keine"
msgid "high"
msgstr "hoch"
msgid "low"
msgstr "niedrig"
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Ungültiger Kanal ***" msgstr "*** Ungültiger Kanal ***"
@ -225,9 +240,6 @@ msgstr "frei empfangbar"
msgid "encrypted" msgid "encrypted"
msgstr "verschlüsselt" msgstr "verschlüsselt"
msgid "auto"
msgstr "auto"
msgid "Edit channel" msgid "Edit channel"
msgstr "Kanal editieren" msgstr "Kanal editieren"
@ -276,21 +288,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarisation" msgstr "Polarisation"
msgid "System"
msgstr "System"
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversion" msgstr "Inversion"
msgid "off"
msgstr "aus"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "keine"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -309,6 +318,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarchie" msgstr "Hierarchie"
msgid "Alpha"
msgstr "Alpha"
msgid "Priority"
msgstr "Priorität"
msgid "Rolloff"
msgstr "Rolloff"
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Kanaleinstellungen sind nicht eindeutig!" msgstr "Kanaleinstellungen sind nicht eindeutig!"
@ -354,9 +372,6 @@ msgstr "Ende"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Priorität"
msgid "Lifetime" msgid "Lifetime"
msgstr "Lebensdauer" msgstr "Lebensdauer"
@ -891,6 +906,9 @@ msgstr "
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Einfügen" msgstr "Einfügen"
msgid "auto"
msgstr "auto"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n" "Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n"
"Language-Team: Greek\n" "Language-Team: Greek\n"
@ -15,6 +15,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-7\n" "Content-Type: text/plain; charset=ISO-8859-7\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "êëåéóôü"
msgid "on"
msgstr ""
msgid "none"
msgstr "êáíÝíá"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Áêõñï êáíÜëç ***" msgstr "*** Áêõñï êáíÜëç ***"
@ -225,9 +240,6 @@ msgstr ""
msgid "encrypted" msgid "encrypted"
msgstr "" msgstr ""
msgid "auto"
msgstr "áõôüìáôï"
msgid "Edit channel" msgid "Edit channel"
msgstr "Ôñïðïðïßçóç Êáíáëéïý" msgstr "Ôñïðïðïßçóç Êáíáëéïý"
@ -276,21 +288,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Ðüëùóç" msgstr "Ðüëùóç"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "ÁíôéóôñïöÞ" msgstr "ÁíôéóôñïöÞ"
msgid "off"
msgstr "êëåéóôü"
msgid "CoderateH" msgid "CoderateH"
msgstr "Ñõèìüò Êþäéêá H" msgstr "Ñõèìüò Êþäéêá H"
msgid "none"
msgstr "êáíÝíá"
msgid "CoderateL" msgid "CoderateL"
msgstr "Ñõèìüò Êþäéêá L" msgstr "Ñõèìüò Êþäéêá L"
@ -309,6 +318,15 @@ msgstr "
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Éåñáñ÷åßá" msgstr "Éåñáñ÷åßá"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Ðñïôåñáéüôçôá"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Ïé ñéèìýóåéò ôïí êáíáëéþí áëëõëïóõìðßðôïõí!" msgstr "Ïé ñéèìýóåéò ôïí êáíáëéþí áëëõëïóõìðßðôïõí!"
@ -354,9 +372,6 @@ msgstr "
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Ðñïôåñáéüôçôá"
msgid "Lifetime" msgid "Lifetime"
msgstr "ÄéÝñêåéá ÐáñáìïíÞò" msgstr "ÄéÝñêåéá ÐáñáìïíÞò"
@ -891,6 +906,9 @@ msgstr "
msgid "Button$Insert" msgid "Button$Insert"
msgstr "ÅéóáãùãÞ" msgstr "ÅéóáãùãÞ"
msgid "auto"
msgstr "áõôüìáôï"
msgid "Plugin" msgid "Plugin"
msgstr "ÅðÝêôáóç" msgstr "ÅðÝêôáóç"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-03-02 17:25+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-03-02 19:02+0100\n" "PO-Revision-Date: 2008-03-02 19:02+0100\n"
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n" "Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
"Language-Team: Spanish\n" "Language-Team: Spanish\n"
@ -16,6 +16,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "off"
msgid "on"
msgstr ""
msgid "none"
msgstr "ninguno"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Canal no válido ***" msgstr "*** Canal no válido ***"
@ -226,9 +241,6 @@ msgstr "en abierto"
msgid "encrypted" msgid "encrypted"
msgstr "cifrado" msgstr "cifrado"
msgid "auto"
msgstr "auto"
msgid "Edit channel" msgid "Edit channel"
msgstr "Modificar canal" msgstr "Modificar canal"
@ -277,21 +289,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarización" msgstr "Polarización"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "T.símbolos" msgstr "T.símbolos"
msgid "Inversion" msgid "Inversion"
msgstr "Inversion" msgstr "Inversion"
msgid "off"
msgstr "off"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "ninguno"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -310,6 +319,15 @@ msgstr "Int.Guarda"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Jerarquía" msgstr "Jerarquía"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioridad"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "!Propiedades de canal duplicadas!" msgstr "!Propiedades de canal duplicadas!"
@ -355,9 +373,6 @@ msgstr "Fin"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioridad"
msgid "Lifetime" msgid "Lifetime"
msgstr "Duración" msgstr "Duración"
@ -892,6 +907,9 @@ msgstr "Sobreescribir"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Insertar" msgstr "Insertar"
msgid "auto"
msgstr "auto"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Arthur Konovalov <kasjas@hot.ee>\n" "Last-Translator: Arthur Konovalov <kasjas@hot.ee>\n"
"Language-Team: Estonian\n" "Language-Team: Estonian\n"
@ -15,6 +15,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-13\n" "Content-Type: text/plain; charset=ISO-8859-13\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "väljas"
msgid "on"
msgstr ""
msgid "none"
msgstr "puudu"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Vigane kanal ***" msgstr "*** Vigane kanal ***"
@ -225,9 +240,6 @@ msgstr "FTA"
msgid "encrypted" msgid "encrypted"
msgstr "krüptitud" msgstr "krüptitud"
msgid "auto"
msgstr "automaatne"
msgid "Edit channel" msgid "Edit channel"
msgstr "Kanali muutmine" msgstr "Kanali muutmine"
@ -276,21 +288,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarisatsioon" msgstr "Polarisatsioon"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversioon" msgstr "Inversioon"
msgid "off"
msgstr "väljas"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "puudu"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -309,6 +318,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarhia" msgstr "Hierarhia"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioriteet"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Kanaliseaded ei ole unikaalsed!" msgstr "Kanaliseaded ei ole unikaalsed!"
@ -354,9 +372,6 @@ msgstr "Stopp"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioriteet"
msgid "Lifetime" msgid "Lifetime"
msgstr "Eluiga" msgstr "Eluiga"
@ -891,6 +906,9 @@ msgstr "Asenda (OVR)"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Lisa (INS)" msgstr "Lisa (INS)"
msgid "auto"
msgstr "automaatne"
msgid "Plugin" msgid "Plugin"
msgstr "Laiendusmoodul" msgstr "Laiendusmoodul"

View File

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2007-08-15 15:52+0200\n" "PO-Revision-Date: 2007-08-15 15:52+0200\n"
"Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n" "Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n"
"Language-Team: Finnish\n" "Language-Team: Finnish\n"
@ -18,6 +18,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "poissa"
msgid "on"
msgstr "päällä"
msgid "none"
msgstr "tyhjä"
msgid "high"
msgstr "korkea"
msgid "low"
msgstr "matala"
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Virheellinen kanavavalinta ***" msgstr "*** Virheellinen kanavavalinta ***"
@ -228,9 +243,6 @@ msgstr "vapaa"
msgid "encrypted" msgid "encrypted"
msgstr "salattu" msgstr "salattu"
msgid "auto"
msgstr "auto"
msgid "Edit channel" msgid "Edit channel"
msgstr "Muokkaa kanavaa" msgstr "Muokkaa kanavaa"
@ -279,21 +291,18 @@ msgstr "Palvelu-ID"
msgid "Polarization" msgid "Polarization"
msgstr "Polarisaatio" msgstr "Polarisaatio"
msgid "System"
msgstr "Systeemi"
msgid "Srate" msgid "Srate"
msgstr "Symbolinopeus" msgstr "Symbolinopeus"
msgid "Inversion" msgid "Inversion"
msgstr "Inversio" msgstr "Inversio"
msgid "off"
msgstr "pois"
msgid "CoderateH" msgid "CoderateH"
msgstr "Suojaustaso (HP)" msgstr "Suojaustaso (HP)"
msgid "none"
msgstr "tyhjä"
msgid "CoderateL" msgid "CoderateL"
msgstr "Suojaustaso (LP)" msgstr "Suojaustaso (LP)"
@ -312,6 +321,15 @@ msgstr "Suojav
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarkia" msgstr "Hierarkia"
msgid "Alpha"
msgstr "Alpha"
msgid "Priority"
msgstr "Prioriteetti"
msgid "Rolloff"
msgstr "Rolloff"
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Kanava-asetukset eivät ole yksilölliset!" msgstr "Kanava-asetukset eivät ole yksilölliset!"
@ -357,9 +375,6 @@ msgstr "Lopetus"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioriteetti"
msgid "Lifetime" msgid "Lifetime"
msgstr "Elinikä" msgstr "Elinikä"
@ -894,6 +909,9 @@ msgstr "Korvaa"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Lisää" msgstr "Lisää"
msgid "auto"
msgstr "auto"
msgid "Plugin" msgid "Plugin"
msgstr "Laajennos" msgstr "Laajennos"

View File

@ -13,7 +13,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-02-27 18:14+0100\n" "PO-Revision-Date: 2008-02-27 18:14+0100\n"
"Last-Translator: Jean-Claude Repetto <jc@repetto.org>\n" "Last-Translator: Jean-Claude Repetto <jc@repetto.org>\n"
"Language-Team: French\n" "Language-Team: French\n"
@ -21,6 +21,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "off"
msgid "on"
msgstr ""
msgid "none"
msgstr "aucun"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Chaîne invalide ! ***" msgstr "*** Chaîne invalide ! ***"
@ -231,9 +246,6 @@ msgstr "En clair"
msgid "encrypted" msgid "encrypted"
msgstr "Crypté" msgstr "Crypté"
msgid "auto"
msgstr "auto"
msgid "Edit channel" msgid "Edit channel"
msgstr "Modifier une chaîne" msgstr "Modifier une chaîne"
@ -282,21 +294,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarisation" msgstr "Polarisation"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Fréq. symbole" msgstr "Fréq. symbole"
msgid "Inversion" msgid "Inversion"
msgstr "Inversion" msgstr "Inversion"
msgid "off"
msgstr "off"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "aucun"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -315,6 +324,15 @@ msgstr "Intervalle de garde"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hiérarchie" msgstr "Hiérarchie"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Priorité"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Caractéristiques des chaînes non uniques" msgstr "Caractéristiques des chaînes non uniques"
@ -360,9 +378,6 @@ msgstr "Fin"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Priorité"
msgid "Lifetime" msgid "Lifetime"
msgstr "Durée de vie" msgstr "Durée de vie"
@ -897,6 +912,9 @@ msgstr "Ecraser"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Insérer" msgstr "Insérer"
msgid "auto"
msgstr "auto"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-03-17 19:00+0100\n" "PO-Revision-Date: 2008-03-17 19:00+0100\n"
"Last-Translator: Adrian Caval <anrxc@sysphere.org>\n" "Last-Translator: Adrian Caval <anrxc@sysphere.org>\n"
"Language-Team: Croatian\n" "Language-Team: Croatian\n"
@ -17,6 +17,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "iskljuèi"
msgid "on"
msgstr ""
msgid "none"
msgstr "ni¹ta"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Neispravan Program ***" msgstr "*** Neispravan Program ***"
@ -227,9 +242,6 @@ msgstr "Slobodno"
msgid "encrypted" msgid "encrypted"
msgstr "kriptirano" msgstr "kriptirano"
msgid "auto"
msgstr "automatski"
msgid "Edit channel" msgid "Edit channel"
msgstr "Ureðivanje programa" msgstr "Ureðivanje programa"
@ -278,21 +290,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarizacija" msgstr "Polarizacija"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inverzija" msgstr "Inverzija"
msgid "off"
msgstr "iskljuèi"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "ni¹ta"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -311,6 +320,15 @@ msgstr "Za
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hijerarhija" msgstr "Hijerarhija"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioritet"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Postavke programa nisu jedinstvene!" msgstr "Postavke programa nisu jedinstvene!"
@ -356,9 +374,6 @@ msgstr "Kraj"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioritet"
msgid "Lifetime" msgid "Lifetime"
msgstr "Trajanje" msgstr "Trajanje"
@ -893,6 +908,9 @@ msgstr "Prepi
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Umetni" msgstr "Umetni"
msgid "auto"
msgstr "automatski"
msgid "Plugin" msgid "Plugin"
msgstr "Dodatak" msgstr "Dodatak"

View File

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2007-12-01 21:42+0200\n" "PO-Revision-Date: 2007-12-01 21:42+0200\n"
"Last-Translator: István Füley <ifuley@tigercomp.ro>\n" "Last-Translator: István Füley <ifuley@tigercomp.ro>\n"
"Language-Team: Hungarian\n" "Language-Team: Hungarian\n"
@ -18,6 +18,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "ki"
msgid "on"
msgstr ""
msgid "none"
msgstr "semmi"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Érvénytelen csatorna ***" msgstr "*** Érvénytelen csatorna ***"
@ -228,9 +243,6 @@ msgstr "K
msgid "encrypted" msgid "encrypted"
msgstr "Kódolt" msgstr "Kódolt"
msgid "auto"
msgstr "auto"
msgid "Edit channel" msgid "Edit channel"
msgstr "Csatornák beállítása" msgstr "Csatornák beállítása"
@ -279,21 +291,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarizáció" msgstr "Polarizáció"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversion" msgstr "Inversion"
msgid "off"
msgstr "ki"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "semmi"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -312,6 +321,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarhia" msgstr "Hierarhia"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioritás"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Az adóbeállítások nem egyértelmûek" msgstr "Az adóbeállítások nem egyértelmûek"
@ -357,9 +375,6 @@ msgstr "V
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioritás"
msgid "Lifetime" msgid "Lifetime"
msgstr "Élettartam" msgstr "Élettartam"
@ -785,9 +800,8 @@ msgstr "ahogy az el
msgid "Setup.Miscellaneous$Initial volume" msgid "Setup.Miscellaneous$Initial volume"
msgstr "Hangerõ a bekapcsolásnál" msgstr "Hangerõ a bekapcsolásnál"
#, fuzzy
msgid "Setup.Miscellaneous$Emergency exit" msgid "Setup.Miscellaneous$Emergency exit"
msgstr "ahogy az elõbb" msgstr ""
msgid "Plugins" msgid "Plugins"
msgstr "Plugins" msgstr "Plugins"
@ -895,6 +909,9 @@ msgstr "
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Beilleszteni" msgstr "Beilleszteni"
msgid "auto"
msgstr "auto"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -11,7 +11,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-03-08 21:06+0100\n" "PO-Revision-Date: 2008-03-08 21:06+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian\n" "Language-Team: Italian\n"
@ -19,6 +19,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "off"
msgid "on"
msgstr ""
msgid "none"
msgstr "nessuno"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Canale NON valido ***" msgstr "*** Canale NON valido ***"
@ -229,9 +244,6 @@ msgstr "in chiaro"
msgid "encrypted" msgid "encrypted"
msgstr "codificato" msgstr "codificato"
msgid "auto"
msgstr "automatico"
msgid "Edit channel" msgid "Edit channel"
msgstr "Modifica canale" msgstr "Modifica canale"
@ -280,21 +292,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarizzazione" msgstr "Polarizzazione"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "SymbolRate" msgstr "SymbolRate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversione" msgstr "Inversione"
msgid "off"
msgstr "off"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "nessuno"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -313,6 +322,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Gerarchia" msgstr "Gerarchia"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Priorità"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Parametri canale non univoci!" msgstr "Parametri canale non univoci!"
@ -358,9 +376,6 @@ msgstr "Fine"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Priorità"
msgid "Lifetime" msgid "Lifetime"
msgstr "Durata" msgstr "Durata"
@ -895,6 +910,9 @@ msgstr "Sovrascrivi"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Inserisci" msgstr "Inserisci"
msgid "auto"
msgstr "automatico"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -11,7 +11,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-02-26 17:20+0100\n" "PO-Revision-Date: 2008-02-26 17:20+0100\n"
"Last-Translator: Johan Schuring <johan.schuring@vetteblei.nl>\n" "Last-Translator: Johan Schuring <johan.schuring@vetteblei.nl>\n"
"Language-Team: Dutch\n" "Language-Team: Dutch\n"
@ -19,6 +19,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "uit"
msgid "on"
msgstr ""
msgid "none"
msgstr "geen"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Ongeldig kanaal ***" msgstr "*** Ongeldig kanaal ***"
@ -229,9 +244,6 @@ msgstr "Vrij te ontvangen"
msgid "encrypted" msgid "encrypted"
msgstr "gecodeerd" msgstr "gecodeerd"
msgid "auto"
msgstr "auto"
msgid "Edit channel" msgid "Edit channel"
msgstr "Kanaal aanpassen" msgstr "Kanaal aanpassen"
@ -280,21 +292,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarisatie" msgstr "Polarisatie"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversion" msgstr "Inversion"
msgid "off"
msgstr "uit"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "geen"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -313,6 +322,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarchie" msgstr "Hierarchie"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioriteit"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Kanaalinstellingen zijn niet uniek!" msgstr "Kanaalinstellingen zijn niet uniek!"
@ -358,9 +376,6 @@ msgstr "Einde"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioriteit"
msgid "Lifetime" msgid "Lifetime"
msgstr "Bewaarduur" msgstr "Bewaarduur"
@ -895,6 +910,9 @@ msgstr "Overschrijven"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Invoegen" msgstr "Invoegen"
msgid "auto"
msgstr "auto"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Truls Slevigen <truls@slevigen.no>\n" "Last-Translator: Truls Slevigen <truls@slevigen.no>\n"
"Language-Team: Norwegian\n" "Language-Team: Norwegian\n"
@ -16,6 +16,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr ""
msgid "on"
msgstr ""
msgid "none"
msgstr ""
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Ugyldig Kanal! ***" msgstr "*** Ugyldig Kanal! ***"
@ -226,9 +241,6 @@ msgstr ""
msgid "encrypted" msgid "encrypted"
msgstr "" msgstr ""
msgid "auto"
msgstr ""
msgid "Edit channel" msgid "Edit channel"
msgstr "Editer kanal" msgstr "Editer kanal"
@ -277,21 +289,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarisasjon" msgstr "Polarisasjon"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversion" msgstr "Inversion"
msgid "off"
msgstr ""
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr ""
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -310,6 +319,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarchy" msgstr "Hierarchy"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioritet"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "" msgstr ""
@ -355,9 +373,6 @@ msgstr "Slutt"
msgid "VPS" msgid "VPS"
msgstr "" msgstr ""
msgid "Priority"
msgstr "Prioritet"
msgid "Lifetime" msgid "Lifetime"
msgstr "Levetid" msgstr "Levetid"
@ -892,6 +907,9 @@ msgstr ""
msgid "Button$Insert" msgid "Button$Insert"
msgstr "" msgstr ""
msgid "auto"
msgstr ""
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-03-09 12:59+0100\n" "PO-Revision-Date: 2008-03-09 12:59+0100\n"
"Last-Translator: Michael Rakowski <mrak@gmx.de>\n" "Last-Translator: Michael Rakowski <mrak@gmx.de>\n"
"Language-Team: Polish\n" "Language-Team: Polish\n"
@ -16,6 +16,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "wy³±cz"
msgid "on"
msgstr ""
msgid "none"
msgstr "brak"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Niepoprawny kana³ ***" msgstr "*** Niepoprawny kana³ ***"
@ -226,9 +241,6 @@ msgstr "nieszyfrowany"
msgid "encrypted" msgid "encrypted"
msgstr "szyfrowany" msgstr "szyfrowany"
msgid "auto"
msgstr "auto"
msgid "Edit channel" msgid "Edit channel"
msgstr "Edycja kana³u" msgstr "Edycja kana³u"
@ -277,21 +289,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polaryzacja" msgstr "Polaryzacja"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inwersja" msgstr "Inwersja"
msgid "off"
msgstr "wy³±cz"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "brak"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -310,6 +319,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarchia" msgstr "Hierarchia"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Priorytet"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Ustawienia kana³u nie s± unikalne!" msgstr "Ustawienia kana³u nie s± unikalne!"
@ -355,9 +373,6 @@ msgstr "Koniec"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Priorytet"
msgid "Lifetime" msgid "Lifetime"
msgstr "Czas ¿ycia" msgstr "Czas ¿ycia"
@ -892,6 +907,9 @@ msgstr "Nadpisz"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Wstaw" msgstr "Wstaw"
msgid "auto"
msgstr "auto"
msgid "Plugin" msgid "Plugin"
msgstr "Wtyczka" msgstr "Wtyczka"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-03-18 17:04+0100\n" "PO-Revision-Date: 2008-03-18 17:04+0100\n"
"Last-Translator: anonymous\n" "Last-Translator: anonymous\n"
"Language-Team: Portuguese\n" "Language-Team: Portuguese\n"
@ -15,6 +15,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "off"
msgid "on"
msgstr ""
msgid "none"
msgstr "nenhum"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Canal inválido ***" msgstr "*** Canal inválido ***"
@ -225,9 +240,6 @@ msgstr "FTA"
msgid "encrypted" msgid "encrypted"
msgstr "Codificado" msgstr "Codificado"
msgid "auto"
msgstr "Automático"
msgid "Edit channel" msgid "Edit channel"
msgstr "Editar canal" msgstr "Editar canal"
@ -276,21 +288,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarização" msgstr "Polarização"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversão" msgstr "Inversão"
msgid "off"
msgstr "off"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "nenhum"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -309,6 +318,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarquia" msgstr "Hierarquia"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioridade"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Propriedades do canal não são únicas!" msgstr "Propriedades do canal não são únicas!"
@ -354,9 +372,6 @@ msgstr "Fim"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioridade"
msgid "Lifetime" msgid "Lifetime"
msgstr "Duração" msgstr "Duração"
@ -891,6 +906,9 @@ msgstr "Substituir"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Inserir" msgstr "Inserir"
msgid "auto"
msgstr "Automático"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin" msgstr "Plugin"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-02-25 00:39+0100\n" "PO-Revision-Date: 2008-02-25 00:39+0100\n"
"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n" "Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
"Language-Team: Romanian\n" "Language-Team: Romanian\n"
@ -18,6 +18,21 @@ msgstr ""
"X-Poedit-Language: Romanian\n" "X-Poedit-Language: Romanian\n"
"X-Poedit-Country: ROMANIA\n" "X-Poedit-Country: ROMANIA\n"
msgid "off"
msgstr "inactiv"
msgid "on"
msgstr ""
msgid "none"
msgstr "niciuna(ul)"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Canal invalid ***" msgstr "*** Canal invalid ***"
@ -228,9 +243,6 @@ msgstr "FTA (necriptat)"
msgid "encrypted" msgid "encrypted"
msgstr "criptat" msgstr "criptat"
msgid "auto"
msgstr "automat"
msgid "Edit channel" msgid "Edit channel"
msgstr "Modificare canal" msgstr "Modificare canal"
@ -279,21 +291,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarizare" msgstr "Polarizare"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Ratã simboluri" msgstr "Ratã simboluri"
msgid "Inversion" msgid "Inversion"
msgstr "Inversiune" msgstr "Inversiune"
msgid "off"
msgstr "inactiv"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "niciuna(ul)"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -312,6 +321,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Ierarhie" msgstr "Ierarhie"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioritate"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Parametrii canalului nu sunt univoci!" msgstr "Parametrii canalului nu sunt univoci!"
@ -357,9 +375,6 @@ msgstr "Sf
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioritate"
msgid "Lifetime" msgid "Lifetime"
msgstr "Timp de pãstrare" msgstr "Timp de pãstrare"
@ -894,6 +909,9 @@ msgstr "Suprascrie"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Insereazã" msgstr "Insereazã"
msgid "auto"
msgstr "automat"
msgid "Plugin" msgid "Plugin"
msgstr "Plugin (modul adiþional)" msgstr "Plugin (modul adiþional)"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-02-15 16:37+0100\n" "PO-Revision-Date: 2008-02-15 16:37+0100\n"
"Last-Translator: Oleg Roitburd <oleg@roitburd.de>\n" "Last-Translator: Oleg Roitburd <oleg@roitburd.de>\n"
"Language-Team: Russian\n" "Language-Team: Russian\n"
@ -16,6 +16,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-5\n" "Content-Type: text/plain; charset=ISO-8859-5\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "ÒëÚÛ"
msgid "on"
msgstr ""
msgid "none"
msgstr "ÝØçÕÓÞ"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** ½ÕßàÐÒØÛìÝëÙ ÚÐÝÐÛ ***" msgstr "*** ½ÕßàÐÒØÛìÝëÙ ÚÐÝÐÛ ***"
@ -226,9 +241,6 @@ msgstr "FTA (
msgid "encrypted" msgid "encrypted"
msgstr "×ÐÚÞÔØàÞÒÐÝÞ" msgstr "×ÐÚÞÔØàÞÒÐÝÞ"
msgid "auto"
msgstr "ÐÒâÞ"
msgid "Edit channel" msgid "Edit channel"
msgstr "ÀÕÔÐÚâØàÞÒÐÝØÕ ÚÐÝÐÛÐ" msgstr "ÀÕÔÐÚâØàÞÒÐÝØÕ ÚÐÝÐÛÐ"
@ -277,21 +289,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "¿ÞÛïàØ×ÐæØï" msgstr "¿ÞÛïàØ×ÐæØï"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "ÁØÜÒ. áÚÞàÞáâì" msgstr "ÁØÜÒ. áÚÞàÞáâì"
msgid "Inversion" msgid "Inversion"
msgstr "¸ÝÒÕàáØï" msgstr "¸ÝÒÕàáØï"
msgid "off"
msgstr "ÒëÚÛ"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "ÝØçÕÓÞ"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -310,6 +319,15 @@ msgstr "
msgid "Hierarchy" msgid "Hierarchy"
msgstr "¸ÕàÐàåØï" msgstr "¸ÕàÐàåØï"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "¿àØÞàØâÕâ"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "½ÐáâàÞÙÚØ ÚÐÝÐÛÐ ÝÕ ãÝØÚÐÛìÝë!" msgstr "½ÐáâàÞÙÚØ ÚÐÝÐÛÐ ÝÕ ãÝØÚÐÛìÝë!"
@ -355,9 +373,6 @@ msgstr "
msgid "VPS" msgid "VPS"
msgstr "VPS ßÞßàÐÒÚÐ" msgstr "VPS ßÞßàÐÒÚÐ"
msgid "Priority"
msgstr "¿àØÞàØâÕâ"
msgid "Lifetime" msgid "Lifetime"
msgstr "ÁàÞÚ åàÐÝÕÝØï" msgstr "ÁàÞÚ åàÐÝÕÝØï"
@ -892,6 +907,9 @@ msgstr "
msgid "Button$Insert" msgid "Button$Insert"
msgstr "²áâÐÒÚÐ" msgstr "²áâÐÒÚÐ"
msgid "auto"
msgstr "ÐÒâÞ"
msgid "Plugin" msgid "Plugin"
msgstr "¼ÞÔãÛì" msgstr "¼ÞÔãÛì"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-02-28 19:44+0100\n" "PO-Revision-Date: 2008-02-28 19:44+0100\n"
"Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n" "Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n"
"Language-Team: Slovenian\n" "Language-Team: Slovenian\n"
@ -16,6 +16,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "izklop"
msgid "on"
msgstr ""
msgid "none"
msgstr "nobeden"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Neznan kanal ***" msgstr "*** Neznan kanal ***"
@ -226,9 +241,6 @@ msgstr "nekodiran"
msgid "encrypted" msgid "encrypted"
msgstr "kodiran" msgstr "kodiran"
msgid "auto"
msgstr "avtomatsko"
msgid "Edit channel" msgid "Edit channel"
msgstr "Uredi kanal" msgstr "Uredi kanal"
@ -277,21 +289,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarizacija" msgstr "Polarizacija"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inverzija" msgstr "Inverzija"
msgid "off"
msgstr "izklop"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "nobeden"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -310,6 +319,15 @@ msgstr "Za
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarhija" msgstr "Hierarhija"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioriteta"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Nastavitve kanala niso edinstvene!" msgstr "Nastavitve kanala niso edinstvene!"
@ -355,9 +373,6 @@ msgstr "Konec"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioriteta"
msgid "Lifetime" msgid "Lifetime"
msgstr "Veljavnost" msgstr "Veljavnost"
@ -892,6 +907,9 @@ msgstr "Prepi
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Vstavi" msgstr "Vstavi"
msgid "auto"
msgstr "avtomatsko"
msgid "Plugin" msgid "Plugin"
msgstr "Vstavek" msgstr "Vstavek"

View File

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-03-12 18:25+0100\n" "PO-Revision-Date: 2008-03-12 18:25+0100\n"
"Last-Translator: Magnus Andersson <svankan@bahnhof.se>\n" "Last-Translator: Magnus Andersson <svankan@bahnhof.se>\n"
"Language-Team: Swedish\n" "Language-Team: Swedish\n"
@ -18,6 +18,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "av"
msgid "on"
msgstr ""
msgid "none"
msgstr "ingen"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Felaktig kanal ***" msgstr "*** Felaktig kanal ***"
@ -228,9 +243,6 @@ msgstr "Okodad"
msgid "encrypted" msgid "encrypted"
msgstr "krypterad" msgstr "krypterad"
msgid "auto"
msgstr "automatisk"
msgid "Edit channel" msgid "Edit channel"
msgstr "Ändra kanal" msgstr "Ändra kanal"
@ -279,21 +291,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Polarisation" msgstr "Polarisation"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Inversion" msgstr "Inversion"
msgid "off"
msgstr "av"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "ingen"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -312,6 +321,15 @@ msgstr "Guard"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hierarchy" msgstr "Hierarchy"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Prioritet"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Kanalinställningarna är ej unika!" msgstr "Kanalinställningarna är ej unika!"
@ -357,9 +375,6 @@ msgstr "Slutar"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Prioritet"
msgid "Lifetime" msgid "Lifetime"
msgstr "Livstid" msgstr "Livstid"
@ -894,6 +909,9 @@ msgstr "Skriv
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Infoga" msgstr "Infoga"
msgid "auto"
msgstr "automatisk"
msgid "Plugin" msgid "Plugin"
msgstr "Modul" msgstr "Modul"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-02-28 00:33+0100\n" "PO-Revision-Date: 2008-02-28 00:33+0100\n"
"Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n" "Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n"
"Language-Team: Turkish\n" "Language-Team: Turkish\n"
@ -15,6 +15,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-9\n" "Content-Type: text/plain; charset=ISO-8859-9\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "kapalý"
msgid "on"
msgstr ""
msgid "none"
msgstr "hiç"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** Geçersiz kanal ***" msgstr "*** Geçersiz kanal ***"
@ -225,9 +240,6 @@ msgstr "
msgid "encrypted" msgid "encrypted"
msgstr "Þifreli" msgstr "Þifreli"
msgid "auto"
msgstr "otomatik"
msgid "Edit channel" msgid "Edit channel"
msgstr "Kanal ayarlarýný deðiþtir" msgstr "Kanal ayarlarýný deðiþtir"
@ -276,21 +288,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "Kutuplaþma" msgstr "Kutuplaþma"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "Srate" msgstr "Srate"
msgid "Inversion" msgid "Inversion"
msgstr "Ýnversiyon" msgstr "Ýnversiyon"
msgid "off"
msgstr "kapalý"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "hiç"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -309,6 +318,15 @@ msgstr "Koruma"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "Hiyerarþi" msgstr "Hiyerarþi"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "Öncelik"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "Kanal ayarlarý belli deðýl!" msgstr "Kanal ayarlarý belli deðýl!"
@ -354,9 +372,6 @@ msgstr "Biti
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "Öncelik"
msgid "Lifetime" msgid "Lifetime"
msgstr "Ömrü" msgstr "Ömrü"
@ -891,6 +906,9 @@ msgstr "
msgid "Button$Insert" msgid "Button$Insert"
msgstr "Ekle" msgstr "Ekle"
msgid "auto"
msgstr "otomatik"
msgid "Plugin" msgid "Plugin"
msgstr "Eklenti" msgstr "Eklenti"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-03-07 14:17+0200\n" "PO-Revision-Date: 2008-03-07 14:17+0200\n"
"Last-Translator: Yarema Aka Knedlyk <yupadmin@gmail.com>\n" "Last-Translator: Yarema Aka Knedlyk <yupadmin@gmail.com>\n"
"Language-Team: Ukrainian\n" "Language-Team: Ukrainian\n"
@ -15,6 +15,21 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-5\n" "Content-Type: text/plain; charset=ISO-8859-5\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "off"
msgstr "ÒØÚÛ"
msgid "on"
msgstr ""
msgid "none"
msgstr "ÝöçÞÓÞ"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "*** ½ÕßàÐÒØÛìÝØÙ ÚÐÝÐÛ ***" msgstr "*** ½ÕßàÐÒØÛìÝØÙ ÚÐÝÐÛ ***"
@ -225,9 +240,6 @@ msgstr "FTA (
msgid "encrypted" msgid "encrypted"
msgstr "×ÐÚÞÔÞÒÐÝÞ" msgstr "×ÐÚÞÔÞÒÐÝÞ"
msgid "auto"
msgstr "ÐÒâÞ"
msgid "Edit channel" msgid "Edit channel"
msgstr "ÀÕÔÐÚâãÒÐÝÝï ÚÐÝÐÛã" msgstr "ÀÕÔÐÚâãÒÐÝÝï ÚÐÝÐÛã"
@ -276,21 +288,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "¿ÞÛïàØ×Ðæöï" msgstr "¿ÞÛïàØ×Ðæöï"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "ÁØÜÒ. èÒØÔÚöáâì" msgstr "ÁØÜÒ. èÒØÔÚöáâì"
msgid "Inversion" msgid "Inversion"
msgstr "¦ÝÒÕàáöï" msgstr "¦ÝÒÕàáöï"
msgid "off"
msgstr "ÒØÚÛ"
msgid "CoderateH" msgid "CoderateH"
msgstr "CoderateH" msgstr "CoderateH"
msgid "none"
msgstr "ÝöçÞÓÞ"
msgid "CoderateL" msgid "CoderateL"
msgstr "CoderateL" msgstr "CoderateL"
@ -309,6 +318,15 @@ msgstr "
msgid "Hierarchy" msgid "Hierarchy"
msgstr "¦ôàÐàåöï" msgstr "¦ôàÐàåöï"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "¿àöÞàØâÕâ"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "½ÐáâàÞÙÚØ ÚÐÝÐÛã ÝÕ ôÔØÝö!" msgstr "½ÐáâàÞÙÚØ ÚÐÝÐÛã ÝÕ ôÔØÝö!"
@ -354,9 +372,6 @@ msgstr "
msgid "VPS" msgid "VPS"
msgstr "VPS ßÞßàÐÒÚÐ" msgstr "VPS ßÞßàÐÒÚÐ"
msgid "Priority"
msgstr "¿àöÞàØâÕâ"
msgid "Lifetime" msgid "Lifetime"
msgstr "ÁâàÞÚ ×ÑÕàöÓÐÝÝï" msgstr "ÁâàÞÚ ×ÑÕàöÓÐÝÝï"
@ -873,14 +888,12 @@ msgstr "
msgid "Editing process already active!" msgid "Editing process already active!"
msgstr "¿àÞæÕá ÒöÔÕÞÜÞÝâÐÖã ÒÖÕ ×ÐßãéÕÝØÙ!" msgstr "¿àÞæÕá ÒöÔÕÞÜÞÝâÐÖã ÒÖÕ ×ÐßãéÕÝØÙ!"
#, fuzzy
msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&" msgid "FileNameChars$ abcdefghijklmnopqrstuvwxyz0123456789-.,#~\\^$[]|()*+?{}/:%@&"
msgstr " abcdefghijklmnopqrstuvwxyzÐÑÒÓÔÕôñÖ×Øö÷ÙÚÛÜÝÞßàáâãäåæçèéêëìîï0123456789-.#~,/_@" msgstr " abcdefghijklmnopqrstuvwxyzÐÑÒÓÔÕôñÖ×Øö÷ÙÚÛÜÝÞßàáâãäåæçèéêëìîï0123456789-.#~,/_@"
msgid "yes" msgid "yes"
msgstr "âÐÚ" msgstr "âÐÚ"
#, fuzzy
msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9" msgid "CharMap$ 0\t-.,1#~\\^$[]|()*+?{}/:%@&\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9"
msgstr " 0\t-.#~,/_@1\tabcÐÑÒÓ2\tdefÔÕôñÖ×3\tghiØö÷ÙÚÛ4\tjklÜÝÞ5\tmnoßàá6\tpqrsâãäå7\ttuvæçèéê8\twxyzëìíîï9" msgstr " 0\t-.#~,/_@1\tabcÐÑÒÓ2\tdefÔÕôñÖ×3\tghiØö÷ÙÚÛ4\tjklÜÝÞ5\tmnoßàá6\tpqrsâãäå7\ttuvæçèéê8\twxyzëìíîï9"
@ -893,6 +906,9 @@ msgstr "
msgid "Button$Insert" msgid "Button$Insert"
msgstr "²áâÐÒÚÐ" msgstr "²áâÐÒÚÐ"
msgid "auto"
msgstr "ÐÒâÞ"
msgid "Plugin" msgid "Plugin"
msgstr "¼ÞÔãÛì" msgstr "¼ÞÔãÛì"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 1.6.0\n" "Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-03-22 13:28+0100\n" "POT-Creation-Date: 2008-04-12 14:19+0200\n"
"PO-Revision-Date: 2008-03-21 08:44+0800\n" "PO-Revision-Date: 2008-03-21 08:44+0800\n"
"Last-Translator: Nan Feng <nfgx@21cn.com>\n" "Last-Translator: Nan Feng <nfgx@21cn.com>\n"
"Language-Team: Chinese\n" "Language-Team: Chinese\n"
@ -18,6 +18,21 @@ msgstr ""
"X-Poedit-Country: CHINA\n" "X-Poedit-Country: CHINA\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
msgid "off"
msgstr "关"
msgid "on"
msgstr ""
msgid "none"
msgstr "无"
msgid "high"
msgstr ""
msgid "low"
msgstr ""
msgid "*** Invalid Channel ***" msgid "*** Invalid Channel ***"
msgstr "***无效频道 ***" msgstr "***无效频道 ***"
@ -228,9 +243,6 @@ msgstr "剩余空间"
msgid "encrypted" msgid "encrypted"
msgstr "加密" msgstr "加密"
msgid "auto"
msgstr "自动"
msgid "Edit channel" msgid "Edit channel"
msgstr "编辑频道" msgstr "编辑频道"
@ -279,21 +291,18 @@ msgstr "Sid"
msgid "Polarization" msgid "Polarization"
msgstr "极化" msgstr "极化"
msgid "System"
msgstr ""
msgid "Srate" msgid "Srate"
msgstr "比率" msgstr "比率"
msgid "Inversion" msgid "Inversion"
msgstr "倒置" msgstr "倒置"
msgid "off"
msgstr "关"
msgid "CoderateH" msgid "CoderateH"
msgstr "高符号频率" msgstr "高符号频率"
msgid "none"
msgstr "无"
msgid "CoderateL" msgid "CoderateL"
msgstr "论符号频率" msgstr "论符号频率"
@ -312,6 +321,15 @@ msgstr "防护"
msgid "Hierarchy" msgid "Hierarchy"
msgstr "层次" msgstr "层次"
msgid "Alpha"
msgstr ""
msgid "Priority"
msgstr "优先"
msgid "Rolloff"
msgstr ""
msgid "Channel settings are not unique!" msgid "Channel settings are not unique!"
msgstr "频道设置不是唯一的!" msgstr "频道设置不是唯一的!"
@ -357,9 +375,6 @@ msgstr "停止"
msgid "VPS" msgid "VPS"
msgstr "VPS" msgstr "VPS"
msgid "Priority"
msgstr "优先"
msgid "Lifetime" msgid "Lifetime"
msgstr "终生" msgstr "终生"
@ -894,6 +909,9 @@ msgstr "覆盖"
msgid "Button$Insert" msgid "Button$Insert"
msgstr "插入" msgstr "插入"
msgid "auto"
msgstr "自动"
msgid "Plugin" msgid "Plugin"
msgstr "插件" msgstr "插件"

3
sdt.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: sdt.c 1.19 2008/02/08 13:48:31 kls Exp $ * $Id: sdt.c 2.1 2008/04/12 13:33:55 kls Exp $
*/ */
#include "sdt.h" #include "sdt.h"
@ -55,6 +55,7 @@ void cSdtFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
case 0x02: // digital radio sound service case 0x02: // digital radio sound service
case 0x04: // NVOD reference service case 0x04: // NVOD reference service
case 0x05: // NVOD time-shifted service case 0x05: // NVOD time-shifted service
case 0x19: // digital HD television service
{ {
char NameBuf[Utf8BufSize(1024)]; char NameBuf[Utf8BufSize(1024)];
char ShortNameBuf[Utf8BufSize(1024)]; char ShortNameBuf[Utf8BufSize(1024)];

18
vdr.5
View File

@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the .\" License as specified in the file COPYING that comes with the
.\" vdr distribution. .\" vdr distribution.
.\" .\"
.\" $Id: vdr.5 1.68 2008/03/09 15:46:57 kls Exp $ .\" $Id: vdr.5 2.1 2008/04/12 10:46:32 kls Exp $
.\" .\"
.TH vdr 5 "10 Feb 2008" "1.6" "Video Disk Recorder Files" .TH vdr 5 "10 Feb 2008" "1.6" "Video Disk Recorder Files"
.SH NAME .SH NAME
@ -83,19 +83,23 @@ meaning (and allowed values) are
.TS .TS
tab (@); tab (@);
l l. l l.
\fBB\fR@Bandwidth (6, 7, 8) \fBA\fR@Alpha (0, 1, 2, 4)
\fBC\fR@Code rate high priority (0, 12, 23, 34, 45, 56, 67, 78, 89) \fBB\fR@Bandwidth (5, 6, 7, 8)
\fBD\fR@Code rate low priority (0, 12, 23, 34, 45, 56, 67, 78, 89) \fBC\fR@Code rate high priority (0, 12, 13, 14, 23, 25, 34, 35, 45, 56, 67, 78, 89, 910)
\fBD\fR@coDe rate low priority (0, 12, 13, 14, 23, 25, 34, 35, 45, 56, 67, 78, 89, 910)
\fBG\fR@Guard interval (4, 8, 16, 32) \fBG\fR@Guard interval (4, 8, 16, 32)
\fBH\fR@Horizontal polarization \fBH\fR@Horizontal polarization
\fBI\fR@Inversion (0, 1) \fBI\fR@Inversion (0, 1)
\fBL\fR@Left circular polarization \fBL\fR@Left circular polarization
\fBM\fR@Modulation (0, 16, 32, 64, 128, 256) \fBM\fR@Modulation (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 32, 64, 128, 256, 512, 998, 1024)
\fBO\fR@rollOff (0, 20, 25, 35)
\fBP\fR@Priority (0, 1)
\fBR\fR@Right circular polarization \fBR\fR@Right circular polarization
\fBT\fR@Transmission mode (2, 8) \fBT\fR@Transmission mode (2, 4, 8)
\fBV\fR@Vertical polarization \fBV\fR@Vertical polarization
\fBY\fR@Hierarchy (0, 1, 2, 4) \fBY\fR@hierarchY (0, 1)
.TE .TE
The polarization parameters have no integer numbers following them. This is for 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 compatibility with files from older versions and also to keep the DVB-S entries
as simple as possible. as simple as possible.