mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-05-06 20:47:23 +02:00
added support for LG's LN series
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user