- Panasonic Fire-OS Channels.sdx lists: removed trailing underscore and space characters from channel names

- downgraded SQLite libraries to avoid a memory access violation crash in the SQLitePCL.raw 2.1.10 (causing at least Panasonic lists to crash on load)
- added support for \*.dbm files with size 782536 (e.g. Vantage VT-80 HD)
- moved "Save as..." and "Export reference list" to a sub menu as they caused frequent confusion with the regular "Save".
This commit is contained in:
Horst Beham
2025-03-08 18:19:10 +01:00
parent 0d9cdfefbb
commit 10a53f367f
34 changed files with 213 additions and 46 deletions

View File

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

View File

@@ -15,7 +15,8 @@
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="9.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<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" />

View File

@@ -242,6 +242,66 @@ offVideoPid=110
;---------------------------------------
[dbm:782536]
; overall file layout, e.g. Vantage VT-80 HD
isDvbS=true
offChecksum=0x0000
offDataLength=0x0002
offData=0x0006
offSatelliteBitmap=0x0006
lenSatelliteBitmap=28
offSatelliteData=0x0022
numSatellite=200
lenSatelliteData=88
offTransponderBitmap=0x44e0
lenTransponderBitmap=376
offTransponderData=0x465A
numTransponder=3000
lenTransponderData=36
offChannelBitmap=0x1EC50
lenChannelBitmap=502
offChannelData=0x1EE46
numChannel=4000
lenChannelData=164
;satellite record
offSatName=0
lenSatName=34
offLowFreq=34
offHighFreq=36
offOribalPos=74
;transponder record
offFreq=0
offSymRate=20
;channel record
reorderPhysically=true
offName=0
lenName=64
offProgNr=64
offLcn=66
offSatelliteIndex=70
offTransponderIndex=72
offServiceType=80
offHide=81
maskHide=0x04
offSkip=81
maskSkip=0x08
offLock=81
maskLock=0x10
offFavorites=83
offTsid=100
offOnid=102
offSid=104
offPcrPid=108
offVideoPid=110
;---------------------------------------
[dbm:785256]
; overall file layout, e.g. Strong HB_DATABASE_5_4.DBM
isDvbS=true

View File

@@ -44,7 +44,8 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<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" />

View File

@@ -32,7 +32,8 @@
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<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" />

View File

