diff --git a/ChanSort.Loader.LG/ChanSort.Loader.LG.ini b/ChanSort.Loader.LG/ChanSort.Loader.LG.ini index 8ebc27c..c50aee8 100644 --- a/ChanSort.Loader.LG/ChanSort.Loader.LG.ini +++ b/ChanSort.Loader.LG/ChanSort.Loader.LG.ini @@ -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 diff --git a/ChanSort.Loader.LG/DtvChannel.cs b/ChanSort.Loader.LG/DtvChannel.cs index f3dd394..de491c1 100644 --- a/ChanSort.Loader.LG/DtvChannel.cs +++ b/ChanSort.Loader.LG/DtvChannel.cs @@ -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); diff --git a/ChanSort.Loader.LG/TllFileSerializer.cs b/ChanSort.Loader.LG/TllFileSerializer.cs index e1ebf1c..a91dc4f 100644 --- a/ChanSort.Loader.LG/TllFileSerializer.cs +++ b/ChanSort.Loader.LG/TllFileSerializer.cs @@ -26,10 +26,12 @@ namespace ChanSort.Loader.LG private readonly MappingPool firmwareMappings = new MappingPool("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 diff --git a/ChanSort/MainForm.cs b/ChanSort/MainForm.cs index 6729726..cdb4d32 100644 --- a/ChanSort/MainForm.cs +++ b/ChanSort/MainForm.cs @@ -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) diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-164_LH3000.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-164_LH3000.h index 975a853..a2f2022 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-164_LH3000.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-164_LH3000.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-164_LH_LU_LF.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-164_LH_LU_LF.h index 4c50662..7b3205c 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-164_LH_LU_LF.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-164_LH_LU_LF.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-176-LD_LE_LK.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-176-LD_LE_LK.h index fcba3f3..df45f90 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-176-LD_LE_LK.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-176-LD_LE_LK.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-180-PT.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-180-PT.h index 57834a3..8cfe1c5 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-180-PT.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-180-PT.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-184-LV_LW_LK950S.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-184-LV_LW_LK950S.h index c4ab237..10b95b2 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-184-LV_LW_LK950S.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-184-LV_LW_LK950S.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-188-LM611S.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-188-LM611S.h index 0085565..eb73b2c 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-188-LM611S.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-188-LM611S.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-192-LM_LS.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-192-LM_LS.h index f88da81..dac8992 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-192-LM_LS.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-192-LM_LS.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-224-LN.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-224-LN.h index 3e7194a..113f026 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-224-LN.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-224-LN.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-256-LA.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-256-LA.h index fa6cd2c..03843d7 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-256-LA.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-256-LA.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-common.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-common.h index e5b1b19..ee6209e 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-common.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-common.h @@ -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 +}; diff --git a/readme.txt b/readme.txt index 745a537..603d8c0 100644 --- a/readme.txt +++ b/readme.txt @@ -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