- physical channel reordering for LD,LE,LX,PT,PK (except 950)

- separate DVB-C and DVB-T channel lists for LG (LA series can have both mixed in one file)
This commit is contained in:
hbeham
2013-06-23 00:11:16 +02:00
parent 1d78b1c190
commit 7835e2ff69
15 changed files with 894 additions and 1044 deletions

View File

@@ -5,6 +5,7 @@
; LA 2013 series
reorderChannelData = 0
lenName = 40
offSignalSource = 8
offChannelTransponder = 10, 122, 170, 176
offProgramNr = 12, 172
offFavorites = 20
@@ -33,6 +34,7 @@
; LN series
reorderChannelData = 0
lenName = 40
offSignalSource = 8
offChannelTransponder = 10, 118, 153, 160
offProgramNr = 12, 156
offFavorites = 20
@@ -61,6 +63,7 @@
; LM series with Firmware 4.x (all except LM611S and LM340S)
reorderChannelData = 0
lenName = 40
offSignalSource = 8
offChannelTransponder = 10, 94, 126, 132
offProgramNr = 12, 128
offFavorites = 20
@@ -89,6 +92,7 @@
; LM series with Firmware 3.x (LM611S with exceptions, LM340S)
reorderChannelData = 0
lenName = 40
offSignalSource = 8
offChannelTransponder = 10, 94, 125, 132
offProgramNr = 12, 128
offFavorites = 20
@@ -118,6 +122,7 @@
; LK950S, CS460S, PM670S, LM611S(with exceptions)
reorderChannelData = 0
lenName = 40
offSignalSource = 8
offChannelTransponder = 10, 90, 121, 128
offProgramNr = 12, 124
offFavorites = 20
@@ -144,8 +149,9 @@
[ACTChannelDataMapping:180]
; PT
reorderChannelData = 0
reorderChannelData = 1
lenName = 40
offSignalSource = 8
offChannelTransponder = 10, 90, 124
offProgramNr = 12
offFavorites = 20
@@ -173,8 +179,9 @@
[ACTChannelDataMapping:176]
; LD, LE, LX series, LK450, LW4500, LW5400
reorderChannelData = 0
reorderChannelData = 1
lenName = 40
offSignalSource = 8
offChannelTransponder = 10, 86, 120
offProgramNr = 12
offFavorites = 20

View File

