- cleaned up readme (moved file formats to separate file)

- improved performance for Linux/wine/winetricks
This commit is contained in:
Horst Beham
2021-07-26 22:23:24 +02:00
parent ab9c2ef520
commit a77a1ffa13
12 changed files with 363 additions and 226 deletions

137
readme.md
View File

@@ -9,7 +9,7 @@ Links
About ChanSort
--------------
ChanSort is a Windows application that allows you to reorder your TV's channel list.
ChanSort is a PC application that allows you to reorder your TV's channel list.
Most modern TVs can transfer channel lists via USB stick, which you can plug into your PC.
ChanSort supports various file formats from Samsung, LG, Panasonic, Sony, Philips, Hisense, Toshiba, Grundig,
Sharp, Dyon, Blaupunkt, SatcoDX (used by ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken),
@@ -22,10 +22,11 @@ Features
- Reorder channels (change numbers directly, move up/down, drag&drop, double-click)
- Use another channel list as a reference to apply the same ordering
- Multi-selection for editing multiple channels at once
- Single-list view (showing assigned channels first and then all unassigned channels)
- Side-by-side view of new/sorted list and original/complete list (similar to playlist and library)
- Rename or delete channels
- Manage favorites, parental lock, channel skipping (when zapping), channel hiding
- User interface in English, German, Spanish, and partially in Turkish, Portuguese and Russian
- User interface in English, German, Spanish, Turkish, Portuguese, Russian and Romanian
- Unicode character support for channel names (Latin, Cyrillic, Greek, ...)
NOT supported:
@@ -45,116 +46,46 @@ Hisense is the only manufacturer who provided technical information and a test d
System requirements
-------------------
- [Microsoft .NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework)
(When running under Linux, you need Winetricks, select a 32bit wineprefix and install the "dotnet48" package)
- [Microsoft Visual C++ 2010 Redistributable Package (x86)](http://www.microsoft.com/en-us/download/details.aspx?id=8328)
required to edit SQLite lists (Hisense, Panasonic, Toshiba and Samsung .zip format)
- USB stick/SD-card to transfer the channel list between your TV and PC (FAT32 file system recommended)
**Windows**:
- Windows 7 SP1, Windows 8.1, Windows 10 v1606 or later, Windows 11 (with x86, x64 or ARM CPU)
- [Microsoft .NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework)
- The .NET FW 4.8 does NOT work with Windows 7 without SP1, Windows 8 or Windows 10 prior to v1606
**Linux**:
- wine (sudo apt-get install wine)
- winetricks (sudo apt-get install winetricks)
- start winetricks, select or create a wineprefix (32 bit or 64 bit), select
"Install Windows DLL or component" and install the "dotnet48" package and ignore dozens of message boxes
- right-click on ChanSort.exe and select "open with", "all applications", "A wine application"
**Hardware**:
- USB stick/SD-card to transfer the channel list between your TV and PC. A stick <= 32 GB with FAT32 file system
is STRONGLY recommended. (Some TVs write gargabe to NTFS and don't support exFAT at all)
Supported TV models
-------------------
**Samsung**
- .scm files: B (2009)*, B (2013), C, D, E, F, H, J series
- .zip files (Tizen OS): H, J, K, M, N and Q, R series
\*: The "clone.bin" format is not supported. In the "*.scm" format
the "Air Analog"-list of the 2009 B-series doesn't support all
editing features due to a lack of test files.
Instructions for transferring the channel list can be found on:
https://github.com/PredatH0r/ChanSort/wiki/Samsung
**LG**
- Series based on NetCast OS exporting a xx\*.TLL file:
CS, DM, LA, LB\*, LD, LE, LF, LH, LK, LM+, LN, LP#, LS, LT, LV, LW, LX, PM, PN, PT, UB\*
- Series based on webOS 2-5 exporting a GlobalClone00001.TLL file
\*: Some devices behave erroneously due to firmware issues.
+: See system requirements for LM-series. xxLM640T is not supported due to its firmware limitations.
\#: Only satellite channels supported.
Models with the NetCast operating system don't have the export/import function in the menu. Instead you need to press+hold the
settings button on the remote control until the settings disappear again, then enter 1105 and select the "TV Link Loader" menu.
With the latest firmware for the LM series the special "service remote control" is no longer needed, "1105" works now too.
IMPORTANT: It is REQUIRED to select special options during the channel search on the TV. If you select a provider / country /
satellite specific list, it will be pre-ordered and your TV will behave erratic after an export+import.
Always select "none / other / all" and never your cable TV provider or something like "Astra 19.2E list" and blindscan.
**Panasonic**
Most Viera models since 2011 with a channel list formats
- svl.bin
- svl.db
**Sony**
- 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
**Philips**
Philips uses countless incompatible file formats for various TV models.
ChanSort currently supports the formats:
- PhilipsChannelMaps\ChannelMap_45, 100, 105 and 110
- Repair\ChannelList\channellib\\\*Table and s2channellib\\\*.dat
- Repair\CM_TPM1013E_LA_CK.xml (sometimes that file is hidden and only a .bin file is visible)
**Hisense**
- Some older models like LTDN40D50TS use the same .csv files as Sharp. See "Sharp" for instructions.
- 2016 "Smart" models with a channel.db file, i.e. H65M5500
- 2017 models with a servicelist.db file
Special thanks to Hisense for supporting ChanSort with technical information and a test device!
**Toshiba**
- Models that export a .zip file containing chmgt.db, dvbSysData.db and dvbMainData.db files.
(e.g. RL, SL, TL, UL, VL, WL, XL, YL models of series 8xx/9xx)
- Models with a settingsDB.db file
**Grundig**
- Models that export files named dvb\*_config.xml.
- Models that export a cvt_database.dat file, e.g. 24 GHB 5944: see "Sharp" below
**SatcoDX (OEM for ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken)**
Various brands use the same hardware for DVB-S, which exports .sdx files
**Sharp (and some models from Dyon, Blaupunkt, Hisense, Changhong, alphatronics, JTC Genesis)**
Some of these TV share similar hardware and can export/import a .csv file allowing to change the channel order:
- DVBS_Program.csv (alongside cvt_database.dat)
- DVBS_CHANNEL_TABLE.csv (alongside dtv_cmdb\*.bin)
- MS\*_DVBS_CHANNEL_TABLE.csv (alongside MS\*_HOTELMODE_TABLE.json)
Blaupunkt B40A148TCSFHD, B32B133T2CSHD, ...
Changhong LED32E2200ST2, ...
Dyon Live 22 Pro, Live 24 Pro, ENTER 32 Pro X, ...
Hisense LTDN40D50TS, ...
Sharp LC-xxCFE4142E, LC-xxCFF6002E, LC-xxFI5542E, LC-xxFG5242E, LC-xxUI7552E, LC-xxUI7652E, xxBJ1E, xxBJ3E, xxBJ5E, ...
Grundig 24 GHB 5944
Depending on the actual TV the import/export function can be part of the regular user menu, a hotel menu or a service menu
and the exported files may be different. Some models like Sharp Aquos xxBJ1E have a sub menu for exporting. You need to
export all 4 type of files for the import to work.
To access the secret hotel / service menus, there are several possible key combinations on the remote control:
hotel menu: MENU 7906 / MENU 4588
service menu: MENU 1147 / MENU 11471147 / SOURCE 2580
Do not make any changes in the service menu, as this could damage your TV. Only use the import/export functions.
**VDR (Linux Video Disk Recorder)**
Supports the channels.conf file format.
Implementation for this was provided by TCr82 from the VDR project.
**m3u (SAT>IP)**
Supports SAT>IP .m3u files with extended information holding channel names and program numbers.
**Enigma2 (Dreambox, VU+ and many other Linux based receivers)**
Requires a local copy of the files "lamedb", "bouquets.\*" and "userbouquet.\*" from /etc/Enigma2/.
ChanSort supports a large number of file formats, but it's impossible to tell for every brand and TV model
what file format it uses (with may even change with firmware updates).
This list gives some examples of what should be supported, but even if your model or brand is not in this list,
it may work anyway:
- [Samsung](source/fileformats.md#samsung)
- [LG](source/fileformats.md#lg)
- [Sony](source/fileformats.md#sony)
- [Hisense](source/fileformats.md#hisense)
- [Panasonic](source/fileformats.md#panasonic)
- [Philips](source/fileformats.md#philips)
- [Sharp, Dyon, Blaupunkt, Hisense, Changhong, Grundig, alphatronics, JTC Genesis, ...](source/fileformats.md#sharp)
- [Toshiba](source/fileformats.md#toshiba)
- [Grundig](source/fileformats.md#grundig)
- [SatcoDX: ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken, ...](source/fileformats.md#satcodx)
- [VDR](source/fileformats.md#vdr)
- [SAT>IP m3u](source/fileformats.md#m3u)
- [Enigma2](source/fileformats.md#enigma2)
Build from source
-----------------
See [build.md](source/build.md)
License (GPLv3)
---------------
GNU General Public Licence, Version 3: http://www.gnu.org/licenses/gpl.html

View File

@@ -9,7 +9,7 @@ Links
<EFBFBD>ber ChanSort
--------------
ChanSort ist eine Windows-Anwendung, die das Sortieren von Fernsehsenderlisten erlaubt.
ChanSort ist eine PC Anwendung, die das Sortieren von Fernsehsenderlisten erlaubt.
Die meisten modernen Fernseher k<>nnen Senderlisten auf einen USB-Stick <20>bertragen, den man danach am PC anschlie<69>t.
ChanSort unterst<73>tzt diverse Dateiformate von Samsung, LG, Panasonic, Sony, Philips, Hisense, Toshiba, Grundig,
Sharp, Dyon, Blaupunkt, SatcoDX (verwendet von Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken),
@@ -22,10 +22,11 @@ Funktionen
- Umreihen von Sendern (direkte Nummerneingabe, auf/ab verschieben, drag&drop, Doppelklick)
- <20>bernahme der Reihenfolge aus einer Vorlagedatei
- Mehrfachauswahl um mehrere Sender gleichzeitig zu bearbeiten
- Einfache Listenansicht (mit eingereihten Sender zuerst und dahinter alle uneingereihten)
- Nebeneinander-Ansicht von umsortierter und urspr<70>nglicher Liste (<28>hnlich wie Playlist und Medienbibliothek)
- Umbenennen und L<>schen von Sendern
- Verwalten von Favoriten, Kindersperre, <20>berspringen und Verstecken von Sendern
- Benutzeroberfl<66>che in Deutsch, Englisch, Spanisch und teilweise in T<>rkisch, Portugiesisch und Russisch
- Benutzeroberfl<66>che in Deutsch, Englisch, Spanisch, T<>rkisch, Portugiesisch, Russisch und Rum<EFBFBD>nisch
- Unicode-Zeichensatzunterst<73>tzung f<>r Sendernamen (latein, kyrillisch, griechisch, ...)
NICHT unterst<73>tzt:
@@ -45,116 +46,47 @@ Hisense ist der einzige Hersteller, der Informationen und ein Testger
Systemvoraussetzungen
-------------------
**Windows**:
- Windows 7 SP1, Windows 8.1, Windows 10 v1606 or later, Windows 11 (mit x86, x64 oder ARM CPU)
- [Microsoft .NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework)
(Unter Linux wird Winetricks mit einem 32bit wineprefix ben<65>tigt, wo das "dotnet48" Paket installiert ist)
- [Microsoft Visual C++ 2010 Redistributable Package (x86)](http://www.microsoft.com/en-us/download/details.aspx?id=8328)
Wird ben<65>tigt um SQLite-Senderlisten zu bearbeiten (Hisense, Panasonic, Toshiba und Samsung J-Serie)
- USB Stick/SD-Karte zur <20>bertragung der Senderliste zwischen TV und PC (FAT32-Formatierung empfohlen)
- Das .NET FW 4.8 funktioniert NICHT unter Windows 7 ohne SP1, Windows 8 oder Windows 10 vor v1606
**Linux**:
- wine (sudo apt-get install wine)
- winetricks (sudo apt-get install winetricks)
- Starte winetricks, w<>hle oder erstelle ein wineprefix (32 bit oder 64 bit), w<>hle
"Installiere Windows DLL oder Komponente", installiere das "dotnet48" Paket and ignore dutzende Popup-Dialoge
- Rechtsklick auf ChanSort.exe, w<>hle "<22>ffnen mit", "Alle Anwendungen", "Eine wine Anwendung"
**Hardware**:
- USB Stick/SD-Karte zur <20>bertragung der Senderliste zwischen TV und PC (Ein Stick <= 32 GB mit FAT32-Formatierung
ist DRINGEND empfohlen. (Einige TVs schreiben M<>ll auf NTFS bzw. unterst<73>tzen exFAT gar nicht)
Unterst<EFBFBD>tzte TV-Modelle
---------------------
**Samsung**
- .scm Dateien: Serien B (2009)*, B (2013), C, D, E, F, H, J
- .zip Dateien: Serien H, J, K, M, N, Q, R
\*: Das "clone.bin"-Format ist nicht unterst<73>tzt. Im "*.scm"-Format
der 2009 B-series werden in der "Air Analog"-Liste nicht alle Bearbeitungsfunktionen
unterst<EFBFBD>tzt.
Eine Anleitung zum Transfer der Senderliste befindet sich hier:
https://github.com/PredatH0r/ChanSort/wiki/Samsung
**LG**
- Serien basierend auf Netcast OS, die eine xx\*.TLL-Datei exportieren:
CS, DM, LA, LB\*, LD, LE, LF, LH, LK, LM+, LN, LP#, LS, LT, LV, LW, LX, PM, PN, PT, UB\*
- Serien basierend auf webOS 2-5, die eine GlobalClone00001.TLL-Datei exportieren
\*: Einige Ger<65>te verhalten sich fehlerhaft aufgrund Probleme in deren Firmware.
+: Siehe Systemanforderungen f<>r die LM-Serie. xxLM640T kann aufgrund von Firmwarem<65>ngeln nicht unterst<73>tzt werden.
\#: Nur Satellitensender werden unterst<73>tzt.
Modelle mit NetCast Betriebssytem beinhalten keine Import/Export Funktion im normalen Men<65>. Um das Geheimmen<65> aufzurufen,
halten Sie die Settings Taste auf der Fernbedienung solange gedr<64>ckt, bis das Men<65> wieder verschwindet und dann dr<64>cken Sie "1105".
Im "TV Link Loader" Men<65> befinden sich dann die Import/Export-Funktionen.
WICHTIG: Es ist NOTWENDIG bei der Sendersuche spezielle Optionen auszuw<75>hlen. Wenn ein Anbieter / Land / Satellit bei der Suche
ausgew<EFBFBD>hlt wird, erh<72>lt man eine vorsortierte Liste und der TV verh<72>lt sich nach einem Export+Import fehlerhaft.
W<EFBFBD>hlen Sie immer "Keiner / Anderer / Alle" aus bzw. "Blindsuche", und nie einen Kabelanbieter oder "Astra 19.2 Liste".
**Panasonic**
Die meisten Viera-Modelle seit 2011 mit Senderlisten im Format
- svl.bin
- svl.db
**Sony**
- Android-TV "sdb.xml" Dateien mit Version "FormateVer" 1.1.0
- KDL 2012/2014 "sdb.xml" mit "FormatVer" 1.0.0, 1.1.0 and 1.2.0
**Philips**
Philips verwendet unz<6E>hlige unterschiedliche Dateiformate f<>r diverse TV-Modelle.
ChanSort unterst<73>tzt derzeit folgende Formate:
- PhilipsChannelMaps\ChannelMap_45, 100, 105 und 110
- Repair\ChannelList\channellib\\\*Table and s2channellib\\\*.dat
- Repair\CM_TPM1013E_LA_CK.xml (diese Datei ist oft versteckt und nur eine .bin Datei sichtbar)
**Hisense**
- Einige <20>ltere Modelle wie LTDN40D50TS verwenden die gleichen .csv Dateien wie Sharp. Siehe "Sharp" f<>r eine Anleitung.
- Smart-Modelle (2016) mit channel.db Dateiformat, z.B. H65M5500
- 2017 Modelle mit einem servicelist.db Dateiformat
Besonderen Dank verdient Hisense f<>r die Bereitstellung von technischen Informationen und einem Testger<65>t!
**Toshiba**
- Modelle, die eine .zip-Datei mit folgendem Inhalt: chmgt.db, dvbSysData.db und dvbMainData.db.
(z.B. RL, SL, TL, UL, VL, WL, XL, YL models of series 8xx/9xx)
- Modelle mit einer settingsDB.db Datei
**Grundig**
- Modelle die Dateien mit Namen dvb\*_config.xml exportieren.
- Modelle die eine cvt_database.dat Datei exportieren, z.B. 24 GHB 5944: siehe "Sharp"
**SatcoDX (OEM f<>r ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken)**
Mehrere Marken nutzen die gleiche Hardware f<>r DVB-S und exportieren .sdx Dateien
**Sharp (and some models from Dyon, Blaupunkt, Hisense, Changhong, alphatronics, JTC Genesis)**
Einige dieser TVs verwenden <20>hnliche Hardware und k<>nnen .csv Dateien exportieren/importieren, um die Reihenfolge zu <20>ndern:
- DVBS_Program.csv (mit cvt_database.dat)
- DVBS_CHANNEL_TABLE.csv (mit dtv_cmdb\*.bin)
- MS\*_DVBS_CHANNEL_TABLE.csv (mit MS\*_HOTELMODE_TABLE.json)
Blaupunkt B40A148TCSFHD, B32B133T2CSHD, ...
Changhong LED32E2200ST2, ...
Dyon Live 22 Pro, Live 24 Pro, ENTER 32 Pro X, ...
Hisense LTDN40D50TS, ...
Sharp LC-xxCFE4142E, LC-xxCFF6002E, LC-xxFI5542E, LC-xxFG5242E, LC-xxUI7552E, LC-xxUI7652E, xxBJ1E, xxBJ3E, xxBJ5E, ...
Grundig 24 GHB 5944
Abh<EFBFBD>ngig vom konkreten TV-Modell kann die Import/Export-Funktion Teil des normalen Men<65>s, eines Hotel-Men<65>s oder Service-Men<65>s sein
und die exportieren Dateien unterschiedlich sein. Einige Modelle wie Sharp Aquos xxBJ1E haben ein Untermen<65> f<>r den Export. Hier
sind alle 4 Typen von Dateien f<>r einen Import n<>tig.
Um in das geheime Hotel- / Service-Men<65> zu gelangen, gibt es verschiedene Tastenkombinationen auf der Fernbedienung:
Hotelmenu: MENU 7906 / MENU 4588
Servicemenu: MENU 1147 / MENU 11471147 / SOURCE 2580
<EFBFBD>ndern Sie keine Werte im Servicemen<65>, dies k<>nnte den Fernseher besch<63>digen. Nutzen Sie nur die Import/Export-Funktionen.
**VDR (Linux Video Disk Recorder)**
Unterst<EFBFBD>tzung des channels.conf Dateiformats.
Die Implementation hierf<72>r wurde vom Mitglied "TCr82" des VDR Projekts beigesteuert.
**m3u (SAT>IP)**
Unterst<EFBFBD>tzt SAT>IP .m3u Dateien mit erweiterten Informationen zu Sendernamen und Programmnummern.
**Enigma2 (Dreambox, VU+ und viele andere Linux basierende Empf<70>nger)**
Erfordert eine lokale Kopie der Dateien "lamedb", "bouquets.\*" and "userbouquet.\*" aus /etc/Enigma2/.
ChanSort unterst<73>tzt eine gro<72>e Anzahl an Dateiformaten, aber es ist unm<6E>glich f<>r jede Marke und jedes Modell zu
sagen, welches Format verwendet wird (was sich auch durch Firmware-Updates <20>ndern kann).
Diese unvollst<73>ndige Liste f<>hrt einige Beispiele an, die unterst<73>tzt werden, aber selbst wenn ein Modell oder Marke
hier nicht angef<65>hrt ist, k<>nnte es trotzdem funktiontionieren:
- [Samsung](source/fileformats.md#samsung)
- [LG](source/fileformats.md#lg)
- [Sony](source/fileformats.md#sony)
- [Hisense](source/fileformats.md#hisense)
- [Panasonic](source/fileformats.md#panasonic)
- [Philips](source/fileformats.md#philips)
- [Sharp, Dyon, Blaupunkt, Hisense, Changhong, Grundig, alphatronics, JTC Genesis, ...](source/fileformats.md#sharp)
- [Toshiba](source/fileformats.md#toshiba)
- [Grundig](source/fileformats.md#grundig)
- [SatcoDX: ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken, ...](source/fileformats.md#satcodx)
- [VDR](source/fileformats.md#vdr)
- [SAT>IP m3u](source/fileformats.md#m3u)
- [Enigma2](source/fileformats.md#enigma2)
Quellcode selbst <20>bersetzen
-----------------
Siehe [build.md](source/build.md)
Lizenz (GPLv3)
---------------
GNU General Public Licence, Version 3: http://www.gnu.org/licenses/gpl.html

View File

@@ -23,6 +23,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
ProjectSection(SolutionItems) = preProject
build.md = build.md
changelog.md = changelog.md
fileformats.md = fileformats.md
fileformats_de.md = fileformats_de.md
..\readme.md = ..\readme.md
..\readme_de.md = ..\readme_de.md
EndProjectSection

View File

@@ -207,6 +207,7 @@
<Compile Include="CharsetForm.Designer.cs">
<DependentUpon>CharsetForm.cs</DependentUpon>
</Compile>
<Compile Include="Win32.cs" />
<Compile Include="XGrid\XGridControl.cs">
<SubType>Component</SubType>
</Compile>

View File

@@ -217,6 +217,7 @@
this.pageProgNr = new DevExpress.XtraTab.XtraTabPage();
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);
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1.Panel1)).BeginInit();
this.splitContainerControl1.Panel1.SuspendLayout();
@@ -2185,6 +2186,10 @@
this.popupFavList.Name = "popupFavList";
this.popupFavList.ShowCaption = true;
//
// timerSelectFocusedRow
//
this.timerSelectFocusedRow.Tick += new System.EventHandler(this.timerSelectFocusedRow_Tick);
//
// MainForm
//
this.AllowDrop = true;
@@ -2437,6 +2442,7 @@
private DevExpress.XtraEditors.SimpleButton btnSearchLeft;
private DevExpress.XtraBars.BarButtonItem miSplitView;
private DevExpress.XtraBars.BarButtonItem miTheme;
private System.Windows.Forms.Timer timerSelectFocusedRow;
}
}

View File

@@ -66,6 +66,8 @@ namespace ChanSort.Ui
InitializeComponent();
this.DoubleBuffered = true;
var version = this.GetType().Assembly.GetName().Version;
AppVersion = new DateTime(2000, 1, 1).AddDays(version.Build).ToString("yyyy-MM-dd");
AppVersionFull = new DateTime(2000, 1, 1).AddDays(version.Build).AddSeconds(version.Revision * 2).ToString("yyyy-MM-dd_HHmm");
@@ -1026,7 +1028,7 @@ namespace ChanSort.Ui
this.gviewRight.BeginUpdate();
this.gviewRight.ClearSelection();
this.gviewRight.FocusedRowHandle = Math.Min(rh, this.gviewRight.RowCount - 1);
this.gviewRight.SelectRow(this.gviewRight.FocusedRowHandle);
this.EnsureFocusedRowIsSelected();
this.gviewRight.EndUpdate();
}));
}
@@ -1095,7 +1097,6 @@ namespace ChanSort.Ui
this.UpdateMenu();
}
}
#endregion
#region SwapChannels()
@@ -1179,15 +1180,34 @@ namespace ChanSort.Ui
#endregion
#region SelectFocusedRow()
#region SelectFocusedRow(), EnsureFocusedRowIsSelected(), timerSelectFocusedRow_Tick
private void SelectFocusedRow(GridView grid, int rowHandle)
{
grid.BeginSelection();
grid.ClearSelection();
//grid.BeginSelection();
//grid.ClearSelection();
grid.FocusedRowHandle = rowHandle;
grid.SelectRow(rowHandle);
grid.EndSelection();
//grid.SelectRow(rowHandle);
//grid.EndSelection();
this.EnsureFocusedRowIsSelected();
}
private void EnsureFocusedRowIsSelected()
{
// Directly calling gviewRight.SelectRow(e.RowHanle) causes MASSIVE lags on Linux/Wine (in a Hyper-V VM).
// When delayed with a timer, the row might get automatically selected by DevExpress without lags
// or a different row gets focused in the meantime anyway
this.timerSelectFocusedRow.Stop();
this.timerSelectFocusedRow.Start();
}
private void timerSelectFocusedRow_Tick(object sender, EventArgs e)
{
this.timerSelectFocusedRow.Stop();
if (!this.gviewLeft.IsRowSelected(this.gviewLeft.FocusedRowHandle))
this.gviewLeft.SelectRow(this.gviewLeft.FocusedRowHandle);
if (!this.gviewRight.IsRowSelected(this.gviewRight.FocusedRowHandle))
this.gviewRight.SelectRow(this.gviewRight.FocusedRowHandle);
}
#endregion
@@ -1483,7 +1503,7 @@ namespace ChanSort.Ui
if (this.CurrentChannelList != null)
this.CurrentChannelList.InsertProgramNumber = programNr;
this.UpdateInsertSlotTextBox();
this.gviewLeft.SelectRow(this.gviewLeft.FocusedRowHandle);
this.EnsureFocusedRowIsSelected();
}
#endregion
@@ -2517,7 +2537,7 @@ namespace ChanSort.Ui
private void gviewRight_FocusedRowChanged(object sender, FocusedRowChangedEventArgs e)
{
this.gviewRight.SelectRow(e.FocusedRowHandle);
this.EnsureFocusedRowIsSelected();
this.UpdateMenu();
}
@@ -3145,6 +3165,7 @@ namespace ChanSort.Ui
{
var split = this.splitView = this.miSplitView.Down;
Win32.SuspendRedraw(this);
this.SuspendRedraw();
this.SuspendLayout();
@@ -3162,7 +3183,7 @@ namespace ChanSort.Ui
var rowIndex = this.gviewRight.GetDataSourceRowIndex(this.gviewRight.FocusedRowHandle);
this.gviewLeft.ClearSelection();
this.gviewLeft.FocusedRowHandle = Math.Max(0, this.gviewLeft.GetRowHandle(rowIndex));
this.gviewLeft.SelectRow(this.gviewLeft.FocusedRowHandle);
this.EnsureFocusedRowIsSelected();
}
else
{
@@ -3181,7 +3202,7 @@ namespace ChanSort.Ui
var rowIndex = this.gviewLeft.GetDataSourceRowIndex(this.gviewLeft.FocusedRowHandle);
this.gviewRight.ClearSelection();
this.gviewRight.FocusedRowHandle = Math.Max(0, this.gviewRight.GetRowHandle(rowIndex));
this.gviewRight.SelectRow(this.gviewRight.FocusedRowHandle);
this.EnsureFocusedRowIsSelected();
this.lastFocusedGrid = this.gviewRight;
}
@@ -3189,9 +3210,14 @@ namespace ChanSort.Ui
this.grpInputList.ShowCaption = split;
this.lblInsertMode.Enabled = this.rbInsertAfter.Enabled = this.rbInsertBefore.Enabled = this.rbInsertSwap.Enabled = split;
this.ResumeLayout();
this.ResumeLayout(true);
this.ResumeRedraw();
this.UpdateMenu();
this.BeginInvoke((Action)(() =>
{
Win32.ResumeRedraw(this);
this.UpdateMenu();
}));
}
#endregion
@@ -3643,5 +3669,7 @@ namespace ChanSort.Ui
}
}
#endregion
}
}

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.7877.1039, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.XGridControl, ChanSort, Version=1.0.7877.25236, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;gridLeft.Parent" xml:space="preserve">
<value>grpOutputList</value>
@@ -1207,7 +1207,7 @@
<value>gviewLeft</value>
</data>
<data name="&gt;&gt;gviewLeft.Type" xml:space="preserve">
<value>ChanSort.XGridView, ChanSort, Version=1.0.7877.1039, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.XGridView, ChanSort, Version=1.0.7877.25236, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;colIndex1.Name" xml:space="preserve">
<value>colIndex1</value>
@@ -1291,13 +1291,13 @@
<value>globalImageCollection1</value>
</data>
<data name="&gt;&gt;globalImageCollection1.Type" xml:space="preserve">
<value>ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.7877.1039, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.7877.25236, 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.7877.1039, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.XGridView, ChanSort, Version=1.0.7877.25236, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;colIndex.Name" xml:space="preserve">
<value>colIndex</value>
@@ -2043,6 +2043,12 @@
<data name="&gt;&gt;popupFavList.Type" xml:space="preserve">
<value>DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;timerSelectFocusedRow.Name" xml:space="preserve">
<value>timerSelectFocusedRow</value>
</data>
<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;$this.Name" xml:space="preserve">
<value>MainForm</value>
</data>
@@ -2050,7 +2056,7 @@
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v21.1, Version=21.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="SharedImageCollection.Timestamp" type="System.DateTime, mscorlib">
<value>07/26/2021 00:37:28</value>
<value>07/26/2021 14:06:54</value>
</data>
<data name="SharedImageCollection.ImageSize" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
@@ -2921,7 +2927,7 @@
<value>gridRight</value>
</data>
<data name="&gt;&gt;gridRight.Type" xml:space="preserve">
<value>ChanSort.XGridControl, ChanSort, Version=1.0.7877.1039, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.XGridControl, ChanSort, Version=1.0.7877.25236, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;gridRight.Parent" xml:space="preserve">
<value>grpInputList</value>
@@ -3220,4 +3226,7 @@
<metadata name="popupFavList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1029, 17</value>
</metadata>
<metadata name="timerSelectFocusedRow.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1153, 17</value>
</metadata>
</root>

View File

@@ -32,7 +32,7 @@ namespace ChanSort.Ui
WindowsFormsSettings.EnableFormSkins();
//WindowsFormsSettings.ForcePaintApiDiagnostics(PaintApiDiagnosticsLevel.Default);
BarAndDockingController.Default.PropertiesBar.ScaleIcons = false;
WindowsFormsSettings.DefaultFont = new Font("Tahoma", 8.25f);
//WindowsFormsSettings.DefaultFont = new Font("Tahoma", 8.25f);
//DevExpress.Skins.SkinManager.EnableFormSkins();
Application.EnableVisualStyles();

34
source/ChanSort/Win32.cs Normal file
View File

@@ -0,0 +1,34 @@
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
public static class Win32
{
#region enum Msgs
public enum Msgs
{
WM_SETREDRAW = 0x000B,
}
#endregion
#region User32
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
#endregion
#region SuspendRedraw() / ResumeRedraw()
public static void SuspendRedraw(this Control control)
{
Win32.SendMessage(control.Handle, (int)Win32.Msgs.WM_SETREDRAW, IntPtr.Zero, IntPtr.Zero);
}
public static void ResumeRedraw(this Control control)
{
Win32.SendMessage(control.Handle, (int)Win32.Msgs.WM_SETREDRAW, (IntPtr)1, IntPtr.Zero);
control.Refresh();
}
#endregion
}

View File

@@ -1,6 +1,9 @@
ChanSort Change Log
===================
TBD
- improved Linux/Wine performance
2021-07-26
- user interface can now be toggled between
- **split view**: classic ChanSort UI with new/ordered and old/full list side-by-side
@@ -8,7 +11,7 @@ ChanSort Change Log
When you choose to "Modify current list", the single-table view is used by default,
otherwise the split view. But you can always toggle between them.
- added option to select a color theme. The UI now uses the "Office 2019 Colorful" theme by default,
the old theme was "Office 2016 Blue".
the old theme was "Office 2010 Blue".
- improved many keyboard shortcuts (open the drop-down menus to see the shortcuts)
2021-07-25

97
source/fileformats.md Normal file
View File

@@ -0,0 +1,97 @@
Supported TV models
-------------------
<a name="samsung"/>**Samsung**
- .scm files: B (2009)*, B (2013), C, D, E, F, H, J series
- .zip files (Tizen OS): H, J, K, M, N and Q, R series
\*: The "clone.bin" format is not supported. In the "*.scm" format
the "Air Analog"-list of the 2009 B-series doesn't support all
editing features due to a lack of test files.
Instructions for transferring the channel list can be found on:
https://github.com/PredatH0r/ChanSort/wiki/Samsung
<a name="lg"/>**LG**
- Series based on NetCast OS exporting a xx\*.TLL file:
CS, DM, LA, LB\*, LD, LE, LF, LH, LK, LM+, LN, LP#, LS, LT, LV, LW, LX, PM, PN, PT, UB\*
- Series based on webOS 2-5 exporting a GlobalClone00001.TLL file
\*: Some devices behave erroneously due to firmware issues.
+: See system requirements for LM-series. xxLM640T is not supported due to its firmware limitations.
\#: Only satellite channels supported.
Models with the NetCast operating system don't have the export/import function in the menu. Instead you need to press+hold the
settings button on the remote control until the settings disappear again, then enter 1105 and select the "TV Link Loader" menu.
With the latest firmware for the LM series the special "service remote control" is no longer needed, "1105" works now too.
IMPORTANT: It is REQUIRED to select special options during the channel search on the TV. If you select a provider / country /
satellite specific list, it will be pre-ordered and your TV will behave erratic after an export+import.
Always select "none / other / all" and never your cable TV provider or something like "Astra 19.2E list" and blindscan.
<a name="sony"/>**Sony**
- 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**
- 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
Special thanks to Hisense for supporting ChanSort with technical information and a test device!
<a name="panasonic"/>**Panasonic**
Most Viera models since 2011 with a channel list formats
- svl.bin
- svl.db
<a name="philips"/>**Philips**
Philips uses countless incompatible file formats for various TV models.
ChanSort currently supports the formats:
- PhilipsChannelMaps\ChannelMap_45, 100, 105 and 110
- Repair\ChannelList\channellib\\\*Table and s2channellib\\\*.dat
- Repair\CM_TPM1013E_LA_CK.xml (sometimes that file is hidden and only a .bin file is visible)
<a name="sharp"/>**Sharp (and some models from Dyon, Blaupunkt, Hisense, Changhong, Grundig, alphatronics, JTC Genesis)**
Some of these TV share similar hardware and can export/import a .csv file allowing to change the channel order:
- DVBS_Program.csv (alongside cvt_database.dat)
- DVBS_CHANNEL_TABLE.csv (alongside dtv_cmdb\*.bin)
- MS\*_DVBS_CHANNEL_TABLE.csv (alongside MS\*_HOTELMODE_TABLE.json)
Blaupunkt B40A148TCSFHD, B32B133T2CSHD, ...
Changhong LED32E2200ST2, ...
Dyon Live 22 Pro, Live 24 Pro, ENTER 32 Pro X, ...
Hisense LTDN40D50TS, ...
Sharp LC-xxCFE4142E, LC-xxCFF6002E, LC-xxFI5542E, LC-xxFG5242E, LC-xxUI7552E, LC-xxUI7652E, xxBJ1E, xxBJ3E, xxBJ5E, ...
Grundig 24 GHB 5944
Depending on the actual TV the import/export function can be part of the regular user menu, a hotel menu or a service menu
and the exported files may be different. Some models like Sharp Aquos xxBJ1E have a sub menu for exporting. You need to
export all 4 type of files for the import to work.
To access the secret hotel / service menus, there are several possible key combinations on the remote control:
hotel menu: MENU 7906 / MENU 4588
service menu: MENU 1147 / MENU 11471147 / SOURCE 2580
Do not make any changes in the service menu, as this could damage your TV. Only use the import/export functions.
<a name="toshiba"/>**Toshiba**
- Models that export a .zip file containing chmgt.db, dvbSysData.db and dvbMainData.db files.
(e.g. RL, SL, TL, UL, VL, WL, XL, YL models of series 8xx/9xx)
- Models with a settingsDB.db file
<a name="grundig"/>**Grundig**
- Models that export files named dvb\*_config.xml.
- Models that export a cvt_database.dat file, e.g. 24 GHB 5944: see [Sharp](#Sharp)
<a name="satcodx"/>**SatcoDX (supplier for ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken)**
Various brands use the same hardware for DVB-S, which exports .sdx files
<a name="vdr"/>**VDR (Linux Video Disk Recorder)**
Supports the channels.conf file format.
Implementation for this was provided by TCr82 from the VDR project.
<a name="m3u"/>**m3u (SAT>IP)**
Supports SAT>IP .m3u files with extended information holding channel names and program numbers.
<a name="enigma2"/>**Enigma2 (Dreambox, VU+ and many other Linux based receivers)**
Requires a local copy of the files "lamedb", "bouquets.\*" and "userbouquet.\*" from /etc/Enigma2/.

94
source/fileformats_de.md Normal file
View File

@@ -0,0 +1,94 @@
<a name="samsung"/>**Samsung**
- .scm Dateien: Serien B (2009)*, B (2013), C, D, E, F, H, J
- .zip Dateien: Serien H, J, K, M, N, Q, R
\*: Das "clone.bin"-Format ist nicht unterst<73>tzt. Im "*.scm"-Format
der 2009 B-series werden in der "Air Analog"-Liste nicht alle Bearbeitungsfunktionen
unterst<EFBFBD>tzt.
Eine Anleitung zum Transfer der Senderliste befindet sich hier:
https://github.com/PredatH0r/ChanSort/wiki/Samsung
<a name="lg"/>**LG**
- Serien basierend auf Netcast OS, die eine xx\*.TLL-Datei exportieren:
CS, DM, LA, LB\*, LD, LE, LF, LH, LK, LM+, LN, LP#, LS, LT, LV, LW, LX, PM, PN, PT, UB\*
- Serien basierend auf webOS 2-5, die eine GlobalClone00001.TLL-Datei exportieren
\*: Einige Ger<65>te verhalten sich fehlerhaft aufgrund Probleme in deren Firmware.
+: Siehe Systemanforderungen f<>r die LM-Serie. xxLM640T kann aufgrund von Firmwarem<65>ngeln nicht unterst<73>tzt werden.
\#: Nur Satellitensender werden unterst<73>tzt.
Modelle mit NetCast Betriebssytem beinhalten keine Import/Export Funktion im normalen Men<65>. Um das Geheimmen<65> aufzurufen,
halten Sie die Settings Taste auf der Fernbedienung solange gedr<64>ckt, bis das Men<65> wieder verschwindet und dann dr<64>cken Sie "1105".
Im "TV Link Loader" Men<65> befinden sich dann die Import/Export-Funktionen.
WICHTIG: Es ist NOTWENDIG bei der Sendersuche spezielle Optionen auszuw<75>hlen. Wenn ein Anbieter / Land / Satellit bei der Suche
ausgew<EFBFBD>hlt wird, erh<72>lt man eine vorsortierte Liste und der TV verh<72>lt sich nach einem Export+Import fehlerhaft.
W<EFBFBD>hlen Sie immer "Keiner / Anderer / Alle" aus bzw. "Blindsuche", und nie einen Kabelanbieter oder "Astra 19.2 Liste".
<a name="sony"/>**Sony**
- Android-TV "sdb.xml" Dateien mit Version "FormateVer" 1.1.0
- KDL 2012/2014 "sdb.xml" mit "FormatVer" 1.0.0, 1.1.0 and 1.2.0
<a name="hisense"/>**Hisense**
- Einige <20>ltere Modelle wie LTDN40D50TS verwenden die gleichen .csv Dateien wie Sharp. Siehe "Sharp" f<>r eine Anleitung.
- Smart-Modelle (2016) mit channel.db Dateiformat, z.B. H65M5500
- 2017 Modelle mit einem servicelist.db Dateiformat
Besonderen Dank verdient Hisense f<>r die Bereitstellung von technischen Informationen und einem Testger<65>t!
<a name="panasonic"/>**Panasonic**
Die meisten Viera-Modelle seit 2011 mit Senderlisten im Format
- svl.bin
- svl.db
<a name="philips"/>**Philips**
Philips verwendet unz<6E>hlige unterschiedliche Dateiformate f<>r diverse TV-Modelle.
ChanSort unterst<73>tzt derzeit folgende Formate:
- PhilipsChannelMaps\ChannelMap_45, 100, 105 und 110
- Repair\ChannelList\channellib\\\*Table and s2channellib\\\*.dat
- Repair\CM_TPM1013E_LA_CK.xml (diese Datei ist oft versteckt und nur eine .bin Datei sichtbar)
<a name="sharp"/>**Sharp (and some models from Dyon, Blaupunkt, Hisense, Changhong, alphatronics, JTC Genesis)**
Einige dieser TVs verwenden <20>hnliche Hardware und k<>nnen .csv Dateien exportieren/importieren, um die Reihenfolge zu <20>ndern:
- DVBS_Program.csv (mit cvt_database.dat)
- DVBS_CHANNEL_TABLE.csv (mit dtv_cmdb\*.bin)
- MS\*_DVBS_CHANNEL_TABLE.csv (mit MS\*_HOTELMODE_TABLE.json)
Blaupunkt B40A148TCSFHD, B32B133T2CSHD, ...
Changhong LED32E2200ST2, ...
Dyon Live 22 Pro, Live 24 Pro, ENTER 32 Pro X, ...
Hisense LTDN40D50TS, ...
Sharp LC-xxCFE4142E, LC-xxCFF6002E, LC-xxFI5542E, LC-xxFG5242E, LC-xxUI7552E, LC-xxUI7652E, xxBJ1E, xxBJ3E, xxBJ5E, ...
Grundig 24 GHB 5944
Abh<EFBFBD>ngig vom konkreten TV-Modell kann die Import/Export-Funktion Teil des normalen Men<65>s, eines Hotel-Men<65>s oder Service-Men<65>s sein
und die exportieren Dateien unterschiedlich sein. Einige Modelle wie Sharp Aquos xxBJ1E haben ein Untermen<65> f<>r den Export. Hier
sind alle 4 Typen von Dateien f<>r einen Import n<>tig.
Um in das geheime Hotel- / Service-Men<65> zu gelangen, gibt es verschiedene Tastenkombinationen auf der Fernbedienung:
Hotelmenu: MENU 7906 / MENU 4588
Servicemenu: MENU 1147 / MENU 11471147 / SOURCE 2580
<EFBFBD>ndern Sie keine Werte im Servicemen<65>, dies k<>nnte den Fernseher besch<63>digen. Nutzen Sie nur die Import/Export-Funktionen.
<a name="toshiba"/>**Toshiba**
- Modelle, die eine .zip-Datei mit folgendem Inhalt: chmgt.db, dvbSysData.db und dvbMainData.db.
(z.B. RL, SL, TL, UL, VL, WL, XL, YL models of series 8xx/9xx)
- Modelle mit einer settingsDB.db Datei
<a name="grundig"/>**Grundig**
- Modelle die Dateien mit Namen dvb\*_config.xml exportieren.
- Modelle die eine cvt_database.dat Datei exportieren, z.B. 24 GHB 5944: siehe "Sharp"
<a name="satcodx"/>**SatcoDX (Lieferant f<>r ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken)**
Mehrere Marken nutzen die gleiche Hardware f<>r DVB-S und exportieren .sdx Dateien
<a name="vdr"/>**VDR (Linux Video Disk Recorder)**
Unterst<EFBFBD>tzung des channels.conf Dateiformats.
Die Implementation hierf<72>r wurde vom Mitglied "TCr82" des VDR Projekts beigesteuert.
<a name="m3u"/>**m3u (SAT>IP)**
Unterst<EFBFBD>tzt SAT>IP .m3u Dateien mit erweiterten Informationen zu Sendernamen und Programmnummern.
<a name="enigma2"/>**Enigma2 (Dreambox, VU+ und viele andere Linux basierende Empf<70>nger)**
Erfordert eine lokale Kopie der Dateien "lamedb", "bouquets.\*" and "userbouquet.\*" aus /etc/Enigma2/.