merged Philips loaders into one

This commit is contained in:
Horst Beham
2021-01-09 12:06:32 +01:00
parent 24b19b2c17
commit fd603ac8ec
94 changed files with 1808 additions and 632 deletions

View File

@@ -89,6 +89,7 @@
<Compile Include="Utils\DelegateComparer.cs" />
<Compile Include="Utils\DependencyChecker.cs" />
<Compile Include="Utils\FileAssociation.cs" />
<Compile Include="Utils\Crc16.cs" />
<Compile Include="View\View.cs" />
<None Include="Utils\ChannelMappingBase.cs" />
<Compile Include="Utils\BrowserHelper.cs" />

View File

@@ -1,7 +1,8 @@
namespace ChanSort.Loader.PhilipsBin
namespace ChanSort.Api
{
public class ModbusCrc16
public class Crc16
{
// CRC-16-IBM aka Modbus, LSB first (right shift) with polynomial 0x8005
private static readonly ushort[] CrcTable = {
0X0000, 0XC0C1, 0XC181, 0X0140, 0XC301, 0X03C0, 0X0280, 0XC241,
0XC601, 0X06C0, 0X0780, 0XC741, 0X0500, 0XC5C1, 0XC481, 0X0440,

View File

@@ -6,12 +6,12 @@ using System.Reflection;
using System.Text;
using ChanSort.Api;
namespace ChanSort.Loader.PhilipsBin
namespace ChanSort.Loader.Philips
{
/*
channellib\CableDigSrvTable:
===========================
Channels in this file are not phyiscally ordered by the program number and there is no linked list with prev/next indexes.
Channels in this file are not physically ordered by the program number and there is no linked list with prev/next indexes.
When editing a channel with the Philips Channel Editor, it only updates the progNr field (and overwrites all trailing bytes of the channel name with 0x00).
There is also the CablePresetTable file which is probably used for LCN. The Philips tool also updates the progNr in that file and uses it as is primary source
for the progNr. I don't know if there is a direct reference from the channel to the preset, hence this code uses the combination of ONID+TSID+SID to link the two.
@@ -36,7 +36,7 @@ namespace ChanSort.Loader.PhilipsBin
The Philips editor even saves non-linear lists, but not in any particular order.
*/
class Serializer : SerializerBase
class BinarySerializer : SerializerBase
{
private readonly IniFile ini;
private readonly List<string> dataFilePaths = new List<string>();
@@ -47,7 +47,7 @@ namespace ChanSort.Loader.PhilipsBin
private readonly StringBuilder logMessages = new StringBuilder();
#region ctor()
public Serializer(string inputFile) : base(inputFile)
public BinarySerializer(string inputFile) : base(inputFile)
{
this.Features.ChannelNameEdit = ChannelNameEditMode.None;
this.Features.CanSkipChannels = false;
@@ -105,21 +105,25 @@ namespace ChanSort.Loader.PhilipsBin
var channellib = Path.Combine(dir, "channellib");
var s2channellib = Path.Combine(dir, "s2channellib");
// channellib files for DVB-C/T
LoadDvbCT(dvbtChannels, Path.Combine(channellib, "AntennaDigSrvTable"));
// channellib files for DVB-C/T in version 1.1 and 1.2
LoadDvbCT(dvbtChannels, Path.Combine(channellib, "AntennaDigSrvTable"), "CableDigSrvTable_entry");
LoadDvbCTPresets(dvbtChannels, Path.Combine(channellib, "AntennaPresetTable"));
LoadDvbCT(dvbcChannels, Path.Combine(channellib, "CableDigSrvTable"));
LoadDvbCT(dvbcChannels, Path.Combine(channellib, "CableDigSrvTable"), "CableDigSrvTable_entry");
LoadDvbCTPresets(dvbcChannels, Path.Combine(channellib, "CablePresetTable"));
// s2channellib files for DVB-S
// s2channellib files for DVB-S in version 1.1 and 1.2
LoadDvbsSatellites(Path.Combine(s2channellib, "satellite.dat"));
LoadDvbsTransponders(Path.Combine(s2channellib, "tuneinfo.dat"));
LoadDvbS(satChannels, Path.Combine(s2channellib, "service.dat"));
LoadDvbS(satChannels, Path.Combine(s2channellib, "service.dat"), "service.dat_entry");
LoadDvbsFavorites(Path.Combine(s2channellib, "favorite.dat"));
var db_file_info = Path.Combine(s2channellib, "db_file_info.dat");
if (File.Exists(db_file_info))
this.dataFilePaths.Add(db_file_info);
// version 45
if (chanLstBin.VersionMajor == 45)
LoadDvbS(satChannels, Path.Combine(s2channellib, "SatelliteDb.bin"), "Map45_SatelliteDb_entry");
// for a proper ChanSort backup/restore with .bak files, the Philips _backup.dat files must also be included
foreach (var file in this.dataFilePaths.ToList())
{
@@ -159,12 +163,12 @@ namespace ChanSort.Loader.PhilipsBin
#endregion
#region LoadDvbCT
private void LoadDvbCT(ChannelList list, string path)
private void LoadDvbCT(ChannelList list, string path, string mappingName)
{
if (!ReadAndValidateChannellibFile(path, out var data, out var recordSize, out var recordCount))
return;
var mapping = new DataMapping(this.ini.GetSection("CableDigSrvTable_entry"));
var mapping = new DataMapping(this.ini.GetSection(mappingName));
mapping.SetDataPtr(data, 20);
for (int i = 0; i < recordCount; i++, mapping.BaseOffset += recordSize)
@@ -340,7 +344,7 @@ namespace ChanSort.Loader.PhilipsBin
#endregion
#region LoadDvbS
private void LoadDvbS(ChannelList list, string path)
private void LoadDvbS(ChannelList list, string path, string mappingName)
{
if (!File.Exists(path))
return;
@@ -349,26 +353,33 @@ namespace ChanSort.Loader.PhilipsBin
if (data.Length < 4)
return;
var checksum = BitConverter.ToUInt32(data, data.Length - 4);
if (chanLstBin.VersionMajor == 1)
{
var checksum = BitConverter.ToUInt32(data, data.Length - 4);
var crcObj = new Crc32(false, Crc32.NormalPoly);
var crc = ~crcObj.CalcCrc32(data, 0, data.Length - 4);
if (checksum != crc)
throw new FileLoadException("Invalid CRC32 in " + path);
}
var crcObj = new Crc32(false, Crc32.NormalPoly);
var crc = ~crcObj.CalcCrc32(data, 0, data.Length - 4);
if (checksum != crc)
throw new FileLoadException("Invalid CRC32 in " + path);
int recordSize = BitConverter.ToInt32(data, 4);
int recordCount = BitConverter.ToInt32(data, 8);
// 12 bytes header, then a "next/prev" table, then the service records, then a CRC32
// the "next/prev" table is a ring-list, every entry consists of 2 ushorts with the next and previous channel, wrapping around on the ends
if (data.Length != 12 + recordCount * 4 + recordCount * recordSize + 4)
throw new FileLoadException("Unsupported file content: " + path);
if (chanLstBin.VersionMajor == 1)
{
// 12 bytes header, then a "next/prev" table, then the service records, then a CRC32
// the "next/prev" table is a ring-list, every entry consists of 2 ushorts with the next and previous channel, wrapping around on the ends
if (data.Length != 12 + recordCount * 4 + recordCount * recordSize + 4)
throw new FileLoadException("Unsupported file content: " + path);
}
this.dataFilePaths.Add(path);
var dvbStringDecoder = new DvbStringDecoder(this.DefaultEncoding);
var mapping = new DataMapping(this.ini.GetSection("service.dat_entry"));
var mapping = new DataMapping(this.ini.GetSection(mappingName));
mapping.SetDataPtr(data, 12 + recordCount * 4);
for (int i = 0; i < recordCount; i++, mapping.BaseOffset += recordSize)
{

View File

@@ -2,8 +2,9 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using ChanSort.Api;
namespace ChanSort.Loader.PhilipsBin
namespace ChanSort.Loader.Philips
{
class ChanLstBin
{
@@ -33,8 +34,8 @@ namespace ChanSort.Loader.PhilipsBin
private byte[] content;
private readonly Dictionary<string,int> crcOffsetByRelPath = new Dictionary<string, int>();
private uint versionMinor;
private uint versionMajor;
public uint VersionMinor { get; private set; }
public uint VersionMajor { get; private set; }
private Action<string> log;
public void Load(string path, Action<string> log)
@@ -43,9 +44,9 @@ namespace ChanSort.Loader.PhilipsBin
this.content = File.ReadAllBytes(path);
var off = 0;
versionMinor = BitConverter.ToUInt16(content, off);
VersionMinor = BitConverter.ToUInt16(content, off);
off += 2;
versionMajor = BitConverter.ToUInt16(content, off);
VersionMajor = BitConverter.ToUInt16(content, off);
off += 2;
// skip unknown 14 bytes
@@ -93,8 +94,8 @@ namespace ChanSort.Loader.PhilipsBin
if (!File.Exists(filePath))
continue;
var data = File.ReadAllBytes(filePath);
var length = Math.Min(data.Length, versionMajor <= 12 ? 0x6000 : 0x145A00);
var actualCrc = ModbusCrc16.Calc(data, 0, length);
var length = Math.Min(data.Length, VersionMajor <= 12 ? 0x6000 : 0x145A00);
var actualCrc = Crc16.Calc(data, 0, length);
if (actualCrc != expectedCrc)
{
var msg = $"chanLst.bin: stored CRC for {entry.Key} is {expectedCrc:x4} but calculated {actualCrc:x4}";
@@ -116,8 +117,8 @@ namespace ChanSort.Loader.PhilipsBin
{
var path = baseDir + entry.Key;
var data = File.ReadAllBytes(path);
var length = Math.Min(data.Length, versionMajor <= 12 ? 0x6000 : 0x145A00);
var crc = ModbusCrc16.Calc(data, 0, length);
var length = Math.Min(data.Length, VersionMajor <= 12 ? 0x6000 : 0x145A00);
var crc = Crc16.Calc(data, 0, length);
var off = entry.Value;
content[off] = (byte) crc;
content[off + 1] = (byte) (crc >> 8);

View File

@@ -7,8 +7,8 @@
<ProjectGuid>{1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChanSort.Loader.PhilipsBin</RootNamespace>
<AssemblyName>ChanSort.Loader.PhilipsBin</AssemblyName>
<RootNamespace>ChanSort.Loader.Philips</RootNamespace>
<AssemblyName>ChanSort.Loader.Philips</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
@@ -66,10 +66,11 @@
<ItemGroup>
<Compile Include="ChanLstBin.cs" />
<Compile Include="Channel.cs" />
<Compile Include="ModbusCrc16.cs" />
<Compile Include="CustomXmlWriter.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Serializer.cs" />
<Compile Include="SerializerPlugin.cs" />
<Compile Include="BinarySerializer.cs" />
<Compile Include="PhilipsLoader.cs" />
<Compile Include="XmlSerializer.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
@@ -78,7 +79,7 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="ChanSort.Loader.PhilipsBin.ini">
<Content Include="ChanSort.Loader.Philips.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>

View File

@@ -1,4 +1,6 @@
[service.dat_entry]
# ChannelMap_11 format
[service.dat_entry]
offPcrPid=0
maskPcrPid=0x1FFF
offLocked=3
@@ -41,4 +43,25 @@ offSid=18
[CableFrqMapTable_entry]
offChecksum=0
offSymbolRate=8
offFreq=18
offFreq=18
# ChannelMap_45 format
[Map45_SatelliteDbBin_entry]
offId=0
offFreq=4
offProgNr=8
offAnalogUid=12
offOnid=16
offTsid=20
offSid=24
offSymbolRate=28
offLogoNr=32
offScrambleStat=36
offLocked=40
offModulateion=44
offServiceType=52
offName=80
lenName=64
offSatName=146
lenSatName=64

View File

@@ -0,0 +1,32 @@
using System.Xml;
using ChanSort.Api;
namespace ChanSort.Loader.Philips
{
internal class Channel : ChannelInfo
{
public Channel(SignalSource source, long index, int oldProgNr, string name) : base(source, index, oldProgNr, name)
{
}
internal Channel(SignalSource source, int order, int rowId, XmlNode setupNode)
{
this.SignalSource = source;
this.RecordOrder = order;
this.RecordIndex = rowId;
this.SetupNode = setupNode;
}
/// <summary>
/// index of the record in the AntennaPresetTable / CablePresetTable file for the channel, matched by (onid + tsid + sid)
/// </summary>
public int PresetTableIndex { get; set; } = -1;
// fields relevant for ChannelMap_100 and later (XML nodes)
public readonly XmlNode SetupNode;
public string RawName;
public string RawSatellite;
public int Format;
}
}

View File

@@ -2,7 +2,7 @@
using System.IO;
using System.Xml;
namespace ChanSort.Loader.PhilipsXml
namespace ChanSort.Loader.Philips
{
/// <summary>
/// This XmlWriter replaces some characters with Char- or Entity- references the same way

View File

@@ -0,0 +1,89 @@
namespace ChanSort.Loader.PhilipsBin
{
class Serializer
{
[DllImport("Cable.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int ConvertToXML_Cable([MarshalAs(UnmanagedType.LPArray)] byte[] path, [MarshalAs(UnmanagedType.LPArray)] byte[] read_buff);
[DllImport("Cable.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int ConvertToBIN_Cable([MarshalAs(UnmanagedType.LPArray)] byte[] read_buff);
//[DllImport("Cable.dll")]
//public static extern int GetFavoriteList([MarshalAs(UnmanagedType.I4)] int ListId, [MarshalAs(UnmanagedType.LPArray)] int[] NoOfRecords, [MarshalAs(UnmanagedType.LPArray)] int[] ChannelIdList);
//[DllImport("Cable.dll")]
//public static extern int SetFavoriteList([MarshalAs(UnmanagedType.I4)] int ListId, [MarshalAs(UnmanagedType.I4)] int NoOfRecords, [MarshalAs(UnmanagedType.LPArray)] int[] ChannelIdList);
[DllImport("dvbs2_cte.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int ConvertToXML_Satellite([MarshalAs(UnmanagedType.LPArray)] byte[] path, [MarshalAs(UnmanagedType.LPArray)] byte[] read_buff);
//public static extern int ConvertToXML_Satellite(IntPtr pathAs8BitChar, [MarshalAs(UnmanagedType.LPArray)] byte[] read_buff);
[DllImport("dvbs2_cte.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int ConvertToBin_Satellite([MarshalAs(UnmanagedType.LPArray)] byte[] read_buff);
/*
[DllImport("dvbs2_cte.dll")]
public static extern int GetFavoriteList([MarshalAs(UnmanagedType.I4)] int ListId, [MarshalAs(UnmanagedType.LPArray)] int[] NoOfRecords, [MarshalAs(UnmanagedType.LPArray)] int[] ChannelIdList);
[DllImport("dvbs2_cte.dll")]
public static extern int SetFavoriteList([MarshalAs(UnmanagedType.I4)] int ListId, [MarshalAs(UnmanagedType.I4)] int NoOfRecords, [MarshalAs(UnmanagedType.LPArray)] int[] ChannelIdList);
*/
[DllImport("kernel32.dll")]
private static extern int LoadLibrary(string strLib);
[DllImport("kernel32.dll")]
private static extern int FreeLibrary(int iModule);
[DllImport("kernel32.dll")]
private static extern IntPtr GetProcAddress(int iModule, string strProcName);
#region Load()
public override void Load()
{
var dir = Path.GetDirectoryName(this.FileName) + "\\";
var fname = Encoding.Default.GetBytes(dir);
//var ptr = Marshal.AllocHGlobal(enc.Length);
//var handle = GCHandle.Alloc(fname, GCHandleType.Pinned);
//var ptr = handle.AddrOfPinnedObject();
var arr = new byte[10 * 1024 * 1024];
//int r1 = 0;
//PhilipsChannelEditor.BinaryDll.CSatellite.GetBinaryFilesToXML(ref r1, dir);
var hLib = LoadLibrary("Cable.dll");
var addr = GetProcAddress(hLib, "ConvertToBIN_Cable");
try
{
//var r1 = PhilipsChannelEditor.BinaryDll.CSatellite.ConvertToXML_Satellite(fname, arr);
//var r1 = ConvertToXML_Cable(ptr, arr);
var sat = this.FileName.Contains("\\s2");
var r1 = sat ? ConvertToXML_Satellite(fname, arr) : ConvertToXML_Cable(fname, arr);
if (r1 != 0)
throw new FileLoadException("Philips DLL returned error code loading file: " + r1);
int len = 0;
while (arr[len] != 0)
++len;
using (var file = new FileStream(@"c:\temp\philips.xml", FileMode.Create))
file.Write(arr, 0, len);
var arr2 = new byte[len + 1];
Array.Copy(arr, arr2, len);
arr2[len] = 0;
var r2 = sat ? ConvertToBin_Satellite(arr2) : ConvertToBIN_Cable(arr2);
if (r2 != 0)
throw new FileLoadException("Philips DLL returned error code saving file: " + r2);
}
finally
{
FreeLibrary(hLib);
}
}
#endregion
}
}

View File

@@ -0,0 +1,121 @@
using System;
using System.IO;
using System.Text.RegularExpressions;
using ChanSort.Api;
namespace ChanSort.Loader.Philips
{
public class PhilipsLoader : ISerializerPlugin
{
/*
* Philips has a whole lot of completely incompatible channel list file formats with different folder structures.
* Most formats have a chanLst.bin file, which contains a minor and major version number in the header and CRC16 checksums for various other files.
* (first word is the minor, second word the major)
*
* version -1 (not an official number):
* Repair\mgr_chan_dvbt.db (binary file, not a SQLite database)
* Repair\FLASH_*
* no chanLst.bin
*
* version 0 (not an official number):
* Repair\CM_*_LA_CK.BIN (+ a hidden .xml file with the actual channel list)
* e.g. 47PFL5008K
* no chanLst.bin
*
* version 1.1
* Repair\ChannelList\chanLst.bin
* Repair\ChannelList\channellib\CableDigSrvTable
* Repair\ChannelList\s2channellib\service.dat
* e.g. 32PFL5806K/02, 42PFL7656K/02
*
* version 1.2
* same as version 1.1
* e.g. 32PFL5507K/12, 42PFL4317K/12, 32PFL5507K/12
*
* version 11.1
* PhilipsChannelMaps\ChannelMap_11\ChannelList\chanLst.bin
* PhilipsChannelMaps\ChannelMap_11\ChannelList\channelLib\*Table (as with 1.1)
* PhilipsChannelMaps\ChannelMap_11\ChannelList\s2channellib\*.dat (as with 1.1)
* PhilipsChannelMaps\ChannelMap_11\ChannelList\s2channellib\Satellite*Table (new here)
* e.g. 55PFL8008S/12
*
* version 45.1
* PhilipsChannelMaps\ChannelMap_45\ChannelList\chanLst.bin
* PhilipsChannelMaps\ChannelMap_45\ChannelList\list.db (SQLite database including all channels - maybe just for EPG?)
* PhilipsChannelMaps\ChannelMap_45\ChannelList\channelLib\*Db.bin
* PhilipsChannelMaps\ChannelMap_45\ChannelList\s2channellib\*Db.bin
* e.g. 65PUS7601/12, 55PUS6581/12, 43PUS6401/12, 55PUS8601/12
*
* version 100.0
* PhilipsChannelMaps\ChannelMap_100\ChannelList\chanLst.bin
* PhilipsChannelMaps\ChannelMap_100\ChannelList\channellib\DVB*.xml
* PhilipsChannelMaps\ChannelMap_100\ChannelList\s2channellib\DVBS.xml
* e.g. 65PUS6754/12, 24PFT4022/12
*
* version 105.0
* PhilipsChannelMaps\ChannelMap_105\Favorite.xml
* rest like 100.0
* e.g. 43PUS7307/12, 49PUS8303/12, 65PUS8503/12, 55OLED803/12
*
* version 110.0
* same as 105.0
* e.g. 65PUS8535/12, 55PUS7334/12
*
*
* Version 0.1 and 100-110 are XML based and loaded through the XmlSerializer.
* Version 1.1 and 1.2 are loaded through the BinSerializer.
* Version 0.0, 11.1 and 45.1 are not supported yet.
*/
public string DllName { get; set; }
public string PluginName => "Philips";
public string FileFilter => "*.bin;*.xml";
public SerializerBase CreateSerializer(string inputFile)
{
int majorVersion = int.MinValue;
var filename = Path.GetFileName(inputFile).ToLower();
if (Regex.IsMatch(filename, @"^CM_.*\.(?:bin|xml)$", RegexOptions.IgnoreCase))
majorVersion = 0;
else
{
// allow the user to pick pretty much any file within a Repair\ChannelList or PhilipsChannelMaps\ChannelMap_xxx\ChannelList structure to find a chanLst.bin
var dir = Path.GetDirectoryName(inputFile);
while(true)
{
var path = Path.Combine(dir, "chanLst.bin");
if (File.Exists(path))
{
inputFile = path;
var data = File.ReadAllBytes(inputFile);
majorVersion = BitConverter.ToInt16(data, 2);
break;
}
var dirName = Path.GetFileName(dir).ToLower();
if (dirName == "channellib" || dirName == "s2channellib")
dir = Path.GetDirectoryName(dir);
else if (Directory.Exists(Path.Combine(dir, "PhilipsChannelMaps")))
dir = Path.Combine(dir, "PhilipsChannelMaps");
else if (Directory.Exists(Path.Combine(dir, "ChannelList")))
dir = Path.Combine(dir, "ChannelList");
else
{
var maps = Directory.GetDirectories(dir, "ChannelMap_*");
if (maps.Length > 0)
dir = maps[0];
else
break;
}
}
}
if (majorVersion == 0 || majorVersion >= 100 && majorVersion <= 110)
return new XmlSerializer(inputFile);
if (majorVersion == 1)
return new BinarySerializer(inputFile);
throw new FileLoadException($"Selected file must be either chanLst.bin or CM_*.xml/.bin");
}
}
}

View File

@@ -2,17 +2,22 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Remoting.Channels;
using System.Text;
using System.Xml;
using System.Xml.Schema;
using ChanSort.Api;
using ChanSort.Loader.PhilipsBin;
namespace ChanSort.Loader.PhilipsXml
namespace ChanSort.Loader.Philips
{
/*
This loader supports 2 different kinds of XML files from Philips.
This loader supports 2 different kinds of XML files from Philips, the first in a "Repair" folder, the others in a "ChannelMap_xxx" folder
Example from Repair\CM_TPM1013E_LA_CK.xml:
<Channel>
<Setup oldpresetnumber="1" presetnumber="1" name="Das Erste" ></Setup>
<Broadcast medium="dvbc" frequency="410000" system="west" serviceID="1" ONID="41985" TSID="1101" modulation="256" symbolrate="6901000" bandwidth="Unknown"></Broadcast>
</Channel>
<Channel>
<Setup SatelliteName="0x54 0x00 0x55 0x00 0x52 0x00 0x4B 0x00 0x53 0x00 0x41 0x00 0x54 0x00 0x20 0x00 0x34 0x00 0x32 0x00 0x45 0x00 " ChannelNumber="1" ChannelName="0x54 0x00 0xC4 0x00 0xB0 0x00 0x56 0x00 0xC4 0x00 0xB0 0x00 0x42 0x00 0x55 0x00 0x20 0x00 0x53 0x00 0x50 0x00 0x4F 0x00 0x52 0x00 " ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" />
@@ -38,36 +43,26 @@ namespace ChanSort.Loader.PhilipsXml
</Channel>
The other file was "CM_TPM1013E_LA_CK.xml" with entries like:
<Channel>
<Setup oldpresetnumber="1" presetnumber="1" name="Das Erste" ></Setup>
<Broadcast medium="dvbc" frequency="410000" system="west" serviceID="1" ONID="41985" TSID="1101" modulation="256" symbolrate="6901000" bandwidth="Unknown"></Broadcast>
</Channel>
DVB-T and DVB-C share the same number range, so they are treated as a unified logical list
*/
class Serializer : SerializerBase
class XmlSerializer : SerializerBase
{
private readonly ChannelList analogChannels = new ChannelList(SignalSource.DvbCT, "Analog C/T");
private readonly ChannelList dvbctChannels = new ChannelList(SignalSource.DvbCT, "DVB-C/T");
private readonly ChannelList analogChannels = new ChannelList(SignalSource.AnalogCT, "Analog C/T");
private readonly ChannelList dvbtChannels = new ChannelList(SignalSource.DvbT, "DVB-T");
private readonly ChannelList dvbcChannels = new ChannelList(SignalSource.DvbC, "DVB-C");
private readonly ChannelList satChannels = new ChannelList(SignalSource.DvbS, "DVB-S");
private readonly ChannelList allSatChannels = new ChannelList(SignalSource.DvbS, "DVB-S all");
private readonly ChannelList favChannels = new ChannelList(SignalSource.All, "Favorites");
private readonly List<FileData> fileDataList = new List<FileData>();
//private XmlDocument doc;
//private byte[] content;
//private string textContent;
//private string newline;
//private int formatVersion;
private ChanLstBin chanLstBin;
private readonly StringBuilder logMessages = new StringBuilder();
#region ctor()
public Serializer(string inputFile) : base(inputFile)
public XmlSerializer(string inputFile) : base(inputFile)
{
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
this.Features.CanSkipChannels = false;
@@ -79,12 +74,14 @@ namespace ChanSort.Loader.PhilipsXml
this.Features.CanEditFavListNames = true;
this.DataRoot.AddChannelList(this.analogChannels);
this.DataRoot.AddChannelList(this.dvbctChannels);
this.DataRoot.AddChannelList(this.dvbtChannels);
this.DataRoot.AddChannelList(this.dvbcChannels);
this.DataRoot.AddChannelList(this.satChannels);
this.DataRoot.AddChannelList(this.allSatChannels);
this.DataRoot.AddChannelList(this.favChannels);
this.dvbctChannels.VisibleColumnFieldNames.Add("Source");
this.dvbtChannels.VisibleColumnFieldNames.Add("Source");
this.dvbcChannels.VisibleColumnFieldNames.Add("Source");
foreach (var list in this.DataRoot.ChannelLists)
{
@@ -289,8 +286,10 @@ namespace ChanSort.Loader.PhilipsXml
chList = this.analogChannels;
break;
case "dvbc":
chList = this.dvbcChannels;
break;
case "dvbt":
chList = this.dvbctChannels;
chList = this.dvbtChannels;
break;
case "dvbs":
chList = this.satChannels;

View File

@@ -1,16 +0,0 @@
using ChanSort.Api;
namespace ChanSort.Loader.PhilipsBin
{
class Channel : ChannelInfo
{
public Channel(SignalSource source, long index, int oldProgNr, string name) : base(source, index, oldProgNr, name)
{
}
/// <summary>
/// index of the record in the AntennaPresetTable / CablePresetTable file for the channel, matched by (onid + tsid + sid)
/// </summary>
public int PresetTableIndex { get; set; } = -1;
}
}

View File

@@ -1,16 +0,0 @@
using ChanSort.Api;
namespace ChanSort.Loader.PhilipsBin
{
public class SerializerPlugin : ISerializerPlugin
{
public string DllName { get; set; }
public string PluginName => "Philips .bin/.dat";
public string FileFilter => "*.bin;*.dat";
public SerializerBase CreateSerializer(string inputFile)
{
return new Serializer(inputFile);
}
}
}

View File

@@ -1,85 +0,0 @@
<?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>{D7BAFD55-50F5-46C3-A76B-2193BED5358F}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChanSort.Loader.PhilipsXml</RootNamespace>
<AssemblyName>ChanSort.Loader.PhilipsXml</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</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>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>..\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</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.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\ChanSort.Loader.PhilipsBin\ChanLstBin.cs">
<Link>ChanLstBin.cs</Link>
</Compile>
<Compile Include="..\ChanSort.Loader.PhilipsBin\ModbusCrc16.cs">
<Link>ModbusCrc16.cs</Link>
</Compile>
<Compile Include="Channel.cs" />
<Compile Include="CustomXmlWriter.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Serializer.cs" />
<Compile Include="SerializerPlugin.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>

View File

@@ -1,21 +0,0 @@
using System.Xml;
using ChanSort.Api;
namespace ChanSort.Loader.PhilipsXml
{
internal class Channel : ChannelInfo
{
public readonly XmlNode SetupNode;
public string RawName;
public string RawSatellite;
public int Format;
internal Channel(SignalSource source, int order, int rowId, XmlNode setupNode)
{
this.SignalSource = source;
this.RecordOrder = order;
this.RecordIndex = rowId;
this.SetupNode = setupNode;
}
}
}

View File

@@ -1,36 +0,0 @@
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.PhilipsXml")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ChanSort.Loader.PhilipsXml")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[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("d7bafd55-50f5-46c3-a76b-2193bed5358f")]
// 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")]

View File

@@ -1,16 +0,0 @@
using ChanSort.Api;
namespace ChanSort.Loader.PhilipsXml
{
public class SerializerPlugin : ISerializerPlugin
{
public string DllName { get; set; }
public string PluginName => "Philips .xml";
public string FileFilter => "*.xml;*.bin";
public SerializerBase CreateSerializer(string inputFile)
{
return new Serializer(inputFile);
}
}
}

View File

@@ -53,8 +53,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.SilvaSchnei
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.Sony", "ChanSort.Loader.Sony\ChanSort.Loader.Sony.csproj", "{70E29C6B-B926-4859-9548-23375BF1E1B5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.PhilipsXml", "ChanSort.Loader.PhilipsXml\ChanSort.Loader.PhilipsXml.csproj", "{D7BAFD55-50F5-46C3-A76B-2193BED5358F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.GlobalClone", "Test.Loader.GlobalClone\Test.Loader.GlobalClone.csproj", "{AA31A65D-9437-42AE-89C8-98C7392B450D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.Panasonic", "Test.Loader.Panasonic\Test.Loader.Panasonic.csproj", "{D1E4454F-DB09-402D-AD87-1E3BD17266A9}"
@@ -63,7 +61,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.Hisense", "Test
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.Hisense2017", "Test.Loader.Hisense2017\Test.Loader.Hisense2017.csproj", "{8D592EB4-3BE2-4D99-8923-FA0794C729ED}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.PhilipsXml", "Test.Loader.PhilipsXml\Test.Loader.PhilipsXml.csproj", "{0A162099-DA92-426A-AB70-36F88F9E5DC1}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.Philips", "Test.Loader.Philips\Test.Loader.Philips.csproj", "{0A162099-DA92-426A-AB70-36F88F9E5DC1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.SamsungJ", "Test.Loader.SamsungJ\Test.Loader.SamsungJ.csproj", "{902EA731-EBB2-4B18-BE87-256C05277B3E}"
EndProject
@@ -77,9 +75,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.VDR", "Test.Loa
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.M3u", "ChanSort.Loader.M3u\ChanSort.Loader.M3u.csproj", "{484028B6-3AAE-4F7E-A88A-76BEEB70203B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.PhilipsBin", "ChanSort.Loader.PhilipsBin\ChanSort.Loader.PhilipsBin.csproj", "{1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Loader.PhilipsBin", "Test.Loader.PhilipsBin\Test.Loader.PhilipsBin.csproj", "{36ED558E-576C-4D9D-A8C5-8D270A156B82}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.Philips", "ChanSort.Loader.Philips\ChanSort.Loader.Philips.csproj", "{1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spike.LgWebOs5", "Spike.LgWebOs5\Spike.LgWebOs5.csproj", "{32EFB306-DEF8-4488-B1AE-46D5B183C373}"
EndProject
@@ -287,18 +283,6 @@ Global
{70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|x86.ActiveCfg = Release|x86
{70E29C6B-B926-4859-9548-23375BF1E1B5}.Release|x86.Build.0 = Release|x86
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Debug|x86.ActiveCfg = Debug|x86
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Debug|x86.Build.0 = Debug|x86
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Release|Any CPU.Build.0 = Release|Any CPU
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Release|x86.ActiveCfg = Release|x86
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Release|x86.Build.0 = Release|x86
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -443,18 +427,6 @@ Global
{1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Release|x86.ActiveCfg = Release|x86
{1F52B5EC-A2F1-4E53-9E1A-4658296C5BB5}.Release|x86.Build.0 = Release|x86
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Debug|x86.ActiveCfg = Debug|x86
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Debug|x86.Build.0 = Debug|x86
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Release|Any CPU.Build.0 = Release|Any CPU
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Release|x86.ActiveCfg = Release|x86
{36ED558E-576C-4D9D-A8C5-8D270A156B82}.Release|x86.Build.0 = Release|x86
{32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Any CPU.Build.0 = Debug|Any CPU
{32EFB306-DEF8-4488-B1AE-46D5B183C373}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU

View File

@@ -506,13 +506,9 @@
<Project>{68da8072-3a29-4076-9f64-d66f38349585}</Project>
<Name>ChanSort.Loader.Panasonic</Name>
</ProjectReference>
<ProjectReference Include="..\ChanSort.Loader.PhilipsBin\ChanSort.Loader.PhilipsBin.csproj">
<ProjectReference Include="..\ChanSort.Loader.PhilipsBin\ChanSort.Loader.Philips.csproj">
<Project>{1f52b5ec-a2f1-4e53-9e1a-4658296c5bb5}</Project>
<Name>ChanSort.Loader.PhilipsBin</Name>
</ProjectReference>
<ProjectReference Include="..\ChanSort.Loader.PhilipsXml\ChanSort.Loader.PhilipsXml.csproj">
<Project>{d7bafd55-50f5-46c3-a76b-2193bed5358f}</Project>
<Name>ChanSort.Loader.PhilipsXml</Name>
<Name>ChanSort.Loader.Philips</Name>
</ProjectReference>
<ProjectReference Include="..\ChanSort.Loader.SamsungJ\ChanSort.Loader.SamsungJ.csproj">
<Project>{33897002-0537-49a4-b963-a18d17311b3d}</Project>

View File

@@ -0,0 +1,41 @@
1;Horse TV HD;200-1800-3629
2;Radio Radio TV;318-15700-1329
3;Yes TV;318-15700-1312
4;Italian Fishing TV;318-9300-1602
5;MS MOTORTV;318-9300-1613
6;MS CHANNEL;318-9300-1614
7;Well TV;318-900-503
8;PACI CONTEMPORARY CHANNEL;318-9000-9014
9;Wine TV;318-9300-1603
10;Class TvModa;200-1800-3630
11;RTL 102.5 NEWS;318-15700-1323
12;RADIONORBA TV;318-15700-1311
13;RDS Relax;318-15800-16978
14;Canale Italia 83;318-13300-4961
15;TRM h24;318-15800-16922
16;TG NORBA 24;200-1800-3628
17;Radio Cusano Campus;318-13300-4958
18;Rete Uno;318-1700-14031
19;Rete Due;318-1700-14032
20;Rete Tre;318-1700-14033
21;R-BuonConsiglio;200-1800-3636
22;InBlu;64511-6700-11131
23;INBLU2000;64511-6700-11174
24;Radio Vaticana Europa;64511-6900-11181
25;DimSuono Soft MI;318-7000-766
26;DimSuono Soft RM;318-7000-767
27;R. Eurospin;318-7000-749
28;Radio PadrePio;318-7000-744
29;Radio RADICALE;318-7000-761
30;Radio Iglesias;318-7200-3654
31;SMTv San Marino Radio;318-7200-7255
32;Canale Italia 84;318-13300-4962
33;Canale Italia;318-13300-4959
34;Canale Italia 2;318-13300-4960
35;TLC Telecampione;318-13300-4970
36;Arte Investimenti;318-13300-4993
37;Tesory Channel;318-900-532
38;Arte Atelier;318-15800-16964
39;Antichita Chiossone;318-15800-16965
40;Deluxe 139;318-9000-9008
41;TV Art Live;318-9300-1617

View File

@@ -0,0 +1,203 @@
1;Rai 1 HD;318-5200-3401
2;Rai 2 HD;318-5200-3402
3;Rai 3 HD;318-5200-3403
4;Rete4 HD;272-1200-123
5;Canale5 HD;272-1200-122
6;Italia1 HD;272-1200-121
7;LA7 HD;272-6000-79
8;TV8 HD;64511-6800-7260
9;Nove HD;318-1000-4323
10;Rai 4 HD;318-5200-3405
11;Iris;272-1200-124
12;La 5;272-1200-127
13;Rai 5 HD;318-12500-17716
14;Rai Movie HD;318-5200-3406
15;Rai Premium HD;318-12500-17717
16;Mediaset ITALIA DUE;272-1200-130
17;Mediaset EXTRA;272-1200-129
18;TV2000 HD;64511-6900-11180
19;cielo HD;64511-6800-4120
20;20 MEDIASET HD;272-1200-120
21;Rai Sport + HD;318-5200-3404
22;VH1;200-1800-3625
23;Rai Storia HD;318-12500-17714
24;Rai News 24 HD;318-12500-17711
25;TgCom24;272-1200-128
26;Spike;200-1800-3624
27;Paramount Network HD;318-15700-1324
28;DMAX HD;64511-6900-14253
29;LA7d;272-6000-73
31;Real Time HD;64511-6900-11507
32;QVC HD;318-15800-16979
33;Rai Scuola HD;318-12500-17715
34;Cine34;272-1200-111
35;Radio Italia Tv HD;318-15800-16962
36;RTL 102.5 HD;318-15700-1307
37;HSE24;318-12100-1731
38;Giallo HD;318-1000-4322
39;Topcrime;272-1200-132
40;Boing;272-1200-126
41;Cartoonito;272-1200-133
42;Rai Gulp HD;318-12500-17712
43;Rai YoYo HD;318-12500-17713
44;-frisbee-;64511-6900-11418
46;K2;64511-6900-11466
47;Super!;200-1800-3621
48;Arte HD;319-15900-307
49;MEZZO;318-15600-10725
50;RDS Social TV;318-15800-16977
51;UNIRESAT HD;318-15800-16963
53;Food Network HD;64511-6900-11722
56;MotorTrend HD;318-1000-4321
59;Euronews Italian;318-8900-2017
60;Focus;272-1200-134
61;BFC;318-15800-16980
63;Radio Italia Trend TV HD;318-15800-16966
64;Radio Kiss Kiss Tv;318-15800-16976
65;RADIO ZETA HD;318-15700-1321
66;RADIOFRECCIA HD;318-15700-1308
67;RADIO MONTE CARLO;272-1200-119
69;France 24 HD (in English);318-15300-808
70;BBC World News;318-9400-8204
71;Al Jazeera English HD;318-13100-7306
72;TRT World HD;318-15300-803
73;NHK WORLD-JAPAN;318-900-533
75;France 24 HD (en Francais);318-15300-807
77;Al Jazeera HD;318-9300-1601
78;AlAraby TV HD;318-9000-9006
79;Sonlife;318-700-9
80;Juwelo TV;318-13300-4910
81;CNBC HD;64511-6700-7245
82;Bloomberg European TV;318-13100-7302
83;i24News HD English;318-15700-1310
84;i24News HD French;318-15700-1309
85;DW English HD;318-5000-13101
86;Euronews English HD;318-15300-801
87;CGTN;318-15400-872
88;CGTN Documentary;318-15400-873
89;Senato;318-12400-8520
90;Camera Deputati;318-12400-8519
91;KBS World HD;318-15700-1313
92;CCTV 4E;318-15400-871
93;SMTv San Marino HD;318-7200-7254
100;tiv<69>link;318-12400-8517
101;Rai 1;318-12400-8511
102;Rai 2;318-12400-8512
103;Rai 3;318-12400-8513
104;Rete 4;272-6000-3
105;Canale 5;272-6000-2
106;Italia 1;272-6000-1
107;LA7;272-6000-71
110;Rai 4;318-12400-8514
111;Iris provvisorio;272-6000-4
112;La 5 provvisorio;272-6000-7
113;Rai 5;318-12400-8515
114;Rai Movie;318-12400-8502
115;Rai Premium;318-12400-8522
116;Mediaset ITALIA DUE provvisorio;272-6000-10
117;Mediaset EXTRA provvisorio;272-6000-9
120;20 Mediaset provvisorio;272-6000-15
121;Rai Sport;318-12400-8523
123;Rai Storia;318-12400-8518
124;Rai News 24;318-12400-8516
125;TgCom24 provvisorio;272-6000-8
127;Paramount Network;200-1800-3627
132;QVC Italia;318-7000-780
133;Rai Scuola;318-12400-8521
139;Topcrime provvisorio;272-6000-12
140;Boing provvisorio;272-6000-6
141;Cartoonito provvisorio;272-6000-13
142;Rai Gulp;318-12400-8524
143;Rai YoYo;318-12400-8525
160;Focus provvisorio;272-6000-14
171;Al Jazeera English;318-13100-7305
177;Al Jazeera;318-7000-708
187;CGTN;318-12600-1706
192;CCTV-4;318-7200-7224
200;HotBird 4K1;318-700-17
210;Rai 4K;318-5200-3407
211;Nasa TV UHD;318-11100-4602
220;Museum 4K;318-11100-4604
222;MyZen 4K;318-9100-1104
225;TRAVELXP 4K;318-11100-4603
289;FTV UHD;318-9100-1102
301;Rai 3 TGR Valle d'Aosta;318-12500-17744
302;Rai 3 TGR Piemonte;318-12500-17739
303;Rai 3 TGR Liguria;318-12500-17735
304;Rai 3 TGR Lombardia;318-12500-17740
305;Rai 3 TGR Veneto;318-12500-17742
306;Rai 3 TGR Trentino Alto Adige Bolzano;318-12500-17752
307;Rai 3 TGR Trentino Alto Adige Trento;318-12500-17751
308;Rai 3 TGR Tagesschau;318-12500-17743
309;Rai 3 TGR Friuli Venezia Giulia;318-12500-17749
310;Rai 3 TGR Furlanija Julijska Krajina;318-12500-17750
311;Rai 3 TGR Emilia-Romagna;318-12500-17741
312;Rai 3 TGR Toscana;318-12500-17736
313;Rai 3 TGR Marche;318-12500-17738
314;Rai 3 TGR Umbria;318-12500-17737
315;Rai 3 TGR Lazio;318-12500-17753
316;Rai 3 TGR Abruzzo;318-12500-17746
317;Rai 3 TGR Molise;318-12500-17747
318;Rai 3 TGR Campania;318-12500-17748
319;Rai 3 TGR Puglia;318-12500-17731
320;Rai 3 TGR Basilicata;318-12500-17732
321;Rai 3 TGR Calabria;318-12500-17733
322;Rai 3 TGR Sardegna;318-12500-17745
323;Rai 3 TGR Sicilia;318-12500-17734
420;People TV;318-15700-1328
422;Telecupole;318-13300-4994
445;Padre Pio Tv;318-15800-16952
454;Parole di Vita;318-900-510
518;Emilia Romagna 24;318-15800-16920
601;Rai Radio 1;318-5200-3441
602;Rai Radio 2;318-5200-3442
603;Rai Radio 3;318-5200-3443
604;Rai GR Parlamento;318-5200-3445
605;Rai Radio3 Classica;318-5200-3444
606;Rai Radio Kids;318-5200-3449
607;Rai Radio Live;318-5200-3448
608;RDS;318-7000-736
609;DimSuono Roma;318-7000-737
610;RTL 102.5;318-7200-3642
611;RADIO ZETA;318-7200-3643
612;RADIO FRECCIA;318-7200-3630
615;Radio 105;272-6000-105
616;Virgin radio;272-6000-104
617;Radio R101;272-6000-101
618;Radio Monte Carlo;272-6000-102
619;RMC2;272-6000-103
620;RADIO ITALIA s.m.i.;318-7200-3632
621;M DUE O;318-7200-3653
622;CAPITAL;318-7200-3652
623;DEEJAY;318-7200-3651
624;Radio 24;318-7200-3644
625;Discoradio;318-7000-768
626;R.ONDA D'URTO;318-7200-3645
627;ANNI 60;318-7000-738
630;Rai Radio Tutta Italiana;318-5200-3451
631;Radio Number One;318-15800-16981
632;Radio Radio;318-7200-3646
633;Radio Maria;318-7000-732
634;RADIO MATER;318-7200-7280
635;popolare;318-7200-3656
637;Radio Margherita;318-13300-4957
639;Rai Radio Slovenia;318-5200-3454
640;Rai Radio Techete';318-5200-3447
641;Rai Radio1 Sport;318-5200-3453
642;Rai Radio2 Indie;318-5200-3450
643;Radio Kiss Kiss;318-7000-742
644;Radio Sportiva;318-7200-3637
656;RFI Francais;318-5000-13130
661;Swiss Pop;318-1700-14035
662;Swiss Jazz;318-1700-14036
663;Swiss Classica;318-1700-14047
667;DW-FM02;318-5000-13124
669;DW08;318-5000-13121
670;DW09;318-5000-13122
699;Rai Isoradio;318-5200-3446
701;UNINETTUNO UNIVERSITY TV;318-12500-17718
805;Mediaset Play;272-1200-805
815;TELEPACE HD;318-8900-2004
819;VIDEOLINA;318-15800-16992
832;TVA Vicenza;318-15800-16988
899;Infinity;272-1200-899

View File

@@ -0,0 +1,42 @@
#include "chansort.h"
/***********************************************************
* Philips ChannelMap_45 format
***********************************************************/
public struct Ph_ChannelMap45_SatelliteDbBin
{
dword majorVersion;
dword minorVersion;
dword recordCount;
struct
{
var off0 = current_offset;
dword id;
dword freq;
dword number;
dword analogUid;
dword onid;
dword tsid;
dword sid;
dword symRate;
dword logoNr;
dword scrambleStat;
dword locked;
dword modulation;
dword unk1;
dword serviceType;
dword systemHideMaybe;
dword isUserModifiedLogo;
dword serviceEdit;
dword streamPriorityMaybe;
dword unk2;
word unk3TransponderRelated;
word unk4TransponderRelated;
wchar_t name[32+1];
wchar_t satName[32+1];
byte unk[212 - (current_offset - off0)];
} Channels[recordCount];
};

View File

@@ -3,17 +3,17 @@ using System.Linq;
using ChanSort.Api;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Test.Loader.PhilipsBin
namespace Test.Loader.Philips
{
[TestClass]
public class PhilipsChannellibTest
public class PhilipsBinChannellibTest
{
[TestMethod]
public void TestFiles1()
{
var baseDir = Path.GetDirectoryName(this.GetType().Assembly.Location);
var baseFile = Path.Combine(baseDir, "TestFiles1\\Repair\\ChannelList\\chanLst.bin");
var plugin = new ChanSort.Loader.PhilipsBin.SerializerPlugin();
var plugin = new ChanSort.Loader.Philips.PhilipsLoader();
var loader = plugin.CreateSerializer(baseFile);
loader.Load();

View File

@@ -4,17 +4,17 @@ using System.Linq;
using ChanSort.Api;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Test.Loader.PhilipsBin
namespace Test.Loader.Philips
{
[TestClass]
public class PhilipsS2channellibTest
public class PhilipsBinS2channellibTest
{
[TestMethod]
public void TestFiles1()
{
var baseDir = Path.GetDirectoryName(this.GetType().Assembly.Location);
var baseFile = Path.Combine(baseDir, "TestFiles1\\Repair\\ChannelList\\chanLst.bin");
var plugin = new ChanSort.Loader.PhilipsBin.SerializerPlugin();
var plugin = new ChanSort.Loader.Philips.PhilipsLoader();
var loader = plugin.CreateSerializer(baseFile);
loader.Load();
@@ -44,7 +44,7 @@ namespace Test.Loader.PhilipsBin
{
var baseDir = Path.GetDirectoryName(this.GetType().Assembly.Location);
var baseFile = Path.Combine(baseDir, "TestFiles2\\Repair\\ChannelList\\chanLst.bin");
var plugin = new ChanSort.Loader.PhilipsBin.SerializerPlugin();
var plugin = new ChanSort.Loader.Philips.PhilipsLoader();
var loader = plugin.CreateSerializer(baseFile);
loader.Load();

View File

@@ -1,12 +1,9 @@
using System;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Linq;
using ChanSort.Api;
using ChanSort.Loader.PhilipsXml;
using ChanSort.Loader.Philips;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Test.Loader.PhilipsXml
namespace Test.Loader.Philips
{
[TestClass]
public class PhilipsXmlTest
@@ -15,7 +12,8 @@ namespace Test.Loader.PhilipsXml
[TestMethod]
public void TestFormat1SatChannelsAddedToCorrectLists()
{
this.TestChannelsAddedToCorrectLists("DVBS.xml", SignalSource.DvbS, 502, 350, 152);
var file = TestUtils.DeploymentItem("Test.Loader.Philips\\TestFiles") + "\\ChannelMap_100\\ChannelList\\chanLst.bin";
this.TestChannelsAddedToCorrectLists(file, SignalSource.DvbS, 502, 350, 152);
}
#endregion
@@ -23,7 +21,8 @@ namespace Test.Loader.PhilipsXml
[TestMethod]
public void TestFormat1CableChannelsAddedToCorrectLists()
{
this.TestChannelsAddedToCorrectLists("DVBC.xml", SignalSource.DvbC, 459, 358, 101);
var file = TestUtils.DeploymentItem("Test.Loader.Philips\\TestFiles") + "\\ChannelMap_100\\ChannelList\\chanLst.bin";
this.TestChannelsAddedToCorrectLists(file, SignalSource.DvbC, 459, 358, 101);
}
#endregion
@@ -32,17 +31,17 @@ namespace Test.Loader.PhilipsXml
public void TestFormat2CableChannelsAddedToCorrectLists()
{
// this file format doesn't provide any information whether a channel is TV/radio/data or analog/digital. It only contains the "medium" for antenna/cable/sat
this.TestChannelsAddedToCorrectLists("CM_TPM1013E_LA_CK.xml", SignalSource.DvbC, 483, 0, 0);
var file = TestUtils.DeploymentItem("Test.Loader.Philips\\TestFiles") + "\\Repair\\CM_TPM1013E_LA_CK.xml";
this.TestChannelsAddedToCorrectLists(file, SignalSource.DvbC, 483, 0, 0);
}
#endregion
#region TestChannelsAddedToCorrectList
private void TestChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTotal, int expectedTv, int expectedRadio)
private void TestChannelsAddedToCorrectLists(string filePath, SignalSource signalSource, int expectedTotal, int expectedTv, int expectedRadio)
{
var tempFile = TestUtils.DeploymentItem("Test.Loader.PhilipsXml\\TestFiles\\" + fileName);
var plugin = new SerializerPlugin();
var ser = plugin.CreateSerializer(tempFile);
var plugin = new PhilipsLoader();
var ser = plugin.CreateSerializer(filePath);
ser.Load();
var root = ser.DataRoot;
@@ -62,8 +61,8 @@ namespace Test.Loader.PhilipsXml
[TestMethod]
public void TestDeletingChannel()
{
var tempFile = TestUtils.DeploymentItem("Test.Loader.PhilipsXml\\TestFiles\\dvbs.xml");
var plugin = new SerializerPlugin();
var tempFile = TestUtils.DeploymentItem("Test.Loader.Philips\\TestFiles") + "\\ChannelMap_100\\ChannelList\\chanLst.bin";
var plugin = new PhilipsLoader();
var ser = plugin.CreateSerializer(tempFile);
ser.Load();
var data = ser.DataRoot;

View File

@@ -1,15 +1,15 @@
<?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.1\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props')" />
<Import Project="..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.1.3.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>{36ED558E-576C-4D9D-A8C5-8D270A156B82}</ProjectGuid>
<ProjectGuid>{0A162099-DA92-426A-AB70-36F88F9E5DC1}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Test.Loader.PhilipsBin</RootNamespace>
<AssemblyName>Test.Loader.PhilipsBin</AssemblyName>
<RootNamespace>Test.Loader.Philips</RootNamespace>
<AssemblyName>Test.Loader.Philips</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
@@ -20,6 +20,7 @@
<TestProjectType>UnitTest</TestProjectType>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -44,7 +45,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
@@ -54,199 +54,225 @@
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</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.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
<HintPath>..\packages\MSTest.TestFramework.1.3.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.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
<HintPath>..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
</ItemGroup>
<ItemGroup>
<Compile Include="PhilipsChannellibTest.cs" />
<Compile Include="PhilipsS2channellibTest.cs" />
<Compile Include="PhilipsBinChannellibTest.cs" />
<Compile Include="PhilipsBinS2channellibTest.cs" />
<Compile Include="PhilipsXmlTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<None Include="TestFiles1\Repair\ChannelList\chanLst.bin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaAnalogTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaDigSrvTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaDigTSTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaFrqMapTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaPresetTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CableAnalogTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CableDigSrvTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CableDigTSTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CableFrqMapTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CablePresetTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\adk_user_pref.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\adk_user_pref_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\db_file_info.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\db_file_info_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\favorite.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\favorite_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\lnb.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\lnb_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\satellite.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\satellite_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\service.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\service_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\tuneinfo.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\tuneinfo_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\user_pref.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\user_pref_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\chanLst.bin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaAnalogTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaDigSrvTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaDigTSTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaFrqMapTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaPresetTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CableAnalogTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CableDigSrvTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CableDigTSTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CableFrqMapTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CablePresetTable">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\adk_user_pref.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\adk_user_pref_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\db_file_info.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\db_file_info_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\favorite.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\favorite_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\lnb.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\lnb_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\satellite.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\satellite_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\service.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\service_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\tuneinfo.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\tuneinfo_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\user_pref.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\user_pref_backup.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</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.PhilipsBin\ChanSort.Loader.PhilipsBin.csproj">
<ProjectReference Include="..\ChanSort.Loader.Philips\ChanSort.Loader.Philips.csproj">
<Project>{1f52b5ec-a2f1-4e53-9e1a-4658296c5bb5}</Project>
<Name>ChanSort.Loader.PhilipsBin</Name>
<Name>ChanSort.Loader.Philips</Name>
</ProjectReference>
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
<Name>Test.Loader</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="TestFiles\ChannelMap_100\ChannelList\channellib\DVBT.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestFiles\ChannelMap_100\ChannelList\Favorite.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestFiles\ChannelMap_100\ChannelList\s2channellib\DVBSall.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="TestFiles1\Repair\ChannelList\chanLst.bin">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaAnalogTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaDigSrvTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaDigTSTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaFrqMapTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\AntennaPresetTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CableAnalogTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CableDigSrvTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CableDigTSTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CableFrqMapTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\channellib\CablePresetTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\adk_user_pref.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\adk_user_pref_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\db_file_info.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\db_file_info_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\favorite.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\favorite_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\lnb.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\lnb_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\satellite.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\satellite_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\service.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\service_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\tuneinfo.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\tuneinfo_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\user_pref.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles1\Repair\ChannelList\s2channellib\user_pref_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\chanLst.bin">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaAnalogTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaDigSrvTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaDigTSTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaFrqMapTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\AntennaPresetTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CableAnalogTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CableDigSrvTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CableDigTSTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CableFrqMapTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\channellib\CablePresetTable">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\adk_user_pref.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\adk_user_pref_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\db_file_info.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\db_file_info_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\favorite.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\favorite_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\lnb.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\lnb_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\satellite.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\satellite_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\service.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\service_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\tuneinfo.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\tuneinfo_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\user_pref.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles2\Repair\ChannelList\s2channellib\user_pref_backup.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles\ChannelMap_100\ChannelList\chanLst.bin">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles\Repair\CM_TPM1013E_LA_CK.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles\ChannelMap_100\ChannelList\channellib\DVBC.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestFiles\ChannelMap_100\ChannelList\s2channellib\DVBS.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
@@ -254,8 +280,8 @@
<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.1\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.props'))" />
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets'))" />
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.props'))" />
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets'))" />
</Target>
<Import Project="..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.1\build\net45\MSTest.TestAdapter.targets')" />
<Import Project="..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets')" />
</Project>

View File

@@ -0,0 +1,740 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FavoriteListMAP>
<FavoriteList Index="1" Name="0x46 0x00 0x61 0x00 0x76 0x00 0x6f 0x00 0x75 0x00 0x72 0x00 0x69 0x00 0x74 0x00 0x65 0x00 0x73 0x00 0x20 0x00 0x31 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" Version="482">
<FavoriteChannel>
<UniqueID>9634</UniqueID>
<FavNumber>0</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1904</UniqueID>
<FavNumber>1</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9514</UniqueID>
<FavNumber>2</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6814</UniqueID>
<FavNumber>3</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6834</UniqueID>
<FavNumber>4</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6914</UniqueID>
<FavNumber>5</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6234</UniqueID>
<FavNumber>6</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8364</UniqueID>
<FavNumber>7</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8524</UniqueID>
<FavNumber>8</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9254</UniqueID>
<FavNumber>9</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3654</UniqueID>
<FavNumber>10</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6964</UniqueID>
<FavNumber>11</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7294</UniqueID>
<FavNumber>12</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3714</UniqueID>
<FavNumber>13</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>4654</UniqueID>
<FavNumber>14</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5524</UniqueID>
<FavNumber>15</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1194</UniqueID>
<FavNumber>16</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5194</UniqueID>
<FavNumber>17</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8414</UniqueID>
<FavNumber>18</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3384</UniqueID>
<FavNumber>19</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6444</UniqueID>
<FavNumber>20</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6464</UniqueID>
<FavNumber>21</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>64</UniqueID>
<FavNumber>22</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>554</UniqueID>
<FavNumber>23</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8274</UniqueID>
<FavNumber>24</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5074</UniqueID>
<FavNumber>25</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9564</UniqueID>
<FavNumber>26</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8244</UniqueID>
<FavNumber>27</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2454</UniqueID>
<FavNumber>28</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6194</UniqueID>
<FavNumber>29</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2214</UniqueID>
<FavNumber>30</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2064</UniqueID>
<FavNumber>31</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3404</UniqueID>
<FavNumber>32</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3444</UniqueID>
<FavNumber>33</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3414</UniqueID>
<FavNumber>34</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6314</UniqueID>
<FavNumber>35</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6364</UniqueID>
<FavNumber>36</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6334</UniqueID>
<FavNumber>37</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6874</UniqueID>
<FavNumber>38</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1524</UniqueID>
<FavNumber>39</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8874</UniqueID>
<FavNumber>40</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3674</UniqueID>
<FavNumber>41</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9574</UniqueID>
<FavNumber>42</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>14</UniqueID>
<FavNumber>43</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5694</UniqueID>
<FavNumber>44</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9674</UniqueID>
<FavNumber>45</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9654</UniqueID>
<FavNumber>46</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8464</UniqueID>
<FavNumber>47</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6074</UniqueID>
<FavNumber>48</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3184</UniqueID>
<FavNumber>49</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9694</UniqueID>
<FavNumber>50</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8164</UniqueID>
<FavNumber>51</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>4744</UniqueID>
<FavNumber>52</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>4724</UniqueID>
<FavNumber>53</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8194</UniqueID>
<FavNumber>54</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8204</UniqueID>
<FavNumber>55</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5374</UniqueID>
<FavNumber>56</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1954</UniqueID>
<FavNumber>57</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7464</UniqueID>
<FavNumber>58</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7484</UniqueID>
<FavNumber>59</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7374</UniqueID>
<FavNumber>60</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7394</UniqueID>
<FavNumber>61</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7454</UniqueID>
<FavNumber>62</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7414</UniqueID>
<FavNumber>63</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7344</UniqueID>
<FavNumber>64</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7334</UniqueID>
<FavNumber>65</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2124</UniqueID>
<FavNumber>66</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2154</UniqueID>
<FavNumber>67</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2034</UniqueID>
<FavNumber>68</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3334</UniqueID>
<FavNumber>69</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5164</UniqueID>
<FavNumber>70</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5144</UniqueID>
<FavNumber>71</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8224</UniqueID>
<FavNumber>72</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2984</UniqueID>
<FavNumber>73</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8844</UniqueID>
<FavNumber>74</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8864</UniqueID>
<FavNumber>75</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8834</UniqueID>
<FavNumber>76</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9124</UniqueID>
<FavNumber>77</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>34</UniqueID>
<FavNumber>78</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8444</UniqueID>
<FavNumber>79</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>794</UniqueID>
<FavNumber>80</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7354</UniqueID>
<FavNumber>81</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7364</UniqueID>
<FavNumber>82</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7384</UniqueID>
<FavNumber>83</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7434</UniqueID>
<FavNumber>84</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7494</UniqueID>
<FavNumber>85</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7474</UniqueID>
<FavNumber>86</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7404</UniqueID>
<FavNumber>87</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7444</UniqueID>
<FavNumber>88</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7424</UniqueID>
<FavNumber>89</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3284</UniqueID>
<FavNumber>90</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1644</UniqueID>
<FavNumber>91</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>4824</UniqueID>
<FavNumber>92</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6644</UniqueID>
<FavNumber>93</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3734</UniqueID>
<FavNumber>94</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8234</UniqueID>
<FavNumber>95</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3594</UniqueID>
<FavNumber>96</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2164</UniqueID>
<FavNumber>97</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1154</UniqueID>
<FavNumber>98</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6754</UniqueID>
<FavNumber>99</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7004</UniqueID>
<FavNumber>100</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3684</UniqueID>
<FavNumber>101</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6864</UniqueID>
<FavNumber>102</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8534</UniqueID>
<FavNumber>103</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6254</UniqueID>
<FavNumber>104</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5544</UniqueID>
<FavNumber>105</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9284</UniqueID>
<FavNumber>106</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2234</UniqueID>
<FavNumber>107</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8254</UniqueID>
<FavNumber>108</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2464</UniqueID>
<FavNumber>109</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9584</UniqueID>
<FavNumber>110</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5094</UniqueID>
<FavNumber>111</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8384</UniqueID>
<FavNumber>112</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6214</UniqueID>
<FavNumber>113</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>2084</UniqueID>
<FavNumber>114</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1964</UniqueID>
<FavNumber>115</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1784</UniqueID>
<FavNumber>116</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1914</UniqueID>
<FavNumber>117</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9644</UniqueID>
<FavNumber>118</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9664</UniqueID>
<FavNumber>119</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9474</UniqueID>
<FavNumber>120</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>564</UniqueID>
<FavNumber>121</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5704</UniqueID>
<FavNumber>122</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6084</UniqueID>
<FavNumber>123</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>504</UniqueID>
<FavNumber>124</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>74</UniqueID>
<FavNumber>125</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3724</UniqueID>
<FavNumber>126</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3434</UniqueID>
<FavNumber>127</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>444</UniqueID>
<FavNumber>128</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6534</UniqueID>
<FavNumber>129</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>494</UniqueID>
<FavNumber>130</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1174</UniqueID>
<FavNumber>131</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1184</UniqueID>
<FavNumber>132</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1204</UniqueID>
<FavNumber>133</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1534</UniqueID>
<FavNumber>134</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3394</UniqueID>
<FavNumber>135</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3424</UniqueID>
<FavNumber>136</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>4664</UniqueID>
<FavNumber>137</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5104</UniqueID>
<FavNumber>138</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>5204</UniqueID>
<FavNumber>139</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6014</UniqueID>
<FavNumber>140</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6324</UniqueID>
<FavNumber>141</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6344</UniqueID>
<FavNumber>142</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6354</UniqueID>
<FavNumber>143</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6374</UniqueID>
<FavNumber>144</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6454</UniqueID>
<FavNumber>145</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6474</UniqueID>
<FavNumber>146</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6824</UniqueID>
<FavNumber>147</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6984</UniqueID>
<FavNumber>148</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7144</UniqueID>
<FavNumber>149</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7314</UniqueID>
<FavNumber>150</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7504</UniqueID>
<FavNumber>151</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7924</UniqueID>
<FavNumber>152</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7944</UniqueID>
<FavNumber>153</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7964</UniqueID>
<FavNumber>154</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>7984</UniqueID>
<FavNumber>155</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8004</UniqueID>
<FavNumber>156</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8024</UniqueID>
<FavNumber>157</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8044</UniqueID>
<FavNumber>158</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8064</UniqueID>
<FavNumber>159</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8084</UniqueID>
<FavNumber>160</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8104</UniqueID>
<FavNumber>161</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8174</UniqueID>
<FavNumber>162</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8284</UniqueID>
<FavNumber>163</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8394</UniqueID>
<FavNumber>164</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8404</UniqueID>
<FavNumber>165</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8424</UniqueID>
<FavNumber>166</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8474</UniqueID>
<FavNumber>167</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9104</UniqueID>
<FavNumber>168</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9684</UniqueID>
<FavNumber>169</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>11604</UniqueID>
<FavNumber>170</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>11754</UniqueID>
<FavNumber>171</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>1754</UniqueID>
<FavNumber>172</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>24</UniqueID>
<FavNumber>173</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3234</UniqueID>
<FavNumber>174</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>3494</UniqueID>
<FavNumber>175</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>4714</UniqueID>
<FavNumber>176</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>4844</UniqueID>
<FavNumber>177</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6024</UniqueID>
<FavNumber>178</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>6034</UniqueID>
<FavNumber>179</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>9704</UniqueID>
<FavNumber>180</FavNumber>
</FavoriteChannel>
<FavoriteChannel>
<UniqueID>8214</UniqueID>
<FavNumber>181</FavNumber>
</FavoriteChannel>
</FavoriteList>
<FavoriteList Index="2" Name="0x46 0x00 0x61 0x00 0x76 0x00 0x6f 0x00 0x75 0x00 0x72 0x00 0x69 0x00 0x74 0x00 0x65 0x00 0x73 0x00 0x20 0x00 0x32 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" Version="342" />
<FavoriteList Index="3" Name="0x46 0x00 0x61 0x00 0x76 0x00 0x6f 0x00 0x75 0x00 0x72 0x00 0x69 0x00 0x74 0x00 0x65 0x00 0x73 0x00 0x20 0x00 0x33 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" Version="343" />
<FavoriteList Index="4" Name="0x46 0x00 0x61 0x00 0x76 0x00 0x6f 0x00 0x75 0x00 0x72 0x00 0x69 0x00 0x74 0x00 0x65 0x00 0x73 0x00 0x20 0x00 0x34 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" Version="343" />
<FavoriteList Index="5" Name="0x46 0x00 0x61 0x00 0x76 0x00 0x6f 0x00 0x75 0x00 0x72 0x00 0x69 0x00 0x74 0x00 0x65 0x00 0x73 0x00 0x20 0x00 0x35 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" Version="343" />
<FavoriteList Index="6" Name="0x46 0x00 0x61 0x00 0x76 0x00 0x6f 0x00 0x75 0x00 0x72 0x00 0x69 0x00 0x74 0x00 0x65 0x00 0x73 0x00 0x20 0x00 0x36 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" Version="343" />
<FavoriteList Index="7" Name="0x46 0x00 0x61 0x00 0x76 0x00 0x6f 0x00 0x75 0x00 0x72 0x00 0x69 0x00 0x74 0x00 0x65 0x00 0x73 0x00 0x20 0x00 0x37 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" Version="343" />
<FavoriteList Index="8" Name="0x46 0x00 0x61 0x00 0x76 0x00 0x6f 0x00 0x75 0x00 0x72 0x00 0x69 0x00 0x74 0x00 0x65 0x00 0x73 0x00 0x20 0x00 0x38 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" Version="343" />
</FavoriteListMAP>

View File

@@ -0,0 +1,188 @@
<?xml version="1.0" encoding="utf-8"?>
<ChannelMap>
<SatelliteListcopy>false</SatelliteListcopy>
<Channel>
<Setup ChannelNumber="1" ChannelName="0x33 0x00 0x73 0x00 0x61 0x00 0x74 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1415" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="11" ChannelType="3" Onid="8468" Tsid="515" Sid="1" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12290" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="2" ChannelName="0x41 0x00 0x52 0x00 0x44 0x00 0x2D 0x00 0x61 0x00 0x6C 0x00 0x70 0x00 0x68 0x00 0x61 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x20 0x00 0x28 0x00 0x49 0x00 0x6E 0x00 0x74 0x00 0x65 0x00 0x72 0x00 0x6E 0x00 0x65 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="21" ChannelType="3" Onid="8468" Tsid="15106" Sid="2" Frequency="498" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12346" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="3" ChannelName="0x61 0x00 0x72 0x00 0x74 0x00 0x65 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="5204" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="31" ChannelType="3" Onid="8468" Tsid="15106" Sid="3" Frequency="498" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12346" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="4" ChannelName="0x42 0x00 0x6C 0x00 0x6F 0x00 0x6F 0x00 0x6D 0x00 0x62 0x00 0x65 0x00 0x72 0x00 0x67 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="41" ChannelType="3" Onid="8468" Tsid="16498" Sid="4" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="5" ChannelName="0x42 0x00 0x52 0x00 0x20 0x00 0x46 0x00 0x65 0x00 0x72 0x00 0x6E 0x00 0x73 0x00 0x65 0x00 0x68 0x00 0x65 0x00 0x6E 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="51" ChannelType="3" Onid="8468" Tsid="15106" Sid="5" Frequency="498" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12346" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="6" ChannelName="0x43 0x00 0x4E 0x00 0x4E 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="61" ChannelType="3" Onid="8468" Tsid="16498" Sid="6" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="7" ChannelName="0x43 0x00 0x6F 0x00 0x6D 0x00 0x65 0x00 0x64 0x00 0x79 0x00 0x20 0x00 0x43 0x00 0x65 0x00 0x6E 0x00 0x74 0x00 0x72 0x00 0x61 0x00 0x6C 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="71" ChannelType="3" Onid="8468" Tsid="16498" Sid="7" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="8" ChannelName="0x43 0x00 0x6F 0x00 0x75 0x00 0x63 0x00 0x68 0x00 0x70 0x00 0x6C 0x00 0x61 0x00 0x79 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="81" ChannelType="3" Onid="8468" Tsid="16498" Sid="8" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="9" ChannelName="0x44 0x00 0x61 0x00 0x73 0x00 0x20 0x00 0x45 0x00 0x72 0x00 0x73 0x00 0x74 0x00 0x65 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1290" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="91" ChannelType="3" Onid="8468" Tsid="14850" Sid="9" Frequency="610" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12347" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="10" ChannelName="0x44 0x00 0x45 0x00 0x4C 0x00 0x55 0x00 0x58 0x00 0x45 0x00 0x20 0x00 0x4D 0x00 0x55 0x00 0x53 0x00 0x49 0x00 0x43 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="101" ChannelType="3" Onid="8468" Tsid="16498" Sid="10" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="11" ChannelName="0x44 0x00 0x45 0x00 0x52 0x00 0x20 0x00 0x41 0x00 0x4B 0x00 0x54 0x00 0x49 0x00 0x4F 0x00 0x4E 0x00 0xC4 0x00 0x52 0x00 0x20 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="111" ChannelType="3" Onid="8468" Tsid="16498" Sid="11" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="12" ChannelName="0x65 0x00 0x6F 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="121" ChannelType="3" Onid="8468" Tsid="16498" Sid="12" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="13" ChannelName="0x45 0x00 0x75 0x00 0x72 0x00 0x6F 0x00 0x6E 0x00 0x65 0x00 0x77 0x00 0x73 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="131" ChannelType="3" Onid="8468" Tsid="16498" Sid="13" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="14" ChannelName="0x46 0x00 0x72 0x00 0x61 0x00 0x6E 0x00 0x63 0x00 0x65 0x00 0x32 0x00 0x34 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="141" ChannelType="3" Onid="8468" Tsid="16498" Sid="14" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="15" ChannelName="0x66 0x00 0x72 0x00 0x65 0x00 0x65 0x00 0x6E 0x00 0x65 0x00 0x74 0x00 0x20 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="151" ChannelType="3" Onid="8468" Tsid="16498" Sid="15" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="16" ChannelName="0x48 0x00 0x65 0x00 0x61 0x00 0x6C 0x00 0x74 0x00 0x68 0x00 0x20 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="161" ChannelType="3" Onid="8468" Tsid="16498" Sid="16" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="17" ChannelName="0x48 0x00 0x6F 0x00 0x70 0x00 0x65 0x00 0x43 0x00 0x68 0x00 0x61 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x6C 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="171" ChannelType="3" Onid="8468" Tsid="16498" Sid="17" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="18" ChannelName="0x68 0x00 0x72 0x00 0x2D 0x00 0x66 0x00 0x65 0x00 0x72 0x00 0x6E 0x00 0x73 0x00 0x65 0x00 0x68 0x00 0x65 0x00 0x6E 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="4706" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="181" ChannelType="3" Onid="8468" Tsid="15106" Sid="18" Frequency="498" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12346" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="19" ChannelName="0x49 0x00 0x6E 0x00 0x73 0x00 0x69 0x00 0x67 0x00 0x68 0x00 0x74 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="191" ChannelType="3" Onid="8468" Tsid="16498" Sid="19" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="20" ChannelName="0x4B 0x00 0x61 0x00 0x62 0x00 0x65 0x00 0x6C 0x00 0x20 0x00 0x65 0x00 0x69 0x00 0x6E 0x00 0x73 0x00 0x20 0x00 0x44 0x00 0x6F 0x00 0x6B 0x00 0x75 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="201" ChannelType="3" Onid="8468" Tsid="16498" Sid="20" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="21" ChannelName="0x4B 0x00 0x69 0x00 0x4B 0x00 0x41 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1526" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="211" ChannelType="3" Onid="8468" Tsid="515" Sid="21" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12290" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="22" ChannelName="0x4C 0x00 0x6F 0x00 0x6B 0x00 0x61 0x00 0x6C 0x00 0x2D 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="221" ChannelType="3" Onid="8468" Tsid="16498" Sid="22" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="23" ChannelName="0x4D 0x00 0x44 0x00 0x52 0x00 0x20 0x00 0x53 0x00 0x2D 0x00 0x41 0x00 0x6E 0x00 0x68 0x00 0x61 0x00 0x6C 0x00 0x74 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1661" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="231" ChannelType="3" Onid="8468" Tsid="14850" Sid="23" Frequency="610" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12347" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="24" ChannelName="0x4D 0x00 0x44 0x00 0x52 0x00 0x20 0x00 0x53 0x00 0x61 0x00 0x63 0x00 0x68 0x00 0x73 0x00 0x65 0x00 0x6E 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1512" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="241" ChannelType="3" Onid="8468" Tsid="14850" Sid="24" Frequency="610" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12347" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="25" ChannelName="0x4D 0x00 0x44 0x00 0x52 0x00 0x20 0x00 0x54 0x00 0x68 0x00 0xFC 0x00 0x72 0x00 0x69 0x00 0x6E 0x00 0x67 0x00 0x65 0x00 0x6E 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1512" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="251" ChannelType="3" Onid="8468" Tsid="14850" Sid="25" Frequency="610" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12347" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="26" ChannelName="0x4D 0x00 0x6F 0x00 0x74 0x00 0x6F 0x00 0x72 0x00 0x76 0x00 0x69 0x00 0x73 0x00 0x69 0x00 0x6F 0x00 0x6E 0x00 0x2E 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="261" ChannelType="3" Onid="8468" Tsid="16498" Sid="26" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="27" ChannelName="0x4D 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="271" ChannelType="3" Onid="8468" Tsid="16498" Sid="27" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="28" ChannelName="0x4E 0x00 0x32 0x00 0x34 0x00 0x20 0x00 0x44 0x00 0x6F 0x00 0x6B 0x00 0x75 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="281" ChannelType="3" Onid="8468" Tsid="16498" Sid="28" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="29" ChannelName="0x4E 0x00 0x44 0x00 0x52 0x00 0x20 0x00 0x46 0x00 0x53 0x00 0x20 0x00 0x4E 0x00 0x44 0x00 0x53 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1422" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="291" ChannelType="3" Onid="8468" Tsid="14850" Sid="29" Frequency="610" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12347" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="30" ChannelName="0x4F 0x00 0x4E 0x00 0x45 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1588" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="301" ChannelType="3" Onid="8468" Tsid="15106" Sid="30" Frequency="498" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12346" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="31" ChannelName="0x70 0x00 0x68 0x00 0x6F 0x00 0x65 0x00 0x6E 0x00 0x69 0x00 0x78 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1423" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="311" ChannelType="3" Onid="8468" Tsid="15106" Sid="31" Frequency="498" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12346" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="32" ChannelName="0x51 0x00 0x56 0x00 0x43 0x00 0x20 0x00 0x53 0x00 0x74 0x00 0x79 0x00 0x6C 0x00 0x65 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="321" ChannelType="3" Onid="8468" Tsid="16498" Sid="32" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="33" ChannelName="0x52 0x00 0x41 0x00 0x4E 0x00 0x20 0x00 0x46 0x00 0x69 0x00 0x67 0x00 0x68 0x00 0x74 0x00 0x69 0x00 0x6E 0x00 0x67 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="331" ChannelType="3" Onid="8468" Tsid="16498" Sid="33" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="34" ChannelName="0x72 0x00 0x62 0x00 0x62 0x00 0x20 0x00 0x42 0x00 0x72 0x00 0x61 0x00 0x6E 0x00 0x64 0x00 0x65 0x00 0x6E 0x00 0x62 0x00 0x75 0x00 0x72 0x00 0x67 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="68" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="341" ChannelType="3" Onid="8468" Tsid="14850" Sid="34" Frequency="610" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12347" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="35" ChannelName="0x52 0x00 0x68 0x00 0x65 0x00 0x69 0x00 0x6E 0x00 0x20 0x00 0x4D 0x00 0x61 0x00 0x69 0x00 0x6E 0x00 0x20 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1674" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="351" ChannelType="3" Onid="8468" Tsid="16498" Sid="35" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="36" ChannelName="0x53 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x6E 0x00 0x6B 0x00 0x6C 0x00 0x61 0x00 0x72 0x00 0x20 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="361" ChannelType="3" Onid="8468" Tsid="16498" Sid="36" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="37" ChannelName="0x53 0x00 0x50 0x00 0x49 0x00 0x45 0x00 0x47 0x00 0x45 0x00 0x4C 0x00 0x2E 0x00 0x54 0x00 0x56 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="371" ChannelType="3" Onid="8468" Tsid="16498" Sid="37" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="38" ChannelName="0x53 0x00 0x70 0x00 0x6F 0x00 0x72 0x00 0x74 0x00 0x64 0x00 0x69 0x00 0x67 0x00 0x69 0x00 0x74 0x00 0x61 0x00 0x6C 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="381" ChannelType="3" Onid="8468" Tsid="16498" Sid="38" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="39" ChannelName="0x53 0x00 0x57 0x00 0x52 0x00 0x20 0x00 0x42 0x00 0x57 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1430" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="391" ChannelType="3" Onid="8468" Tsid="14850" Sid="39" Frequency="610" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12347" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="40" ChannelName="0x53 0x00 0x57 0x00 0x52 0x00 0x20 0x00 0x42 0x00 0x57 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x20 0x00 0x28 0x00 0x49 0x00 0x6E 0x00 0x74 0x00 0x65 0x00 0x72 0x00 0x6E 0x00 0x65 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="401" ChannelType="3" Onid="8468" Tsid="15106" Sid="40" Frequency="498" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12346" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="41" ChannelName="0x74 0x00 0x61 0x00 0x67 0x00 0x65 0x00 0x73 0x00 0x73 0x00 0x63 0x00 0x68 0x00 0x61 0x00 0x75 0x00 0x32 0x00 0x34 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1581" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="411" ChannelType="3" Onid="8468" Tsid="14850" Sid="41" Frequency="610" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12347" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="42" ChannelName="0x54 0x00 0x4C 0x00 0x43 0x00 0x20 0x00 0x28 0x00 0x63 0x00 0x6F 0x00 0x6E 0x00 0x6E 0x00 0x65 0x00 0x63 0x00 0x74 0x00 0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="0" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="421" ChannelType="3" Onid="8468" Tsid="16498" Sid="42" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12352" StreamPriority="1" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="43" ChannelName="0x57 0x00 0x44 0x00 0x52 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x20 0x00 0x4B 0x00 0xF6 0x00 0x6C 0x00 0x6E 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1507" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="431" ChannelType="3" Onid="8468" Tsid="15106" Sid="43" Frequency="498" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12346" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="44" ChannelName="0x5A 0x00 0x44 0x00 0x46 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1418" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="441" ChannelType="3" Onid="8468" Tsid="515" Sid="44" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12290" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="45" ChannelName="0x7A 0x00 0x64 0x00 0x66 0x00 0x5F 0x00 0x6E 0x00 0x65 0x00 0x6F 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1419" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="451" ChannelType="3" Onid="8468" Tsid="515" Sid="45" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12290" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
<Channel>
<Setup ChannelNumber="46" ChannelName="0x5A 0x00 0x44 0x00 0x46 0x00 0x69 0x00 0x6E 0x00 0x66 0x00 0x6F 0x00 0x20 0x00 0x48 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" ChannelLock="0" UserModifiedName="0" LogoID="1429" UserModifiedLogo="0" LogoLock="0" UserHidden="0" FavoriteNumber="0" Scrambled="0"></Setup>
<Broadcast UniqueID="461" ChannelType="3" Onid="8468" Tsid="515" Sid="46" Frequency="602" Modulation="64" ServiceType="1" Bandwidth="8" SymbolRate="0" DecoderType="16" NetworkID="12290" StreamPriority="0" SystemHidden="0"></Broadcast>
</Channel>
</ChannelMap>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<ChannelMap>
<SatelliteListcopy>false</SatelliteListcopy>
</ChannelMap>

View File

@@ -1,20 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Test.Loader.PhilipsBin")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Test.Loader.PhilipsBin")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("36ed558e-576c-4d9d-a8c5-8d270a156b82")]
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MSTest.TestAdapter" version="2.1.1" targetFramework="net48" />
<package id="MSTest.TestFramework" version="2.1.1" targetFramework="net48" />
</packages>

View File

@@ -1,107 +0,0 @@
<?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.1.3.2\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.1.3.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>{0A162099-DA92-426A-AB70-36F88F9E5DC1}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Test.Loader.PhilipsXml</RootNamespace>
<AssemblyName>Test.Loader.PhilipsXml</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>
<TargetFrameworkProfile />
</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>
</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>..\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.1.3.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.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
</ItemGroup>
<ItemGroup>
<Compile Include="PhilipsXmlTest.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.PhilipsXml\ChanSort.Loader.PhilipsXml.csproj">
<Project>{d7bafd55-50f5-46c3-a76b-2193bed5358f}</Project>
<Name>ChanSort.Loader.PhilipsXml</Name>
</ProjectReference>
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
<Name>Test.Loader</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="TestFiles\CM_TPM1013E_LA_CK.xml" />
<None Include="TestFiles\DVBC.xml" />
<None Include="TestFiles\DVBS.xml" />
</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.1.3.2\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.props'))" />
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets'))" />
</Target>
<Import Project="..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.1.3.2\build\net45\MSTest.TestAdapter.targets')" />
</Project>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MSTest.TestAdapter" version="1.3.2" targetFramework="net48" />
<package id="MSTest.TestFramework" version="1.3.2" targetFramework="net48" />
</packages>

View File

@@ -24,10 +24,23 @@ namespace Test.Loader
GetExecutableDir();
var destFile = Path.Combine(executableDir, Path.GetFileName(file));
File.Copy(Path.Combine(solutionDir, file), destFile, true);
return destFile;
var src = Path.Combine(solutionDir, file);
var dest = Path.Combine(executableDir, Path.GetFileName(file));
if (Directory.Exists(src))
DeployRecursively(src, dest);
else
File.Copy(src, dest, true);
return dest;
}
private static void DeployRecursively(string src, string dest)
{
foreach(var file in Directory.GetFiles(src))
File.Copy(file, Path.Combine(dest, Path.GetFileName(file)), true);
foreach(var subdir in Directory.GetDirectories(src))
DeployRecursively(subdir, Path.Combine(dest, Path.GetFileName(subdir)));
}
#endregion
#region GetSolutionBaseDir()