@@ -200,8 +200,15 @@ namespace ChanSort.Loader.Panasonic
/// </summary>
private void ReadNamesWithEncodingDetection(IDataReader r, IDictionary<string, int> field, Encoding encoding)
{
byte[] buffer = new byte[100];
int len = (int)r.GetBytes(field["sname"], 0, buffer, 0, buffer.Length);
#if true || NoAccessViolationInSQLitePCLRaw
// The NuGet packages Microsoft.Data.Sqlite 9.0.0-9.0.2 throw an AccessViolationException and terminate the program when reading a "string" column with GetBytes()
byte[] buffer = new byte[300];
int len = (int)r.GetBytes(field["sname"], 0, buffer, 0, buffer.Length/3);
#else
var str = r.GetString(field["sname"]);
var buffer = Encoding.UTF8.GetBytes(str);
var len = buffer.Length;
#endif
this.RawName = new byte[len];
Array.Copy(buffer, 0, this.RawName, 0, len);
this.ChangeEncoding(encoding);

View File

@@ -44,7 +44,8 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<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" />

View File

@@ -38,7 +38,8 @@
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />

View File

@@ -10,6 +10,7 @@ namespace ChanSort.Loader.SatcoDX
private readonly byte[] data;
public int FileOffset { get; }
public int Length { get; }
private bool forceUtf8;
#region ctor()
@@ -27,7 +28,7 @@ namespace ChanSort.Loader.SatcoDX
throw LoaderException.Fail("Unrecognized channel format");
// 10-27: satellite name
this.Satellite = line.Substring(10, 18);
this.Satellite = line.Substring(10, 18).TrimEnd('\0', ' ', '_');
// 28: channel type
var type = line[28];
@@ -96,14 +97,19 @@ namespace ChanSort.Loader.SatcoDX
// 43-50 + 115-126 in version 103 or 115-131 in version 105: channel name
byte[] nameBytes = new byte[8 + 17];
var nameLen2 = Math.Min(length - 115, 17); // version 103 has 12 extra bytes for channel name, version 105 has 17
int lineEnd = Array.IndexOf(data, (byte)'\x0A', start + 115);
var maxLen = lineEnd < 0 ? data.Length - start : lineEnd - start >= 132 ? 17 : 12;
var nameLen2 = Math.Min(length - 115, maxLen); // version 103 has 12 extra bytes for channel name, version 105 has 17 (uploaded_service_list.sdx) or 12 (Panasonic Fire-OS Channels.sdx)
Array.Copy(data, start + 43, nameBytes, 0, 8);
Array.Copy(data, start + 115, nameBytes, 8, nameLen2);
// I have seen format 103 files using only implicit CP1252 encoding for Umlauts, as well as format 105 with implicit UTF-8/explicit DVB-encoding
var oldDefaultEncoding = decoder.DefaultEncoding;
if (nameLen2 > 12)
{
decoder.DefaultEncoding = Encoding.UTF8;
this.forceUtf8 = true;
}
decoder.GetChannelNames(nameBytes, 0, nameBytes.Length, out var longName, out var shortName);
decoder.DefaultEncoding = oldDefaultEncoding;
this.Name = longName.TrimEnd();
@@ -119,6 +125,8 @@ namespace ChanSort.Loader.SatcoDX
return;
// 43-50 + 115-126 in version 103 or 115-131 in version 105: channel name
if (this.forceUtf8)
encoding = Encoding.UTF8;
var bytes = encoding.GetBytes(this.Name);
Tools.MemSet(buffer, 43, 32, 8);
Tools.MemSet(buffer, 115, 32, buffer.Length - 115 -1);

View File

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

View File

@@ -30,7 +30,8 @@
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
<PackageReference Include="System.Buffers" Version="4.6.0" />
<PackageReference Include="System.Memory" Version="4.6.0" />

View File

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

View File

@@ -218,6 +218,8 @@
<PackageReference Include="DevExpress.Utils.UI" Version="23.2.5" />
<PackageReference Include="DevExpress.Win" Version="23.2.5" />
<PackageReference Include="DevExpress.Win.Reporting" Version="23.2.5" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
</ItemGroup>
<ItemGroup>

View File

@@ -225,6 +225,7 @@
this.popupInputSource = new DevExpress.XtraBars.PopupMenu(this.components);
this.popupFavList = new DevExpress.XtraBars.PopupMenu(this.components);
this.timerSelectFocusedRow = new System.Windows.Forms.Timer(this.components);
this.mnuFileAdvanced = new DevExpress.XtraBars.BarSubItem();
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel1)).BeginInit();
this.splitContainerControl1.Panel1.SuspendLayout();
@@ -1137,9 +1138,10 @@
this.miSwapWithMarked,
this.miConvert,
this.miSaveAs,
this.miLangIt});
this.miLangIt,
this.mnuFileAdvanced});
this.barManager1.MainMenu = this.bar1;
this.barManager1.MaxItemId = 123;
this.barManager1.MaxItemId = 124;
this.barManager1.ShowFullMenus = true;
this.barManager1.ShortcutItemClick += new DevExpress.XtraBars.ShortcutItemClickEventHandler(this.barManager1_ShortcutItemClick);
//
@@ -1192,10 +1194,8 @@
new DevExpress.XtraBars.LinkPersistInfo(this.miRestoreOriginal),
new DevExpress.XtraBars.LinkPersistInfo(this.miDeleteBackup),
new DevExpress.XtraBars.LinkPersistInfo(this.miSave, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miSaveAs),
new DevExpress.XtraBars.LinkPersistInfo(this.miSaveReferenceFile),
new DevExpress.XtraBars.LinkPersistInfo(this.miConvert),
new DevExpress.XtraBars.LinkPersistInfo(this.miExcelExport),
new DevExpress.XtraBars.LinkPersistInfo(this.mnuFileAdvanced),
new DevExpress.XtraBars.LinkPersistInfo(this.miOpenReferenceFile, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miAddFromRefList),
new DevExpress.XtraBars.LinkPersistInfo(this.miPrint, true),
@@ -2281,6 +2281,16 @@
//
this.timerSelectFocusedRow.Tick += new System.EventHandler(this.timerSelectFocusedRow_Tick);
//
// mnuFileAdvanced
//
resources.ApplyResources(this.mnuFileAdvanced, "mnuFileAdvanced");
this.mnuFileAdvanced.Id = 123;
this.mnuFileAdvanced.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] {
new DevExpress.XtraBars.LinkPersistInfo(this.miSaveReferenceFile),
new DevExpress.XtraBars.LinkPersistInfo(this.miConvert),
new DevExpress.XtraBars.LinkPersistInfo(this.miSaveAs)});
this.mnuFileAdvanced.Name = "mnuFileAdvanced";
//
// MainForm
//
this.AllowDrop = true;
@@ -2541,6 +2551,7 @@
private DevExpress.XtraBars.BarButtonItem miConvert;
private DevExpress.XtraBars.BarButtonItem miSaveAs;
private DevExpress.XtraBars.BarButtonItem miLangIt;
private DevExpress.XtraBars.BarSubItem mnuFileAdvanced;
}
}

