mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-01-28 01:59:03 +01:00
- added code to read binary TLL file for LB5xx series
- added code to read GlobalClone XML file for LB6xx and later series
This commit is contained in:
@@ -102,5 +102,19 @@ namespace ChanSort.Api
|
||||
return ((input & 0x000000FF) << 24) | ((input & 0x0000FF00) << 8) | ((input & 0x00FF0000) >> 8) | ((input & 0xFF000000) >> 24);
|
||||
}
|
||||
#endregion
|
||||
|
||||
public static byte[] HexDecode(string input)
|
||||
{
|
||||
var bytes = new byte[input.Length/2];
|
||||
for (int i = 0, c = input.Length/2; i < c; i++)
|
||||
{
|
||||
char ch = Char.ToUpper(input[i*2]);
|
||||
var high = Char.IsDigit(ch) ? ch - '0' : ch - 'A' + 10;
|
||||
ch = input[i*2 + 1];
|
||||
var low = Char.IsDigit(ch) ? ch - '0' : ch - 'A' + 10;
|
||||
bytes[i] = (byte)((high << 4) | low);
|
||||
}
|
||||
return bytes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
110
ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj
Normal file
110
ChanSort.Loader.GlobalClone/ChanSort.Loader.GlobalClone.csproj
Normal file
@@ -0,0 +1,110 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.GlobalClone</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.GlobalClone</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject />
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="GcChannel.cs" />
|
||||
<Compile Include="GcSerializer.cs" />
|
||||
<Compile Include="GcSerializerPlugin.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
|
||||
<Project>{dccffa08-472b-4d17-bb90-8f513fc01392}</Project>
|
||||
<Name>ChanSort.Api</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="readme.txt" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
21
ChanSort.Loader.GlobalClone/GcChannel.cs
Normal file
21
ChanSort.Loader.GlobalClone/GcChannel.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System.Xml;
|
||||
using ChanSort.Api;
|
||||
|
||||
namespace ChanSort.Loader.GlobalClone
|
||||
{
|
||||
internal class GcChannel : ChannelInfo
|
||||
{
|
||||
internal int Index;
|
||||
internal XmlNode XmlNode;
|
||||
|
||||
#region ctor()
|
||||
internal GcChannel(SignalSource source, int index, XmlNode node)
|
||||
{
|
||||
this.SignalSource = source;
|
||||
this.Index = index;
|
||||
this.XmlNode = node;
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
217
ChanSort.Loader.GlobalClone/GcSerializer.cs
Normal file
217
ChanSort.Loader.GlobalClone/GcSerializer.cs
Normal file
@@ -0,0 +1,217 @@
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using ChanSort.Api;
|
||||
|
||||
namespace ChanSort.Loader.GlobalClone
|
||||
{
|
||||
class GcSerializer : SerializerBase
|
||||
{
|
||||
private readonly ChannelList atvChannels = new ChannelList(SignalSource.AnalogCT | SignalSource.TvAndRadio, "Analog");
|
||||
private readonly ChannelList dtvTvChannels = new ChannelList(SignalSource.DvbCT | SignalSource.Tv, "DTV");
|
||||
private readonly ChannelList dtvRadioChannels = new ChannelList(SignalSource.DvbCT | SignalSource.Radio, "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 XmlDocument doc;
|
||||
private DvbStringDecoder dvbStringDecoder = new DvbStringDecoder(Encoding.Default);
|
||||
|
||||
#region ctor()
|
||||
public GcSerializer(string inputFile) : base(inputFile)
|
||||
{
|
||||
this.Features.ChannelNameEdit = false;
|
||||
|
||||
this.DataRoot.AddChannelList(this.atvChannels);
|
||||
this.DataRoot.AddChannelList(this.dtvTvChannels);
|
||||
this.DataRoot.AddChannelList(this.dtvRadioChannels);
|
||||
this.DataRoot.AddChannelList(this.satTvChannels);
|
||||
this.DataRoot.AddChannelList(this.satRadioChannels);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DisplayName
|
||||
public override string DisplayName { get { return "LG GlobalClone loader"; } }
|
||||
#endregion
|
||||
|
||||
|
||||
#region Load()
|
||||
public override void Load()
|
||||
{
|
||||
bool fail = false;
|
||||
try
|
||||
{
|
||||
this.doc = new XmlDocument();
|
||||
doc.Load(this.FileName);
|
||||
}
|
||||
catch
|
||||
{
|
||||
fail = true;
|
||||
}
|
||||
|
||||
var root = doc.FirstChild;
|
||||
if (root is XmlDeclaration)
|
||||
root = root.NextSibling;
|
||||
if (fail || root == null || root.LocalName != "TLLDATA")
|
||||
throw new FileLoadException("\"" + this.FileName + "\" is not a supported GlobalClone XML file");
|
||||
|
||||
foreach (XmlNode child in root.ChildNodes)
|
||||
{
|
||||
switch (child.LocalName)
|
||||
{
|
||||
case "CHANNEL":
|
||||
this.ReadChannelLists(child);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ReadChannelLists()
|
||||
private void ReadChannelLists(XmlNode channelNode)
|
||||
{
|
||||
foreach (XmlNode chanListNode in channelNode.ChildNodes)
|
||||
{
|
||||
switch (chanListNode.LocalName)
|
||||
{
|
||||
case "ATV":
|
||||
this.ReadChannelList(chanListNode, true);
|
||||
break;
|
||||
case "DTV":
|
||||
this.ReadChannelList(chanListNode, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ReadChannelList()
|
||||
private void ReadChannelList(XmlNode node, bool analog)
|
||||
{
|
||||
int i = -1;
|
||||
foreach (XmlNode itemNode in node.ChildNodes)
|
||||
{
|
||||
if (itemNode.LocalName != "ITEM")
|
||||
continue;
|
||||
++i;
|
||||
GcChannel ch = new GcChannel(analog ? SignalSource.AnalogCT | SignalSource.Tv : SignalSource.Digital, i, itemNode);
|
||||
foreach (XmlNode info in itemNode.ChildNodes)
|
||||
ParseChannelInfoNode(info, ch);
|
||||
|
||||
var list = this.DataRoot.GetChannelList(ch.SignalSource);
|
||||
this.DataRoot.AddChannel(list, ch);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ParseChannelInfoNode()
|
||||
private void ParseChannelInfoNode(XmlNode info, ChannelInfo ch)
|
||||
{
|
||||
switch (info.LocalName)
|
||||
{
|
||||
// common to ATV and DTV
|
||||
case "prNum":
|
||||
ch.OldProgramNr = int.Parse(info.InnerText) & 0x3FFF;
|
||||
break;
|
||||
case "vchName":
|
||||
ch.Name = ParseName(info.InnerText);
|
||||
break;
|
||||
case "sourceIndex":
|
||||
var source = int.Parse(info.InnerText);
|
||||
if (source == 2)
|
||||
ch.SignalSource |= SignalSource.Cable;
|
||||
else if (source == 7)
|
||||
ch.SignalSource |= SignalSource.Sat;
|
||||
else
|
||||
ch.SignalSource |= SignalSource.Antenna;
|
||||
break;
|
||||
case "isBlocked":
|
||||
ch.Lock = int.Parse(info.InnerText) == 1;
|
||||
break;
|
||||
case "isSkipped":
|
||||
ch.Skip = int.Parse(info.InnerText) == 1;
|
||||
break;
|
||||
|
||||
// ATV
|
||||
case "pllData":
|
||||
ch.FreqInMhz = (decimal)int.Parse(info.InnerText) / 20;
|
||||
break;
|
||||
|
||||
// DTV
|
||||
case "original_network_id":
|
||||
ch.OriginalNetworkId = int.Parse(info.InnerText);
|
||||
break;
|
||||
case "transport_id":
|
||||
ch.TransportStreamId = int.Parse(info.InnerText);
|
||||
break;
|
||||
case "service_id":
|
||||
ch.ServiceId = int.Parse(info.InnerText);
|
||||
break;
|
||||
case "serviceType":
|
||||
ch.ServiceType = int.Parse(info.InnerText);
|
||||
ch.SignalSource |= LookupData.Instance.IsRadioOrTv(ch.ServiceType);
|
||||
break;
|
||||
case "frequency":
|
||||
ch.FreqInMhz = int.Parse(info.InnerText);
|
||||
if ((ch.SignalSource & SignalSource.Sat) == 0)
|
||||
ch.FreqInMhz /= 1000;
|
||||
break;
|
||||
case "isInvisable": // that spelling error is part of the XML
|
||||
ch.Hidden = int.Parse(info.InnerText) == 1;
|
||||
break;
|
||||
case "isDisabled":
|
||||
ch.IsDeleted = int.Parse(info.InnerText) != 0;
|
||||
break;
|
||||
|
||||
// not present in all XML files
|
||||
case "hexVchName":
|
||||
var bytes = Tools.HexDecode(info.InnerText);
|
||||
string longName, shortName;
|
||||
dvbStringDecoder.GetChannelNames(bytes, 0, bytes.Length, out longName, out shortName);
|
||||
ch.Name = longName;
|
||||
ch.ShortName = shortName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
private string ParseName(string input)
|
||||
{
|
||||
return input;
|
||||
}
|
||||
|
||||
#region Save()
|
||||
public override void Save(string tvOutputFile)
|
||||
{
|
||||
foreach (var list in this.DataRoot.ChannelLists)
|
||||
{
|
||||
foreach (var channel in list.Channels)
|
||||
{
|
||||
var ch = channel as GcChannel;
|
||||
if (ch == null) continue; // ignore proxy channels from reference lists
|
||||
|
||||
foreach (XmlNode node in ch.XmlNode.ChildNodes)
|
||||
{
|
||||
switch (node.LocalName)
|
||||
{
|
||||
case "prNum":
|
||||
var nr = ch.NewProgramNr;
|
||||
if ((ch.SignalSource & SignalSource.Radio) != 0)
|
||||
nr |= 0x4000;
|
||||
node.InnerText = nr.ToString();
|
||||
break;
|
||||
case "isDisabled":
|
||||
node.InnerText = ch.IsDeleted ? "1" : "0";
|
||||
break;
|
||||
case "isUserSelCHNo":
|
||||
node.InnerText = "1";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
doc.Save(tvOutputFile);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
15
ChanSort.Loader.GlobalClone/GcSerializerPlugin.cs
Normal file
15
ChanSort.Loader.GlobalClone/GcSerializerPlugin.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using ChanSort.Api;
|
||||
|
||||
namespace ChanSort.Loader.GlobalClone
|
||||
{
|
||||
public class GcSerializerPlugin : ISerializerPlugin
|
||||
{
|
||||
public string PluginName { get { return "LG GlobalClone"; } }
|
||||
public string FileFilter { get { return "GlobalClone*.tll"; } }
|
||||
|
||||
public SerializerBase CreateSerializer(string inputFile)
|
||||
{
|
||||
return new GcSerializer(inputFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
6427
ChanSort.Loader.GlobalClone/GlobalClone00001.xml
Normal file
6427
ChanSort.Loader.GlobalClone/GlobalClone00001.xml
Normal file
File diff suppressed because it is too large
Load Diff
36
ChanSort.Loader.GlobalClone/Properties/AssemblyInfo.cs
Normal file
36
ChanSort.Loader.GlobalClone/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("ChanSort.Loader.GlobalClone")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("ChanSort.Loader.GlobalClone")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("7c411d93-c493-49e0-af8a-520d759af994")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
15
ChanSort.Loader.GlobalClone/readme.txt
Normal file
15
ChanSort.Loader.GlobalClone/readme.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
This module allows loading of LG's GlobalClone*.TLL files.
|
||||
There seem to be different versions of this XML file format around.
|
||||
|
||||
2014 LB-Series (e.g. Model LB731V, LB630V):
|
||||
- vchName is a readable text, but sometimes left empty
|
||||
- <hexVchName> contains hex-encoded channel name (not empty even when vchName is empty)
|
||||
- <notConvertedLengthOfVchName>
|
||||
|
||||
2014 LB-Series (e.g. 42LB630V-ZA)
|
||||
- vchName is a readable text
|
||||
- no extra hex encoded version
|
||||
|
||||
2014 LB561V, LB580V
|
||||
- vchName binary data (with high bit set)
|
||||
- separate binary TLL file available
|
||||
@@ -452,6 +452,16 @@
|
||||
lnbCount = 40
|
||||
lnbLength = 52
|
||||
|
||||
[DvbsBlock:967496]
|
||||
; LB series
|
||||
satCount = 64
|
||||
satLength = 48
|
||||
transponderCount = 2400
|
||||
transponderLength = 56
|
||||
dvbsChannelCount = 7520
|
||||
dvbsChannelLength = 100
|
||||
lnbCount = 40
|
||||
lnbLength = 52
|
||||
|
||||
[TransponderDataMapping:40]
|
||||
; everything up to LM
|
||||
@@ -648,6 +658,34 @@
|
||||
offVideoPid = 72
|
||||
offAudioPid = 74
|
||||
|
||||
[SatChannelDataMapping:100]
|
||||
; LB series
|
||||
lenName = 40
|
||||
offSatelliteNr = 0
|
||||
offSourceType = 4
|
||||
offTransponderIndex = 6, 12
|
||||
offProgramNr = 8
|
||||
offProgramNrPreset = 10
|
||||
offFavorites2 = 14
|
||||
offDeleted = 14
|
||||
maskDeleted = 0x42
|
||||
offEncrypted = 14
|
||||
maskEncrypted = 0x80
|
||||
offLock = 15
|
||||
maskLock = 0x01
|
||||
offSkip = 15
|
||||
maskSkip = 0x02
|
||||
offHide = 15
|
||||
maskHide = 0x04
|
||||
offProgNrCustomized = 15
|
||||
maskProgNrCustomized = 0x40
|
||||
offServiceId = 16
|
||||
offServiceType = 18
|
||||
offNameLength = 19
|
||||
offName = 20
|
||||
offVideoPid = 72
|
||||
offAudioPid = 74
|
||||
|
||||
[LnbMapping:44]
|
||||
; all except LA
|
||||
offSettingId = 0
|
||||
|
||||
53
ChanSort.sln
53
ChanSort.sln
@@ -5,10 +5,12 @@ VisualStudioVersion = 12.0.30110.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort", "ChanSort\ChanSort.csproj", "{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36} = {74A18C6F-09FF-413E-90D9-827066FA5B36}
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585} = {68DA8072-3A29-4076-9F64-D66F38349585}
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5} = {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931} = {F6F02792-07F1-48D5-9AF3-F945CA5E3931}
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE} = {E972D8A1-2F5F-421C-AC91-CFF45E5191BE}
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B} = {5361C8CB-F737-4709-AF8C-E1F0456F3C5B}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Api", "ChanSort.Api\ChanSort.Api.csproj", "{DCCFFA08-472B-4D17-BB90-8F513FC01392}"
|
||||
@@ -32,79 +34,130 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.LG", "Test.Load
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.VDR", "ChanSort.Loader.VDR\ChanSort.Loader.VDR.csproj", "{74A18C6F-09FF-413E-90D9-827066FA5B36}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.GlobalClone", "ChanSort.Loader.GlobalClone\ChanSort.Loader.GlobalClone.csproj", "{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|Mixed Platforms = Release|Mixed Platforms
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Debug|x86.Build.0 = Debug|x86
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|x86.ActiveCfg = Release|x86
|
||||
{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}.Release|x86.Build.0 = Release|x86
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Debug|x86.Build.0 = Debug|x86
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{DCCFFA08-472B-4D17-BB90-8F513FC01392}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Debug|x86.Build.0 = Debug|x86
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Debug|x86.Build.0 = Debug|x86
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{68CFCB2F-B52A-43A1-AA5C-5D64A1D655D2}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Debug|x86.Build.0 = Debug|x86
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Debug|x86.Build.0 = Debug|x86
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Debug|x86.Build.0 = Debug|x86
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Debug|x86.Build.0 = Debug|x86
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{F943DBFE-D3C3-4885-A38B-375148012FEC}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Debug|x86.Build.0 = Debug|x86
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|x86.ActiveCfg = Release|x86
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36}.Release|x86.Build.0 = Release|x86
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Debug|x86.Build.0 = Debug|x86
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{5361C8CB-F737-4709-AF8C-E1F0456F3C5B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace ChanSort.Ui
|
||||
{
|
||||
public partial class MainForm : XtraForm
|
||||
{
|
||||
public const string AppVersion = "v2014-05-06";
|
||||
public const string AppVersion = "v2014-05-25";
|
||||
|
||||
private const int MaxMruEntries = 10;
|
||||
|
||||
@@ -351,12 +351,15 @@ namespace ChanSort.Ui
|
||||
XtraMessageBox.Show(this, String.Format(Resources.MainForm_LoadTll_SourceTllNotFound, inputFileName));
|
||||
return null;
|
||||
}
|
||||
string extension = (Path.GetExtension(inputFileName) ?? "").ToUpper();
|
||||
string upperFileName = (Path.GetFileName(inputFileName) ??"").ToUpper();
|
||||
foreach (var plugin in this.plugins)
|
||||
{
|
||||
if ((plugin.FileFilter.ToUpper()+"|").Contains("*"+extension) || plugin.FileFilter.ToUpper() == upperFileName)
|
||||
return plugin;
|
||||
foreach (var filter in plugin.FileFilter.ToUpper().Split('|'))
|
||||
{
|
||||
var regex = filter.Replace(".", "\\.").Replace("*", ".*").Replace("?", ".");
|
||||
if (System.Text.RegularExpressions.Regex.IsMatch(upperFileName, regex))
|
||||
return plugin;
|
||||
}
|
||||
}
|
||||
|
||||
XtraMessageBox.Show(this, String.Format(Resources.MainForm_LoadTll_SerializerNotFound, inputFileName));
|
||||
|
||||
248
Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-260-LB.h
Normal file
248
Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-260-LB.h
Normal file
@@ -0,0 +1,248 @@
|
||||
#include "tll-common.h"
|
||||
|
||||
#define MAX_SAT_COUNT 64
|
||||
struct TLL48_Satellite;
|
||||
typedef TLL48_Satellite TLL_Satellite;
|
||||
|
||||
#define MAX_TP_COUNT 2400
|
||||
struct TLL56_Transponder;
|
||||
typedef TLL56_Transponder TLL_Transponder;
|
||||
|
||||
#define MAX_DVBS_COUNT 7520
|
||||
struct TLL100_SatChannel;
|
||||
typedef TLL100_SatChannel TLL_SatChannel;
|
||||
|
||||
#define MAX_LNB_COUNT 40
|
||||
struct TLL52_Lnb;
|
||||
typedef TLL52_Lnb TLL_Lnb;
|
||||
|
||||
#define DVBS_CHANNELLIST_PREFIXSIZE 0
|
||||
|
||||
#include "tll-satellite.h"
|
||||
|
||||
struct LB260_AnalogChannel
|
||||
{
|
||||
byte t1[8];
|
||||
TLL_SignalSource SignalSource;
|
||||
byte t1b;
|
||||
word ChannelTransponder1;
|
||||
word ProgramNr;
|
||||
word LogicalProgramNr1;
|
||||
byte t2[4];
|
||||
byte Favorites1;
|
||||
byte t2b[3];
|
||||
word Frequency1Div50;
|
||||
word APID1;
|
||||
byte ChannelNumberInBand;
|
||||
byte ChannelBand;
|
||||
byte t3[10];
|
||||
char CH_Name1[40];
|
||||
byte CH_NameLength1;
|
||||
byte t4;
|
||||
word SID1;
|
||||
byte t5a[42];
|
||||
word ChannelTransponder2;
|
||||
dword FrequencyDiv50;
|
||||
byte t6[6];
|
||||
word ONID;
|
||||
word TSID;
|
||||
byte t7[32];
|
||||
word ChannelTransponder3;
|
||||
word ProgramNr2;
|
||||
word LogicalProgramNr2;
|
||||
word ChannelTransponder4;
|
||||
byte Favorites2;
|
||||
TLL_EditFlags EditFlags;
|
||||
word SID2;
|
||||
byte ServiceType;
|
||||
byte CH_NameLength2;
|
||||
char CH_Name2[40];
|
||||
byte t10[12];
|
||||
word Frequency2Div50;
|
||||
word APID2;
|
||||
word u1;
|
||||
word u2;
|
||||
byte t11[12];
|
||||
};
|
||||
|
||||
struct LB260_AnalogBlock
|
||||
{
|
||||
dword BlockSize;
|
||||
dword ChannelCount;
|
||||
LB260_AnalogChannel Channels[ChannelCount];
|
||||
};
|
||||
|
||||
struct LB260_HotelSettings
|
||||
{
|
||||
byte HotelModeActive;
|
||||
byte PowerOnStatus;
|
||||
byte SetupMenuDisplay;
|
||||
byte ProgramChange;
|
||||
byte InputSourceChange;
|
||||
byte MenuDisplay;
|
||||
byte OsdDisplay;
|
||||
byte LgIrOperation;
|
||||
byte LocalKeyOp;
|
||||
byte MaxVolume;
|
||||
byte Unknown1;
|
||||
byte DtvChannelUpdate;
|
||||
byte PowerOnDefault;
|
||||
byte InputSource;
|
||||
word Programme;
|
||||
byte Unknown2;
|
||||
byte Volume;
|
||||
byte AvSettings;
|
||||
byte RadioVideoBlank;
|
||||
byte unknown3;
|
||||
byte StartProgNr;
|
||||
byte unknown4;
|
||||
byte NumberOfPrograms;
|
||||
byte RadioNameDisplay;
|
||||
byte unknown5[2];
|
||||
byte AccessCode[4];
|
||||
};
|
||||
|
||||
struct LB260_FirmwareBlock
|
||||
{
|
||||
dword BlockSize;
|
||||
byte u[38251];
|
||||
LB260_HotelSettings HotelSettings;
|
||||
byte Data[BlockSize - 38251 - sizeof(LB260_HotelSettings)];
|
||||
};
|
||||
|
||||
struct LB260_DvbCtChannel
|
||||
{
|
||||
byte t1[8];
|
||||
TLL_SignalSource SignalSource;
|
||||
byte t1b;
|
||||
word ChannelTransponder1;
|
||||
word ProgramNr;
|
||||
word LogicalProgramNr1;
|
||||
byte t2a[4];
|
||||
byte Fav1;
|
||||
byte t2b[3];
|
||||
word PcrPid1;
|
||||
word APID1;
|
||||
byte t2c[8];
|
||||
word VPID1;
|
||||
byte t3[2];
|
||||
char CH_Name1[40];
|
||||
byte CH_NameLength1;
|
||||
byte t4;
|
||||
word SID1;
|
||||
byte t5a[41];
|
||||
byte NitVersion;
|
||||
word ChannelTransponder2;
|
||||
dword Frequency;
|
||||
byte t6[6];
|
||||
word ONID;
|
||||
word TSID;
|
||||
word NID;
|
||||
dword SpecialData;
|
||||
byte t7[26];
|
||||
word ChannelTransponder3;
|
||||
word ProgramNr2;
|
||||
word LogicalProgramNr2;
|
||||
word ChannelTransponder4;
|
||||
byte Favorites2;
|
||||
TLL_EditFlags EditFlags;
|
||||
word SID2;
|
||||
byte ServiceType;
|
||||
byte CH_NameLength2;
|
||||
char CH_Name2[40];
|
||||
byte t10[12];
|
||||
word PcrPid2;
|
||||
word APID2;
|
||||
word u1;
|
||||
word u2;
|
||||
byte t11[12];
|
||||
};
|
||||
|
||||
struct LB260_DvbCTBlock
|
||||
{
|
||||
dword BlockSize;
|
||||
dword ChannelCount;
|
||||
LB260_DvbCtChannel Channels[ChannelCount];
|
||||
};
|
||||
|
||||
struct TLL48_Satellite // ok
|
||||
{
|
||||
char Name[32];
|
||||
byte PosDeg;
|
||||
byte PosCDeg;
|
||||
byte LnbIndex;
|
||||
byte FactoryDefault;
|
||||
word TransponderHead;
|
||||
word TransponderTail;
|
||||
word TransponderCount;
|
||||
word Unknown4;
|
||||
word Unknown5;
|
||||
word Unknown6;
|
||||
};
|
||||
|
||||
struct TLL56_Transponder
|
||||
{
|
||||
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 u40[12];
|
||||
};
|
||||
|
||||
struct TLL100_SatChannel
|
||||
{
|
||||
word LnbIndex;
|
||||
word t1;
|
||||
TLL_SignalSource SignalSource;
|
||||
byte t2;
|
||||
word TP_Number;
|
||||
word CH_Number;
|
||||
word CH_NumberFixed;
|
||||
word TP_Number2;
|
||||
byte FavCrypt;
|
||||
TLL_EditFlags EditFlags;
|
||||
word SID;
|
||||
byte ServiceType;
|
||||
byte CH_NameLength;
|
||||
char CH_Name[52];
|
||||
word VPID;
|
||||
word APID;
|
||||
word t3;
|
||||
word t4;
|
||||
byte t5[20];
|
||||
};
|
||||
|
||||
struct TLL52_Lnb
|
||||
{
|
||||
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];
|
||||
};
|
||||
|
||||
|
||||
public struct LB260
|
||||
{
|
||||
byte Header[4];
|
||||
|
||||
LB260_AnalogBlock Analog;
|
||||
LB260_FirmwareBlock Firmware;
|
||||
LB260_DvbCTBlock DvbCT;
|
||||
TLL_DvbSBlock DvbS;
|
||||
TLL_SettingsBlock Settings;
|
||||
};
|
||||
6427
Test.Loader.LG/GlobalClone.xml
Normal file
6427
Test.Loader.LG/GlobalClone.xml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -109,7 +109,9 @@
|
||||
<Name>ChanSort.Loader.LG</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Content Include="GlobalClone.xml" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
||||
@@ -78,6 +78,10 @@
|
||||
<Name>ChanSort.Api</Name>
|
||||
<Private>True</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.GlobalClone\ChanSort.Loader.GlobalClone.csproj">
|
||||
<Project>{5361c8cb-f737-4709-af8c-e1f0456f3c5b}</Project>
|
||||
<Name>ChanSort.Loader.GlobalClone</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.Toshiba\ChanSort.Loader.Toshiba.csproj">
|
||||
<Project>{F6F02792-07F1-48D5-9AF3-F945CA5E3931}</Project>
|
||||
<Name>ChanSort.Loader.Toshiba</Name>
|
||||
|
||||
Reference in New Issue
Block a user