Skip to content

Commit

Permalink
- fixed possible NPE if a file contains no supported list
Browse files Browse the repository at this point in the history
- updated readme
  • Loading branch information
PredatH0r committed Nov 16, 2017
1 parent d9a252a commit ae53201
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 51 deletions.
15 changes: 9 additions & 6 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ About ChanSort
--------------
ChanSort is a PC/Windows 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 models from **Hisense** (NEW), LG, Panasonic, Samsung, Toshiba and the Linux VDR project.
ChanSort supports various models from Hisense, Samsung, LG, Panasonic, Toshiba and the Linux VDR project.

![screenshot](http://beham.biz/chansort/ChanSort-en.png)

Expand All @@ -34,26 +34,28 @@ Most of this software was written without support from TV manufacturers or acces
documentation about the file formats. It is solely based on analysing existing data files, trial and error.
There is a chance of unwanted side-effects or even damage to your TV, as reported in 2 cases.

Hisense is the only manufacturer who provided both information and a test device.
Hisense is the only manufacturer who provided technical information and a test device.

System requirements
-------------------
- [Microsoft .NET Framework 4.0 (Full)](http://www.microsoft.com/en-us/download/details.aspx?id=17851):
included in Win8, required for Win7, Vista and XP SP3
- [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 J-series)
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)
- Some LG models require a special service remote control to access the import/export functions (see Wiki for details)

Supported TV models
-------------------

**Hisense**
Smart models (2016) with a channel.db format, i.e. H65M5500
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!

**Samsung**
Series: B (2009)*, B (2013), C, D, E, F, H, J
.scm files: B (2009)*, B (2013), C, D, E, F, H series
.zip files: H, J, K, M series
Lists: Air analog, Air digital, Cable analog, Cable digital,
Cable Prime, Sat digital, Astra HD+, Freesat, TivuSat,
Canal Digital Sat, Digital+, Cyfra+
Expand All @@ -68,10 +70,11 @@ http://www.ullrich.es/job/sendersortierung/senderlisten-samsung-tv-exportieren-i

**LG**
Series: CS, DM, LA, LB\*, LD, LE, LF, LH, LK, LM+, LN, LP#, LS, LT, LV, LW, LX, PM, PN, PT, UB\*
and all newer models using the GlobalClone.TLL format
Lists: Analog TV, DTV (DVB-C, DVB-T), Radio (DVB-C/T), Sat-DTV (DVB-S2), Sat-Radio (DVB-S2)

\*: Some devices behave erroneously due to firmware issues.
+: See system requirements for LM-series. xxLM640T is not supported due to firmware limitations.
+: See system requirements for LM-series. xxLM640T is not supported due to its firmware limitations.
\#: Only satellite channels supported.

Other models might also work, but have not been tested. If you have a .TLL file of a series not listed here, please send it to me.
Expand Down
2 changes: 2 additions & 0 deletions source/ChanSort/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1434,6 +1434,8 @@ private void SaveInputGridLayout(SignalSource signalSource)
private bool GetGridColumnVisibility(GridColumn col)
{
var list = this.CurrentChannelList;
if (list == null)
return false;
var filter = list.VisibleColumnFieldNames;
if (filter != null && !filter.Contains(col.FieldName))
return false;
Expand Down
84 changes: 39 additions & 45 deletions source/ChanSort/MainForm.resx
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
<value>0, 110</value>
</data>
<metadata name="dsChannels.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>361, 17</value>
<value>17, 95</value>
</metadata>
<data name="gridLeft.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
Expand Down Expand Up @@ -306,7 +306,7 @@
<value>1</value>
</data>
<metadata name="globalImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>600, 17</value>
<value>17, 173</value>
</metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
Expand Down Expand Up @@ -393,7 +393,7 @@
<value>256, 6</value>
</data>
<metadata name="barManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>475, 17</value>
<value>17, 134</value>
</metadata>
<data name="miFile.Caption" xml:space="preserve">
<value>&amp;File</value>
Expand Down Expand Up @@ -638,52 +638,52 @@
<assembly alias="DevExpress.XtraBars.v17.1" name="DevExpress.XtraBars.v17.1, Version=17.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v17.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF5EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
LjIuMTAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iODhkMTc1NGQ3MDBlNDlhBQEA
AAAmRGV2RXhwcmVzcy5YdHJhQmFycy5CYXJNYW5hZ2VyQ2F0ZWdvcnkDAAAABE5hbWUER3VpZAdWaXNp
YmxlAQMAC1N5c3RlbS5HdWlkAQIAAAAGAwAAAARGaWxlBPz///8LU3lzdGVtLkd1aWQLAAAAAl9hAl9i
Al9jAl9kAl9lAl9mAl9nAl9oAl9pAl9qAl9rAAAAAAAAAAAAAAAIBwcCAgICAgICAimjyeYLAXlNjU0h
Xl8ZftMBCw==
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNy4xLCBWZXJzaW9uPTE3
LjEuNy4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC
X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe
Xxl+0wEL
</value>
</data>
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v17.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF5EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
LjIuMTAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iODhkMTc1NGQ3MDBlNDlhBQEA
AAAmRGV2RXhwcmVzcy5YdHJhQmFycy5CYXJNYW5hZ2VyQ2F0ZWdvcnkDAAAABE5hbWUER3VpZAdWaXNp
YmxlAQMAC1N5c3RlbS5HdWlkAQIAAAAGAwAAAARIZWxwBPz///8LU3lzdGVtLkd1aWQLAAAAAl9hAl9i
Al9jAl9kAl9lAl9mAl9nAl9oAl9pAl9qAl9rAAAAAAAAAAAAAAAIBwcCAgICAgICAnRFVQ3oMDFNmnDa
cCqYQmABCw==
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNy4xLCBWZXJzaW9uPTE3
LjEuNy4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC
X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw
KphCYAEL
</value>
</data>
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v17.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF5EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
LjIuMTAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iODhkMTc1NGQ3MDBlNDlhBQEA
AAAmRGV2RXhwcmVzcy5YdHJhQmFycy5CYXJNYW5hZ2VyQ2F0ZWdvcnkDAAAABE5hbWUER3VpZAdWaXNp
YmxlAQMAC1N5c3RlbS5HdWlkAQIAAAAGAwAAAARFZGl0BPz///8LU3lzdGVtLkd1aWQLAAAAAl9hAl9i
Al9jAl9kAl9lAl9mAl9nAl9oAl9pAl9qAl9rAAAAAAAAAAAAAAAIBwcCAgICAgICAmTE7tfJWUVPiKpg
LmTIHMABCw==
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNy4xLCBWZXJzaW9uPTE3
LjEuNy4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC
X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu
ZMgcwAEL
</value>
</data>
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v17.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF5EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
LjIuMTAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iODhkMTc1NGQ3MDBlNDlhBQEA
AAAmRGV2RXhwcmVzcy5YdHJhQmFycy5CYXJNYW5hZ2VyQ2F0ZWdvcnkDAAAABE5hbWUER3VpZAdWaXNp
YmxlAQMAC1N5c3RlbS5HdWlkAQIAAAAGAwAAAAdPcHRpb25zBPz///8LU3lzdGVtLkd1aWQLAAAAAl9h
Al9iAl9jAl9kAl9lAl9mAl9nAl9oAl9pAl9qAl9rAAAAAAAAAAAAAAAIBwcCAgICAgICAlyTDofZ8wJC
nFiHlmBpFV0BCw==
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNy4xLCBWZXJzaW9uPTE3
LjEuNy4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC
X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc
WIeWYGkVXQEL
</value>
</data>
<data name="barManager1.Categories4" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v17.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF5EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
LjIuMTAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iODhkMTc1NGQ3MDBlNDlhBQEA
AAAmRGV2RXhwcmVzcy5YdHJhQmFycy5CYXJNYW5hZ2VyQ2F0ZWdvcnkDAAAABE5hbWUER3VpZAdWaXNp
YmxlAQMAC1N5c3RlbS5HdWlkAQIAAAAGAwAAAA1BY2Nlc3NpYmlsaXR5BPz///8LU3lzdGVtLkd1aWQL
AAAAAl9hAl9iAl9jAl9kAl9lAl9mAl9nAl9oAl9pAl9qAl9rAAAAAAAAAAAAAAAIBwcCAgICAgICAniL
85x/FpVNuEiKPJEyCcQBCw==
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNy4xLCBWZXJzaW9uPTE3
LjEuNy4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li
bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAADUFjY2Vzc2liaWxpdHkE/P///wtTeXN0ZW0uR3VpZAsA
AAACX2ECX2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICeIvz
nH8WlU24SIo8kTIJxAEL
</value>
</data>
<data name="barDockControlTop.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
Expand Down Expand Up @@ -1147,7 +1147,7 @@
<value>globalImageCollection1</value>
</data>
<data name="&gt;&gt;globalImageCollection1.Type" xml:space="preserve">
<value>ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
<value>ChanSort.Ui.GlobalImageCollection, ChanSort, Version=1.0.6529.20410, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;gviewRight.Name" xml:space="preserve">
<value>gviewRight</value>
Expand Down Expand Up @@ -1851,12 +1851,6 @@
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v17.1, Version=17.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="SharedImageCollection.Timestamp" type="System.DateTime, mscorlib">
<value>06/08/2017 17:07:00</value>
</data>
<data name="SharedImageCollection.ImageSize" type="System.Drawing.Size, System.Drawing">
<value>16, 16</value>
</data>
<data name="btnToggleLock.Location" type="System.Drawing.Point, System.Drawing">
<value>257, 5</value>
</data>
Expand Down Expand Up @@ -2824,18 +2818,18 @@ specific provider, satellite or country lists.</value>
<value>0</value>
</data>
<metadata name="defaultLookAndFeel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>194, 17</value>
<value>17, 56</value>
</metadata>
<metadata name="popupContext.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>781, 17</value>
<value>17, 212</value>
</metadata>
<metadata name="timerEditDelay.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>911, 17</value>
<value>17, 251</value>
</metadata>
<metadata name="popupInputSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1042, 17</value>
<value>17, 290</value>
</metadata>
<metadata name="popupFavList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1196, 17</value>
<value>17, 329</value>
</metadata>
</root>

0 comments on commit ae53201

Please sign in to comment.