@@ -4,6 +4,7 @@ namespace ChanSort.Loader.LG
{
public class DtvChannel : TllChannelBase
{
private const string _SignalSource = "offSignalSource";
private const string _ChannelOrTransponder = "offChannelTransponder";
private const string _FrequencyLong = "offFrequencyLong";
@@ -14,7 +15,9 @@ namespace ChanSort.Loader.LG
public DtvChannel(int slot, DataMapping data) : base(data)
{
this.InitCommonData(slot, SignalSource.DvbCT, data);
var signalSource = SignalSource.Digital;
signalSource |= data.GetByte(_SignalSource) == 1 ? SignalSource.Antenna : SignalSource.Cable;
this.InitCommonData(slot, signalSource, data);
this.InitDvbData(data);
int channel = data.GetByte(_ChannelOrTransponder);

View File

@@ -26,10 +26,12 @@ namespace ChanSort.Loader.LG
private readonly MappingPool<FirmwareData> firmwareMappings = new MappingPool<FirmwareData>("Firmware");
private readonly ChannelList atvChannels = new ChannelList(SignalSource.AnalogCT | SignalSource.Tv, "Analog TV");
private readonly ChannelList dtvChannels = new ChannelList(SignalSource.DvbCT | SignalSource.Tv, "DTV");
private readonly ChannelList radioChannels = new ChannelList(SignalSource.DvbCT | SignalSource.Radio, "Radio");
private readonly ChannelList satTvChannels = new ChannelList(SignalSource.DvbS | SignalSource.Tv, "Sat-DTV");
private readonly ChannelList satRadioChannels = new ChannelList(SignalSource.DvbS | SignalSource.Radio, "Sat-Radio");
private readonly ChannelList dvbcTvChannels = new ChannelList(SignalSource.DvbC | SignalSource.Tv, "DVB-C TV");
private readonly ChannelList dvbtTvChannels = new ChannelList(SignalSource.DvbT | SignalSource.Tv, "DVB-T TV");
private readonly ChannelList dvbcRadioChannels = new ChannelList(SignalSource.DvbC | SignalSource.Radio, "DVB-C Radio");
private readonly ChannelList dvbtRadioChannels = new ChannelList(SignalSource.DvbT | SignalSource.Radio, "DVB-T Radio");
private readonly ChannelList satTvChannels = new ChannelList(SignalSource.DvbS | SignalSource.Tv, "Sat TV");
private readonly ChannelList satRadioChannels = new ChannelList(SignalSource.DvbS | SignalSource.Radio, "Sat Radio");
private byte[] fileContent;
@@ -82,8 +84,10 @@ namespace ChanSort.Loader.LG
this.ReadConfigurationFromIniFile();
this.DataRoot.AddChannelList(atvChannels);
this.DataRoot.AddChannelList(dtvChannels);
this.DataRoot.AddChannelList(radioChannels);
this.DataRoot.AddChannelList(dvbcTvChannels);
this.DataRoot.AddChannelList(dvbcRadioChannels);
this.DataRoot.AddChannelList(dvbtTvChannels);
this.DataRoot.AddChannelList(dvbtRadioChannels);
}
#endregion
@@ -825,10 +829,13 @@ namespace ChanSort.Loader.LG
{
this.ReorderChannelData(this.analogBlockOffset + 8, this.actChannelSize, this.analogChannelCount, this.atvChannels.Channels);
var tv = this.dtvChannels.Channels.OrderBy(c => c.NewProgramNr);
var radio = this.radioChannels.Channels.OrderBy(c => c.NewProgramNr);
var dvbCt = tv.Union(radio).ToList();
this.ReorderChannelData(this.dvbctBlockOffset + 8, this.actChannelSize, this.dvbctChannelCount, dvbCt);
var dvbcTv = this.dvbcTvChannels.Channels.OrderBy(c => c.NewProgramNr);
var dvbcRadio = this.dvbcRadioChannels.Channels.OrderBy(c => c.NewProgramNr);
var dvbtTv = this.dvbtTvChannels.Channels.OrderBy(c => c.NewProgramNr);
var dvbtRadio = this.dvbtRadioChannels.Channels.OrderBy(c => c.NewProgramNr);
var dvb = dvbtTv.Union(dvbtRadio).Union(dvbcTv).Union(dvbcRadio).ToList();
this.ReorderChannelData(this.dvbctBlockOffset + 8, this.actChannelSize, this.dvbctChannelCount, dvb);
}
#endregion

View File

@@ -24,7 +24,7 @@ namespace ChanSort.Ui
{
public partial class MainForm : XtraForm
{
public const string AppVersion = "v2013-05-29";
public const string AppVersion = "v2013-06-22";
private const int MaxMruEntries = 5;
@@ -257,6 +257,8 @@ namespace ChanSort.Ui
XtraTabPage firstNonEmpty = null;
foreach (var list in this.dataRoot.ChannelLists)
{
if (list.Channels.Count == 0)
continue;
var tab = this.tabChannelList.TabPages.Add(list.Caption);
tab.Tag = list;
if (firstNonEmpty == null && list.Count > 0)

View File

@@ -1,79 +1,77 @@
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned int dword;
#include "tll-common.h"
public struct LH3000_AnalogChannel
struct LH3000_AnalogChannel
{
word t1[4];
byte t1f;
byte ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
word Freqency1Div50;
word APID1;
byte t1[2];
LH_SignalSource SignalSource;
byte t1b[6];
byte ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
word Freqency1Div50;
word APID1;
byte ChannelNumberInBand;
byte ChannelBand;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[14]; // !
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[14]; // !
word ONID;
word TSID;
byte t5b[6];
dword Frequency;
byte t6[8];
dword Frequency;
byte t6[8];
word ProgramNr2;
byte t7[2];
byte ChannelTransponder4;
byte _Favorites2;
byte LockSkipHide;
byte ServiceType;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
word t11;
word t12;
word t12;
};
public struct LH3000_DvbCtChannel
struct LH3000_DvbCtChannel
{
word t1[4];
byte t1a;
byte ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
byte t1[2];
LH_SignalSource SignalSource;
byte t1b[6];
byte ChannelTransponder1;
word ProgramNr;
word LogicalChannelNumber;
word t2[2];
byte Favorites1;
byte t2d;
word PcrPid;
word APID1;
word APID1;
word VPID1;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[14]; // !
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[14];
word ONID;
word TSID;
byte t5b[18];
byte ChannelTransponder4;
byte _Favorites2;
byte LockSkipHide;
byte Ch_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
char CH_Name2[40];
word PcrPid2;
word APID2;
word t11;
word SID2;
word SID2;
byte t13[4];
};
@@ -82,8 +80,8 @@ public struct LH3000_DvbCtChannel
struct LH3000_AnalogBlock
{
dword BlockSize;
dword ChannelCount;
LH3000_AnalogChannel Channels[ChannelCount];
dword ChannelCount;
LH3000_AnalogChannel Channels[ChannelCount];
};
struct LH3000_FirmwareBlock
@@ -95,8 +93,8 @@ struct LH3000_FirmwareBlock
struct LH3000_DvbCTBlock
{
dword BlockSize;
dword ChannelCount;
LH3000_DvbCtChannel Channels[ChannelCount];
dword ChannelCount;
LH3000_DvbCtChannel Channels[ChannelCount];
};
@@ -104,5 +102,5 @@ public struct LH3000
{
LH3000_AnalogBlock Analog;
LH3000_FirmwareBlock Firmware;
LH3000_DvbCTBlock DvbCT;
LH3000_DvbCTBlock DvbCT;
};

View File

@@ -1,87 +1,88 @@
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned int dword;
#include "tll-common.h"
public struct LH164_AnalogChannel
struct LH164_AnalogChannel
{
word t1[4];
byte t1f;
byte ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
word Freqency1Div50;
word APID1;
byte t1[2];
LH_SignalSource SignalSource;
byte t1b[6];
byte ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
word Freqency1Div50;
word APID1;
byte ChannelNumberInBand;
byte ChannelBand;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[14]; // !
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[14]; // !
word ONID;
word TSID;
byte t5b[6];
dword Frequency;
byte t6[8];
dword Frequency;
byte t6[8];
word ProgramNr2;
byte t7[2];
byte ChannelTransponder4;
byte _Favorites2;
byte LockSkipHide;
byte ServiceType;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
word t11;
word t12;
word t12;
};
public struct LH164_DvbCtChannel
struct LH164_DvbCtChannel
{
word t1[4];
byte t1a;
byte ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
byte t1[2];
LH_SignalSource SignalSource;
byte t1b[6];
byte ChannelTransponder1;
word ProgramNr;
word LogicalChannelNumber;
word t2[2];
byte Favorites1;
byte t2d;
word PcrPid;
word APID1;
word APID1;
word VPID1;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[14]; // !
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[14]; // !
word ONID;
word TSID;
byte t5b[6];
dword Frequency;
byte t6[8];
dword Frequency;
byte t6[8];
word ProgramNr2;
byte t7[2];
byte ChannelTransponder4;
byte _Favorites2;
byte LockSkipHide;
byte ServiceType;
char CH_Name2[40];
word PcrPid2;
word APID2;
char CH_Name2[40];
word PcrPid2;
word APID2;
word t11;
word SID2;
word SID2;
};
struct LH164_AnalogBlock
{
dword BlockSize;
dword ChannelCount;
LH164_AnalogChannel Channels[ChannelCount];
dword ChannelCount;
LH164_AnalogChannel Channels[ChannelCount];
};
struct LH164_FirmwareBlock
@@ -93,8 +94,8 @@ struct LH164_FirmwareBlock
struct LH164_DvbCTBlock
{
dword BlockSize;
dword ChannelCount;
LH164_DvbCtChannel Channels[ChannelCount];
dword ChannelCount;
LH164_DvbCtChannel Channels[ChannelCount];
};
@@ -102,5 +103,5 @@ public struct LH164
{
LH164_AnalogBlock Analog;
LH164_FirmwareBlock Firmware;
LH164_DvbCTBlock DvbCT;
LH164_DvbCTBlock DvbCT;
};

View File

@@ -1,157 +1,91 @@
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned int dword;
#include "tll-common.h"
#define ACT_CHANNEL_PADDING 4
#define SAT_CHANNEL_PADDING 2
#define MAX_SAT_COUNT 64
#define MAX_LNB_COUNT 40
#define MAX_DVBS_COUNT 7520
#define MAX_TP_COUNT 2400
public struct LD176_AnalogChannel
struct LD176_AnalogChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1f;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
word Freqency1Div50;
word APID1;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
word Freqency1Div50;
word APID1;
byte ChannelNumberInBand;
byte ChannelBand;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5[10]; // !
word t5b;
byte ChannelTransponder2;
byte t5c;
dword Frequency;
byte t6[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5[10]; // !
word t5b;
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[19];
byte t7[19];
word ProgramNr2;
byte t8;
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte t8;
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word t10[3];
word t10[3];
};
public struct LD176_DvbCtChannel
struct LD176_DvbCtChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1f;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
word PcrPid;
word APID1;
word APID1;
word VPID1;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[12]; // !
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[12]; // !
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[18];
word ProgramNr2;
byte t8[2];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
word t11;
word t12;
};
public struct LD176_SatChannel
{
byte t1[2];
byte t2[4];
word TP_Number;
word CH_Number;
byte t3[5];
byte EditFlag;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word t4;
byte t5[SAT_CHANNEL_PADDING];
};
public struct LD176_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
byte t1[10];
};
public struct LD176_Transponder
{
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
byte t3[3];
word SRate;
byte t4[9];
byte SatIndex;
byte t5[3];
};
public struct LD176_Lnb
{
byte t1[12];
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[6];
word t12;
};
struct LD176_AnalogBlock
{
dword BlockSize;
dword ChannelCount;
LD176_AnalogChannel Channels[ChannelCount];
dword ChannelCount;
LD176_AnalogChannel Channels[ChannelCount];
};
struct LD176_FirmwareBlock
@@ -163,42 +97,22 @@ struct LD176_FirmwareBlock
struct LD176_DvbCTBlock
{
dword BlockSize;
dword ChannelCount;
LD176_DvbCtChannel Channels[ChannelCount];
};
struct LD176_DvbSBlock
{
dword BlockSize;
byte Temp03[0x20];
byte Temp04[0x44];
LD176_Satellite Satellites[MAX_SAT_COUNT];
byte Temp05[0x397C];
LD176_Transponder Transponder[MAX_TP_COUNT];
dword Checksum;
byte Temp06[6];
word DVBS_MaxIndex1;
word DVBS_MaxIndex2;
word DVBS_ChannelCount;
byte Temp07[0xEEAC];
LD176_SatChannel Channels[MAX_DVBS_COUNT];
LD176_Lnb Lnb[MAX_LNB_COUNT];
byte Temp08[12];
dword ChannelCount;
LD176_DvbCtChannel Channels[ChannelCount];
};
struct LD176_SettingsBlock
{
dword BlockSize;
byte Data[BlockSize];
byte Data[BlockSize];
};
public struct LD176
{
byte Header[4];
byte Header[4];
LD176_AnalogBlock Analog;
LD176_FirmwareBlock Firmware;
LD176_DvbCTBlock DvbCT;
LD176_DvbSBlock DvbS;
LD176_DvbCTBlock DvbCT;
LD176_SettingsBlock Settings;
};

View File

@@ -1,156 +1,91 @@
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned int dword;
#include "tll-common.h"
#define ACT_CHANNEL_PADDING 4
#define SAT_CHANNEL_PADDING 2
#define MAX_SAT_COUNT 64
#define MAX_LNB_COUNT 40
#define MAX_DVBS_COUNT 7520
#define MAX_TP_COUNT 2400
public struct PT180_AnalogChannel
struct PT180_AnalogChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ProgramNr;
word t2[3];
word ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2b;
word Frequency1Div50;
word APID1;
word APID1;
byte ChannelNumberInBand;
byte ChannelBand;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4[1];
word SID1;
byte t5a[16];
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[18];
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4[1];
word SID1;
byte t5a[16];
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[18];
word ProgramNr2;
byte t8[2];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[ACT_CHANNEL_PADDING];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[4];
};
public struct PT180_DvbCtChannel
struct PT180_DvbCtChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1f;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word LogicalChannelNumber;
word t2[2];
byte Favorites1;
byte t2d;
word PcrPid1;
word APID1;
word APID1;
word VPID1;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[16];
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[18];
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[16];
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[18];
word ProgramNr2;
byte t8[2];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
byte t11[ACT_CHANNEL_PADDING];
};
public struct PT180_SatChannel
{
byte t1[2];
byte t2[4];
word TP_Number;
word CH_Number;
byte t3[5];
byte EditFlag;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word t4;
byte t5[SAT_CHANNEL_PADDING];
};
public struct PT180_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
byte t1[10];
};
public struct PT180_Transponder
{
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
byte t3[3];
word SRate;
byte t4[9];
byte SatIndex;
byte t5[3];
};
public struct PT180_Lnb
{
byte t1[12];
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[6];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
byte t11[4];
};
struct PT180_AnalogBlock
{
dword BlockSize;
dword ChannelCount;
PT180_AnalogChannel Channels[ChannelCount];
dword ChannelCount;
PT180_AnalogChannel Channels[ChannelCount];
};
struct PT180_FirmwareBlock
@@ -162,42 +97,22 @@ struct PT180_FirmwareBlock
struct PT180_DvbCTBlock
{
dword BlockSize;
dword ChannelCount;
PT180_DvbCtChannel Channels[ChannelCount];
dword ChannelCount;
PT180_DvbCtChannel Channels[ChannelCount];
};
struct PT180_DvbSBlock
{
dword BlockSize;
byte Temp03[0x20];
byte Temp04[0x44];
PT180_Satellite Satellites[MAX_SAT_COUNT];
byte Temp05[0x397C];
PT180_Transponder Transponder[MAX_TP_COUNT];
dword Checksum;
byte Temp06[6];
word DVBS_MaxIndex1;
word DVBS_MaxIndex2;
word DVBS_ChannelCount;
byte Temp07[0xEEAC];
PT180_SatChannel Channels[MAX_DVBS_COUNT];
PT180_Lnb Lnb[MAX_LNB_COUNT];
byte Temp08[12];
};
struct PT180_SettingsBlock
{
dword BlockSize;
byte Data[BlockSize];
byte Data[BlockSize];
};
public struct PT180
{
byte Header[4];
byte Header[4];
PT180_AnalogBlock Analog;
PT180_FirmwareBlock Firmware;
PT180_DvbCTBlock DvbCT;
PT180_DvbSBlock DvbS;
PT180_DvbCTBlock DvbCT;
PT180_SettingsBlock Settings;
};