View File

@@ -663,4 +663,7 @@
<data name="txtSetSlot.Properties.Mask.EditMask" xml:space="preserve">
<value>\d{1,4}</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Vyspělý</value>
</data>
</root>

View File

@@ -1488,4 +1488,7 @@ speziellen Anbieter, Satelliten oder Länderlisten aus.</value>
<data name="btnClearRightFilter.Text" xml:space="preserve">
<value>FIlter</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Erweitert</value>
</data>
</root>

View File

@@ -654,4 +654,7 @@
<data name="miTheme.Caption" xml:space="preserve">
<value>Esquema de colores...</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Avanzado</value>
</data>
</root>

View File

@@ -678,4 +678,7 @@
<data name="colAudioPid.Caption" xml:space="preserve">
<value>Audio\nPID</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Fejlett</value>
</data>
</root>

View File

@@ -672,4 +672,7 @@ elenchi di fornitori, satelliti o paesi specifici.</value>
<data name="splitContainerControl1.Text" xml:space="preserve">
<value>controllo del contenitore diviso 1</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Avanzato</value>
</data>
</root>

View File

@@ -696,4 +696,7 @@
<data name="miSwapWithMarked.Caption" xml:space="preserve">
<value>Zamień z zaznaczonym</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Postępowy</value>
</data>
</root>

View File

@@ -379,4 +379,7 @@
<data name="barSubItem1.Caption" xml:space="preserve">
<value>&amp;Idioma</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Avançado</value>
</data>
</root>

View File

@@ -276,7 +276,7 @@
<value>gridLeft</value>
</data>
<data name="&gt;&gt;gridLeft.Type" xml:space="preserve">
<value>ChanSort.XGridControl, ChanSort, Version=1.0.8625.19498, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.XGridControl, ChanSort, Version=1.0.9198.20671, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;gridLeft.Parent" xml:space="preserve">
<value>grpOutputList</value>
@@ -419,11 +419,14 @@
<data name="miSave.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="miSaveAs.Caption" xml:space="preserve">
<value>Save &amp;as...</value>
<data name="miExcelExport.Caption" xml:space="preserve">
<value>Export Excel list...</value>
</data>
<data name="miSaveAs.Hint" xml:space="preserve">
<value>Save channel list under a different file name</value>
<data name="miExcelExport.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>32</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Advanced</value>
</data>
<data name="miSaveReferenceFile.Caption" xml:space="preserve">
<value>Save reference list...</value>
@@ -437,11 +440,11 @@
<data name="miConvert.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>33</value>
</data>
<data name="miExcelExport.Caption" xml:space="preserve">
<value>Export Excel list...</value>
<data name="miSaveAs.Caption" xml:space="preserve">
<value>Save &amp;as...</value>
</data>
<data name="miExcelExport.ImageOptions.ImageIndex" type="System.Int32, mscorlib">
<value>32</value>
<data name="miSaveAs.Hint" xml:space="preserve">
<value>Save channel list under a different file name</value>
</data>
<data name="miOpenReferenceFile.Caption" xml:space="preserve">
<value>Apply order from a reference list...</value>
@@ -838,8 +841,8 @@
<assembly alias="DevExpress.XtraBars.v23.2" name="DevExpress.XtraBars.v23.2, Version=23.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4xLCBWZXJzaW9uPTIz
LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4yLCBWZXJzaW9uPTIz
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC
X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe
@@ -848,8 +851,8 @@
</data>
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4xLCBWZXJzaW9uPTIz
LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4yLCBWZXJzaW9uPTIz
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC
X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw
@@ -858,8 +861,8 @@
</data>
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4xLCBWZXJzaW9uPTIz
LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4yLCBWZXJzaW9uPTIz
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC
X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu
@@ -868,8 +871,8 @@
</data>
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4xLCBWZXJzaW9uPTIz
LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4yLCBWZXJzaW9uPTIz
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC
X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc
@@ -878,8 +881,8 @@
</data>
<data name="barManager1.Categories4" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4xLCBWZXJzaW9uPTIz
LjEuNC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYyMy4yLCBWZXJzaW9uPTIz
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAADUFjY2Vzc2liaWxpdHkE/P///wtTeXN0ZW0uR3VpZAsA
AAACX2ECX2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICeIvz
@@ -1267,7 +1270,7 @@
<value>gviewLeft</value>
</data>
<data name="&gt;&gt;gviewLeft.Type" xml:space="preserve">
<value>ChanSort.XGridView, ChanSort, Version=1.0.8625.19498, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.XGridView, ChanSort, Version=1.0.9198.20671, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;colIndex1.Name" xml:space="preserve">
<value>colIndex1</value>
@@ -1351,13 +1354,13 @@
<value>globalImageCollection1</value>
</data>
<data name="&gt;&gt;globalImageCollection1.Type" xml:space="preserve">
<value>ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.8625.19498, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.9198.20671, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;gviewRight.Name" xml:space="preserve">
<value>gviewRight</value>
</data>
<data name="&gt;&gt;gviewRight.Type" xml:space="preserve">
<value>ChanSort.XGridView, ChanSort, Version=1.0.8625.19498, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.XGridView, ChanSort, Version=1.0.9198.20671, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;colIndex.Name" xml:space="preserve">
<value>colIndex</value>
@@ -2151,6 +2154,12 @@
<data name="&gt;&gt;timerSelectFocusedRow.Type" xml:space="preserve">
<value>System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;mnuFileAdvanced.Name" xml:space="preserve">
<value>mnuFileAdvanced</value>
</data>
<data name="&gt;&gt;mnuFileAdvanced.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v23.2, Version=23.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>MainForm</value>
</data>
@@ -2158,7 +2167,7 @@
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v23.2, Version=23.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="SharedImageCollection.Timestamp" type="System.DateTime, mscorlib">
<value>08/13/2023 10:51:28</value>
<value>03/08/2025 11:54:22</value>
</data>
<data name="SharedImageCollection.ImageSize" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
@@ -3042,7 +3051,7 @@
<value>gridRight</value>
</data>
<data name="&gt;&gt;gridRight.Type" xml:space="preserve">
<value>ChanSort.XGridControl, ChanSort, Version=1.0.8625.19498, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.XGridControl, ChanSort, Version=1.0.9198.20671, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;gridRight.Parent" xml:space="preserve">
<value>grpInputList</value>
@@ -3333,15 +3342,15 @@
<value>611, 17</value>
</metadata>
<metadata name="timerEditDelay.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>742, 17</value>
<value>741, 17</value>
</metadata>
<metadata name="popupInputSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>873, 17</value>
<value>872, 17</value>
</metadata>
<metadata name="popupFavList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1026, 17</value>
<value>1025, 17</value>
</metadata>
<metadata name="timerSelectFocusedRow.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1151, 17</value>
<value>1150, 17</value>
</metadata>
</root>

