mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-01-21 06:42:04 +01: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;
|
||||
|
||||
@@ -13,6 +13,8 @@ namespace ChanSort.Ui
|
||||
|
||||
public static void Show(IWin32Window owner, string message, string caption)
|
||||
{
|
||||
if (string.IsNullOrEmpty(message))
|
||||
return;
|
||||
var box = new InfoBox();
|
||||
box.Text = caption;
|
||||
box.txtMessage.Text = message;
|
||||
|
||||
22
ChanSort/MainForm.Designer.cs
generated
22
ChanSort/MainForm.Designer.cs
generated
@@ -105,8 +105,8 @@
|
||||
this.miSave = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miSaveAs = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miOpenReferenceFile = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miQuit = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miSaveReferenceFile = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miQuit = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miEdit = new DevExpress.XtraBars.BarSubItem();
|
||||
this.miAddChannel = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miRemove = new DevExpress.XtraBars.BarButtonItem();
|
||||
@@ -950,6 +950,14 @@
|
||||
this.miOpenReferenceFile.Name = "miOpenReferenceFile";
|
||||
this.miOpenReferenceFile.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miOpenReferenceFile_ItemClick);
|
||||
//
|
||||
// miSaveReferenceFile
|
||||
//
|
||||
resources.ApplyResources(this.miSaveReferenceFile, "miSaveReferenceFile");
|
||||
this.miSaveReferenceFile.Id = 57;
|
||||
this.miSaveReferenceFile.ImageIndex = 6;
|
||||
this.miSaveReferenceFile.Name = "miSaveReferenceFile";
|
||||
this.miSaveReferenceFile.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSaveReferenceFile_ItemClick);
|
||||
//
|
||||
// miQuit
|
||||
//
|
||||
resources.ApplyResources(this.miQuit, "miQuit");
|
||||
@@ -959,14 +967,6 @@
|
||||
this.miQuit.Name = "miQuit";
|
||||
this.miQuit.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miQuit_ItemClick);
|
||||
//
|
||||
// miSaveReferenceFile
|
||||
//
|
||||
resources.ApplyResources(this.miSaveReferenceFile, "miSaveReferenceFile");
|
||||
this.miSaveReferenceFile.Id = 57;
|
||||
this.miSaveReferenceFile.ImageIndex = 6;
|
||||
this.miSaveReferenceFile.Name = "miSaveReferenceFile";
|
||||
this.miSaveReferenceFile.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSaveReferenceFile_ItemClick);
|
||||
//
|
||||
// miEdit
|
||||
//
|
||||
resources.ApplyResources(this.miEdit, "miEdit");
|
||||
@@ -1150,7 +1150,8 @@
|
||||
this.barSubItem2.Id = 47;
|
||||
this.barSubItem2.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] {
|
||||
new DevExpress.XtraBars.LinkPersistInfo(this.miTvSettings),
|
||||
new DevExpress.XtraBars.LinkPersistInfo(this.miEraseChannelData)});
|
||||
new DevExpress.XtraBars.LinkPersistInfo(this.miEraseChannelData),
|
||||
new DevExpress.XtraBars.LinkPersistInfo(this.miCleanupChannels)});
|
||||
this.barSubItem2.Name = "barSubItem2";
|
||||
//
|
||||
// miTvSettings
|
||||
@@ -1256,7 +1257,6 @@
|
||||
this.miEraseDuplicateChannels.Checked = true;
|
||||
this.miEraseDuplicateChannels.Id = 53;
|
||||
this.miEraseDuplicateChannels.Name = "miEraseDuplicateChannels";
|
||||
this.miEraseDuplicateChannels.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
|
||||
//
|
||||
// mnuHelp
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace ChanSort.Ui
|
||||
{
|
||||
public partial class MainForm : XtraForm
|
||||
{
|
||||
public const string AppVersion = "v2013-05-05";
|
||||
public const string AppVersion = "v2013-05-07a";
|
||||
|
||||
#region enum EditMode
|
||||
private enum EditMode
|
||||
@@ -332,6 +332,8 @@ namespace ChanSort.Ui
|
||||
{
|
||||
#if ENABLE_TV_FILE_CLEANUP
|
||||
this.currentTvSerializer.EraseDuplicateChannels = this.miEraseDuplicateChannels.Checked;
|
||||
#else
|
||||
this.currentTvSerializer.EraseDuplicateChannels = false;
|
||||
#endif
|
||||
this.currentTvSerializer.Load();
|
||||
this.dataRoot = this.currentTvSerializer.DataRoot;
|
||||
@@ -1116,6 +1118,7 @@ namespace ChanSort.Ui
|
||||
#if ENABLE_TV_FILE_CLEANUP
|
||||
this.miCleanupChannels.Visibility = this.currentTvSerializer != null &&
|
||||
this.currentTvSerializer.Features.CleanUpChannelData ? BarItemVisibility.Always : BarItemVisibility.Never;
|
||||
this.miEraseDuplicateChannels.Visibility = BarItemVisibility.Always;
|
||||
#else
|
||||
this.miCleanupChannels.Visibility = BarItemVisibility.Never;
|
||||
this.miEraseDuplicateChannels.Visibility = BarItemVisibility.Never;
|
||||
@@ -1248,6 +1251,7 @@ namespace ChanSort.Ui
|
||||
{
|
||||
if (this.currentTvSerializer != null && this.currentTvSerializer.Features.CleanUpChannelData)
|
||||
{
|
||||
this.currentTvSerializer.EraseDuplicateChannels = true;
|
||||
var msg = this.currentTvSerializer.CleanUpChannelData();
|
||||
this.FillChannelListCombo();
|
||||
InfoBox.Show(this, msg, this.miCleanupChannels.Caption);
|
||||
|
||||
@@ -374,6 +374,12 @@
|
||||
<data name="miEraseChannelData.Caption" xml:space="preserve">
|
||||
<value>Erase all channel data</value>
|
||||
</data>
|
||||
<data name="miCleanupChannels.Caption" xml:space="preserve">
|
||||
<value>Cleanup channel data</value>
|
||||
</data>
|
||||
<data name="miCleanupChannels.Hint" xml:space="preserve">
|
||||
<value>Remove duplicate channels and reorganize </value>
|
||||
</data>
|
||||
<data name="mnuOptions.Caption" xml:space="preserve">
|
||||
<value>&Settings</value>
|
||||
</data>
|
||||
@@ -550,12 +556,6 @@
|
||||
<data name="miMoveDown.Caption" xml:space="preserve">
|
||||
<value>Move down</value>
|
||||
</data>
|
||||
<data name="miCleanupChannels.Caption" xml:space="preserve">
|
||||
<value>Cleanup channel data</value>
|
||||
</data>
|
||||
<data name="miCleanupChannels.Hint" xml:space="preserve">
|
||||
<value>Remove duplicate channels and reorganize </value>
|
||||
</data>
|
||||
<data name="rbInsertSwap.Properties.Caption" xml:space="preserve">
|
||||
<value>swap</value>
|
||||
</data>
|
||||
@@ -1154,18 +1154,18 @@
|
||||
<data name=">>miOpenReferenceFile.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>miQuit.Name" xml:space="preserve">
|
||||
<value>miQuit</value>
|
||||
</data>
|
||||
<data name=">>miQuit.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>miSaveReferenceFile.Name" xml:space="preserve">
|
||||
<value>miSaveReferenceFile</value>
|
||||
</data>
|
||||
<data name=">>miSaveReferenceFile.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>miQuit.Name" xml:space="preserve">
|
||||
<value>miQuit</value>
|
||||
</data>
|
||||
<data name=">>miQuit.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>miEdit.Name" xml:space="preserve">
|
||||
<value>miEdit</value>
|
||||
</data>
|
||||
@@ -1407,7 +1407,7 @@
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="SharedImageCollection.Timestamp" type="System.DateTime, mscorlib">
|
||||
<value>05/05/2013 19:31:31</value>
|
||||
<value>05/07/2013 01:07:27</value>
|
||||
</data>
|
||||
<data name="SharedImageCollection.ImageSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>16, 16</value>
|
||||
|
||||
16
Test.Loader.LG/LN/TestLN.cs
Normal file
16
Test.Loader.LG/LN/TestLN.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
namespace Test.Loader.LG
|
||||
{
|
||||
[TestClass]
|
||||
public class TestLN : TestBase
|
||||
{
|
||||
[TestMethod]
|
||||
public void TestLX9500_T224T_Sat76TR()
|
||||
{
|
||||
// "ThomasOhmes"
|
||||
//this.GenerateTestFiles("LN/xxLN5406-ZA99999");
|
||||
this.ExecuteTest("LN/xxLN5406-ZA99999");
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
Test.Loader.LG/LN/xxLN5406-ZA99999.TLL.in
Normal file
BIN
Test.Loader.LG/LN/xxLN5406-ZA99999.TLL.in
Normal file
Binary file not shown.
BIN
Test.Loader.LG/LN/xxLN5406-ZA99999.TLL.out
Normal file
BIN
Test.Loader.LG/LN/xxLN5406-ZA99999.TLL.out
Normal file
Binary file not shown.
1521
Test.Loader.LG/LN/xxLN5406-ZA99999.csv.in
Normal file
1521
Test.Loader.LG/LN/xxLN5406-ZA99999.csv.in
Normal file
File diff suppressed because it is too large
Load Diff
@@ -78,6 +78,7 @@
|
||||
<Compile Include="LE\TestLE.cs" />
|
||||
<Compile Include="LK\TestLK.cs" />
|
||||
<Compile Include="LM\TestLM.cs" />
|
||||
<Compile Include="LN\TestLN.cs" />
|
||||
<Compile Include="LS\TestLS.cs" />
|
||||
<Compile Include="LV\TestLV.cs" />
|
||||
<Compile Include="LW\TestLW.cs" />
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Version v2013-05-05a (preview) ============================================
|
||||
Version v2013-05-07a (preview) ============================================
|
||||
|
||||
Changes:
|
||||
- Added support for LG's LN-series
|
||||
- Fixed: Saving reordered list for LG xxLH3000.
|
||||
- Removed "Cleanup TV data file" option due to a report of a bricked LG TV.
|
||||
(The cleanup no longer works since firmware 4.40.19 when a preset
|
||||
|
||||
Reference in New Issue
Block a user