View File

@@ -1,105 +1,98 @@
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned int dword;
#include "tll-common.h"
#define ACT_CHANNEL_PADDING 4
#define SAT_CHANNEL_PADDING 2
#define MAX_SAT_COUNT 64
#define MAX_LNB_COUNT 40
#define MAX_DVBS_COUNT 7520
#define MAX_TP_COUNT 2400
public struct LV184_AnalogChannel
struct LV184_AnalogChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ProgramNr;
word t2[3];
word ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2b;
word Frequency1Div50;
word APID1;
word APID1;
byte ChannelNumberInBand;
byte ChannelBand;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4[1];
word SID1;
byte t5a[16];
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[19];
byte ChannelTransponder3;
byte t8a;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4[1];
word SID1;
byte t5a[16];
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[19];
word ChannelTransponder3;
word ProgramNr2;
byte t8b[3];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[ACT_CHANNEL_PADDING];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[4];
};
public struct LV184_DvbCtChannel
struct LV184_DvbCtChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1f;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word LogicalChannelNumber;
word t2[2];
byte Favorites1;
byte t2d;
word PcrPid1;
word APID1;
word APID1;
word VPID1;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[16];
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[19];
byte ChannelTransponder3;
byte t8a;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[16];
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[19];
word ChannelTransponder3;
word ProgramNr2;
byte t8b[3];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
byte t11[ACT_CHANNEL_PADDING];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
byte t11[4];
};
struct LV184_AnalogBlock
{
dword BlockSize;
dword ChannelCount;
LV184_AnalogChannel Channels[ChannelCount];
dword ChannelCount;
LV184_AnalogChannel Channels[ChannelCount];
};
struct LV184_FirmwareBlock
@@ -111,8 +104,8 @@ struct LV184_FirmwareBlock
struct LV184_DvbCTBlock
{
dword BlockSize;
dword ChannelCount;
LV184_DvbCtChannel Channels[ChannelCount];
dword ChannelCount;
LV184_DvbCtChannel Channels[ChannelCount];
};
struct LV184_DvbsHeaderSubblock
@@ -122,11 +115,11 @@ struct LV184_DvbsHeaderSubblock
word Temp03[2];
};
public struct LV184_Satellite
struct LV184_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
char Name[32];
byte PosDeg;
byte PosCDeg;
word Unknown1;
word Unknown2;
word Unknown3;
@@ -134,7 +127,7 @@ public struct LV184_Satellite
word Unknown4;
};
public struct LV184_DvbsSatelliteSubblock
struct LV184_DvbsSatelliteSubblock
{
dword Crc32;
word Unknown1;
@@ -146,22 +139,22 @@ public struct LV184_DvbsSatelliteSubblock
LV184_Satellite Satellites[MAX_SAT_COUNT];
};
public struct LV184_Transponder
struct LV184_Transponder
{
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
byte t3[3];
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
byte t3[3];
word SRate;
byte t4[9];
byte SatIndexTimes2;
byte t5[3];
byte SatIndexTimes2;
byte t5[3];
};
public struct LV184_DvbsTransponderSubblock
struct LV184_DvbsTransponderSubblock
{
dword Crc32;
word Unknown1;
@@ -176,39 +169,40 @@ public struct LV184_DvbsTransponderSubblock
word Next;
word Current;
} TransponderTable1[MAX_TP_COUNT];
word Unknown5;
LV184_Transponder Transponder[MAX_TP_COUNT];
word Unknown5;
LV184_Transponder Transponder[MAX_TP_COUNT];
};
public struct LV184_SatChannel
struct LV184_SatChannel
{
byte t1[2];
byte t2[3];
word TP_Number;
word LnbIndex;
byte t2[2];
TLL_SignalSource SignalSource;
word TP_Number;
byte t2b;
word CH_Number;
word CH_NumberFixed;
word CH_Number;
word CH_NumberFixed;
word TP_Number2;
byte t3b;
byte EditFlag;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word t4;
byte t5[SAT_CHANNEL_PADDING];
byte EditFlag;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word t4;
byte t5[2];
};
struct LV184_DvbsChannelSubblock
{
dword Crc32;
word Unknown[2];
word Unknown[2];
word LinkedListStartIndex;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
byte AllocationBitmap[MAX_DVBS_COUNT/8];
struct LV184_LinkedChannelList
{
@@ -220,17 +214,17 @@ struct LV184_DvbsChannelSubblock
LV184_SatChannel Channels[MAX_DVBS_COUNT];
};
public struct LV184_Lnb
struct LV184_Lnb
{
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[18];
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[18];
};
struct LV184_DvbsLnbSubblock
@@ -255,16 +249,15 @@ struct LV184_DvbSBlock
struct LV184_SettingsBlock
{
dword BlockSize;
byte Data[BlockSize];
byte Data[BlockSize];
};
public struct LV184
{
byte Header[4];
byte Header[4];
LV184_AnalogBlock Analog;
LV184_FirmwareBlock Firmware;
LV184_DvbCTBlock DvbCT;
LV184_DvbCTBlock DvbCT;
LV184_DvbSBlock DvbS;
LV184_SettingsBlock Settings;
};

View File

@@ -2,108 +2,103 @@
// LM340S and LM611S
#define ACT_CHANNEL_PADDING 4
#define SAT_CHANNEL_PADDING 2
#define MAX_SAT_COUNT 64
#define MAX_LNB_COUNT 40
#define MAX_DVBS_COUNT 7520
#define MAX_TP_COUNT 2400
public struct LM188_AnalogChannel
struct LM188_AnalogChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1f;
word ProgramNr;
word t2[3];
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word t2[3];
byte t2b;
byte Favorites1;
byte Favorites1;
word Frequency1Div50;
word APID1;
word APID1;
byte ChannelNumberInBand;
byte ChannelBand;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
word NID;
byte t7[17];
byte ChannelTransponder3;
word t8a;
byte t7[17];
word ChannelTransponder3;
word ProgramNr2;
byte t8b[2];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[ACT_CHANNEL_PADDING];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[4];
};
public struct LM188_DvbCtChannel
struct LM188_DvbCtChannel
{
word t1[4];
word SourceIndex;
byte ChannelTransponder1;
byte t1f;
word ProgramNr;
word t2[3];
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word LogicalChannelNumber;
word t2[2];
byte t2b;
byte Favorites1;
byte Favorites1;
word PcrPid;
word APID1;
word APID1;
word VPID1;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
word NID;
dword SpecialData;
byte t7[13];
byte ChannelTransponder3;
word t8a;
byte t7[13];
word ChannelTransponder3;
byte t8a;
word ProgramNr2;
byte t8b[2];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
byte t11[ACT_CHANNEL_PADDING];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
byte t11[4];
};
struct LM188_AnalogBlock
{
dword BlockSize;
dword ChannelCount;
LM188_AnalogChannel Channels[ChannelCount];
dword ChannelCount;
LM188_AnalogChannel Channels[ChannelCount];
};
struct LM188_FirmwareBlock
@@ -115,8 +110,8 @@ struct LM188_FirmwareBlock
struct LM188_DvbCTBlock
{
dword BlockSize;
dword ChannelCount;
LM188_DvbCtChannel Channels[ChannelCount];
dword ChannelCount;
LM188_DvbCtChannel Channels[ChannelCount];
};
@@ -127,11 +122,11 @@ struct LM188_DvbsHeaderSubblock
word Temp03[2];
};
public struct LM188_Satellite
struct LM188_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
char Name[32];
byte PosDeg;
byte PosCDeg;
word Unknown1;
word Unknown2;
word Unknown3;
@@ -139,7 +134,7 @@ public struct LM188_Satellite
word Unknown4;
};
public struct LM188_DvbsSatelliteSubblock
struct LM188_DvbsSatelliteSubblock
{
dword Crc32;
word Unknown1;
@@ -151,22 +146,22 @@ public struct LM188_DvbsSatelliteSubblock
LM188_Satellite Satellites[MAX_SAT_COUNT];
};
public struct LM188_Transponder
struct LM188_Transponder
{
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
byte t3[3];
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
byte t3[3];
word SRate;
byte t4[9];
byte SatIndexTimes2;
byte t5[3];
byte SatIndexTimes2;
byte t5[3];
};
public struct LM188_DvbsTransponderSubblock
struct LM188_DvbsTransponderSubblock
{
dword Crc32;
word Unknown1;
@@ -181,41 +176,42 @@ public struct LM188_DvbsTransponderSubblock
word Next;
word Current;
} TransponderTable1[MAX_TP_COUNT];
word Unknown5;
LM188_Transponder Transponder[MAX_TP_COUNT];
word Unknown5;
LM188_Transponder Transponder[MAX_TP_COUNT];
};
public struct LM188_SatChannel
struct LM188_SatChannel
{
byte t1[2];
byte t2[3];
word TP_Number;
word LnbIndex;
word t2;
TLL_SignalSource SignalSource;
word TP_Number;
byte t2b;
word CH_Number;
word CH_NumberFixed;
word CH_Number;
word CH_NumberFixed;
word TP_Number2;
byte t3b;
byte EditFlag;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word t4;
byte t5[SAT_CHANNEL_PADDING];
byte EditFlag;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word t4;
byte t5[2];
};
struct LM188_DvbsChannelSubblock
{
dword Crc32;
word Unknown[2];
word Unknown[2];
word LinkedListStartIndex;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
byte AllocationBitmap[MAX_DVBS_COUNT/8];
struct LM188_LinkedChannelList
{
@@ -227,17 +223,17 @@ struct LM188_DvbsChannelSubblock
LM188_SatChannel Channels[MAX_DVBS_COUNT];
};
public struct LM188_Lnb
struct LM188_Lnb
{
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[18];
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[18];
};
struct LM188_DvbsLnbSubblock
@@ -263,16 +259,16 @@ struct LM188_DvbSBlock
struct LM188_SettingsBlock
{
dword BlockSize;
byte Data[BlockSize];
byte Data[BlockSize];
};
public struct LM188
{
byte Header[4];
byte Header[4];
LM188_AnalogBlock Analog;
LM188_FirmwareBlock Firmware;
LM188_DvbCTBlock DvbCT;
LM188_DvbCTBlock DvbCT;
LM188_DvbSBlock DvbS;
LM188_SettingsBlock Settings;
};

View File

@@ -2,61 +2,57 @@
// all LM models except 340S and 611S
#define ACT_CHANNEL_PADDING 8
#define SAT_CHANNEL_PADDING 6
#define MAX_SAT_COUNT 64
#define MAX_LNB_COUNT 40
#define MAX_DVBS_COUNT 7520
#define MAX_TP_COUNT 2400
public struct LM192_AnalogChannel
struct LM192_AnalogChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1f;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
word Frequency1Div50;
word APID1;
word APID1;
byte ChannelNumberInBand;
byte ChannelBand;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[20];
byte ChannelTransponder3;
byte t8;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[20];
word ChannelTransponder3;
word ProgramNr2;
byte t8b[2];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[ACT_CHANNEL_PADDING];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[8];
};
struct LM192_AnalogBlock
{
dword BlockSize;
dword ChannelCount;
LM192_AnalogChannel Channels[ChannelCount];
dword ChannelCount;
LM192_AnalogChannel Channels[ChannelCount];
};
struct LM192_FirmwareBlock
@@ -77,53 +73,52 @@ struct LM192_FirmwareBlock
byte Data[BlockSize - 0x8ebc - 1];
};
public struct LM192_DvbCtChannel
struct LM192_DvbCtChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1f;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word LogicalChannelNumber;
word t2[2];
byte Favorites1;
byte t2d;
word PcrPid;
word APID1;
word APID1;
word VPID1;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[20];
byte ChannelTransponder3;
byte t8a;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[20];
word ChannelTransponder3;
word ProgramNr2;
byte t8b[2];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
byte t11[ACT_CHANNEL_PADDING];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
byte t11[8];
};
struct LM192_DvbCTBlock
{
dword BlockSize;
dword ChannelCount;
LM192_DvbCtChannel Channels[ChannelCount];
dword ChannelCount;
LM192_DvbCtChannel Channels[ChannelCount];
};
struct LM192_DvbsHeaderSubblock
@@ -133,11 +128,11 @@ struct LM192_DvbsHeaderSubblock
word Temp03[2];
};
public struct LM192_Satellite
struct LM192_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
char Name[32];
byte PosDeg;
byte PosCDeg;
word Unknown1;
word Unknown2;
word Unknown3;
@@ -145,7 +140,7 @@ public struct LM192_Satellite
word Unknown4;
};
public struct LM192_DvbsSatelliteSubblock
struct LM192_DvbsSatelliteSubblock
{
dword Crc32;
word Unknown1;
@@ -157,22 +152,22 @@ public struct LM192_DvbsSatelliteSubblock
LM192_Satellite Satellites[MAX_SAT_COUNT];
};
public struct LM192_Transponder
struct LM192_Transponder
{
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
byte t3[3];
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
byte t3[3];
word SRate;
byte t4[9];
byte SatIndexTimes2;
byte t5[3];
byte SatIndexTimes2;
byte t5[3];
};
public struct LM192_DvbsTransponderSubblock
struct LM192_DvbsTransponderSubblock
{
dword Crc32;
word Unknown1;
@@ -187,38 +182,40 @@ public struct LM192_DvbsTransponderSubblock
word Next;
word Current;
} TransponderTable1[MAX_TP_COUNT];
word Unknown5;
LM192_Transponder Transponder[MAX_TP_COUNT];
word Unknown5;
LM192_Transponder Transponder[MAX_TP_COUNT];
};
public struct LM192_SatChannel
struct LM192_SatChannel
{
byte t1[2];
byte t2[4];
word TP_Number;
word CH_Number;
word CH_NumberFixed;
word LnbIndex;
word t1;
TLL_SignalSource SignalSource;
byte t2;
word TP_Number;
word ChannelNumber;
word LogicalChannelNumber;
word TP_Number2;
byte FavCrypt;
byte LockSkipHide;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word AID_Times8;
byte t6[SAT_CHANNEL_PADDING];
byte LockSkipHide;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word AID_Times8;
byte t6[6];
};
struct LM192_DvbsChannelSubblock
{
dword Crc32;
word Unknown[2];
word Unknown[2];
word LinkedListStartIndex;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
byte AllocationBitmap[MAX_DVBS_COUNT/8];
struct LM192_LinkedChannelList
{
@@ -230,17 +227,17 @@ struct LM192_DvbsChannelSubblock
LM192_SatChannel Channels[MAX_DVBS_COUNT];
};
public struct LM192_Lnb
struct LM192_Lnb
{
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[18];
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[18];
};
struct LM192_DvbsLnbSubblock
@@ -265,16 +262,16 @@ struct LM192_DvbSBlock
struct LM192_SettingsBlock
{
dword BlockSize;
byte Data[BlockSize];
byte Data[BlockSize];
};
public struct LM192
{
byte Header[4];
byte Header[4];
LM192_AnalogBlock Analog;
LM192_FirmwareBlock Firmware;
LM192_DvbCTBlock DvbCT;
LM192_DvbCTBlock DvbCT;
LM192_DvbSBlock DvbS;
LM192_SettingsBlock Settings;
};

View File

@@ -1,64 +1,59 @@
#include "tll-common.h"
// all LM models except 340S and 611S
#define ACT_CHANNEL_PADDING 8+18
#define MAX_SAT_COUNT 64
#define MAX_LNB_COUNT 40
#define MAX_DVBS_COUNT 6000
#define MAX_TP_COUNT 2400
public struct LN224_AnalogChannel
struct LN224_AnalogChannel
{
word t1[5];
byte ChannelTransponder1;
byte t1f;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2d;
word Frequency1Div50;
word APID1;
word APID1;
byte ChannelNumberInBand;
byte ChannelBand;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
byte ChannelTransponder2;
byte t5b;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[20];
byte ChannelTransponder3;
byte t8;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[20];
word ChannelTransponder2;
dword Frequency;
byte t6[2];
word ONID;
word TSID;
byte t7[20];
word ChannelTransponder3;
word ProgramNr2;
byte t8b[2];
byte ChannelTransponder4;
byte t9;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[ACT_CHANNEL_PADDING];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word Frequency2Div50;
word APID2;
byte t11[8];
};
struct LN224_AnalogBlock
{
dword BlockSize;
dword ChannelCount;
LN224_AnalogChannel Channels[ChannelCount];
dword ChannelCount;
LN224_AnalogChannel Channels[ChannelCount];
};
public struct LN224_HotelSettings
struct LN224_HotelSettings
{
byte HotelModeActive;
byte PowerOnStatus;
@@ -94,53 +89,56 @@ struct LN224_FirmwareBlock
byte Data[BlockSize - sizeof(HotelSettings) - 13623];
};
public struct LN224_DvbCtChannel
struct LN224_DvbCtChannel
{
word t1[5];
word ChannelTransponder1;
word ProgramNr;
word t2[3];
byte Favorites1;
byte t2b[3];
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word LogicalChannelNumber;
word t2[2];
byte Favorites1;
byte t2b[3];
word PcrPid;
word APID1;
word APID1;
byte t2c[8];
word VPID1;
byte t3[6];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[30];
byte t3[6];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[30];
word ChannelTransponder2;
dword Frequency;
byte t6[6];
word ONID;
word TSID;
byte t7[19];
dword Frequency;
byte t6[6];
word ONID;
word TSID;
byte t7[19];
word ChannelTransponder3;
byte t7b;
word ProgramNr2;
byte t8b[2];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word PcrPid2;
word APID2;
word XPID;
word YPID;
byte t11[8];
byte t11[8];
};
struct LN224_DvbCTBlock
{
dword BlockSize;
dword ChannelCount;
LN224_DvbCtChannel Channels[ChannelCount];
dword ChannelCount;
LN224_DvbCtChannel Channels[ChannelCount];
};
struct LN224_DvbsHeaderSubblock
@@ -150,11 +148,11 @@ struct LN224_DvbsHeaderSubblock
word Temp03[2];
};
public struct LN224_Satellite
struct LN224_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
char Name[32];
byte PosDeg;
byte PosCDeg;
word Unknown1;
word Unknown2;
word Unknown3;
@@ -162,7 +160,7 @@ public struct LN224_Satellite
word Unknown4;
};
public struct LN224_DvbsSatelliteSubblock
struct LN224_DvbsSatelliteSubblock
{
dword Crc32;
word Unknown1;
@@ -174,25 +172,25 @@ public struct LN224_DvbsSatelliteSubblock
LN224_Satellite Satellites[MAX_SAT_COUNT];
};
public struct LN224_Transponder
struct LN224_Transponder
{
word FirstChannelIndex;
word LastChannelIndex;
word ChannelCount;
byte t1[4];
word TP_Number;
word TP_Freq;
byte t2[8];
word NID;
word TID;
byte t3[3];
byte t1[4];
word TP_Number;
word TP_Freq;
byte t2[8];
word NID;
word TID;
byte t3[3];
word SRate;
byte t4[9];
byte SatIndexTimes2;
byte t5[3];
byte SatIndexTimes2;
byte t5[3];
};
public struct LN224_DvbsTransponderSubblock
struct LN224_DvbsTransponderSubblock
{
dword Crc32;
word StartIndex;
@@ -207,42 +205,41 @@ public struct LN224_DvbsTransponderSubblock
word Next;
word Current;
} TransponderTable1[MAX_TP_COUNT];
word Unknown5;
LN224_Transponder Transponder[MAX_TP_COUNT];
word Unknown5;
LN224_Transponder Transponder[MAX_TP_COUNT];
};
public struct LN224_SatChannel
struct LN224_SatChannel
{
word LnbConfigIndex;
byte u2[2];
word u2;
byte SourceType;
byte u3;
word TP_Number;
word CH_Number;
word CH_NumberFixed;
word TP_Number;
word CH_Number;
word CH_NumberFixed;
word TP_Number2;
byte FavCrypt;
byte LockSkipHide;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VPID;
word APID;
word APID2;
byte LockSkipHide;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VPID;
word APID;
word APID2;
word XPID;
byte t6[8];
byte t6[8];
};
struct LN224_DvbsChannelSubblock
{
dword Crc32;
word Unknown[2];
word Unknown[2];
word LinkedListStartIndex;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
byte AllocationBitmap[MAX_DVBS_COUNT/8];
struct LN224_LinkedChannelList
{
@@ -255,17 +252,17 @@ struct LN224_DvbsChannelSubblock
LN224_SatChannel Channels[MAX_DVBS_COUNT];
};
public struct LN224_Lnb
struct LN224_Lnb
{
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[22];
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[22];
};
struct LN224_DvbsLnbSubblock
@@ -290,16 +287,16 @@ struct LN224_DvbSBlock
struct LN224_SettingsBlock
{
dword BlockSize;
byte Data[BlockSize];
byte Data[BlockSize];
};
public struct LN224
{
byte Header[4];
byte Header[4];
LN224_AnalogBlock Analog;
LN224_FirmwareBlock Firmware;
LN224_DvbCTBlock DvbCT;
LN224_DvbCTBlock DvbCT;
LN224_DvbSBlock DvbS;
LN224_SettingsBlock Settings;
};

View File

@@ -1,63 +1,63 @@
#include "tll-common.h"
#define ACT_CHANNEL_PADDING 12
#define SAT_CHANNEL_PADDING 6
#define MAX_SAT_COUNT 64
#define MAX_LNB_COUNT 40
#define MAX_DVBS_COUNT 7520
#define MAX_TP_COUNT 2400
public struct LA256_AnalogChannel
struct LA256_AnalogChannel
{
word t1[5];
word ChannelTransponder1;
word ProgramNr;
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word LogicalProgramNr;
byte t2[4];
byte Favorites1;
byte t2[4];
byte Favorites1;
byte t2b[3];
word Frequency1Div50;
word APID1;
word APID1;
byte ChannelNumberInBand;
byte ChannelBand;
byte t3[10];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[38];
byte t3[10];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[38];
word ChannelTransponder2;
dword FrequencyDiv50;
byte t6[6];
word ONID;
word TSID;
byte t7[32];
dword FrequencyDiv50;
byte t6[6];
word ONID;
word TSID;
byte t7[32];
word ChannelTransponder3;
word ProgramNr2;
word LogicalProgramNr2;
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
byte t10[12];
word Frequency2Div50;
word APID2;
word Frequency2Div50;
word APID2;
word u1;
word u2;
byte t11[ACT_CHANNEL_PADDING];
byte t11[12];
};
struct LA256_AnalogBlock
{
dword BlockSize;
dword ChannelCount;
LA256_AnalogChannel Channels[ChannelCount];
dword ChannelCount;
LA256_AnalogChannel Channels[ChannelCount];
};
public struct LA256_HotelSettings
struct LA256_HotelSettings
{
byte HotelModeActive;
byte PowerOnStatus;
@@ -95,54 +95,56 @@ struct LA256_FirmwareBlock
byte Data[BlockSize - 38251 - sizeof(LA256_HotelSettings)];
};
public struct LA256_DvbCtChannel
struct LA256_DvbCtChannel
{
word t1[5];
word ChannelTransponder1;
word ProgramNr;
word LogicalProgramNr;
byte t2a[4];
byte t1[8];
TLL_SignalSource SignalSource;
byte t1b;
word ChannelTransponder1;
word ProgramNr;
word LogicalChannelNumber;
byte t2a[4];
byte Fav1;
byte t2b[3];
word PcrPid1;
word APID1;
word APID1;
byte t2c[8];
word VPID1;
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[38];
byte t3[2];
char CH_Name1[40];
byte CH_NameLength1;
byte t4;
word SID1;
byte t5a[38];
word ChannelTransponder2;
dword Frequency;
byte t6[6];
word ONID;
word TSID;
byte t7[32];
dword Frequency;
byte t6[6];
word ONID;
word TSID;
byte t7[32];
word ChannelTransponder3;
word ProgramNr2;
word LogicalProgramNr2;
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
word ChannelTransponder4;
byte Favorites2;
byte LockSkipHide;
word SID2;
byte ServiceType;
byte CH_NameLength2;
char CH_Name2[40];
byte t10[12];
word PcrPid2;
word APID2;
word PcrPid2;
word APID2;
word u1;
word u2;
byte t11[ACT_CHANNEL_PADDING];
byte t11[12];
};
struct LA256_DvbCTBlock
{
dword BlockSize;
dword ChannelCount;
LA256_DvbCtChannel Channels[ChannelCount];
dword ChannelCount;
LA256_DvbCtChannel Channels[ChannelCount];
};
struct LA256_DvbsHeaderSubblock
@@ -152,11 +154,11 @@ struct LA256_DvbsHeaderSubblock
word Temp03[2];
};
public struct LA256_Satellite
struct LA256_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
char Name[32];
byte PosDeg;
byte PosCDeg;
byte LnbIndex;
byte FactoryDefault;
word TransponderStartIndex;
@@ -167,7 +169,7 @@ public struct LA256_Satellite
word Unknown6;
};
public struct LA256_DvbsSatelliteSubblock
struct LA256_DvbsSatelliteSubblock
{
dword Crc32;
word MagicNo;
@@ -179,23 +181,23 @@ public struct LA256_DvbsSatelliteSubblock
LA256_Satellite Satellites[MAX_SAT_COUNT];
};
public struct LA256_Transponder
struct LA256_Transponder
{
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[8];
word NID;
word TID;
byte t3[3];
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[8];
word NID;
word TID;
byte t3[3];
word SRateTimes2;
byte t4[9];
byte SatIndexTimes2;
byte t5[3];
byte SatIndexTimes2;
byte t5[3];
byte u40[12];
};
public struct LA256_DvbsTransponderSubblock
struct LA256_DvbsTransponderSubblock
{
dword Crc32;
word Unknown1;
@@ -210,29 +212,28 @@ public struct LA256_DvbsTransponderSubblock
word Next;
word Current;
} TransponderTable1[MAX_TP_COUNT];
word Unknown5;
LA256_Transponder Transponder[MAX_TP_COUNT];
word Unknown5;
LA256_Transponder Transponder[MAX_TP_COUNT];
};
public struct LA256_SatChannel
struct LA256_SatChannel
{
byte LnbConfigIndex;
byte t1;
word NetworkId;
byte SourceIndex;
byte t2;
word TP_Number;
word CH_Number;
word CH_NumberFixed;
word LnbIndex;
word t1;
TLL_SignalSource SignalSource;
byte t2;
word TP_Number;
word CH_Number;
word CH_NumberFixed;
word TP_Number2;
byte FavCrypt;
byte LockSkipHide;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[52];
word VPID;
word APID;
byte LockSkipHide;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[52];
word VPID;
word APID;
word t3;
word t4;
byte t5[12];
@@ -241,11 +242,11 @@ public struct LA256_SatChannel
struct LA256_DvbsChannelSubblock
{
dword Crc32;
word Unknown[2];
word Unknown[2];
word LinkedListStartIndex;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
byte AllocationBitmap[MAX_DVBS_COUNT/8];
struct LA256_LinkedChannelList
{
@@ -257,20 +258,20 @@ struct LA256_DvbsChannelSubblock
LA256_SatChannel Channels[MAX_DVBS_COUNT];
};
public struct LA256_Lnb
struct LA256_Lnb
{
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte ScanSearchType;
byte NetworkSearch;
byte BlindSearch;
byte t3[4];
char FrequencyName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[22];
word LOF1;
byte t4[2];
word LOF2;
byte t5[22];
};
struct LA256_DvbsLnbSubblock
@@ -295,16 +296,16 @@ struct LA256_DvbSBlock
struct LA256_SettingsBlock
{
dword BlockSize;
byte Data[BlockSize];
byte Data[BlockSize];
};
public struct LA256
{
byte Header[4];
byte Header[4];
LA256_AnalogBlock Analog;
LA256_FirmwareBlock Firmware;
LA256_DvbCTBlock DvbCT;
LA256_DvbCTBlock DvbCT;
LA256_DvbSBlock DvbS;
LA256_SettingsBlock Settings;
};

View File

@@ -2,7 +2,7 @@ typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned int dword;
public struct TLL_HotelSettings
struct TLL_HotelSettings
{
byte HotelModeActive;
byte PowerOnStatus;
@@ -29,3 +29,17 @@ public struct TLL_HotelSettings
byte unknown3[2];
byte AccessCode[4];
};
enum TLL_SignalSource : byte
{
DVB_T = 1,
Analog = 2,
DVB_C = 3,
DVB_S = 7
};
enum LH_SignalSource : byte
{
Antenna = 2,
Cable = 3
};

View File

@@ -1,13 +1,11 @@
Version v2013-05-29 ======================================================
Version v2013-06-22 ======================================================
Changes:
- Added support for Samsung "CablePrime" channel lists
- FIX: error when loading a Samsung files which only contains an
AstraHDPlus channel list.
- Channel name editor now limits the input to the maximum number of
characters allowed by the file format (e.g. 5 chars for Samsung analog
channel names)
- Showing separate DVB-C and DVB-T lists for LG TVs (LA series can have
both lists while prior models only had one)
- FIX: Lists for LG's LD,LE,LX,PK (except 950), PT, LW4500, LW5400 models
are now physically reordered
- Empty lists are no longer displayed
The complete change log can be found at the end of this document
@@ -105,6 +103,13 @@ OTHER DEALINGS IN THE SOFTWARE.
Change log ================================================================
2013-06-22
- Showing separate DVB-C and DVB-T lists for LG TVs (LA series can have
both lists while prior models only had one)
- FIX: Lists for LG's LD,LE,LX,PK (except 950), PT, LW4500, LW5400 models
are now physically reordered
- Empty lists are no longer displayed
2013-05-29
- Added support for Samsung "CablePrime" channel lists
- FIX: error when loading a Samsung files which only contains an