- 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

@@ -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>