mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-06-15 23:11:47 +02:00
- added support for *.csv channel lists from various manufacturers (Sharp, Dyon, Blaupunkt, Hisense, ...)
- updated readme with system requirement (including Linux) and TV models
This commit is contained in:
52
readme.md
52
readme.md
@@ -11,8 +11,9 @@ About ChanSort
|
||||
--------------
|
||||
ChanSort is a 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 file formats from Samsung, LG, Panasonic, Sony, Philips, Hisense, Toshiba,
|
||||
ITT/Medion/Nabo/ok./PEAQ/Schaub-Lorenz/Silva-Schneider/Telefunken, Linux VDR, **SAT>IP .m3u** (new).
|
||||
ChanSort supports various file formats from Samsung, LG, Panasonic, Sony, Philips, Hisense, Toshiba, Grundig,
|
||||
SatcoDX (used by ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken),
|
||||
Linux VDR, SAT>IP .m3u and Enimgma2 based Linux boxes.
|
||||
|
||||

|
||||
|
||||
@@ -37,48 +38,47 @@ There is a chance of unwanted side-effects or even damage to your TV, as reporte
|
||||
|
||||
Hisense is the only manufacturer who provided technical information and a test device.
|
||||
|
||||
System requirements
|
||||
Syste
|
||||
m requirements
|
||||
-------------------
|
||||
- [Microsoft .NET Framework 4.6 or later](https://dotnet.microsoft.com/download/dotnet-framework)
|
||||
- [Microsoft .NET Framework 4.8 or later](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)
|
||||
- Some LG models require a special service remote control to access the import/export functions (see Wiki for details)
|
||||
|
||||
|
||||
Supported TV models
|
||||
-------------------
|
||||
|
||||
**Samsung**
|
||||
.scm files: B (2009)*, B (2013), C, D, E, F, H, J series
|
||||
.zip files: H, J, K, M, N and Q, R series
|
||||
Lists: Air analog, Air digital, Cable analog, Cable digital,
|
||||
Cable Prime, Sat digital, Astra HD+, Freesat, TivuSat,
|
||||
Canal Digital Sat, Digital+, Cyfra+
|
||||
.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. If you have such a file,
|
||||
please send it to me.
|
||||
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: CS, DM, LA, LB\*, LD, LE, LF, LH, LK, LM+, LN, LP#, LS, LT, LV, LW, LX, PM, PN, PT, UB\*
|
||||
Lists: Analog TV, DTV (DVB-C, DVB-T), Radio (DVB-C/T), Sat-DTV (DVB-S2), Sat-Radio (DVB-S2)
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
Support for WebOS 5 is currently experimental. Users reported issues when importing a list back - even without modifying it with ChanSort.
|
||||
It may be neccessary to reset the TV to factory defaults to clear its channel list before a list can be imported from USB.
|
||||
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**
|
||||
Viera models with an svl.bin or svl.db channel list (most models since 2011)
|
||||
@@ -88,10 +88,10 @@ Android-TVs "sdb.xml" files using formats "FormateVer" 1.1.0 and KDL 2012/2014 f
|
||||
|
||||
**Philips**
|
||||
Philips uses countless incompatible file formats for various TV models.
|
||||
ChanSort currently supports 3 different formats:
|
||||
- PhilipsChannelMaps\ChannelMap_xxx\channellib\DVBC.xml, DVBT.xml and s2channellib\DVBS.xml
|
||||
- Repair\CM_TPM1013E_LA_CK.xml (sometimes that file is hidden and only a .bin file is visible)
|
||||
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**
|
||||
2016 "Smart" models with a channel.db file, i.e. H65M5500
|
||||
@@ -100,10 +100,14 @@ Special thanks to Hisense for supporting ChanSort with technical information and
|
||||
|
||||
**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)
|
||||
(e.g. RL, SL, TL, UL, VL, WL, XL, YL models of series 8xx/9xx)
|
||||
Models with a settingsDB.db file
|
||||
|
||||
**ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken**
|
||||
These brands use .sdx files (currently only satellite lists are supported)
|
||||
**Grundig**
|
||||
Models that export files named dvb\*_config.xml.
|
||||
|
||||
**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
|
||||
|
||||
**VDR (Linux Video Disk Recorder)**
|
||||
Supports the channels.conf file format.
|
||||
@@ -112,6 +116,10 @@ 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/.
|
||||
|
||||
|
||||
License (GPLv3)
|
||||
---------------
|
||||
GNU General Public Licence, Version 3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
49
readme_de.md
49
readme_de.md
@@ -11,8 +11,9 @@ Links
|
||||
--------------
|
||||
ChanSort ist eine Windows-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,
|
||||
Medion/Nabo/ok./PEAQ/Schaub-Lorenz/Silva-Schneider/Telefunken, Linux VDR und SAT>IP .m3u.
|
||||
ChanSort unterst<73>tzt diverse Dateiformate von Samsung, LG, Panasonic, Sony, Philips, Hisense, Toshiba, Grundig,
|
||||
SatcoDX (verwendet von Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken),
|
||||
Linux VDR, SAT>IP .m3u und Enigma2 basierende Linux TV-Boxen.
|
||||
|
||||

