- added support for Philips PFL9715K/02 (Repair\s2channellib\*.dat channel list format version 0.1)

- added support for Grundig dtv_cmdb_3.bin channel lists with size of 1270 KB
- fixed saving of Grundig dtv_cmdb_3.bin channel lists with size of 1293 KB
- updated tivusat reference list
- fixed issue when saving *cmdb_*.bin channel lists after applying a reference list which contains missing channels
- HB_DATABASE_mm_dd.DBM for Strong SRT 7007: added option "reorderPhysically" in ChanSort.Loader.DBM.ini
  for this particular format to not only change the number but also change the order or data records in the file
- removed app.config files containing assembly redirects from projects and included them in the central Solution.props instead
- upgraded various NuGet packages
This commit is contained in:
Horst Beham
2025-01-28 21:26:53 +01:00
parent 4eb78e1ca8
commit 0d9cdfefbb
70 changed files with 514 additions and 630 deletions

View File

@@ -62,6 +62,7 @@ it may work anyway:
- [Grundig](source/fileformats.md#grundig)
- [SatcoDX: ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken, ...](source/fileformats.md#satcodx)
- [DBM: Xoro, Strong, TechniSat, ...](source/fileformats.md#dbm)
- [Loewe](source/fileformats.md#hisense)
- [Vision Edge 4K](source/fileformats.md#visionedge)
- [VDR](source/fileformats.md#vdr)
- [SAT>IP m3u](source/fileformats.md#m3u)

View File

@@ -62,6 +62,7 @@ hier nicht angeführt ist, könnte es trotzdem funktiontionieren:
- [Grundig](source/fileformats_de.md#grundig)
- [SatcoDX: ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken, ...](source/fileformats_de.md#satcodx)
- [DBM: Xoro, Strong, TechniSat, ...](source/fileformats_de.md#dbm)
- [Loewe](source/fileformats_de.md#hisense)
- [Vision Edge 4K](source/fileformats.md#visionedge)
- [VDR](source/fileformats_de.md#vdr)
- [SAT>IP m3u](source/fileformats_de.md#m3u)

View File

@@ -62,6 +62,7 @@ to może i tak zadziałać:
- [Grundig](source/fileformats.md#grundig)
- [SatcoDX: ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken, ...](source/fileformats.md#satcodx)
- [DBM: Xoro, Strong, TechniSat, ...](source/fileformats.md#dbm)
- [Loewe](source/fileformats.md#hisense)
- [Vision Edge 4K](source/fileformats.md#visionedge)
- [VDR](source/fileformats.md#vdr)
- [SAT>IP m3u](source/fileformats.md#m3u)

View File

@@ -58,6 +58,7 @@ Bu liste nelerin desteklendiğine dair bir örnek teşkil eder, ancak yine de bu
- [Grundig](source/fileformats.md#grundig)
- [SatcoDX: ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken, ...](source/fileformats.md#satcodx)
- [DBM: Xoro, Strong, TechniSat, ...](source/fileformats.md#dbm)
- [Loewe](source/fileformats_de.md#hisense)
- [Vision Edge 4K](source/fileformats.md#visionedge)
- [VDR](source/fileformats.md#vdr)
- [SAT>IP m3u](source/fileformats.md#m3u)

View File

@@ -13,7 +13,7 @@
<OutputPath>..\Release\</OutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.8" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
</ItemGroup>
<ItemGroup>

View File

@@ -15,10 +15,10 @@
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.8" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Memory" Version="4.5.5" />
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="9.0.0" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />
<PackageReference Include="System.Numerics.Vectors" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
</ItemGroup>
</Project>

View File

@@ -8,7 +8,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -6,6 +6,71 @@
# Grundig 22 VLE 8120 WG dtv_cmd_3.bin with 1270 KB
[dtv_cmdb_3.bin:1299920]
offSatelliteBitmap=0x0008
lenSatelliteBitmap=4
offChannelBitmap=12
lenChannelBitmap=752
offSatelliteRecord=0x2fc
lenSatelliteRecord=60_3
numSatelliteRecord=24
offNetworkRecord=0x89c
lenNetworkRecord=54
numNetworkRecord=254
offTransponderBitmap=-1
lenTransponderBitmap=-1
offTransponderRecord=0x3e30
lenTransponderRecord=44_3
numTransponderRecord=3000
numChannelRecord=6000
offChannelRecord=0x241d0
lenChannelRecord=192_3
[dvbsSatellite:60_3]
offName=2
lenName=14
[dvbsTransponder:44_3]
offSatelliteIndex=0
offTransportStreamId=6
offOriginalNetworkId=8
offNetworkId=-1
offTransponderIndex=10
offFreqInMhz=12
offSymbolRate=32
[dvbsChannel:192_3]
offEncrypted=11
maskEncrypted=0x10
offSkip=11
maskSkip=0x20
offLocked=11
maskLocked=0x40
offDeleted=11
maskDeleted=0x04
offChannelType=13
offServiceType=-1
offTransponderIndex=16
offPmtPid=18
offPcrPid=22
offVideoPid=24
offProgramNr=28
offServiceId=30
offAudioPid=52
offName=140
lenName=44
offDebug=11
lenDebug=1
# C.F. - Grundig 37 VLE 9270 SL dtv_cmd_3.bin with 1293 KB
[dtv_cmdb_3.bin:1323920]
@@ -33,19 +98,6 @@ numChannelRecord=6000
offChannelRecord=0x241d0
lenChannelRecord=196_3
[dvbsSatellite:60_3]
offName=2
lenName=14
[dvbsTransponder:44_3]
offSatelliteIndex=0
offTransportStreamId=6
offOriginalNetworkId=8
offNetworkId=-1
offTransponderIndex=10
offFreqInMhz=12
offSymbolRate=32
[dvbsChannel:196_3]
offEncrypted=11
maskEncrypted=0x10

View File

@@ -13,9 +13,13 @@ namespace ChanSort.Loader.CmdbBin
private readonly List<string> files = new();
private readonly ChannelList avbtTv = new (SignalSource.AnalogT | SignalSource.Tv, "Analog Antenna TV");
private readonly ChannelList avbcTv = new (SignalSource.AnalogC | SignalSource.Tv, "Analog Cable TV");
private readonly ChannelList dvbsTv = new (SignalSource.DvbS | SignalSource.Tv, "Sat TV");
private readonly ChannelList dvbsRadio = new (SignalSource.DvbS | SignalSource.Radio, "Sat Radio");
private readonly ChannelList dvbsData = new (SignalSource.DvbS | SignalSource.Radio, "Sat Data");
private readonly ChannelList dvbsTv = new (SignalSource.DvbS | SignalSource.Tv, "Sat TV _2");
private readonly ChannelList dvbsRadio = new (SignalSource.DvbS | SignalSource.Radio, "Sat Radio _2");
private readonly ChannelList dvbsData = new (SignalSource.DvbS | SignalSource.Radio, "Sat Data _2");
private readonly ChannelList dvbsTv3 = new(SignalSource.DvbS | SignalSource.Tv, "Sat TV _3");
private readonly ChannelList dvbsRadio3 = new(SignalSource.DvbS | SignalSource.Radio, "Sat Radio _3");
private readonly ChannelList dvbsData3 = new(SignalSource.DvbS | SignalSource.Radio, "Sat Data _3");
private DvbStringDecoder dvbStringDecoder;
private bool loaded;
private readonly StringBuilder protocol = new ();
@@ -32,6 +36,9 @@ namespace ChanSort.Loader.CmdbBin
this.DataRoot.AddChannelList(dvbsTv);
this.DataRoot.AddChannelList(dvbsRadio);
// this.DataRoot.AddChannelList(dvbsData); // there seem to be multiple data lists with Toshiba TVs which all have their own numbering starting at 1. Better don't show data channels at all than dupes
this.DataRoot.AddChannelList(dvbsTv3);
this.DataRoot.AddChannelList(dvbsRadio3);
// this.DataRoot.AddChannelList(dvbsData3); // there seem to be multiple data lists with Toshiba TVs which all have their own numbering starting at 1. Better don't show data channels at all than dupes
this.ReadConfigurationFromIniFile();
foreach (var list in this.DataRoot.ChannelLists)
@@ -60,7 +67,7 @@ namespace ChanSort.Loader.CmdbBin
LoadFile(file, this.dvbsTv, this.dvbsRadio, this.dvbsData);
break;
case "dtv_cmdb_3.bin":
LoadFile(file, this.dvbsTv, this.dvbsRadio, this.dvbsData);
LoadFile(file, this.dvbsTv3, this.dvbsRadio3, this.dvbsData3);
break;
case "atv_cmdb.bin":
LoadFile(file, this.avbtTv, null, null);
@@ -299,7 +306,10 @@ namespace ChanSort.Loader.CmdbBin
switch (name)
{
case "dtv_cmdb_2.bin":
SaveDtvCmdb(path, "dvbsChannel", SignalSource.DvbS);
SaveDtvCmdb(path, "dvbsChannel", this.dvbsTv, this.dvbsRadio, this.dvbsData);
break;
case "dtv_cmdb_3.bin":
SaveDtvCmdb(path, "dvbsChannel", this.dvbsTv3, this.dvbsRadio3, this.dvbsData3);
break;
case "atv_cmdb.bin":
SaveAtvCmdb(path, "avbChannel", this.avbtTv);
@@ -313,22 +323,22 @@ namespace ChanSort.Loader.CmdbBin
#endregion
#region SaveDtvCmdb()
private void SaveDtvCmdb(string path, string channelSectionName, SignalSource sourceMask)
private void SaveDtvCmdb(string path, string channelSectionName, params ChannelList[] lists)
{
var data = File.ReadAllBytes(path);
var name = Path.GetFileName(path).ToLowerInvariant();
var config = this.ini.GetSection(name + ":" + data.Length);
var lenChannelRecord = config.GetInt("lenChannelRecord");
var sec = this.ini.GetSection($"{channelSectionName}:{lenChannelRecord}");
var strLength = config.GetString("lenChannelRecord");
var idx = strLength.IndexOf('_');
var lenChannelRecord = int.Parse(idx < 0 ? strLength : strLength.Substring(0, idx));
var sec = this.ini.GetSection($"{channelSectionName}:{strLength}");
sec.Set("offChecksum", lenChannelRecord - 4);
var mapping = new DataMapping(sec);
var baseOffset = config.GetInt("offChannelRecord");
foreach (var list in this.DataRoot.ChannelLists)
foreach (var list in lists)
{
if ((list.SignalSource & (SignalSource.MaskBcastSystem | SignalSource.MaskBcastMedium)) != sourceMask)
continue;
foreach (var chan in list.Channels)
{
mapping.SetDataPtr(data, baseOffset + (int)chan.RecordIndex * lenChannelRecord);

View File

@@ -219,6 +219,7 @@ offFreq=0
offSymRate=20
;channel record
reorderPhysically=true
offName=0
lenName=64
offProgNr=64

View File

@@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using ChanSort.Api;
@@ -273,7 +274,16 @@ namespace ChanSort.Loader.DBM
mapping.SetWord("offChecksum", calculatedChecksum);
}
File.WriteAllBytes(this.FileName, this.data);
if (!sec.GetBool("reorderPhysically"))
File.WriteAllBytes(this.FileName, this.data);
else
{
using var strm = new FileStream(this.FileName, FileMode.Create);
strm.Write(this.data, 0, baseOffset);
foreach (var chan in this.allChannels.Channels.OrderBy(ch => ch.NewProgramNr >= 0 ? ch.NewProgramNr : 1000000 + ch.OldProgramNr))
strm.Write(this.data, baseOffset + (int)chan.RecordIndex * recordSize, recordSize);
strm.Write(this.data, (int)strm.Position, data.Length - (int)strm.Position);
}
}
#endregion

View File

@@ -44,11 +44,11 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.8" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Memory" Version="4.5.5" />
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />
<PackageReference Include="System.Numerics.Vectors" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
</ItemGroup>
<ItemGroup>
<Content Remove="C:\Users\horst\.nuget\packages\sqlitepclraw.lib.e_sqlite3\2.1.2\buildTransitive\net461\..\..\runtimes\win-x86\native\e_sqlite3.dll" />
@@ -59,4 +59,7 @@
<ItemGroup>
<Content Remove="C:\Users\horst\.nuget\packages\sqlitepclraw.lib.e_sqlite3\2.1.2\buildTransitive\net461\..\..\runtimes\win-arm\native\e_sqlite3.dll" />
</ItemGroup>
<ItemGroup>
<None Include="..\app.config" Link="app.config" />
</ItemGroup>
</Project>

View File

@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
</configuration>

View File

@@ -34,39 +34,6 @@
offAudioPid2 = 254
[ACTChannelDataMapping:244]
; LB550U, LB561V
reorderChannelData = 0
lenName = 40
offSignalSource = 8
offChannelTransponder = 10, 136, 173, 180
offProgramNr = 12, 176
offProgramNrPreset = 14, 178
offFavorites = 20
offPcrPid = 24, 228
offAudioPid = 26
offVideoPid = 36
offName = 44, 188
offNameLength = 84, 187
offServiceId = 86, 184
offFrequencyLong = 140
offOriginalNetworkId = 150
offTransportStreamId = 152
offFavorites2 = 182
offDeleted = 182
maskDeleted = 0x42
offLock = 183
maskLock = 0x01
offSkip = 183
maskSkip = 0x02
offHide = 183
maskHide = 0x04
offProgNrCustomized = 183
maskProgNrCustomized = 0x40
offServiceType = 186
offAudioPid2 = 230
[ACTChannelDataMapping:260]
; LA 2013 series firmware 04.20.29 and later
reorderChannelData = 0
@@ -164,6 +131,39 @@
offServiceType = 194
offAudioPid2 = 238
[ACTChannelDataMapping:244]
; LB550U, LB561V
reorderChannelData = 0
lenName = 40
offSignalSource = 8
offChannelTransponder = 10, 136, 173, 180
offProgramNr = 12, 176
offProgramNrPreset = 14, 178
offFavorites = 20
offPcrPid = 24, 228
offAudioPid = 26
offVideoPid = 36
offName = 44, 188
offNameLength = 84, 187
offServiceId = 86, 184
offFrequencyLong = 140
offOriginalNetworkId = 150
offTransportStreamId = 152
offFavorites2 = 182
offDeleted = 182
maskDeleted = 0x42
offLock = 183
maskLock = 0x01
offSkip = 183
maskSkip = 0x02
offHide = 183
maskHide = 0x04
offProgNrCustomized = 183
maskProgNrCustomized = 0x40
offServiceType = 186
offAudioPid2 = 230
[ACTChannelDataMapping:224]
; LN series
reorderChannelData = 0

View File

@@ -32,10 +32,10 @@
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.8" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Memory" Version="4.5.5" />
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />
<PackageReference Include="System.Numerics.Vectors" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
</ItemGroup>
</Project>

View File

@@ -8,7 +8,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -481,10 +481,11 @@ namespace ChanSort.Loader.Philips
{
var transponderId = mapping.GetWord("offTransponderIndex");
var progNr = mapping.GetWord("offProgNr");
var serviceId = mapping.GetWord("offSid");
var ch = new Channel(list.SignalSource & SignalSource.MaskBcastMedium, recordIndex, progNr, "");
// deleted channels must be kept in the list because their records must also be physically reordered when saving the list
if (progNr == 0xFFFF || transponderId == 0xFFFF)
if (progNr == 0xFFFF || transponderId == 0xFFFF || serviceId == 0xFFFF)
{
ch.IsDeleted = true;
ch.OldProgramNr = -1;
@@ -1002,6 +1003,8 @@ namespace ChanSort.Loader.Philips
: list.Channels.OrderBy(c => c.RecordIndex);
foreach (var ch in channels)
{
if (ch.IsProxy)
continue;
mapping.BaseOffset = baseOffset + i * recordSize;
Array.Copy(orig, baseOffset + (int)ch.RecordIndex * recordSize, data, mapping.BaseOffset, recordSize);
if (ch.IsDeleted)

View File

@@ -44,11 +44,11 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.8" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Memory" Version="4.5.5" />
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />
<PackageReference Include="System.Numerics.Vectors" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
</ItemGroup>
<ItemGroup>
<Compile Remove="DllClient.cs" />

View File

@@ -93,6 +93,7 @@ namespace ChanSort.Loader.Philips
public SerializerBase CreateSerializer(string inputFile)
{
int majorVersion = int.MinValue;
int minorVersion = int.MinValue;
var filename = Path.GetFileName(inputFile).ToLowerInvariant();
if (Regex.IsMatch(filename, @"^CM_.*\.(?:bin|xml)$", RegexOptions.IgnoreCase))
majorVersion = 0;
@@ -110,6 +111,7 @@ namespace ChanSort.Loader.Philips
inputFile = path;
var data = File.ReadAllBytes(inputFile);
majorVersion = BitConverter.ToInt16(data, 2);
minorVersion = BitConverter.ToInt16(data, 4);
break;
}
@@ -139,9 +141,9 @@ namespace ChanSort.Loader.Philips
}
}
if (majorVersion == 0 || majorVersion >= 100 && majorVersion <= 125)
if (majorVersion == 0 && minorVersion != 0 || majorVersion >= 100 && majorVersion <= 125)
return new XmlSerializer(inputFile);
if (majorVersion == 1 || majorVersion == 2 || majorVersion == 30 || majorVersion == 45) // || majorVersion == 11 // format version 11 is similar to 1.x, but not (yet) supported
if (majorVersion is >= 0 and <= 2 || majorVersion == 30 || majorVersion == 45) // || majorVersion == 11 // format version 11 is similar to 1.x, but not (yet) supported
return new BinarySerializer(inputFile);
if (majorVersion == -1)
return new DbSerializer(inputFile);

View File

@@ -8,7 +8,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -38,11 +38,11 @@
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.8" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Memory" Version="4.5.5" />
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />
<PackageReference Include="System.Numerics.Vectors" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
</ItemGroup>
</Project>

View File

@@ -8,7 +8,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -7,7 +7,7 @@ namespace ChanSort.Loader.SatcoDX
{
internal class Channel : ChannelInfo
{
private byte[] data;
private readonly byte[] data;
public int FileOffset { get; }
public int Length { get; }
@@ -75,7 +75,10 @@ namespace ChanSort.Loader.SatcoDX
// 102-104: language
// 106-107: country code
// 108-110: language code
// 111-114: crypto code
if (line.Length >= 115)
this.Encrypted = line.Substring(111, 4) == "LCKD";
}
#endregion

View File

@@ -34,7 +34,6 @@ namespace ChanSort.Loader.SatcoDX
list.VisibleColumnFieldNames.Remove("Lock");
list.VisibleColumnFieldNames.Remove("Skip");
list.VisibleColumnFieldNames.Remove("Hidden");
list.VisibleColumnFieldNames.Remove("Encrypted");
list.VisibleColumnFieldNames.Remove("Favorites");
list.VisibleColumnFieldNames.Remove("ServiceType");
list.VisibleColumnFieldNames.Add("ServiceTypeName");
@@ -63,7 +62,7 @@ namespace ChanSort.Loader.SatcoDX
prevPos = nextPos + 1;
}
// SATCODX105 files contain a \0 character to mark the end, followed by an arbitrary number or spaces (or whatever data). We'll preserve it as-is.
// SATCODX105 files contain a \0 character to mark the end, followed by an arbitrary number of spaces (or whatever data). We'll preserve it as-is.
this.trailingDataPos = prevPos;
}

View File

@@ -6,7 +6,7 @@
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.8" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj" />

View File

@@ -30,11 +30,11 @@
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.8" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
<PackageReference Include="System.Buffers" Version="4.5.1" />
<PackageReference Include="System.Memory" Version="4.5.5" />
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />
<PackageReference Include="System.Numerics.Vectors" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
</ItemGroup>
</Project>

View File

@@ -8,7 +8,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -13,7 +13,7 @@
<OutputPath>..\Release\</OutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.8" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
</ItemGroup>
<ItemGroup>

View File

@@ -23,6 +23,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ChanSort.Loader.LG", "ChanS
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{67AED502-8AEB-45F2-9B95-AC42B6A5D2C4}"
ProjectSection(SolutionItems) = preProject
ChanSort.Loader.Samsung\app.config = ChanSort.Loader.Samsung\app.config
build.md = build.md
changelog.md = changelog.md
fileformats.md = fileformats.md
@@ -114,7 +115,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HDD Hex Edit Neo", "HDD Hex
Information\FileStructures_for_HHD_Hex_Editor_Neo\chansort.h = Information\FileStructures_for_HHD_Hex_Editor_Neo\chansort.h
Information\FileStructures_for_HHD_Hex_Editor_Neo\cvt_database-dat.h = Information\FileStructures_for_HHD_Hex_Editor_Neo\cvt_database-dat.h
Information\FileStructures_for_HHD_Hex_Editor_Neo\dbm.h = Information\FileStructures_for_HHD_Hex_Editor_Neo\dbm.h
Information\FileStructures_for_HHD_Hex_Editor_Neo\dtv-cmdb.h = Information\FileStructures_for_HHD_Hex_Editor_Neo\dtv-cmdb.h
Information\FileStructures_for_HHD_Hex_Editor_Neo\dtv-cmdb-3.h = Information\FileStructures_for_HHD_Hex_Editor_Neo\dtv-cmdb-3.h
Information\FileStructures_for_HHD_Hex_Editor_Neo\dtv_cmdb_1-bin.h = Information\FileStructures_for_HHD_Hex_Editor_Neo\dtv_cmdb_1-bin.h
Information\FileStructures_for_HHD_Hex_Editor_Neo\dtv_cmdb_2-bin.h = Information\FileStructures_for_HHD_Hex_Editor_Neo\dtv_cmdb_2-bin.h
Information\FileStructures_for_HHD_Hex_Editor_Neo\get_doc_size.js = Information\FileStructures_for_HHD_Hex_Editor_Neo\get_doc_size.js

View File

@@ -186,7 +186,7 @@ namespace ChanSort.Ui
internal ChannelList CurrentChannelList { get; private set; }
internal int SubListIndex => this.subListIndex;
private GridView EditorGridView => this.miSplitView.Down ? this.gviewLeft : this.gviewRight;
private XGridView EditorGridView => this.miSplitView.Down ? this.gviewLeft : this.gviewRight;
#region IsLeftGridSortedByNewProgNr
@@ -986,10 +986,18 @@ namespace ChanSort.Ui
if (list.IsMixedSourceFavoritesList)
continue;
var chNr = 1;
foreach (var channel in list.Channels.OrderBy(c => c.NewProgramNr))
foreach (var channel in list.Channels.OrderBy(c => c.NewProgramNr).ToList())
{
if (channel.IsDeleted || channel.NewProgramNr < 0)
continue;
if (channel.IsProxy && !testOnly)
{
// remove proxy channels so they don't cause duplicate numbers
list.Channels.Remove(channel);
continue;
}
if (channel.NewProgramNr == 0 && chNr == 1)
chNr = 0;
if (channel.NewProgramNr != chNr)
@@ -3924,8 +3932,17 @@ namespace ChanSort.Ui
private void btnSearch_Click(object sender, EventArgs e)
{
var gview = this.EditorGridView;
var col = gview == gviewLeft ? colOutName : colName;
gview.FocusedRowHandle = GridControl.AutoFilterRowHandle;
gview.FocusedColumn = colName;
gview.FocusedColumn = col;
var tt = new ToolTip();
tt.IsBalloon = true;
var x = gview.ViewInfo.GetColumnLeftCoord(col) + this.ScaleHelper.ScaleHorizontal(10);
var ri = gview.ViewInfo.GetGridRowInfo(GridControl.AutoFilterRowHandle);
var y = ri.Bounds.Bottom + this.ScaleHelper.ScaleVertical(15);
tt.Show("Enter search text here", gridLeft, x, y, 3000);
gview.GridControl.Focus();
gview.ShowEditor();
}

View File

@@ -0,0 +1,5 @@
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v23.2, Version=23.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v23.2, Version=23.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v23.2, Version=23.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v23.2, Version=23.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v23.2, Version=23.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -6,101 +6,93 @@
6;Italia1 HD;272-1200-121
7;LA7 HD;190-6000-79
8;TV8 HD;64511-7500-7260
9;Nove;318-1000-4323
9;Nove HD;318-1000-4323
10;Rai 4 HD;318-5200-3405
11;Iris HD;272-1200-124
12;La5 HD;272-1200-127
13;Rai 5 HD;318-12500-17716
14;Rai Movie HD;318-5200-3406
15;Rai Premium HD;318-12400-8522
16;Mediaset Italia2 HD;272-1200-130
16;Mediaset Italia2 HD;272-1200-130
17;Mediaset Extra HD;272-1200-129
18;TV2000 HD;64511-6900-11180
19;Cielo HD;64511-7500-4120
20;20Mediaset HD;272-1200-120
18;TV2000 HD;64511-6700-4365
19;cielo HD;64511-7500-4120
20;20 Mediaset HD;272-1200-120
21;Rai Sport + HD;318-12500-17714
22;VH1 HD;318-15700-1326
23;Rai Storia HD;318-12400-8518
24;Rai News 24 HD;318-12500-17711
25;TGCOM24 HD;272-1200-128
26;Rai Scuola HD;318-12400-8521
27;27Twentyseven HD;272-1200-135
28;DMAX;318-300-15202
28;DMAX Italy;318-300-15202
29;LA7d HD;190-6000-73
31;Real Time;318-300-15201
31;Realtime Italy;318-300-15201
32;QVC HD;318-15800-16979
33;Focus HD;272-1200-134
34;Cine34 HD;272-1200-111
35;Radio Italia TV HD;318-15800-16962
36;RTL 102.5 HD;318-15700-1307
37;RTL 102.5 News;318-15700-1323
38;GIALLO;318-1000-4322
35;Radio Italia Tv HD;318-15800-16962
36;RTL 1025 HD;318-15700-1307
37;RTL 1025 CALIENTE;318-15700-1323
38;Giallo HD;318-1000-4322
39;TOPcrime HD;272-1200-132
40;Boing;272-1200-126
41;Cartoonito;272-1200-133
40;Boing HD;272-1200-126
41;Cartoonito HD;272-1200-133
42;Rai Gulp HD;318-12500-17712
43;Rai YoYo HD;318-12400-8511
44;frisbee;318-300-15205
44;Frisbee;318-300-15205
46;K2;318-300-15204
47;Super!;318-15700-1327
47;Super!;64511-8200-3568
48;Arte HD;319-15900-307
49;MEZZO;318-7200-10725
50;RDS Social TV;318-15800-16977
49;Mezzo TV;318-12100-16939
50;RDS Social TV HD;318-15800-16975
51;EQUtv;318-15800-16963
52;ACI Sport TV;318-9300-1613
53;Food Network;318-300-15203
54;Warner TV Italy;318-300-15212
55;Gold TV;318-15700-1332
56;HGTV Italy;318-1000-4334
57;Motor Trend;318-1000-4321
52;ACISPORT TV;318-9300-1613
53;Food Network Italy;318-300-15203
54;WarnerTV Italy HD;318-300-15212
55;GOLD TV (International);318-15700-1332
56;HGTV Italy HD;318-1000-4334
57;MotorTrend HD;318-1000-4321
58;Solo Calcio;318-13300-4996
59;Euronews Italian;318-8900-2017
60;Euronews Russian;318-12600-1705
61;BFC;64511-6900-3539
62;Giornale Radio TV;318-12100-16944
59;EURONEWS ITALIAN SD PAL;318-8900-2017
60;WeDo TV;318-15700-1337
63;Radio Italia Trend TV HD;318-15800-16966
64;Radio Kiss Kiss TV;318-15800-16976
64;Radio Kiss Kiss Tv;318-15800-16976
65;RADIO ZETA HD;318-15700-1321
66;RADIOFRECCIA HD;318-15700-1308
67;RADIO MONTE CARLO;272-1200-119
68;VIRGIN RADIO;272-1200-118
69;France 24 HD (in English);318-15300-808
70;BBC World News;318-9400-8204
70;BBC News Europe;318-12600-17130
71;Al Jazeera English HD;318-13100-7306
72;TRT World HD;318-15300-803
73;NHK WORLD JAPAN;318-900-533
74;FREEDOM;318-12100-16924
73;NHK WORLD-JAPAN;318-900-533
74;UATV;318-12100-16924
75;France 24 HD (en Francais);318-15300-807
76;Nickelodeon Ukraine Kids Pluto Channel;318-6500-17
76;Dim TV;318-12100-16950
77;Al Jazeera HD;318-9300-1601
78;Espreso TV;318-12100-16949
79;Sonlife;318-8100-14809
81;CNBC HD;64511-6700-7245
82;Bloomberg European TV;318-13100-7302
83;i24News HD English;318-15700-1310
84;i24News HD French;318-15700-1309
85;DW English HD;318-5000-13101
86;Euronews English HD;318-15300-801
87;CGTN HD;318-15400-872
88;CGTN Documentary HD;318-15400-873
89;Senato;318-12400-8520
87;CGTN;318-15400-872
88;CGTN Documentary;318-15400-873
89;Senato (HD);318-5200-3408
90;Camera Deputati;318-12400-8519
91;KBS HD;318-5000-13104
92;CCTV-4 HD;318-15400-871
91;KBS WORLD HD;318-13300-4901
92;CCTV 4E;318-15400-871
93;SMTv San Marino HD;318-7200-7254
100;tivùlink;318-12400-8517
132;QVC;318-7000-780
177;Al Jazeera;318-7000-708
187;CGTN;318-12600-1706
192;CCTV 4;318-7200-7224
202;Rai Radio 2 Visual;318-12400-8512
210;Rai 4K;318-5200-3407
211;Nasa TV UHD;318-11100-4602
214;DAZN 1;190-6000-801
215;DAZN 2;190-6000-802
220;Museum 4K;318-11100-4604
222;MyZenTV 4K;318-11100-4605
225;TRAVELXP 4K;318-11100-4603
230;HotBird 4K1;318-9200-1209
289;FTVUHD.COM;318-8400-3012
222;MyZen 4K;318-11100-4605
225;TravelXP 4K;318-11100-4603
230;HotBird 4K1;318-4200-1209
250;Padel TV;318-200-107
251;GINX;318-200-100
301;Rai 3 TGR Valle d'Aosta;318-12500-17744
302;Rai 3 TGR Piemonte;318-12500-17739
303;Rai 3 TGR Liguria;318-12500-17735
@@ -108,9 +100,9 @@
305;Rai 3 TGR Veneto;318-12500-17742
306;Rai 3 TGR Trentino Alto Adige Bolzano;318-12500-17752
307;Rai 3 TGR Trentino Alto Adige Trento;318-12500-17751
308;Rai 3 TGR Südtirol;318-12500-17743
308;Rai 3 TGR Sudtirol HD;318-12500-17743
309;Rai 3 TGR Friuli Venezia Giulia;318-12500-17749
310;Rai 3 TGR Furlanija Julijska Krajina;318-12500-17750
310;Rai 3 TGR Furlanija Krajina;318-12500-17750
311;Rai 3 TGR Emilia-Romagna;318-12500-17741
312;Rai 3 TGR Toscana;318-12500-17736
313;Rai 3 TGR Marche;318-12500-17738
@@ -124,112 +116,69 @@
321;Rai 3 TGR Calabria;318-12500-17733
322;Rai 3 TGR Sardegna;318-12500-17745
323;Rai 3 TGR Sicilia;318-12500-17734
411;La C Sat;318-15700-1329
412;TELERADIOPACE;319-1400-5
420;People TV-Rete 7;318-15700-1328
412;Teleradiopace TV (Sat);318-9000-9023
420;People TV;318-15700-1328
422;Telecupole;318-13300-4994
444;Horse TV HD;318-12100-16942
445;Padre Pio Tv;318-15800-16952
454;Parole di Vita;318-900-510
462;byoblu;318-12100-16948
518;ER24;318-15700-1333
462;ByoBlu;318-12100-16948
500;tivù la guida;318-12400-8523
519;TRM h24;318-15800-16922
601;Rai Radio 1;318-5200-3441
602;Rai Radio 2;318-5200-3442
603;Rai Radio 3;318-5200-3443
604;Rai Isoradio;318-5200-3446
605;Rai GR Parlamento;318-5200-3445
606;Rai Radio1 Sport;318-5200-3453
607;Rai Radio3 Classica;318-5200-3444
604;Rai Isoradio;318-12400-8526
605;Rai GrParlamento;318-12400-8525
606;Rai Radio 1 Sport;318-12400-8533
607;Rai Radio 3 Classica;318-12400-8524
608;RDS;318-7000-736
609;DimSuono Roma;318-7000-737
610;RTL 102.5;318-7200-3642
611;RADIO ZETA ITALIANA;318-7200-3643
612;Radio Freccia;318-7200-3630
613;RADIO GAMMA STEREO;318-13300-4955
614;Radio Dimensione Stereo;318-13300-4965
610;RTL 1025;318-7200-3642
611;RADIO ZETA;318-7200-3643
612;RADIO FRECCIA;318-7200-3630
613;Radio Gamma Stereo;318-13300-4955
615;Radio 105;190-6000-105
616;VIRGIN RADIO;190-6000-104
617;R101;190-6000-101
616;Virgin radio;190-6000-104
617;Radio R101;190-6000-101
618;Radio Monte Carlo;190-6000-102
620;RADIO ITALIA s.m.i.;318-7200-3632
619;Rai Radio Südtirol;318-12400-8535
620;RADIO ITALIA smi;318-7200-3632
621;M DUE O;318-7200-3653
622;CAPITAL;318-7200-3652
623;DEEJAY;318-7200-3651
624;Radio 24;318-7200-3644
625;DISCORADIO;318-7000-768
626;R.ONDA D'URTO;318-7200-3645
625;Discoradio;318-7000-768
626;RONDA D'URTO;318-7200-3645
627;ANNI 60;318-7000-738
628;Radio Sintony;318-13300-4953
629;Radio Supersound;318-13300-4954
630;Radio Margherita;318-13300-4957
631;Radio Number One;318-15800-16981
632;Radio Radio;318-13300-4949
633;Radio Maria;318-7000-732
634;Radio Mater;318-7200-7280
634;RADIO MATER;318-7200-7280
635;popolare;318-7200-3656
636;No Name Radio;318-5200-3450
637;Rai Radio Tutta Italiana;318-5200-3451
638;Rai Radio Techete';318-5200-3447
639;Rai Radio Kids;318-5200-3449
640;Rai Radio Live;318-5200-3448
641;LOra della Venezia Giulia;318-5200-3452
642;Rai Radio Slovenia;318-5200-3454
636;No Name Radio;318-12400-8530
637;Rai Radio Tutta Italiana;318-12400-8531
638;Rai Radio Techete';318-12400-8527
639;Rai Radio Kids;318-12400-8529
640;Rai Radio Live Napoli;318-12400-8528
641;Rai Radio 1 L'Ora della Venezia Giulia;318-12400-8532
642;Rai Radio Trst A;318-12400-8534
643;Radio Kiss Kiss;318-7000-742
644;Radio Sportiva;318-7200-3637
645;RVS-Accendi la Speranza;318-15700-1330
646;Canzoni Napoletane;318-15800-16982
656;RFI Francais;318-5000-13130
661;Swiss Pop;318-12300-17235
662;Swiss Jazz;318-12300-17236
663;Swiss Classica;318-12300-17247
667;DW02;318-5000-13124
669;DW08;318-5000-13121
670;DW09;318-5000-13122
667;DW-FM02;318-5000-13124
669;DW08;318-5000-1321
670;DW09;318-5000-1322
701;UNINETTUNO UNIVERSITY TV;318-12500-17718
809;PACI CONTEMPORARY;318-9000-9014
813;NUOVA TV NAZIONALE;318-9000-9015
815;Vatican Media Europa HD;318-8900-2004
815;Vatican Media Europa;318-8900-2004
819;VIDEOLINA;318-15800-16992
832;TVA Vicenza;318-15800-16988
863;Arte Atelier;318-15800-16964
868;Arte Investimenti;318-13300-4993
882;Eursat;318-15800-16996
903;Antichita Chiossone;318-15800-16965
905;BIKE;64511-6900-4102
906;Canale Italia;318-13300-4964
907;Canale Italia 2;318-13300-4966
908;Canale Italia 83;318-13300-4961
909;Canale Italia 84;318-13300-4962
910;Class TV Moda;318-12100-16941
911;Deluxe 139;318-9000-9008
912;DimSuono Soft MI;318-7000-766
913;DimSuono Soft RM;318-7000-767
914;EURSAT;318-15800-16996
915;Explorer HD Channel;64511-6900-13534
917;InBlu;64511-6700-11131
918;INBLU2000;64511-6700-11174
919;Italian Fishing TV;318-9300-1602
920;Pop Economy;318-9300-1619
921;R. Eurospin;318-7000-749
922;Radio Cusano Campus;318-13300-4958
923;Radio Iglesias;318-7200-3654
924;Radio PadrePio;318-7000-744
925;Radio RADICALE;318-7000-761
926;Radio Vaticana Europa;64511-6900-11181
927;RADIONORBA TV;318-15700-1311
928;RDS Relax;318-15800-16978
929;Rete Due;318-12300-17232
930;Rete Tre;318-12300-17233
931;Rete Uno;318-12300-17231
933;SMTv San Marino Radio;318-7200-7255
934;TG NORBA 24;318-7200-7283
935;The Map Report TV;318-15700-1331
936;TLC Telecampione;318-13300-4970
937;MS CHANNEL;318-9300-1614
938;MS MOTOR TV;318-9300-1606
939;Radio Radio TV;318-13300-4948
940;Yes TV;318-15700-1312
941;WellTV;318-900-503
942;TCI;318-8000-3203
943;RADIO SUBASIO;190-6000-106
944;R.BuonConsiglio;318-7200-7282
868;Arte Investimenti;318-13300-4993

View File

@@ -67,7 +67,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -0,0 +1,151 @@
#include "chansort.h"
#pragma script("get_doc_size.js")
/*
structure definition for various variants of MStar (aka MorningStar) DVB-C and DVB-S receiver channel list formats.
Also used by various models from brands like AEG, Akiwa, Auvisio, Boca, Botech, Comag, Dyon, LogiSat, Kjaerulff, Micro, Megasat, Schwaiger, SeaSat, Strong, TechniSat, TeleSystem, Trekstor, Xoro, Zehnder, ...
Typical file names include: vodafone.DBM, HB_DATABASE_6_29.DBM, MAS_HRS8520_23_08_2011.DBM, ...
*/
struct s_Satellite
{
var off0 = current_offset;
word u;
byte Name[34];
word LowFreq;
word HighFreq;
var off1 = current_offset;
byte u1[50 - (off1 - off0)];
word OrbitalPos;
var off1 = current_offset;
byte unk[satRecordLengthTail - (off1 - off0)];
};
struct s_Transponder
{
var off0 = current_offset;
byte SatIndex;
byte unk1[5];
word Tsid;
word Onid;
word Nid;
byte u[2];
word transponderIndex;
word FreqInMhz;
byte unk2[10];
word SymRate;
var off1 = current_offset;
byte unk[transponderRecordLength - (off1 - off0)];
};
enum e_Favorites : byte
{
A=0x01,
B=0x04,
C=0x08,
D=0x10
};
enum e_Flags : byte
{
Encrypted=0x10,
Skip=0x20,
Lock=0x40
};
enum e_ServiceType : byte
{
TV=1,
Radio=2
};
struct s_Channel
{
var off0 = current_offset;
word Index;
byte u0[13];
//e_Flags Flags;
//byte u1;
byte ChannelType;
byte ServiceType;
byte u1[3];
word TransponderIndex;
word PmtPid;
word u2;
word PcrPid;
word VideoPid;
word u3;
word ProgNr;
word ServiceId;
byte u4[14];
char AudioLang1[4];
word AudioPid1;
char AudioLang2[4];
word AudioPid2;
byte u90[84];
char Name[50];
char Provider[224];
var off1 = current_offset;
byte unk[channelRecordLength - (off1-off0)];
};
public struct dtv_cmdb_3_unified
{
var headerLength = 0;
var satBitmapLength = 0;
var satRecordCount = 0;
var satRecordLength = 0;
var networkData = 0;
var channelBitmapLength = 0;
var channelRecordCount = 0;
var channelRecordLength = 0;
var channelBlockUnknownLength = 0;
var transponderBitmapLength = 0;
var transponderRecordCount = 0;
var transponderRecordLength = 0;
switch (GetDocumentSize())
{
case 1299920:
// Grundig 22 VLE 8120 WG
headerLength = 8;
satBitmapLength = 4;
channelBitmapLength = 750;
satRecordCount = 24;
satRecordLength = 60;
networkDataLength = 254 * 54;
transponderBitmapLength = 0;
transponderRecordCount = 3200;
transponderRecordLength = 44;
channelRecordCount = 6000;
channelRecordLength = 192;
channelBlockUnknownLength = 0;
break;
default:
$assert(false, "Structure for this file size is not supported");
break;
}
byte Header[headerLength];
byte SatelliteBitmap[satBitmapLength];
byte ChannelBitmap[channelBitmapLength];
byte unk[2];
s_Satellite SatelliteData[satRecordCount];
byte NetworkData[networkDataLength];
byte TransponderBitmap[transponderBitmapLength];
s_Transponder TransponderData[transponderRecordCount];
s_Channel ChannelData[channelRecordCount];
//byte ChannelBlockUnknown[channelBlockUnknownLength];
byte Extra[*];
};

View File

@@ -2,4 +2,12 @@
<PropertyGroup>
<EmbeddedResourceUseDependentUponConvention>true</EmbeddedResourceUseDependentUponConvention>
</PropertyGroup>
<ItemGroup>
<None Include="..\app.config" Link="app.config" />
</ItemGroup>
<!-- latest versions of nuget packages where older versions are indirectly included through other libraries; this should avoid a flood of compiler warnings -->
<ItemGroup>
<PackageReference Include="System.Memory" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
</ItemGroup>
</Project>

View File

@@ -7,11 +7,11 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-6.0.1.0" newVersion="6.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />

View File

@@ -17,8 +17,13 @@
<Folder Include="TestFiles\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<None Include="..\app.config" Link="app.config" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
</Project>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -5,8 +5,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<PropertyGroup />
<PropertyGroup>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -18,8 +18,8 @@
<Folder Include="TestFiles\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
</Project>

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.provider.dynamic_cdecl" publicKeyToken="b68184102cba0b3b" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -18,8 +18,8 @@
<Folder Include="TestFiles\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
</Project>

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.provider.dynamic_cdecl" publicKeyToken="b68184102cba0b3b" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -13,8 +13,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
<PropertyGroup>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -35,8 +35,8 @@
<Content Include="GlobalClone.xml" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
<PackageReference Include="NUnit" Version="3.14.0" />
</ItemGroup>
</Project>

View File

@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.provider.dynamic_cdecl" publicKeyToken="b68184102cba0b3b" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -26,8 +26,8 @@
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
<PackageReference Include="NUnit" Version="3.14.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />

View File

@@ -13,8 +13,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
<PropertyGroup>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -205,8 +205,8 @@
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
</Project>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -21,8 +21,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -21,8 +21,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
</Project>

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.provider.dynamic_cdecl" publicKeyToken="b68184102cba0b3b" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -18,7 +18,7 @@
<Folder Include="TestFiles\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
</Project>

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.provider.dynamic_cdecl" publicKeyToken="b68184102cba0b3b" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -17,8 +17,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
</Project>

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.provider.dynamic_cdecl" publicKeyToken="b68184102cba0b3b" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -21,8 +21,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
<PropertyGroup>

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.2.1721" newVersion="2.1.2.1721" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -22,8 +22,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\net48\NETStandard.Library.targets')" />
</Project>

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.provider.dynamic_cdecl" publicKeyToken="b68184102cba0b3b" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -24,7 +24,7 @@
<ProjectReference Include="..\ChanSort.Loader.LG\ChanSort.Loader.LG.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="3.6.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.6.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>
</Project>

View File

@@ -12,7 +12,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-6.0.1.0" newVersion="6.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
@@ -24,7 +24,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -4,8 +4,13 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
<bindingRedirect oldVersion="0.0.0.0-6.0.1.0" newVersion="6.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
@@ -22,10 +27,7 @@
<assemblyIdentity name="SQLitePCLRaw.provider.dynamic_cdecl" publicKeyToken="b68184102cba0b3b" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.5.1236" newVersion="2.0.5.1236" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -1,6 +1,18 @@
ChanSort Change Log
===================
2025-01-11
- added support for Philips PFL9715K/02 (Repair\\s2channellib\\\*.dat channel list format version 0.1)
- added support for Grundig dtv\_cmdb\_3.bin channel lists with size of 1270 KB
- fixed saving of Grundig dtv\_cmdb\_3.bin channel lists with size of 1293 KB
- updated tivusat reference list
- fixed issue when saving \*cmdb\_\*.bin channel lists after applying a reference list which contains channels
that don't exist in the \*cmdb\_\*.bin
2024-10-28
- HB\_DATABASE\_mm\_dd.DBM for Strong SRT 7007: added option "reorderPhysically" in ChanSort.Loader.DBM.ini
for this particular format to not only change the number but also change the order or data records in the file
2024-10-15
- Philips formats 120-125: opening the "MtkChannelList.xml" file will now load/save the whole Philips channel list
instead of only loading the data from that particular file.

View File

@@ -39,11 +39,11 @@ Always select "none / other / all" and never your cable TV provider or something
- Android-TVs: "sdb.xml" files using format "FormateVer" 1.1.0
- KDL 2012/2014: "sdb.xml" files using "FormatVer" 1.0.0, 1.1.0 and 1.2.0
<a name="hisense"/>Hisense
<a name="hisense"/>Hisense / Loewe
---
- Some older models like LTDN40D50TS use the same .csv files as Sharp. See [Sharp](#sharp) for instructions.
- 2016 "Smart" models with a channel.db file, i.e. H65M5500
- 2017 models with a servicelist.db file
- Hisense 2017 and Loewe models with a servicelist.db file
- models exporting a HIS_DVB.BIN file
- models exporting a set of HIS\_FAV.BIN, HIS\_SVL.BIN and HIS\_TSL.BIN files