View File

@@ -687,4 +687,7 @@ furnizor specific, satelit sau liste de țări.</value>
<data name="txtSetSlot.Properties.Mask.EditMask" xml:space="preserve">
<value>\d{1,4}</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Avansat</value>
</data>
</root>

View File

@@ -717,4 +717,7 @@
<data name="barSubItem1.Caption" xml:space="preserve">
<value>Язык</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>передовой</value>
</data>
</root>

View File

@@ -657,4 +657,7 @@
<data name="miTheme.Caption" xml:space="preserve">
<value>Renk uyumu...+X91</value>
</data>
<data name="mnuFileAdvanced.Caption" xml:space="preserve">
<value>Gelişmiş</value>
</data>
</root>

View File

@@ -184,6 +184,19 @@ public struct DBM
channelRecordCount = 4000;
channelRecordLength = 164;
break;
case 782536:
// Vantage VT-80 HD
satBitmapLength = 28;
satRecordCount = 200;
satRecordLength = 88;
transponderBitmapLength = 376;
transponderRecordCount = 3000;
transponderRecordLength = 36;
unknownDataAfterTransponderData = 22;
channelBitmapLength = 502;
channelRecordCount = 4000;
channelRecordLength = 164;
break;
case 785256:
// Strong HB_DATABASE_5_4.DBM
satBitmapLength = 32;

View File

@@ -26,6 +26,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
</ItemGroup>

View File

@@ -13,6 +13,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>

View File

@@ -13,6 +13,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>

View File

@@ -205,6 +205,8 @@
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>

View File

@@ -21,6 +21,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>

View File

@@ -21,6 +21,8 @@
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="8.0.13" />
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="8.0.13" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
</ItemGroup>

Binary file not shown.

View File

@@ -1,6 +1,12 @@
ChanSort Change Log
===================
2025-03-08
- Panasonic Fire-OS Channels.sdx lists: removed trailing underscore and space characters from channel names
- downgraded SQLite libraries to avoid a memory access violation crash in the SQLitePCL.raw 2.1.10
- added support for \*.dbm files with size 782536 (e.g. Vantage VT-80 HD)
- moved "Save as..." and "Export reference list" to a sub menu as they caused frequent confusion with the regular "Save".
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