added support for LG's LN series

This commit is contained in:
hbeham
2013-05-07 12:20:38 +02:00
parent ede6144d91
commit a14cbaa063
13 changed files with 1666 additions and 31 deletions

View File

@@ -29,6 +29,34 @@
offServiceType = 182
offAudioPid2 = 238
[ACTChannelDataMapping:224]
; LN series
reorderChannelData = 0
lenName = 40
offChannelTransponder = 10, 118, 153, 160
offProgramNr = 12, 156
offFavorites = 20
offPcrPid = 24, 208
offAudioPid = 26
offVideoPid = 36
offName = 44, 168
offNameLength = 84, 167
offServiceId = 86, 164
offFrequencyLong = 120
offOriginalNetworkId = 130
offTransportStreamId = 132
offFavorites2 = 162
offDeleted = 162
maskDeleted = 0x42
offLock = 163
maskLock = 0x01
offSkip = 163
maskSkip = 0x02
offHide = 163
maskHide = 0x04
offServiceType = 166
offAudioPid2 = 238
[ACTChannelDataMapping:192]
; LM series with Firmware 4.x (all except LM611S and LM340S)
reorderChannelData = 0
@@ -231,7 +259,7 @@
offAudioPid2 = 154
[DvbsBlock:687880]
; everything before LM series (but including LM611S and LM340S)
; everything before LM series + LM611S and LM340S
satCount = 64
satLength = 44
transponderCount = 2400
@@ -241,6 +269,19 @@
lnbCount = 40
lnbLength = 44
[DvbsBlock:629932]
; LN
satCount = 64
satLength = 44
transponderCount = 2400
transponderLength = 44
linkedListExtraDataLength = 2
dvbsChannelCount = 6000
dvbsChannelLength = 76
lnbCount = 40
lnbLength = 48
[DvbsBlock:717960]
; LM and PM series except LM611S and LM340S
satCount = 64
@@ -264,6 +305,7 @@
lnbLength = 52
[TransponderDataMapping:40]
; everything up to LM
offFirstChannelIndex = 0
offLastChannelIndex = 2
offChannelCount = 4
@@ -275,7 +317,21 @@
offSatIndex = 36
symbolRateFactor = 1
[TransponderDataMapping:44]
; LN
offFirstChannelIndex = 0
offLastChannelIndex = 2
offChannelCount = 4
offTransponderIndex = 10
offFrequency = 12
offOriginalNetworkId = 22
offTransportStreamId = 24
offSymbolRate = 29
offSatIndex = 40
symbolRateFactor = 0.5
[TransponderDataMapping:56]
; LA
offFirstChannelIndex = 0
offLastChannelIndex = 2
offChannelCount = 4
@@ -288,6 +344,7 @@
symbolRateFactor = 0.5
[SatChannelDataMapping:68]
; everything before LM + LM340S and LM611S
lenName = 40
offSatelliteNr = 0
offSourceType = 4
@@ -315,6 +372,35 @@
offAudioPid = 62
[SatChannelDataMapping:72]
; LM series
lenName = 40
offSatelliteNr = 0
offSourceType = 4
offTransponderIndex = 6, 12
offProgramNr = 8
offProgramNrPreset = 10
offFavorites2 = 14
offDeleted = 14
maskDeleted = 0x42
offEncrypted = 14
maskEncrypted = 0x80
offLock = 15
maskLock = 0x01
offSkip = 15
maskSkip = 0x02
offHide = 15
maskHide = 0x04
offProgNrCustomized = 15
maskProgNrCustomized = 0x40
offServiceId = 16
offServiceType = 18
offNameLength = 19
offName = 20
offVideoPid = 60
offAudioPid = 62
[SatChannelDataMapping:76]
; LN series
lenName = 40
offSatelliteNr = 0
offSourceType = 4

View File

@@ -8,6 +8,7 @@
public readonly int transponderCount;
public readonly int transponderLength;
public readonly int sizeOfChannelLinkedListEntry = 8;
public readonly int linkedListExtraDataLength;
public readonly int dvbsMaxChannelCount;
public readonly int dvbsChannelLength;
public readonly int lnbCount;
@@ -24,6 +25,7 @@
this.transponderCount = iniSection.GetInt("transponderCount");
this.transponderLength = iniSection.GetInt("transponderLength");
this.sizeOfTransponderBlockHeader = 14 + transponderCount/8 + transponderCount*6 + 2;
this.linkedListExtraDataLength = iniSection.GetInt("linkedListExtraDataLength");
this.dvbsMaxChannelCount = iniSection.GetInt("dvbsChannelCount");
this.dvbsChannelLength = iniSection.GetInt("dvbsChannelLength");
this.lnbCount = iniSection.GetInt("lnbCount");
@@ -34,7 +36,7 @@
12, // header
14 + 2 + this.satCount + this.satCount*this.satLength, // satellites
sizeOfTransponderBlockHeader - 4 + transponderCount * transponderLength, // transponder
12 + dvbsMaxChannelCount/8 + dvbsMaxChannelCount*sizeOfChannelLinkedListEntry + dvbsMaxChannelCount * dvbsChannelLength, // channels
12 + dvbsMaxChannelCount/8 + dvbsMaxChannelCount*sizeOfChannelLinkedListEntry + linkedListExtraDataLength + dvbsMaxChannelCount * dvbsChannelLength, // channels
LnbBlockHeaderSize - 4 + lnbCount * lnbLength // sat/LNB-Config
};
@@ -73,7 +75,7 @@
/// </summary>
public int ChannelListOffset
{
get { return SequenceTableOffset + dvbsMaxChannelCount*sizeOfChannelLinkedListEntry; }
get { return SequenceTableOffset + dvbsMaxChannelCount*sizeOfChannelLinkedListEntry + linkedListExtraDataLength; }
}

View File

@@ -335,7 +335,7 @@ namespace ChanSort.Loader.LG
off += header.Size;
off += satConfig.dvbsMaxChannelCount/8; // skip allocation bitmap
this.ReadDvbsChannelLinkedList(header, ref off);
off += satConfig.linkedListExtraDataLength;
this.ReadDvbsChannels(ref off, header.LinkedListStartIndex);
// subblock 5 (satellite/LNB config)
@@ -707,10 +707,12 @@ namespace ChanSort.Loader.LG
private void UpdateChannelLinkedList(int counter)
{
var header = new SatChannelListHeader(this.fileContent, this.dvbsBlockOffset + satConfig.ChannelListHeaderOffset);
header.ChannelCount = counter;
header.LinkedListStartIndex = 0;
if (counter == 0)
counter = 1;
header.LinkedListEndIndex1 = counter - 1;
header.LinkedListEndIndex2 = counter - 1;
header.ChannelCount = counter;
// update linked list
var off = this.dvbsBlockOffset + satConfig.SequenceTableOffset;