|
||||
|
||||
@@ -37,48 +38,47 @@ Es besteht die M
|
||||
|
||||
Hisense ist der einzige Hersteller, der Informationen und ein Testger<65>t bereitstellten.
|
||||
|
||||
|
||||
Systemvoraussetzungen
|
||||
-------------------
|
||||
- [Microsoft .NET Framework 4.6 (oder neuer)](https://dotnet.microsoft.com/download/dotnet-framework)
|
||||
- [Microsoft .NET Framework 4.8 (oder neuer)](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)
|
||||
- Einige TV-Modelle von LG erfordern eine spezielle Service-Fernbedienung zum Aufruf der Export/Import-Funktionen (Details in der Wiki)
|
||||
|
||||
|
||||
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
|
||||
Listen: Air analog, Air digital, Cable analog, Cable digital,
|
||||
Cable Prime, Sat digital, Astra HD+, Freesat, TivuSat,
|
||||
Canal Digital Sat, Digital+, Cyfra+
|
||||
|
||||
\*: 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, da keine entsprechenden Testdateien vorhanden ist.
|
||||
|
||||
Eine Anleitung zum <EFBFBD>bertragen der Liste auf/von USB befindet sich auf:
|
||||
http://www.ullrich.es/job/sendersortierung/senderlisten-samsung-tv-exportieren-importieren/
|
||||
Eine Anleitung zum Transfer der Senderliste befindet sich hier:
|
||||
https://github.com/PredatH0r/ChanSort/wiki/Samsung
|
||||
|
||||
**LG**
|
||||
Serien: CS, DM, LA, LB\*, LD, LE, LF, LH, LK, LM+, LN, LP#, LS, LT, LV, LW, LX, PM, PN, PT, UB\*
|
||||
Listen: Analog TV, DTV (DVB-C, DVB-T), Radio (DVB-C/T), Sat-DTV (DVB-S2), Sat-Radio (DVB-S2)
|
||||
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.
|
||||
|
||||
Andere Modelle k<>nnen ebenfalls funktionieren, wurden aber nicht getestet. Erfahrungsberichte im Forum sind jederzeit willkommen.
|
||||
|
||||
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.
|
||||
|
||||
Unterst<EFBFBD>tzung f<>r WebOS 5 ist derzeit experimentell. Benutzer berichten <20>ber Probleme beim Import, selbst wenn die Datei nicht
|
||||
mit ChanSort bearbeitet wurden.
|
||||
Es kann notwendig sein, vor dem Import den Fernseher auf Werkseinstellungen zur<75>ckzusetzen, um seine Senderliste zu leeren.
|
||||
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**
|
||||
Viera-Modelle mit svl.bin oder svl.db Dateien (die meisten Modelle seit 2011)
|
||||
@@ -88,7 +88,10 @@ Android-TV "sdb.xml" Dateien mit Versionen "FormateVer" 1.1.0 und KDL 2012/2014
|
||||
|
||||
**Philips**
|
||||
Philips verwendet unz<6E>hlige unterschiedliche Dateiformate f<>r diverse TV-Modelle.
|
||||
ChanSort unterst<73>tzt derzeit 2 Varianten von .xml-Dateien. Andere Formate werden nicht unterst<73>tzt.
|
||||
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 verstekt und nur eine .bin Datei sichtbar)
|
||||
|
||||
**Hisense**
|
||||
Smart-Modelle (2016) mit channel.db Dateiformat, z.B. H65M5500
|
||||
@@ -97,10 +100,14 @@ Besonderen Dank an Hisense f
|
||||
|
||||
**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)
|
||||
(z.B. RL, SL, TL, UL, VL, WL, XL, YL models of series 8xx/9xx)
|
||||
Modelle mit einer settingsDB.db Datei
|
||||
|
||||
**ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken**
|
||||
Die Marken nutzen .sdx Dateien (derzeit wird nur Satellitenempfang unterst<73>tzt)
|
||||
**Grundig**
|
||||
Modelle die Dateien mit Namen dvb\*_config.xml exportieren.
|
||||
|
||||
**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
|
||||
|
||||
**VDR (Linux Video Disk Recorder)**
|
||||
Unterst<EFBFBD>tzung des channels.conf Dateiformats.
|
||||
@@ -109,6 +116,10 @@ Die Implementation hierf
|
||||
**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/.
|
||||
|
||||
|
||||
Lizenz (GPLv3)
|
||||
---------------
|
||||
GNU General Public Licence, Version 3: http://www.gnu.org/licenses/gpl.html
|
||||
|
||||
@@ -49,11 +49,18 @@ namespace ChanSort.Api
|
||||
using (var stream = new StreamReader(this.FileName))
|
||||
{
|
||||
var lineNr = 0;
|
||||
var line = "";
|
||||
|
||||
var line = stream.ReadLine();
|
||||
if (line != null && line.StartsWith("--------") && line.Contains(" Program Data!--------"))
|
||||
throw new FileLoadException("ignoring .csv file with Sharp/Dyon/Blaupunkt/Hisense header line");
|
||||
|
||||
try
|
||||
{
|
||||
while ((line = stream.ReadLine()) != null)
|
||||
while (line != null)
|
||||
{
|
||||
this.ReadChannel(line, ++lineNr);
|
||||
line = stream.ReadLine();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace ChanSort.Loader.SatcoDX
|
||||
public class SatcoDxPlugin : ISerializerPlugin
|
||||
{
|
||||
public string DllName { get; set; }
|
||||
public string PluginName => "ITT/Medion/Nabo/ok./Peaq/Schaub-Lorenz/Silva-Schneider/Telefunken";
|
||||
public string PluginName => "SatcoDX (ITT, Medion, Nabo, ok., Peaq, Schaub-Lorenz, Silva-Schneider, Telefunken)";
|
||||
public string FileFilter => "*.sdx";
|
||||
|
||||
public SerializerBase CreateSerializer(string inputFile)
|
||||
|
||||
75
source/ChanSort.Loader.Sharp/ChanSort.Loader.Sharp.csproj
Normal file
75
source/ChanSort.Loader.Sharp/ChanSort.Loader.Sharp.csproj
Normal file
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.Sharp</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.Sharp</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SharpPlugin.cs" />
|
||||
<Compile Include="SharpSerializer.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
|
||||
<Project>{dccffa08-472b-4d17-bb90-8f513fc01392}</Project>
|
||||
<Name>ChanSort.Api</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
36
source/ChanSort.Loader.Sharp/Properties/AssemblyInfo.cs
Normal file
36
source/ChanSort.Loader.Sharp/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("ChanSort.Loader.Sharp")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("ChanSort.Loader.Sharp")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2021")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("4e68f218-5135-4d92-8c17-14faa5d4cbf3")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
16
source/ChanSort.Loader.Sharp/SharpPlugin.cs
Normal file
16
source/ChanSort.Loader.Sharp/SharpPlugin.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using ChanSort.Api;
|
||||
|
||||
namespace ChanSort.Loader.Sharp
|
||||
{
|
||||
public class SharpPlugin : ISerializerPlugin
|
||||
{
|
||||
public string DllName { get; set; }
|
||||
public string PluginName => "Sharp";
|
||||
public string FileFilter => "*DVBS*.csv";
|
||||
|
||||
public SerializerBase CreateSerializer(string inputFile)
|
||||
{
|
||||
return new SharpSerializer(inputFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
287
source/ChanSort.Loader.Sharp/SharpSerializer.cs
Normal file
287
source/ChanSort.Loader.Sharp/SharpSerializer.cs
Normal file
@@ -0,0 +1,287 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using ChanSort.Api;
|
||||
|
||||
namespace ChanSort.Loader.Sharp
|
||||
{
|
||||
/*
|
||||
* This loader supports multiple .csv formats from different brands, which are similar but have some differences:
|
||||
*
|
||||
*
|
||||
* DVBS_Program.csv + cvt_database.dat
|
||||
* ===================================
|
||||
* These formats lack a way to uniquely identify a channel via ONID-TSID-SID and as described in their file header,
|
||||
* can only be physically reordered to change the zapping order, but don't allow changing the channel number:
|
||||
* - Hisense LTDN40D50TS: LCN,Channel Name,Service Type,[B]
|
||||
* - Sharp LC-43CFE4142E firmware V1.16: Channel Number,Channel Name,Service Type,Free or Scramble,Transponder,[S]
|
||||
* - Dyon Live 24 Pro, Dyon ENTER 32 Pro X: Channel Number,Channel Name,Service Type,Free or Scramble,Transponder,[S]
|
||||
* - Blaupunkt B32B133T2CSHD: Channel Number,Channel Name,Service Type,Free or Scramble,Transponder,[S]
|
||||
*
|
||||
* MS6486_DVBS_CHANNEL_TABLE + MS6488_HOTELMODE_TABLE.json
|
||||
* =======================================
|
||||
* Channel Number,Channel Name,Service Type,Free or Scramble,Frequency(MHz),Polarity,SymbolRate(KS/s),[S]
|
||||
*
|
||||
*
|
||||
* DVBS_CHANNEL_TABLE.csv + dtv_cmdb_*.bin
|
||||
* =======================================
|
||||
* This format supposedly supports deleting and changing the program numbers along with reordering (despite the NOTE in the header).
|
||||
* - Channel number,Channel Name,program count,program index,RF channel number,QAM mode,Band width,PlpID,Frequency,symbol rate,Polarity,SatName,SatID,SatTableID,LowLOF,HighLOF,LNBType,LNBTypeReal,DISEQC level,ToneburstType,Swt10Port,Swt11Port,22KOnOff,LNB power,12VOnOff,Motor position bit8 1:USALS 0:DISEQC1.2,Satellite Angle,Transponder number,Begin transponder,channel Id,unicable frequency,unicable MDU,unicable password pin,LNB index 0:A 1:B,TS id,orig network id,network id,PCR pid,LCN,Free or Scramble,PmtPID,ServiceID,Video_pid,Audio_pid,VideoType,AudioType,NitVer,PatVer,PmtVer,SdtVer,Service Type,[S]
|
||||
* The file from user "blackbox" was encoded in UTF-8 without BOM
|
||||
*
|
||||
*/
|
||||
internal class SharpSerializer : SerializerBase
|
||||
{
|
||||
private enum FormatVersion
|
||||
{
|
||||
Unknown = 0,
|
||||
Hisense3Columns = 1,
|
||||
Sharp5Columns = 2,
|
||||
Sharp7Columns = 3,
|
||||
Sharp51Columns = 4
|
||||
}
|
||||
|
||||
private readonly ChannelList dvbsChannels = new ChannelList(0, "DVB-S");
|
||||
private Encoding encoding;
|
||||
private FormatVersion formatVersion;
|
||||
private string[] lines;
|
||||
|
||||
|
||||
#region ctor()
|
||||
|
||||
public SharpSerializer(string inputFile) : base(inputFile)
|
||||
{
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.None;
|
||||
this.Features.DeleteMode = DeleteMode.Physically;
|
||||
this.Features.CanSkipChannels = false;
|
||||
this.Features.CanLockChannels = false;
|
||||
this.Features.CanHideChannels = false;
|
||||
this.Features.FavoritesMode = FavoritesMode.None;
|
||||
|
||||
this.DataRoot.AddChannelList(this.dvbsChannels);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Load()
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
var content = File.ReadAllBytes(this.FileName);
|
||||
this.encoding = Tools.IsUtf8(content) ? new UTF8Encoding(false) : Encoding.GetEncoding(1252);
|
||||
this.lines = this.encoding.GetString(content).Replace("\r", "").Split('\n');
|
||||
|
||||
this.formatVersion = DetectFormatVersion();
|
||||
this.AdjustVisibleColumns();
|
||||
|
||||
var cols = lines[2].ToLowerInvariant().Split(',');
|
||||
|
||||
for (int i=3; i<this.lines.Length; i++)
|
||||
{
|
||||
var line = lines[i];
|
||||
if (line == "")
|
||||
continue;
|
||||
|
||||
var data = line.Split(',');
|
||||
if (data[0] == "[E]")
|
||||
break;
|
||||
|
||||
var ch = new ChannelInfo(SignalSource.DvbS, i, i-2, "");
|
||||
for (int j = 0; j < data.Length; j++)
|
||||
{
|
||||
var val = data[j];
|
||||
int.TryParse(val, out var intval);
|
||||
switch (cols[j])
|
||||
{
|
||||
case "lcn":
|
||||
case "channel number":
|
||||
ch.RecordOrder = intval;
|
||||
break;
|
||||
case "channel name":
|
||||
ch.Name = val;
|
||||
break;
|
||||
case "service type":
|
||||
if (intval != 0)
|
||||
{
|
||||
if (intval == 1)
|
||||
{
|
||||
ch.SignalSource |= SignalSource.Tv;
|
||||
ch.ServiceTypeName = "DTV";
|
||||
}
|
||||
else if (intval == 2)
|
||||
{
|
||||
ch.SignalSource |= SignalSource.Radio;
|
||||
ch.ServiceTypeName = "Radio";
|
||||
}
|
||||
else if (intval == 3)
|
||||
{
|
||||
ch.SignalSource |= SignalSource.Data;
|
||||
ch.ServiceTypeName = "Data";
|
||||
}
|
||||
}
|
||||
else
|
||||
ch.ServiceTypeName = val;
|
||||
break;
|
||||
case "free or scramble":
|
||||
ch.Encrypted = val == "Scramble" || val == "1";
|
||||
break;
|
||||
case "transponder":
|
||||
{
|
||||
var parts = val.Split(' ');
|
||||
if (int.TryParse(parts[0], out var mhz))
|
||||
ch.FreqInMhz = mhz;
|
||||
if (parts.Length > 1 && parts[1].Length > 0)
|
||||
ch.Polarity = parts[1][0];
|
||||
if (parts.Length > 2 && int.TryParse(parts[2], out var sr))
|
||||
ch.SymbolRate = sr;
|
||||
break;
|
||||
}
|
||||
case "frequency(mhz)":
|
||||
case "frequency":
|
||||
ch.FreqInMhz = intval;
|
||||
break;
|
||||
case "polarity":
|
||||
if (val.Length > 0)
|
||||
ch.Polarity = val[0] == '0' || val[0] == 'H' ? 'H' : 'V';
|
||||
break;
|
||||
case "symbolrate(ks/s)":
|
||||
case "symbol rate":
|
||||
ch.SymbolRate = intval;
|
||||
break;
|
||||
case "satname":
|
||||
ch.Satellite = val;
|
||||
break;
|
||||
case "satellite angle":
|
||||
ch.SatPosition = val;
|
||||
break;
|
||||
case "orig network id":
|
||||
ch.OriginalNetworkId = intval;
|
||||
break;
|
||||
case "ts id":
|
||||
ch.TransportStreamId = intval;
|
||||
break;
|
||||
case "serviceid":
|
||||
ch.ServiceId = intval;
|
||||
break;
|
||||
case "pcr pid":
|
||||
ch.PcrPid = intval;
|
||||
break;
|
||||
case "video_pid":
|
||||
ch.VideoPid = intval;
|
||||
break;
|
||||
case "audio_pid":
|
||||
ch.AudioPid = intval;
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.DataRoot.AddChannel(this.dvbsChannels, ch);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DetectFormatVersion()
|
||||
private FormatVersion DetectFormatVersion()
|
||||
{
|
||||
if (lines.Length >= 3)
|
||||
{
|
||||
if (lines[0].StartsWith("--------S2 Program Data!--------") && lines[2] == "LCN,Channel Name,Service Type,[B]")
|
||||
return FormatVersion.Hisense3Columns;
|
||||
if (lines[0].StartsWith("--------DVBS Program Data!--------"))
|
||||
{
|
||||
if (lines[2] == "Channel Number,Channel Name,Service Type,Free or Scramble,Transponder,[S]")
|
||||
return FormatVersion.Sharp5Columns;
|
||||
if (lines[2] == "Channel Number,Channel Name,Service Type,Free or Scramble,Frequency(MHz),Polarity,SymbolRate(KS/s),[S]")
|
||||
return FormatVersion.Sharp7Columns;
|
||||
|
||||
// fallback for formats with more information, as long as they contain the required columns
|
||||
var cols = lines[2].ToLowerInvariant().Split(',');
|
||||
var dict = new HashSet<string>();
|
||||
foreach (var col in cols)
|
||||
dict.Add(col);
|
||||
if (dict.Contains("channel number") && dict.Contains("channel name") && dict.Contains("service type") && dict.Contains("free or scramble"))
|
||||
{
|
||||
if (dict.Contains("orig network id") && dict.Contains("ts id") && dict.Contains("serviceid"))
|
||||
return FormatVersion.Sharp51Columns;
|
||||
|
||||
return FormatVersion.Sharp5Columns;
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new FileLoadException("File does not contain the expected 3 header lines");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region AdjustVisibleColumns()
|
||||
private void AdjustVisibleColumns()
|
||||
{
|
||||
var list = this.dvbsChannels;
|
||||
list.VisibleColumnFieldNames.Clear();
|
||||
list.VisibleColumnFieldNames.Add("Position");
|
||||
list.VisibleColumnFieldNames.Add("OldPosition");
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.RecordOrder));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.Name));
|
||||
if (this.formatVersion >= FormatVersion.Sharp5Columns)
|
||||
{
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.Encrypted));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.FreqInMhz));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.Polarity));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.SymbolRate));
|
||||
}
|
||||
|
||||
if (this.formatVersion >= FormatVersion.Sharp51Columns)
|
||||
{
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.Satellite));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.OriginalNetworkId));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.TransportStreamId));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.ServiceId));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.PcrPid));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.AudioPid));
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.VideoPid));
|
||||
}
|
||||
list.VisibleColumnFieldNames.Add(nameof(ChannelInfo.ServiceTypeName));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Save()
|
||||
|
||||
public override void Save(string tvOutputFile)
|
||||
{
|
||||
this.FileName = tvOutputFile;
|
||||
|
||||
using var file = new StreamWriter(new FileStream(tvOutputFile, FileMode.Create), this.encoding);
|
||||
|
||||
// write original header
|
||||
for (int i=0; i<3; i++)
|
||||
file.WriteLine(this.lines[i]);
|
||||
|
||||
foreach (var channel in this.dvbsChannels.GetChannelsByNewOrder())
|
||||
{
|
||||
// when a reference list was applied, the list may contain proxy entries for deleted channels, which must be ignored
|
||||
if (channel.IsProxy || channel.IsDeleted)
|
||||
continue;
|
||||
file.WriteLine(this.lines[channel.RecordIndex]);
|
||||
}
|
||||
|
||||
file.WriteLine("[E]");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region GetFileInformation()
|
||||
|
||||
public override string GetFileInformation()
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.Append(base.GetFileInformation());
|
||||
sb.AppendLine();
|
||||
sb.AppendLine("Columns in CSV file:");
|
||||
sb.AppendLine(this.lines[2]);
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ VisualStudioVersion = 16.0.29025.244
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort", "ChanSort\ChanSort.csproj", "{5FAFDABC-A52F-498C-BD2F-AFFC4119797A}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3} = {4E68F218-5135-4D92-8C17-14FAA5D4CBF3}
|
||||
{74A18C6F-09FF-413E-90D9-827066FA5B36} = {74A18C6F-09FF-413E-90D9-827066FA5B36}
|
||||
{68DA8072-3A29-4076-9F64-D66F38349585} = {68DA8072-3A29-4076-9F64-D66F38349585}
|
||||
{A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5} = {A1C9A98D-368A-44E8-9B7F-7EACA46C9EC5}
|
||||
@@ -77,6 +78,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.Enigma2", "Test
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.Grundig", "Test.Loader.Grundig\Test.Loader.Grundig.csproj", "{48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.Sharp", "ChanSort.Loader.Sharp\ChanSort.Loader.Sharp.csproj", "{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.Sharp", "Test.Loader.Sharp\Test.Loader.Sharp.csproj", "{DF1A8F81-CE9B-499E-9258-27F346B32A8B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -435,6 +440,30 @@ Global
|
||||
{48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{48D99DF3-018D-4B3F-BB22-5C7F6F6A7E77}.Release|x86.Build.0 = Release|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Debug|x86.Build.0 = Debug|x86
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{4E68F218-5135-4D92-8C17-14FAA5D4CBF3}.Release|x86.Build.0 = Release|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Debug|x86.Build.0 = Debug|x86
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{DF1A8F81-CE9B-499E-9258-27F346B32A8B}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
20
source/Test.Loader.Sharp/Properties/AssemblyInfo.cs
Normal file
20
source/Test.Loader.Sharp/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("Test.Loader.Sharp")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Test.Loader.Sharp")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2021")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
[assembly: Guid("df1a8f81-ce9b-499e-9258-27f346b32a8b")]
|
||||
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
46
source/Test.Loader.Sharp/SharpTest.cs
Normal file
46
source/Test.Loader.Sharp/SharpTest.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using ChanSort.Loader.Sharp;
|
||||
|
||||
namespace Test.Loader.Sharp
|
||||
{
|
||||
[TestClass]
|
||||
public class SharpTest
|
||||
{
|
||||
#region TestChannelAndFavListEditing_3
|
||||
[TestMethod]
|
||||
public void TestChannelAndFavListEditing_3()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Sharp\\TestFiles\\DVBS_Program3.csv");
|
||||
RoundtripTest.TestChannelAndFavListEditing(tempFile, new SharpPlugin());
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestChannelAndFavListEditing_5
|
||||
[TestMethod]
|
||||
public void TestChannelAndFavListEditing_5()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Sharp\\TestFiles\\DVBS_Program5.csv");
|
||||
RoundtripTest.TestChannelAndFavListEditing(tempFile, new SharpPlugin());
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestChannelAndFavListEditing_7
|
||||
[TestMethod]
|
||||
public void TestChannelAndFavListEditing_7()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Sharp\\TestFiles\\MS6486_DVBS_CHANNEL_TABLE.csv");
|
||||
RoundtripTest.TestChannelAndFavListEditing(tempFile, new SharpPlugin());
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestChannelAndFavListEditing_51
|
||||
[TestMethod]
|
||||
public void TestChannelAndFavListEditing_51()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Sharp\\TestFiles\\DVBS_CHANNEL_TABLE.csv");
|
||||
RoundtripTest.TestChannelAndFavListEditing(tempFile, new SharpPlugin());
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
104
source/Test.Loader.Sharp/Test.Loader.Sharp.csproj
Normal file
104
source/Test.Loader.Sharp/Test.Loader.Sharp.csproj
Normal file
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{DF1A8F81-CE9B-499E-9258-27F346B32A8B}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.Sharp</RootNamespace>
|
||||
<AssemblyName>Test.Loader.Sharp</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
|
||||
<IsCodedUITest>False</IsCodedUITest>
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="SharpTest.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
|
||||
<Project>{dccffa08-472b-4d17-bb90-8f513fc01392}</Project>
|
||||
<Name>ChanSort.Api</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ChanSort.Loader.Sharp\ChanSort.Loader.Sharp.csproj">
|
||||
<Project>{4e68f218-5135-4d92-8c17-14faa5d4cbf3}</Project>
|
||||
<Name>ChanSort.Loader.Sharp</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
|
||||
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
|
||||
<Name>Test.Loader</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="TestFiles\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props'))" />
|
||||
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets')" />
|
||||
</Project>
|
||||
1242
source/Test.Loader.Sharp/TestFiles/DVBS_CHANNEL_TABLE.csv
Normal file
1242
source/Test.Loader.Sharp/TestFiles/DVBS_CHANNEL_TABLE.csv
Normal file
File diff suppressed because it is too large
Load Diff
452
source/Test.Loader.Sharp/TestFiles/DVBS_Program3.csv
Normal file
452
source/Test.Loader.Sharp/TestFiles/DVBS_Program3.csv
Normal file
@@ -0,0 +1,452 @@
|
||||
--------S2 Program Data!--------,,,
|
||||
NOTE: Service Type and Physically Position are forbade editing,,,
|
||||
LCN,Channel Name,Service Type,[B]
|
||||
97,Das Erste HD ,DTV,
|
||||
64,ZDF HD ,DTV,
|
||||
263,RTL Television ,DTV,
|
||||
444,SAT.1 ,DTV,
|
||||
445,ProSieben ,DTV,
|
||||
264,RTL2 ,DTV,
|
||||
269,NITRO ,DTV,
|
||||
446,kabel eins ,DTV,
|
||||
266,VOX ,DTV,
|
||||
268,RTLplus ,DTV,
|
||||
401,TLC ,DTV,
|
||||
1047,TELE 5 ,DTV,
|
||||
402,SIXX ,DTV,
|
||||
449,Pro7 MAXX ,DTV,
|
||||
448,SAT.1 Gold ,DTV,
|
||||
104,NDR FS MV HD ,DTV,
|
||||
1238,MDR S-Anhalt HD ,DTV,
|
||||
1236,rbb Berlin HD ,DTV,
|
||||
388,WDR HD K<>ln ,DTV,
|
||||
1240,hr-fernsehen HD ,DTV,
|
||||
99,SWR BW HD ,DTV,
|
||||
102,BR Fernsehen Nord HD ,DTV,
|
||||
66,SES 01 ,DTV,
|
||||
5,ANIXE HD ,DTV,
|
||||
283,VOXup ,DTV,
|
||||
67,SES 02 ,DTV,
|
||||
1217,Zee One HD ,DTV,
|
||||
769,3sat HD ,DTV,
|
||||
98,arte HD ,DTV,
|
||||
1225,ONE HD ,DTV,
|
||||
1224,tagesschau24 HD ,DTV,
|
||||
771,ZDFinfo HD ,DTV,
|
||||
267,n-tv ,DTV,
|
||||
447,WELT ,DTV,
|
||||
284,EURONEWS GERMAN SD ,DTV,
|
||||
453,kabel eins Doku ,DTV,
|
||||
406,N24 DOKU ,DTV,
|
||||
65,zdf_neo HD ,DTV,
|
||||
1226,ARD-alpha HD ,DTV,
|
||||
107,phoenix HD ,DTV,
|
||||
527,Welt der Wunder ,DTV,
|
||||
1048,DMAX ,DTV,
|
||||
61,ServusTV HD Deutschland ,DTV,
|
||||
484,health.tv ,DTV,
|
||||
770,KiKA HD ,DTV,
|
||||
878,NICK/MTV+ ,DTV,
|
||||
265,SUPER RTL ,DTV,
|
||||
567,RiC ,DTV,
|
||||
400,Disney Channel ,DTV,
|
||||
273,TOGGO plus ,DTV,
|
||||
1044,SPORT1 ,DTV,
|
||||
280,Eurosport 1 Deutschland ,DTV,
|
||||
353,Sky Sport News HD ,DTV,
|
||||
1209,a.tv HD ,DTV,
|
||||
1213,tv.ingolstadt HD ,DTV,
|
||||
1212,Ulm-Allg<6C>u HD ,DTV,
|
||||
1210,m<EFBFBD>nchen.tv HD ,DTV,
|
||||
1211,rfo HD Fernsehen Oberbayern ,DTV,
|
||||
1229,TV Mainfranken HD ,DTV,
|
||||
1230,Franken Fernsehen HD ,DTV,
|
||||
1231,TVA Ostbayern HD ,DTV,
|
||||
1232,tv oberfranken HD ,DTV,
|
||||
1233,NIEDERBAYERN TV HD ,DTV,
|
||||
1234,Oberpfalz TV HD ,DTV,
|
||||
1043,REGIO TV ,DTV,
|
||||
489,rhein main tv ,DTV,
|
||||
534,L-TV ,DTV,
|
||||
1036,Baden TV ,DTV,
|
||||
1228,Radio Bremen HD ,DTV,
|
||||
1214,Lokal-TV-Portal HD ,DTV,
|
||||
69,SES 04 ,DTV,
|
||||
71,SES 06 ,DTV,
|
||||
550,TV1 OOE ,DTV,
|
||||
528,LT1-OOE ,DTV,
|
||||
51,Schau TV HD ,DTV,
|
||||
1199,R9 Oesterreich HD ,DTV,
|
||||
1201,oe24.TV HD ,DTV,
|
||||
564,ORF2E ,DTV,
|
||||
1200,krone.tv ,DTV,
|
||||
72,SES 07 ,DTV,
|
||||
50,Bibel TV HD ,DTV,
|
||||
485,K-TV ,DTV,
|
||||
53,Hope TV ,DTV,
|
||||
79,Die Neue Zeit TV ,DTV,
|
||||
397,EWTN katholisches TV ,DTV,
|
||||
403,ANIXE+ ,DTV,
|
||||
73,SES 08 ,DTV,
|
||||
74,SES 09 ,DTV,
|
||||
876,Comedy Central ,DTV,
|
||||
247,DELUXE MUSIC ,DTV,
|
||||
502,nice ,DTV,
|
||||
1203,gotv neu ,DTV,
|
||||
563,HITRADIO OE3 ,DTV,
|
||||
877,MTV ,DTV,
|
||||
486,Deutsches Musik Fernsehen ,DTV,
|
||||
29,Schlager Deluxe ,DTV,
|
||||
255,FOLX MUSIC TELEVISION ,DTV,
|
||||
75,SES 10 ,DTV,
|
||||
10,SES 75 ,DTV,
|
||||
31,HGTV ,DTV,
|
||||
9,HSE24 HD ,DTV,
|
||||
16,HSE24 EXTRA HD ,DTV,
|
||||
1046,HSE24 TREND ,DTV,
|
||||
8,QVC HD ,DTV,
|
||||
19,QVC ZWEI HD ,DTV,
|
||||
1222,QVC STYLE HD ,DTV,
|
||||
1220,Channel21 HD ,DTV,
|
||||
457,Juwelo HD ,DTV,
|
||||
17,1-2-3.tv HD ,DTV,
|
||||
248,Immer etwas Neues TV ,DTV,
|
||||
249,MediaShop- Meine Einkaufswelt ,DTV,
|
||||
1038,MediaShop- Neuheiten ,DTV,
|
||||
1039,meinTVshop ,DTV,
|
||||
1042,e8 television ,DTV,
|
||||
12,Genius Plus ,DTV,
|
||||
250,Genius exklusiv ,DTV,
|
||||
30,Genius family ,DTV,
|
||||
11,Nicer Dicer TV ,DTV,
|
||||
1040,Handystar TV 2 ,DTV,
|
||||
1218,Handystar TV HD ,DTV,
|
||||
454,sonnenklar.TV HD ,DTV,
|
||||
458,pearl.tv HD Shop ,DTV,
|
||||
101,BR Fernsehen S<>d HD ,DTV,
|
||||
1237,MDR Sachsen HD ,DTV,
|
||||
1239,MDR Th<54>ringen HD ,DTV,
|
||||
105,NDR FS HH HD ,DTV,
|
||||
103,NDR FS NDS HD ,DTV,
|
||||
106,NDR FS SH HD ,DTV,
|
||||
1235,rbb Brandenburg HD ,DTV,
|
||||
1227,SR Fernsehen HD ,DTV,
|
||||
100,SWR RP HD ,DTV,
|
||||
480,WDR HD Aachen ,DTV,
|
||||
389,WDR HD Bielefeld ,DTV,
|
||||
482,WDR HD Bonn ,DTV,
|
||||
390,WDR HD Dortmund ,DTV,
|
||||
483,WDR HD Duisburg ,DTV,
|
||||
391,WDR HD D<>sseldorf ,DTV,
|
||||
392,WDR HD Essen ,DTV,
|
||||
393,WDR HD M<>nster ,DTV,
|
||||
394,WDR HD Siegen ,DTV,
|
||||
481,WDR HD Wuppertal ,DTV,
|
||||
272,RTL Bayern ,DTV,
|
||||
270,RTL HB NDS ,DTV,
|
||||
274,RTL HH SH ,DTV,
|
||||
271,RTL Regional NRW ,DTV,
|
||||
451,SAT.1 Bayern ,DTV,
|
||||
911,SAT.1 HH/SH ,DTV,
|
||||
452,SAT.1 NRW ,DTV,
|
||||
912,SAT.1 NS/Bremen ,DTV,
|
||||
913,SAT.1 RhlPf/Hessen ,DTV,
|
||||
84,.1. ,DTV,
|
||||
85,.2. ,DTV,
|
||||
23,RTL HD ,DTV,
|
||||
26,RTLII HD ,DTV,
|
||||
1083,SUPER RTL HD ,DTV,
|
||||
1085,NITRO HD ,DTV,
|
||||
87,SAT.1 HD ,DTV,
|
||||
1162,SAT.1 Gold HD ,DTV,
|
||||
88,ProSieben HD ,DTV,
|
||||
91,Pro7 MAXX HD ,DTV,
|
||||
89,kabel eins HD ,DTV,
|
||||
95,Kabel Eins Doku HD ,DTV,
|
||||
24,VOX HD ,DTV,
|
||||
455,TELE 5 HD ,DTV,
|
||||
90,SIXX HD ,DTV,
|
||||
1216,TLC HD ,DTV,
|
||||
456,DMAX HD ,DTV,
|
||||
25,n-tv HD ,DTV,
|
||||
7,WELT HD ,DTV,
|
||||
18,Deluxe Music HD ,DTV,
|
||||
1219,MTV HD ,DTV,
|
||||
6,Comedy Central HD ,DTV,
|
||||
15,Disney Channel HD ,DTV,
|
||||
20,SPORT1 HD ,DTV,
|
||||
1164,Eurosport 1 HD ,DTV,
|
||||
1165,Eurosport 2 HD Xtra ,DTV,
|
||||
1176,SPORTDIGITAL FUSSBALL HD ,DTV,
|
||||
1177,SPORT1+ ,DTV,
|
||||
1178,eSPORTS1 ,DTV,
|
||||
1179,EDGEsport ,DTV,
|
||||
1180,WAIDWERK ,DTV,
|
||||
1184,INSIGHT TV HD ,DTV,
|
||||
1185,INSIGHT TV HD INT ,DTV,
|
||||
1081,RTL HD Austria ,DTV,
|
||||
1084,RTL II HD Austria ,DTV,
|
||||
112,SAT.1 HD Austria ,DTV,
|
||||
1166,SAT.1 Gold HD Austria ,DTV,
|
||||
113,ProSieben HD Austria ,DTV,
|
||||
94,Pro7 MAXX HD Austria ,DTV,
|
||||
92,kabel eins HD Austria ,DTV,
|
||||
96,Kabel 1 Doku HD Austria ,DTV,
|
||||
1082,VOX HD Austria ,DTV,
|
||||
461,TELE 5 HD Austria ,DTV,
|
||||
93,sixx HD Austria ,DTV,
|
||||
1221,TLC HD Austria ,DTV,
|
||||
462,DMAX HD Austria ,DTV,
|
||||
14,WELT HD ,DTV,
|
||||
22,Deluxe Music HD Austria ,DTV,
|
||||
1223,MTV HD Austria ,DTV,
|
||||
21,Disney Channel HD Austria ,DTV,
|
||||
13,Comedy Central HD AT ,DTV,
|
||||
1167,Eurosport 1 HD Austria ,DTV,
|
||||
115,PULS 4 HD Austria ,DTV,
|
||||
116,PULS 24 HD ,DTV,
|
||||
60,ServusTV HD Oesterreich ,DTV,
|
||||
54,ATV HD ,DTV,
|
||||
58,ORF1 HD ,DTV,
|
||||
1190,ORF2B HD ,DTV,
|
||||
1189,ORF2K HD ,DTV,
|
||||
62,ORF2N HD ,DTV,
|
||||
1191,ORF2O HD ,DTV,
|
||||
1192,ORF2S HD ,DTV,
|
||||
1188,ORF2St HD ,DTV,
|
||||
1193,ORF2T HD ,DTV,
|
||||
1194,ORF2V HD ,DTV,
|
||||
59,ORF2W HD ,DTV,
|
||||
1195,ORF III HD ,DTV,
|
||||
1196,ORF SPORT+ HD ,DTV,
|
||||
276,RTL Austria ,DTV,
|
||||
278,RTL2 Austria ,DTV,
|
||||
526,NITRO Austria ,DTV,
|
||||
55,RTLplus Austria ,DTV,
|
||||
279,SUPER RTL A ,DTV,
|
||||
908,SAT.1 A ,DTV,
|
||||
909,SAT.1 CH ,DTV,
|
||||
117,SAT.1 Gold <20>sterreich ,DTV,
|
||||
905,ProSieben Austria ,DTV,
|
||||
904,ProSieben Schweiz ,DTV,
|
||||
118,Pro7 MAXX Austria ,DTV,
|
||||
907,Kabel 1 Austria ,DTV,
|
||||
906,Kabel 1 Schweiz ,DTV,
|
||||
277,VOX Austria ,DTV,
|
||||
122,sixx AUSTRIA ,DTV,
|
||||
256,TLC Austria ,DTV,
|
||||
254,DMAX Austria ,DTV,
|
||||
119,kabel1 Doku austria ,DTV,
|
||||
242,N24 DOKU Austria ,DTV,
|
||||
568,n-tv Austria ,DTV,
|
||||
532,ServusTV Oesterreich ,DTV,
|
||||
245,Comedy Central Austria ,DTV,
|
||||
246,NICKELODEON AT ,DTV,
|
||||
1204,Melodie TV NEU ,DTV,
|
||||
1202,Starparadies A ,DTV,
|
||||
52,Starparadies AT ,DTV,
|
||||
565,Mei Musi TV ,DTV,
|
||||
48,Volksmusik ,DTV,
|
||||
566,Volksmusik.TV ,DTV,
|
||||
562,ATV ,DTV,
|
||||
49,ATV2 ,DTV,
|
||||
910,PULS 4 Austria ,DTV,
|
||||
1198,Aristo.TV ,DTV,
|
||||
70,3+ ,DTV,
|
||||
1197,flimmit Zusatzpaket ,DTV,
|
||||
123,4mediathek ,DTV,
|
||||
551,ORF1 ,DTV,
|
||||
552,ORF2 ,DTV,
|
||||
555,ORF2 B ,DTV,
|
||||
561,ORF2 K ,DTV,
|
||||
554,ORF2 N ,DTV,
|
||||
556,ORF2 O ,DTV,
|
||||
557,ORF2 S ,DTV,
|
||||
560,ORF2 St ,DTV,
|
||||
558,ORF2 T ,DTV,
|
||||
559,ORF2 V ,DTV,
|
||||
553,ORF2 W ,DTV,
|
||||
525,ORF III ,DTV,
|
||||
47,ORF SPORT+ ,DTV,
|
||||
120,SAT.1 emotions ,DTV,
|
||||
121,kabel eins classics ,DTV,
|
||||
1187,Al Jazeera English HD ,DTV,
|
||||
788,Arirang HD ,DTV,
|
||||
1183,BBC World News Europe HD ,DTV,
|
||||
41,CNBC HD ,DTV,
|
||||
956,CNEWS ,DTV,
|
||||
951,LCI ,DTV,
|
||||
957,LCP ,DTV,
|
||||
1186,NHK WORLD-JPN ,DTV,
|
||||
773,RT Esp HD ,DTV,
|
||||
774,RT France HD ,DTV,
|
||||
772,RT HD ,DTV,
|
||||
692,Telesur HD ,DTV,
|
||||
796,TRT World HD ,DTV,
|
||||
863,TV5 MONDE ,DTV,
|
||||
776,TVGA HD EUROPA ,DTV,
|
||||
787,Al Jazeera Channel ,DTV,
|
||||
799,Algerie 3 ,DTV,
|
||||
765,ARAGON TV INT ,DTV,
|
||||
797,Bloomberg Europe TV ,DTV,
|
||||
812,BVN TV ,DTV,
|
||||
800,Canal Algerie ,DTV,
|
||||
732,CANAL SUR A. ,DTV,
|
||||
794,CGTN ,DTV,
|
||||
792,CGTN Documentary ,DTV,
|
||||
793,CGTN F ,DTV,
|
||||
801,CNN Int. ,DTV,
|
||||
786,Cubavision Internacional ,DTV,
|
||||
811,DW English HD ,DTV,
|
||||
282,EURONEWS FRENCH SD ,DTV,
|
||||
775,EXTREMADURA SAT ,DTV,
|
||||
790,France 24 (en Francais) ,DTV,
|
||||
791,France 24 (In English) ,DTV,
|
||||
693,I24 Francis ,DTV,
|
||||
109,Kaufbei.tv ,DTV,
|
||||
1205,RAI News 24 ,DTV,
|
||||
470,Sky News Intl ,DTV,
|
||||
798,Sonlife Broadcasting Network ,DTV,
|
||||
1206,TV Trwam ,DTV,
|
||||
795,TV5MONDE EUROPE HD ,DTV,
|
||||
111,TVRUS ,DTV,
|
||||
4,Test-R ,DTV,
|
||||
488,GayBoys LIVE ,DTV,
|
||||
491,Dreamgirls24 TV temp ,DTV,
|
||||
492,Erotiksat24 TV temp ,DTV,
|
||||
494,Maennersache TV ,DTV,
|
||||
495,DateLine ,DTV,
|
||||
496,Fotohandy ,DTV,
|
||||
497,Mobile Sex ,DTV,
|
||||
498,SEX-Kontakte ,DTV,
|
||||
499,Traumfrauen TV ,DTV,
|
||||
500,Heiss und Sexy TV ,DTV,
|
||||
503,Babestation24 ,DTV,
|
||||
504,EROTIKA TV - NEU! ,DTV,
|
||||
505,BunnyClub24 ,DTV,
|
||||
506,Clipmobile ,DTV,
|
||||
530,VISIT-X.tv ,DTV,
|
||||
501,Lilo TV ,DTV,
|
||||
875,MTV Music 24 ,DTV,
|
||||
879,VH1 ,DTV,
|
||||
880,MTV 80s ,DTV,
|
||||
1027,DORCEL XXX ,DTV,
|
||||
1028,DORCEL TV ,DTV,
|
||||
415,AB3 ,DTV,
|
||||
416,Elevensports 1 FR ,DTV,
|
||||
418,AXN Deutschland ,DTV,
|
||||
419,Elevensports1 ,DTV,
|
||||
420,VElevensports1 ,DTV,
|
||||
421,ElevenSports2 ,DTV,
|
||||
422,VElevenSports2 ,DTV,
|
||||
423,Eleven Sports Pro League 1 FR ,DTV,
|
||||
424,Hustler TV ,DTV,
|
||||
425,Hustler TV CZ ,DTV,
|
||||
426,Vivid ,DTV,
|
||||
427,Vivid CZ ,DTV,
|
||||
428,RTL Lounge ,DTV,
|
||||
314,NDR 1 Radio MV SN ,Radio,
|
||||
313,NDR1 Welle Nord KI ,Radio,
|
||||
315,NDR 1 Nieders. HAN ,Radio,
|
||||
312,NDR 90 3 ,Radio,
|
||||
319,Bremen Eins ,Radio,
|
||||
325,rbb 88.8 ,Radio,
|
||||
324,Antenne Brandenburg ,Radio,
|
||||
300,MDR SACHSEN DD ,Radio,
|
||||
301,MDR S-ANHALT MD ,Radio,
|
||||
302,MDR TH<54>R Mitte-W ,Radio,
|
||||
297,hr4 ,Radio,
|
||||
330,SR 3 Saarlandwelle ,Radio,
|
||||
331,SWR1 BW ,Radio,
|
||||
332,SWR1 RP ,Radio,
|
||||
335,SWR4 BW ,Radio,
|
||||
336,SWR4 RP ,Radio,
|
||||
285,Bayern 1 ,Radio,
|
||||
262,ANTENNE BAYERN ,Radio,
|
||||
340,WDR 2 Rheinland ,Radio,
|
||||
342,WDR 4 ,Radio,
|
||||
408,egoFM ,Radio,
|
||||
513,harmony.fm ,Radio,
|
||||
317,NDR Blue ,Radio,
|
||||
318,NDR Plus ,Radio,
|
||||
508,Radio Paloma ,Radio,
|
||||
517,Schlager Radio B2 ,Radio,
|
||||
290,BR Schlager ,Radio,
|
||||
511,HIT RADIO FFH ,Radio,
|
||||
548,U1 Tirol ,Radio,
|
||||
539,OE2 B ,Radio,
|
||||
545,OE2 K ,Radio,
|
||||
538,OE2 N ,Radio,
|
||||
540,OE2 O ,Radio,
|
||||
541,OE2 S ,Radio,
|
||||
544,OE2 St ,Radio,
|
||||
542,OE2 T ,Radio,
|
||||
543,OE2 V ,Radio,
|
||||
537,OE2 W ,Radio,
|
||||
546,OE3 ,Radio,
|
||||
547,FM4 ,Radio,
|
||||
308,NDR 2 NDS ,Radio,
|
||||
311,N-JOY ,Radio,
|
||||
321,Bremen Vier ,Radio,
|
||||
327,Fritz ,Radio,
|
||||
326,radioeins ,Radio,
|
||||
339,1LIVE ,Radio,
|
||||
345,1LIVE diGGi ,Radio,
|
||||
304,MDR JUMP ,Radio,
|
||||
305,MDR SPUTNIK ,Radio,
|
||||
296,hr3 ,Radio,
|
||||
298,YOU FM ,Radio,
|
||||
328,SR 1 Europawelle ,Radio,
|
||||
334,SWR3 ,Radio,
|
||||
337,DASDING ,Radio,
|
||||
287,BAYERN 3 ,Radio,
|
||||
291,PULS ,Radio,
|
||||
507,ffn ,Radio,
|
||||
294,hr1 ,Radio,
|
||||
512,planet radio ,Radio,
|
||||
259,ERF Pop ,Radio,
|
||||
257,ROCK ANTENNE ,Radio,
|
||||
412,JAM FM ,Radio,
|
||||
261,sunshine live ,Radio,
|
||||
475,RTL RADIO ,Radio,
|
||||
346,Die Maus ,Radio,
|
||||
275,TOGGO Radio ,Radio,
|
||||
344,COSMO ,Radio,
|
||||
320,Bremen Zwei ,Radio,
|
||||
295,hr2 ,Radio,
|
||||
333,SWR2 ,Radio,
|
||||
289,B5 aktuell ,Radio,
|
||||
293,B5 plus ,Radio,
|
||||
286,Bayern 2 ,Radio,
|
||||
196,Dlf ,Radio,
|
||||
201,Dlf Nova ,Radio,
|
||||
202,DRadio DokDeb ,Radio,
|
||||
299,hr-iNFO ,Radio,
|
||||
322,Inforadio ,Radio,
|
||||
306,MDR AKTUELL ,Radio,
|
||||
310,NDR Info NDS ,Radio,
|
||||
316,NDR Info Spez. ,Radio,
|
||||
338,SWR Aktuell ,Radio,
|
||||
341,WDR 3 ,Radio,
|
||||
288,BR-KLASSIK ,Radio,
|
||||
409,Klassik Radio ,Radio,
|
||||
307,MDR KLASSIK ,Radio,
|
||||
535,OE1 ,Radio,
|
||||
536,OE1 DD ,Radio,
|
||||
292,BR Heimat ,Radio,
|
||||
195,Dlf Kultur ,Radio,
|
||||
323,rbbKultur ,Radio,
|
||||
303,MDR KULTUR ,Radio,
|
||||
309,NDR Kultur ,Radio,
|
||||
329,SR 2 KulturRadio ,Radio,
|
||||
343,WDR 5 ,Radio,
|
||||
347,WDR Event ,Radio,
|
||||
432,Radio Lebensquelle ,Radio,
|
||||
433,Radio Freundes-Dienst ,Radio,
|
||||
258,ERF Plus ,Radio,
|
||||
549,RADIO MARIA ,Radio,
|
||||
469,Radio Horeb ,Radio,
|
||||
509,Radio HBR ,Radio,
|
||||
516,Radio HCJB ,Radio,
|
||||
510,Radio Gloria ,Radio,
|
||||
[E],,,
|
||||
|
1131
source/Test.Loader.Sharp/TestFiles/DVBS_Program5.csv
Normal file
1131
source/Test.Loader.Sharp/TestFiles/DVBS_Program5.csv
Normal file
File diff suppressed because it is too large
Load Diff
1113
source/Test.Loader.Sharp/TestFiles/MS6486_DVBS_CHANNEL_TABLE.csv
Normal file
1113
source/Test.Loader.Sharp/TestFiles/MS6486_DVBS_CHANNEL_TABLE.csv
Normal file
File diff suppressed because it is too large
Load Diff
5
source/Test.Loader.Sharp/packages.config
Normal file
5
source/Test.Loader.Sharp/packages.config
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="MSTest.TestAdapter" version="2.1.2" targetFramework="net48" />
|
||||
<package id="MSTest.TestFramework" version="2.1.2" targetFramework="net48" />
|
||||
</packages>
|
||||
@@ -1,12 +1,12 @@
|
||||
ChanSort Change Log
|
||||
===================
|
||||
|
||||
2021-03-13 (alpha)
|
||||
- Enigma2 lamedb / bouquets support for Linux based Set-Top-Boxes (Dreambox, VU+, Octagon, ...)
|
||||
2021-03-15 (alpha)
|
||||
- Enigma2: added support for Linux based Set-Top-Boxes (Dreambox, VU+, Octagon, ...) using lamedb and bouquets
|
||||
- Sharp, Dyon, Blaupunkt, ...: added support for DVBS_Program.csv and \*DVBS_CHANNEL_TABLE.csv files
|
||||
- Toshiba settingsDB.db: support for lists without analog tuner data (missing TADTunerDataTable)
|
||||
- Grunding: failed to load lists where the <Digital> element did not contain a <channels> child element
|
||||
- W.I.P: reworking the reference list system so that a given flat list of channels can be applied to the
|
||||
main channel numbers or a particular favorite list.
|
||||
- refrence lists can now be applied to main channel numbers (as before) or to a specific favorite list (new)
|
||||
|
||||
2021-02-24
|
||||
- Philips ChannelMap\_45: TV did not remember last selected favorite list when first fav list was created by ChanSort.
|
||||
|
||||
Reference in New Issue
Block a user