mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-01-21 23:02:03 +01:00
- unified handling for deleting channels (action based on file format support either mark-as-deleted, remove-from-file, append-at-end)
- added unit tests - internal code cleanup
This commit is contained in:
@@ -55,8 +55,8 @@ Supported TV models
|
||||
Special thanks to Hisense for supporting ChanSort with technical information and a test device!
|
||||
|
||||
**Samsung**
|
||||
.scm files: B (2009)*, B (2013), C, D, E, F, H series
|
||||
.zip files: H, J, K, M series
|
||||
.scm files: B (2009)*, B (2013), C, D, E, F, H, J series
|
||||
.zip files: H, J, K, M, N and Q series
|
||||
Lists: Air analog, Air digital, Cable analog, Cable digital,
|
||||
Cable Prime, Sat digital, Astra HD+, Freesat, TivuSat,
|
||||
Canal Digital Sat, Digital+, Cyfra+
|
||||
@@ -87,7 +87,7 @@ the channel list from/to USB can be found in the Wiki.
|
||||
Viera models with an svl.bin or svl.db channel list (most models since 2011)
|
||||
|
||||
**Sony**
|
||||
Android-TVs "sdb.xml" files using formats "FormateVer" 1.1.0 and "FormatVer" 1.0.0, 1.1.0 and 1.2.0
|
||||
Android-TVs "sdb.xml" files using formats "FormateVer" 1.1.0 and KDL 2012/2014 files using "FormatVer" 1.0.0, 1.1.0 and 1.2.0
|
||||
|
||||
**Toshiba**
|
||||
Models that export a .zip file containing chmgt.db, dvbSysData.db and dvbMainData.db files.
|
||||
|
||||
@@ -54,7 +54,8 @@ Smart-Modelle (2016) mit channel.db Dateiformat, z.B. H65M5500
|
||||
Besonderen Dank an Hisense f<>r die Bereitstellung von technischen Informationen und einem Testger<65>t!
|
||||
|
||||
**Samsung**
|
||||
Serie: B (2009)*, B (2013), C, D, E, F, H, J
|
||||
.scm Dateien: Serien B (2009)*, B (2013), C, D, E, F, H, J
|
||||
.zip Dateien: Serien H, J, K, M, N and Q series
|
||||
Listen: Air analog, Air digital, Cable analog, Cable digital,
|
||||
Cable Prime, Sat digital, Astra HD+, Freesat, TivuSat,
|
||||
Canal Digital Sat, Digital+, Cyfra+
|
||||
@@ -82,7 +83,7 @@ Eine Anleitung zum Aufruf des geheimen Service-Men
|
||||
Viera-Modelle mit svl.bin oder svl.db Dateien (die meisten Modelle seit 2011)
|
||||
|
||||
**Sony**
|
||||
Android-TV "sdb.xml" Dateien mit Versionen "FormateVer" 1.1.0 and "FormatVer" 1.0.0, 1.1.0 and 1.2.0
|
||||
Android-TV "sdb.xml" Dateien mit Versionen "FormateVer" 1.1.0 und KDL 2012/2014 mit "FormatVer" 1.0.0, 1.1.0 and 1.2.0
|
||||
|
||||
**ITT, Medion, Nabo, ok., PEAQ, Schaub-Lorenz, Silva-Schneider, Telefunken**
|
||||
Die Marken nutzen .sdx Dateien (derzeit wird nur Satellitenempfang unterst<73>tzt)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Api</RootNamespace>
|
||||
<AssemblyName>ChanSort.Api</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
@@ -23,6 +23,7 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -31,6 +32,7 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,19 +42,23 @@
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<OutputPath>..\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data" />
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace ChanSort.Api
|
||||
{
|
||||
/// <summary>
|
||||
/// Reads a reference list from a .csv file with the format
|
||||
/// [dummy1],ProgramNr,[dummy2],UID,ChannelName[,SignalSource,FavAndFlags]
|
||||
/// [obsolete],ProgramNr,[obsolete],UID,ChannelName[,SignalSource,FavAndFlags]
|
||||
/// </summary>
|
||||
public class CsvRefListSerializer : SerializerBase
|
||||
{
|
||||
@@ -31,17 +31,15 @@ namespace ChanSort.Api
|
||||
{
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
this.Features.CanSkipChannels = true;
|
||||
this.Features.CanDeleteChannels = true;
|
||||
this.Features.DeleteMode = DeleteMode.FlagWithoutPrNr;
|
||||
this.Features.CanHaveGaps = true;
|
||||
this.Features.EncryptedFlagEdit = false;
|
||||
this.DataRoot.SortedFavorites = false;
|
||||
this.DataRoot.SupportedFavorites = Favorites.A | Favorites.B | Favorites.C | Favorites.D | Favorites.E;
|
||||
this.Features.SortedFavorites = false;
|
||||
this.Features.SupportedFavorites = Favorites.A | Favorites.B | Favorites.C | Favorites.D | Favorites.E | Favorites.F | Favorites.G | Favorites.H;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public override string DisplayName => "ChanSort .csv Reference List Loader";
|
||||
|
||||
#region Load()
|
||||
|
||||
public override void Load()
|
||||
@@ -211,6 +209,8 @@ namespace ChanSort.Api
|
||||
channel.Lock = false;
|
||||
channel.Skip = false;
|
||||
channel.Hidden = false;
|
||||
channel.IsDeleted = false;
|
||||
channel.Favorites = 0;
|
||||
|
||||
foreach (var c in flags)
|
||||
{
|
||||
@@ -251,6 +251,7 @@ namespace ChanSort.Api
|
||||
break;
|
||||
case 'D':
|
||||
channel.IsDeleted = true;
|
||||
channel.NewProgramNr = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -318,7 +319,7 @@ namespace ChanSort.Api
|
||||
}
|
||||
}
|
||||
|
||||
public static void Save(TextWriter stream, DataRoot dataRoot)
|
||||
public static void Save(TextWriter stream, DataRoot dataRoot, bool includeDeletedChannels = true)
|
||||
{
|
||||
foreach (var channelList in dataRoot.ChannelLists)
|
||||
{
|
||||
@@ -327,8 +328,9 @@ namespace ChanSort.Api
|
||||
|
||||
foreach (var channel in channelList.GetChannelsByNewOrder())
|
||||
{
|
||||
if (channel.NewProgramNr == -1)
|
||||
if (channel.NewProgramNr == -1 && !includeDeletedChannels)
|
||||
continue;
|
||||
|
||||
var line = string.Format("{0},{1},{2},{3},\"{4}\",{5},{6}",
|
||||
"", // past: channel.RecordIndex,
|
||||
channel.NewProgramNr,
|
||||
|
||||
@@ -353,28 +353,34 @@ namespace ChanSort.Api
|
||||
{
|
||||
if (list.IsMixedSourceFavoritesList)
|
||||
continue;
|
||||
|
||||
// sort the channels by assigned numbers, then unassigned by original order or alphabetically, then deleted channels
|
||||
var sortedChannels = list.Channels.OrderBy(ChanSortCriteria).ToList();
|
||||
int maxProgNr = 0;
|
||||
|
||||
foreach (var appChannel in sortedChannels)
|
||||
{
|
||||
if (appChannel.RecordIndex < 0)
|
||||
if (appChannel.IsProxy)
|
||||
continue;
|
||||
|
||||
if (appChannel.NewProgramNr == -1)
|
||||
{
|
||||
if (mode == UnsortedChannelMode.MarkDeleted)
|
||||
if (mode == UnsortedChannelMode.Delete)
|
||||
appChannel.IsDeleted = true;
|
||||
else
|
||||
else // append (hidden if possible)
|
||||
{
|
||||
appChannel.Hidden = true;
|
||||
appChannel.Skip = true;
|
||||
}
|
||||
}
|
||||
|
||||
int progNr = this.GetNewProgramNr(appChannel, ref maxProgNr);
|
||||
if (mode != UnsortedChannelMode.MarkDeleted || this.DataRoot.DeletedChannelsNeedNumbers)
|
||||
appChannel.NewProgramNr = progNr;
|
||||
// assign a valid number or 0 .... because -1 will never be a valid value for the TV
|
||||
appChannel.NewProgramNr = mode != UnsortedChannelMode.Delete || this.DataRoot.DeletedChannelsNeedNumbers ? ++maxProgNr : 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (appChannel.NewProgramNr > maxProgNr)
|
||||
maxProgNr = appChannel.NewProgramNr;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -384,13 +390,13 @@ namespace ChanSort.Api
|
||||
private string ChanSortCriteria(ChannelInfo channel)
|
||||
{
|
||||
// explicitly sorted
|
||||
var pos = channel.GetPosition(this.SubListIndex);
|
||||
var pos = channel.NewProgramNr;
|
||||
if (pos != -1)
|
||||
return pos.ToString("d5");
|
||||
|
||||
// eventually hide unsorted channels
|
||||
if (this.unsortedChannelMode == UnsortedChannelMode.MarkDeleted)
|
||||
return "Z";
|
||||
if (this.unsortedChannelMode == UnsortedChannelMode.Delete)
|
||||
return "Z" + channel.RecordIndex.ToString("d5");
|
||||
|
||||
// eventually append in old order
|
||||
if (this.unsortedChannelMode == UnsortedChannelMode.AppendInOrder)
|
||||
@@ -406,20 +412,6 @@ namespace ChanSort.Api
|
||||
|
||||
#endregion
|
||||
|
||||
#region GetNewProgramNr()
|
||||
|
||||
private int GetNewProgramNr(ChannelInfo appChannel, ref int maxPrNr)
|
||||
{
|
||||
int prNr = appChannel.NewProgramNr;
|
||||
if (prNr > maxPrNr)
|
||||
maxPrNr = prNr;
|
||||
if (prNr == -1)
|
||||
prNr = ++maxPrNr;
|
||||
return prNr;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region SetFavorites()
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ChanSort.Api
|
||||
{
|
||||
@@ -6,21 +9,34 @@ namespace ChanSort.Api
|
||||
{
|
||||
#region class SupportedFeatures
|
||||
|
||||
public enum DeleteMode
|
||||
{
|
||||
NotSupported = 0,
|
||||
Physically = 1,
|
||||
FlagWithoutPrNr = 2,
|
||||
FlagWithPrNr = 3
|
||||
}
|
||||
|
||||
public class SupportedFeatures
|
||||
{
|
||||
public ChannelNameEditMode ChannelNameEdit { get; set; }
|
||||
public bool CleanUpChannelData { get; set; }
|
||||
public bool DeviceSettings { get; set; }
|
||||
public bool CanDeleteChannels { get; set; }
|
||||
public bool CanSkipChannels { get; set; } = true;
|
||||
public bool CanHaveGaps { get; set; }
|
||||
public bool CanHaveGaps { get; set; } = true;
|
||||
public bool EncryptedFlagEdit { get; set; }
|
||||
public DeleteMode DeleteMode { get; set; } = DeleteMode.NotSupported;
|
||||
|
||||
|
||||
public Favorites SupportedFavorites { get; set; } = Favorites.A | Favorites.B | Favorites.C | Favorites.D;
|
||||
public bool SortedFavorites { get; set; }
|
||||
public bool MixedSourceFavorites { get; set; }
|
||||
public bool AllowGapsInFavNumbers { get; set; }
|
||||
|
||||
public bool CanDeleteChannelsWithFlag => this.DeleteMode == DeleteMode.FlagWithPrNr || this.DeleteMode == DeleteMode.FlagWithoutPrNr;
|
||||
public bool CanDeleteChannelsFromFile => this.DeleteMode == DeleteMode.Physically;
|
||||
public bool DeletedChannelsNeedNumbers => this.DeleteMode == DeleteMode.FlagWithPrNr;
|
||||
|
||||
public SupportedFeatures()
|
||||
{
|
||||
this.CanDeleteChannels = true;
|
||||
this.CanHaveGaps = true;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -28,17 +44,15 @@ namespace ChanSort.Api
|
||||
|
||||
public string FileName { get; set; }
|
||||
public DataRoot DataRoot { get; protected set; }
|
||||
public SupportedFeatures Features { get; private set; }
|
||||
public SupportedFeatures Features { get; } = new SupportedFeatures();
|
||||
|
||||
protected SerializerBase(string inputFile)
|
||||
{
|
||||
this.Features = new SupportedFeatures();
|
||||
this.FileName = inputFile;
|
||||
this.DataRoot = new DataRoot();
|
||||
this.defaultEncoding = Encoding.GetEncoding("iso-8859-9");
|
||||
this.DataRoot = new DataRoot(this);
|
||||
}
|
||||
|
||||
public abstract string DisplayName { get; }
|
||||
public abstract void Load();
|
||||
public abstract void Save(string tvOutputFile);
|
||||
|
||||
@@ -48,8 +62,7 @@ namespace ChanSort.Api
|
||||
set { this.defaultEncoding = value; }
|
||||
}
|
||||
|
||||
public virtual void EraseChannelData() { }
|
||||
|
||||
#region GetFileInformation()
|
||||
public virtual string GetFileInformation()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
@@ -85,9 +98,52 @@ namespace ChanSort.Api
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
#endregion
|
||||
|
||||
public virtual void ShowDeviceSettingsForm(object parentWindow) { }
|
||||
|
||||
public virtual string CleanUpChannelData() { return ""; }
|
||||
|
||||
|
||||
// common implementation helper methods
|
||||
|
||||
protected string UnzipFileToTempFolder()
|
||||
{
|
||||
var tempDir = this.FileName + ".tmp";
|
||||
|
||||
if (Directory.Exists(tempDir))
|
||||
Directory.Delete(tempDir, true);
|
||||
Directory.CreateDirectory(tempDir);
|
||||
ZipFile.ExtractToDirectory(this.FileName, tempDir);
|
||||
this.DeleteOnExit(tempDir);
|
||||
return tempDir;
|
||||
}
|
||||
|
||||
protected void ZipToOutputFile(string tvOutputFile)
|
||||
{
|
||||
var tempDir = this.FileName + ".tmp";
|
||||
File.Delete(tvOutputFile);
|
||||
ZipFile.CreateFromDirectory(tempDir, tvOutputFile);
|
||||
this.FileName = tvOutputFile;
|
||||
}
|
||||
|
||||
// TODO: replace this with a SerializerBase implementing IDisposable
|
||||
protected virtual void DeleteOnExit(string fileOrFolder)
|
||||
{
|
||||
Application.ApplicationExit += (sender, args) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Directory.Exists(fileOrFolder))
|
||||
Directory.Delete(fileOrFolder, true);
|
||||
else if (File.Exists(fileOrFolder))
|
||||
File.Delete(fileOrFolder);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,11 +16,11 @@ namespace ChanSort.Api
|
||||
{
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
this.Features.CanSkipChannels = false;
|
||||
this.Features.CanDeleteChannels = true;
|
||||
this.Features.DeleteMode = DeleteMode.Physically;
|
||||
this.Features.CanHaveGaps = true;
|
||||
this.Features.EncryptedFlagEdit = false;
|
||||
this.DataRoot.SortedFavorites = false;
|
||||
this.DataRoot.SupportedFavorites = 0;
|
||||
this.Features.SortedFavorites = false;
|
||||
this.Features.SupportedFavorites = 0;
|
||||
this.DataRoot.AddChannelList(this.allChannels);
|
||||
|
||||
allChannels.VisibleColumnFieldNames = new List<string>
|
||||
@@ -36,8 +36,6 @@ namespace ChanSort.Api
|
||||
|
||||
#endregion
|
||||
|
||||
public override string DisplayName => ".txt Reference List Loader";
|
||||
|
||||
#region Load()
|
||||
|
||||
public override void Load()
|
||||
|
||||
@@ -10,21 +10,31 @@ namespace ChanSort.Api
|
||||
private string uid;
|
||||
private string serviceTypeName;
|
||||
|
||||
/// <summary>
|
||||
/// List of channels that have the same UID as this channel and were not added to the channel list directly
|
||||
/// </summary>
|
||||
public readonly List<ChannelInfo> Duplicates = new List<ChannelInfo>();
|
||||
|
||||
public virtual bool IsDeleted { get; set; }
|
||||
public SignalSource SignalSource { get; set; }
|
||||
public string Source { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Index or ID of the data record
|
||||
/// </summary>
|
||||
public long RecordIndex { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// logical record order (might be different from the index, like old LG TLL files with a linked list of record indices)
|
||||
/// </summary>
|
||||
public int RecordOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// original program number from the file, except for channels with IsDeleted==true, which will have the value -1
|
||||
/// </summary>
|
||||
public int OldProgramNr { get; set; }
|
||||
/// <summary>
|
||||
/// new program number or -1, if the channel isn't assigned a number or has IsDeleted==true
|
||||
/// </summary>
|
||||
public int NewProgramNr { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
public string ShortName { get; set; }
|
||||
public Favorites Favorites { get; set; }
|
||||
public bool Skip { get; set; }
|
||||
public bool Lock { get; set; }
|
||||
public bool Hidden { get; set; }
|
||||
@@ -39,23 +49,50 @@ namespace ChanSort.Api
|
||||
public int AudioPid { get; set; }
|
||||
public int OriginalNetworkId { get; set; }
|
||||
public int TransportStreamId { get; set; }
|
||||
public int Bouquet { get; set; }
|
||||
public string Provider { get; set; }
|
||||
public int SymbolRate { get; set; }
|
||||
public int ServiceType { get; set; }
|
||||
public string Debug { get; private set; }
|
||||
public string SatPosition { get; set; }
|
||||
public Transponder Transponder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bitmask in which favorite lists the channel is included
|
||||
/// </summary>
|
||||
public Favorites Favorites { get; set; }
|
||||
/// <summary>
|
||||
/// current number of the channel in the various favorite lists (if individual sorting is supported)
|
||||
/// </summary>
|
||||
public List<int> FavIndex { get; }
|
||||
/// <summary>
|
||||
/// original number of the channel in the various favorite lists (if individual sorting is supported)
|
||||
/// </summary>
|
||||
public List<int> OldFavIndex { get; }
|
||||
|
||||
/// <summary>
|
||||
/// predefined LCN (logical channel number) assigned by TV firmware or cable/sat operator
|
||||
/// </summary>
|
||||
public int ProgramNrPreset { get; set; }
|
||||
|
||||
public bool IsNameModified { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A proxy channel is inserted into the current channel list when there was no match for a reference list channel
|
||||
/// </summary>
|
||||
public bool IsProxy => this.RecordIndex < 0;
|
||||
|
||||
/// <summary>
|
||||
/// arbitrary information that can be shown in a UI column to assist in analyzing a file format while coding a plugin
|
||||
/// </summary>
|
||||
public string Debug { get; private set; }
|
||||
|
||||
|
||||
|
||||
|
||||
#region ctor()
|
||||
protected ChannelInfo()
|
||||
{
|
||||
this.OldProgramNr = -1;
|
||||
this.NewProgramNr = -1;
|
||||
this.FavIndex = new List<int>(MAX_FAV_LISTS);
|
||||
this.OldFavIndex = new List<int>(MAX_FAV_LISTS);
|
||||
@@ -76,7 +113,6 @@ namespace ChanSort.Api
|
||||
this.SignalSource = source;
|
||||
this.RecordIndex = index;
|
||||
this.RecordOrder = (int)index;
|
||||
this.NewProgramNr = -1;
|
||||
this.OldProgramNr = oldProgNr;
|
||||
this.Name = name;
|
||||
this.Encrypted = null;
|
||||
@@ -99,6 +135,11 @@ namespace ChanSort.Api
|
||||
#endregion
|
||||
|
||||
#region Uid
|
||||
/// <summary>
|
||||
/// The Uid is the preferred way of matching channels between the current channel list and a reference list.
|
||||
/// The basic format of this string was taken from a command line tool "TllSort" for LG TVs but then expanded beyond that
|
||||
/// in order to support the various file formats and the data provided in those.
|
||||
/// </summary>
|
||||
public string Uid
|
||||
{
|
||||
get
|
||||
@@ -113,7 +154,7 @@ namespace ChanSort.Api
|
||||
this.uid = "S" + /*this.SatPosition + */ "-" + this.OriginalNetworkId + "-" + this.TransportStreamId + "-" + this.ServiceId;
|
||||
else if ((this.SignalSource & SignalSource.MaskAntennaCableSat) == SignalSource.Antenna || (this.SignalSource & SignalSource.MaskAntennaCableSat) == SignalSource.Cable)
|
||||
{
|
||||
// ChannelOrTransponder is needed for DVB-T where the same ONID+TSID+SID can be received from 2 different towers (on different frequencies)
|
||||
// ChannelOrTransponder is needed for DVB-T where the same ONID+TSID+SID can be received from 2 different radio transmitters, but on different frequencies/channels
|
||||
this.uid = "C-" + this.OriginalNetworkId + "-" + this.TransportStreamId + "-" + this.ServiceId + "-" + this.ChannelOrTransponder;
|
||||
}
|
||||
else
|
||||
@@ -177,23 +218,6 @@ namespace ChanSort.Api
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region GetFavString()
|
||||
public static string GetFavString(Favorites favorites)
|
||||
{
|
||||
string sep = "";
|
||||
string text = "";
|
||||
foreach (Favorites favMask in Enum.GetValues(typeof(Favorites)))
|
||||
{
|
||||
if ((favorites & favMask) != 0)
|
||||
{
|
||||
text += sep + favMask.ToString();
|
||||
sep = ",";
|
||||
}
|
||||
}
|
||||
return text;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ParseFavString()
|
||||
public static Favorites ParseFavString(string value)
|
||||
{
|
||||
@@ -246,12 +270,19 @@ namespace ChanSort.Api
|
||||
#endregion
|
||||
|
||||
#region UpdateRawData()
|
||||
/// <summary>
|
||||
/// called during the saving procedure to update the external channel list data with the changes made by the user
|
||||
/// </summary>
|
||||
public virtual void UpdateRawData()
|
||||
{
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ChangeEncoding()
|
||||
/// <summary>
|
||||
/// for file formats that allow characters in local code pages, this method should re-parse the raw data bytes for the given encoding
|
||||
/// </summary>
|
||||
/// <param name="encoding"></param>
|
||||
public virtual void ChangeEncoding(System.Text.Encoding encoding)
|
||||
{
|
||||
}
|
||||
@@ -259,16 +290,25 @@ namespace ChanSort.Api
|
||||
|
||||
#region GetPosition(), SetPosition(), ChangePosition()
|
||||
|
||||
/// <summary>
|
||||
/// Gets the new channel number in the main channel list (index=0) or the various favorite lists (1-x)
|
||||
/// </summary>
|
||||
public int GetPosition(int subListIndex)
|
||||
{
|
||||
return subListIndex == 0 ? this.NewProgramNr : this.FavIndex[subListIndex - 1];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the original channel number in the main channel list (index=0) or the various favorite lists (1-x)
|
||||
/// </summary>
|
||||
public int GetOldPosition(int subListIndex)
|
||||
{
|
||||
return subListIndex == 0 ? this.OldProgramNr : this.OldFavIndex[subListIndex - 1];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the new channel number in the main channel list (index=0) or the various favorite lists (1-x)
|
||||
/// </summary>
|
||||
public void SetPosition(int subListIndex, int newPos)
|
||||
{
|
||||
if (subListIndex == 0)
|
||||
@@ -284,6 +324,9 @@ namespace ChanSort.Api
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the original channel number in the main channel list (index=0) or the various favorite lists (1-x)
|
||||
/// </summary>
|
||||
public void SetOldPosition(int subListIndex, int oldPos)
|
||||
{
|
||||
if (subListIndex == 0)
|
||||
@@ -292,6 +335,9 @@ namespace ChanSort.Api
|
||||
this.OldFavIndex[subListIndex - 1] = oldPos;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Internal helper method to adjust the main or favorite program number by a delta value
|
||||
/// </summary>
|
||||
internal void ChangePosition(int subListIndex, int delta)
|
||||
{
|
||||
if (subListIndex == 0)
|
||||
|
||||
@@ -1,41 +1,37 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Linq;
|
||||
|
||||
namespace ChanSort.Api
|
||||
{
|
||||
public class DataRoot
|
||||
{
|
||||
private readonly IDictionary<int, Satellite> satellites = new Dictionary<int, Satellite>();
|
||||
private readonly IDictionary<int, Transponder> transponder = new Dictionary<int, Transponder>();
|
||||
private readonly IDictionary<int, LnbConfig> lnbConfig = new Dictionary<int, LnbConfig>();
|
||||
private readonly IList<ChannelList> channelLists = new List<ChannelList>();
|
||||
private readonly StringBuilder warnings = new StringBuilder();
|
||||
private readonly SerializerBase loader;
|
||||
|
||||
public StringBuilder Warnings { get { return this.warnings; } }
|
||||
public IDictionary<int, Satellite> Satellites { get { return this.satellites; } }
|
||||
public IDictionary<int, Transponder> Transponder { get { return this.transponder; } }
|
||||
public IDictionary<int, LnbConfig> LnbConfig { get { return this.lnbConfig; } }
|
||||
public IEnumerable<ChannelList> ChannelLists { get { return this.channelLists; } }
|
||||
public bool IsEmpty { get { return this.channelLists.Count == 0; } }
|
||||
public StringBuilder Warnings { get; } = new StringBuilder();
|
||||
public IDictionary<int, Satellite> Satellites { get; } = new Dictionary<int, Satellite>();
|
||||
public IDictionary<int, Transponder> Transponder { get; } = new Dictionary<int, Transponder>();
|
||||
public IDictionary<int, LnbConfig> LnbConfig { get; } = new Dictionary<int, LnbConfig>();
|
||||
public IEnumerable<ChannelList> ChannelLists => this.channelLists;
|
||||
public bool IsEmpty => this.channelLists.Count == 0;
|
||||
public bool NeedsSaving { get; set; }
|
||||
public Favorites SupportedFavorites { get; set; }
|
||||
public bool SortedFavorites { get; set; }
|
||||
public bool MixedSourceFavorites { get; set; }
|
||||
public bool AllowGapsInFavNumbers { get; set; }
|
||||
public bool ShowDeletedChannels { get; set; }
|
||||
|
||||
public bool DeletedChannelsNeedNumbers { get; set; }
|
||||
|
||||
public DataRoot()
|
||||
public Favorites SupportedFavorites => this.loader.Features.SupportedFavorites;
|
||||
public bool SortedFavorites => this.loader.Features.SortedFavorites;
|
||||
public bool MixedSourceFavorites => this.loader.Features.MixedSourceFavorites;
|
||||
public bool AllowGapsInFavNumbers => this.loader.Features.AllowGapsInFavNumbers;
|
||||
public bool DeletedChannelsNeedNumbers => this.loader.Features.DeletedChannelsNeedNumbers;
|
||||
|
||||
public DataRoot(SerializerBase loader)
|
||||
{
|
||||
this.SupportedFavorites = Favorites.A | Favorites.B | Favorites.C | Favorites.D;
|
||||
this.loader = loader;
|
||||
}
|
||||
|
||||
#region AddSatellite()
|
||||
public virtual void AddSatellite(Satellite satellite)
|
||||
{
|
||||
this.satellites.Add(satellite.Id, satellite);
|
||||
this.Satellites.Add(satellite.Id, satellite);
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -43,21 +39,21 @@ namespace ChanSort.Api
|
||||
public virtual void AddTransponder(Satellite sat, Transponder trans)
|
||||
{
|
||||
trans.Satellite = sat;
|
||||
if (this.transponder.ContainsKey(trans.Id))
|
||||
if (this.Transponder.ContainsKey(trans.Id))
|
||||
{
|
||||
this.warnings.AppendFormat("Duplicate transponder data record for satellite #{0} with id {1}\r\n", sat?.Id, trans.Id);
|
||||
this.Warnings.AppendFormat("Duplicate transponder data record for satellite #{0} with id {1}\r\n", sat?.Id, trans.Id);
|
||||
return;
|
||||
}
|
||||
if (sat != null)
|
||||
sat.Transponder.Add(trans.Id, trans);
|
||||
this.transponder.Add(trans.Id, trans);
|
||||
this.Transponder.Add(trans.Id, trans);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region AddLnbConfig()
|
||||
public void AddLnbConfig(LnbConfig lnb)
|
||||
{
|
||||
this.lnbConfig.Add(lnb.Id, lnb);
|
||||
this.LnbConfig.Add(lnb.Id, lnb);
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -65,7 +61,7 @@ namespace ChanSort.Api
|
||||
public virtual void AddChannelList(ChannelList list)
|
||||
{
|
||||
this.channelLists.Add(list);
|
||||
this.MixedSourceFavorites |= list.IsMixedSourceFavoritesList;
|
||||
this.loader.Features.MixedSourceFavorites |= list.IsMixedSourceFavoritesList;
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -74,7 +70,7 @@ namespace ChanSort.Api
|
||||
{
|
||||
if (list == null)
|
||||
{
|
||||
warnings.AppendFormat("No list found to add channel '{0}'\r\n", channel);
|
||||
this.Warnings.AppendFormat("No list found to add channel '{0}'\r\n", channel);
|
||||
return;
|
||||
}
|
||||
string warning = list.AddChannel(channel);
|
||||
@@ -105,6 +101,26 @@ namespace ChanSort.Api
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ValidateAfterLoad()
|
||||
public virtual void ValidateAfterLoad()
|
||||
{
|
||||
foreach (var list in this.ChannelLists)
|
||||
{
|
||||
if (list.IsMixedSourceFavoritesList)
|
||||
continue;
|
||||
|
||||
// make sure that deleted channels have OldProgramNr = -1
|
||||
foreach (var chan in list.Channels)
|
||||
{
|
||||
if (chan.IsDeleted)
|
||||
chan.OldProgramNr = -1;
|
||||
else if (chan.OldProgramNr < 0) // old versions of ChanSort saved -1 and without setting IsDeleted
|
||||
chan.IsDeleted = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ApplyCurrentProgramNumbers()
|
||||
public void ApplyCurrentProgramNumbers()
|
||||
{
|
||||
@@ -120,35 +136,37 @@ namespace ChanSort.Api
|
||||
foreach (var channel in list.Channels)
|
||||
{
|
||||
for (int i = 0; i <= c; i++)
|
||||
channel.SetPosition(i, channel.IsDeleted && !this.DeletedChannelsNeedNumbers ? -1 : channel.GetOldPosition(i));
|
||||
channel.SetPosition(i, channel.GetOldPosition(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region SetPrNrForDeletedChannels()
|
||||
public void SetPrNrForDeletedChannels()
|
||||
#region ValidateAfterSave()
|
||||
public virtual void ValidateAfterSave()
|
||||
{
|
||||
if (this.DeletedChannelsNeedNumbers)
|
||||
return;
|
||||
|
||||
// make sure that deleted channels have OldProgramNr = -1
|
||||
// set old numbers to match the new numbers
|
||||
// also make sure that deleted channels are either removed from the list or assigned the -1 prNr, depending on the loader's DeleteMode
|
||||
foreach (var list in this.ChannelLists)
|
||||
{
|
||||
if (list.IsMixedSourceFavoritesList)
|
||||
continue;
|
||||
foreach (var chan in list.Channels)
|
||||
for (int i = 0; i < list.Channels.Count; i++)
|
||||
{
|
||||
var chan = list.Channels[i];
|
||||
if (chan.IsDeleted)
|
||||
{
|
||||
chan.NewProgramNr = -1;
|
||||
chan.OldProgramNr = -1;
|
||||
if (this.loader.Features.DeleteMode == SerializerBase.DeleteMode.Physically)
|
||||
list.Channels.RemoveAt(i--);
|
||||
else
|
||||
chan.NewProgramNr = -1;
|
||||
}
|
||||
else if (chan.OldProgramNr == -1) // old versions of ChanSort saved -1 and without setting IsDeleted
|
||||
chan.IsDeleted = true;
|
||||
|
||||
chan.OldProgramNr = chan.NewProgramNr;
|
||||
chan.OldFavIndex.Clear();
|
||||
chan.OldFavIndex.AddRange(chan.FavIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace ChanSort.Api
|
||||
{
|
||||
AppendInOrder=0,
|
||||
AppendAlphabetically=1,
|
||||
MarkDeleted=2
|
||||
Delete=2
|
||||
}
|
||||
|
||||
[Flags]
|
||||
|
||||
2
source/ChanSort.Api/Resources.Designer.cs
generated
2
source/ChanSort.Api/Resources.Designer.cs
generated
@@ -19,7 +19,7 @@ namespace ChanSort.Api {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.GlobalClone</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.GlobalClone</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
@@ -22,6 +22,7 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
@@ -31,6 +32,7 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,15 +42,17 @@
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<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>
|
||||
<PropertyGroup>
|
||||
<StartupObject />
|
||||
|
||||
@@ -25,7 +25,8 @@ namespace ChanSort.Loader.GlobalClone
|
||||
public GcSerializer(string inputFile) : base(inputFile)
|
||||
{
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
//this.Features.CanDeleteChannels = false;
|
||||
this.Features.DeleteMode = DeleteMode.FlagWithPrNr;
|
||||
this.Features.CanHaveGaps = true;
|
||||
|
||||
this.DataRoot.AddChannelList(this.atvChannels);
|
||||
this.DataRoot.AddChannelList(this.dtvTvChannels);
|
||||
@@ -35,12 +36,6 @@ namespace ChanSort.Loader.GlobalClone
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DisplayName
|
||||
public override string DisplayName => "LG GlobalClone loader";
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Load()
|
||||
|
||||
public override void Load()
|
||||
@@ -320,8 +315,8 @@ namespace ChanSort.Loader.GlobalClone
|
||||
{
|
||||
int n = info.LocalName[11] - 'A';
|
||||
var mask = 1 << n;
|
||||
this.DataRoot.SupportedFavorites |= (Favorites)mask;
|
||||
this.DataRoot.SortedFavorites = true;
|
||||
this.Features.SupportedFavorites |= (Favorites)mask;
|
||||
this.Features.SortedFavorites = true;
|
||||
if (((int)ch.Favorites & mask) != 0) // xml element holds bad index data (250) when fav is not set
|
||||
ch.SetPosition(n + 1, int.Parse(info.InnerText));
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace ChanSort.Loader.GlobalClone {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.Hisense</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.Hisense</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
@@ -23,6 +23,7 @@
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -31,6 +32,7 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,15 +42,17 @@
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<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" />
|
||||
|
||||
@@ -13,8 +13,6 @@ namespace ChanSort.Loader.Hisense
|
||||
{
|
||||
public class HisDbSerializer : SerializerBase
|
||||
{
|
||||
public override string DisplayName => "Hisense channel.db Loader";
|
||||
|
||||
#region enums and bitmasks
|
||||
|
||||
internal enum BroadcastType
|
||||
@@ -94,10 +92,10 @@ namespace ChanSort.Loader.Hisense
|
||||
DepencencyChecker.AssertVc2010RedistPackageX86Installed();
|
||||
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
this.Features.CanDeleteChannels = false;
|
||||
this.Features.DeleteMode = DeleteMode.NotSupported;
|
||||
this.Features.CanSkipChannels = false;
|
||||
this.Features.CanHaveGaps = true;
|
||||
this.DataRoot.SortedFavorites = true;
|
||||
this.Features.SortedFavorites = true;
|
||||
|
||||
channelLists.Add(new ChannelList(SignalSource.Antenna, "Antenna"));
|
||||
channelLists.Add(new ChannelList(SignalSource.Cable, "Cable"));
|
||||
@@ -537,7 +535,7 @@ namespace ChanSort.Loader.Hisense
|
||||
|
||||
private void UpdateChannel(SQLiteCommand cmd, ChannelInfo ci)
|
||||
{
|
||||
if (ci.RecordIndex < 0) // skip reference list proxy channels
|
||||
if (ci.IsProxy)
|
||||
return;
|
||||
|
||||
int x = (int) ((ulong) ci.RecordIndex >> 32); // the table number is kept in the higher 32 bits
|
||||
@@ -571,7 +569,7 @@ namespace ChanSort.Loader.Hisense
|
||||
{
|
||||
if (ci.FavIndex[i] <= 0)
|
||||
{
|
||||
cmd.CommandText = $"delete from fav_{i + 1} where ui2_svc_id={ci.RecordIndex >> 32} and ui2_svc_rec_id={ci.RecordIndex & 0xFFFF}";
|
||||
cmd.CommandText = $"delete from fav_{i + 1} where ui2_svc_id={ci.RecordIndex >> 32} and ui2_svc_rec_id={ci.RecordIndex & 0xFFFFFFFF}";
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
else
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace ChanSort.Loader.Hisense {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.Hisense2017</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.Hisense2017</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
@@ -23,6 +23,7 @@
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -31,6 +32,7 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,15 +42,17 @@
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<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" />
|
||||
|
||||
@@ -119,18 +119,15 @@ namespace ChanSort.Loader.Hisense2017
|
||||
DepencencyChecker.AssertVc2010RedistPackageX86Installed();
|
||||
|
||||
Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
Features.CanDeleteChannels = true;
|
||||
Features.DeleteMode = DeleteMode.FlagWithPrNr;
|
||||
Features.CanSkipChannels = true;
|
||||
Features.CanHaveGaps = true;
|
||||
DataRoot.MixedSourceFavorites = true;
|
||||
DataRoot.SortedFavorites = true;
|
||||
DataRoot.ShowDeletedChannels = false;
|
||||
Features.MixedSourceFavorites = true;
|
||||
Features.SortedFavorites = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public override string DisplayName => "Hisense servicelist.db Loader";
|
||||
|
||||
#region Load()
|
||||
|
||||
public override void Load()
|
||||
@@ -513,8 +510,8 @@ left outer join Lcn l on l.ServiceId=fi.ServiceId and l.FavoriteId=fi.FavoriteId
|
||||
|
||||
cmd.Parameters["@favId"].Value = favId;
|
||||
cmd.Parameters["@servId"].Value = ci.RecordIndex;
|
||||
cmd.Parameters["@ch"].Value = ci.NewProgramNr <= 0 ? 9999 : ci.NewProgramNr;
|
||||
cmd.Parameters["@del"].Value = ci.NewProgramNr <= 0 ? 1 : 0; // 1 or -1 ?
|
||||
cmd.Parameters["@ch"].Value = ci.NewProgramNr;
|
||||
cmd.Parameters["@del"].Value = ci.IsDeleted ? 1 : 0; // 1 or -1 ?
|
||||
// not sure if the following columns are used at all. they also exist in the Services table
|
||||
cmd.Parameters["@prot"].Value = ci.Lock ? -1 : 0;
|
||||
cmd.Parameters["@sel"].Value = ci.Skip ? 0 : -1;
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace ChanSort.Loader.Hisense2017 {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.LG</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.LG</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
@@ -49,7 +49,7 @@
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<OutputPath>..\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -60,9 +60,9 @@
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Data.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
|
||||
@@ -121,8 +121,8 @@
|
||||
<data name="labelControl1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.XtraEditors.v19.1" name="DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="labelControl1.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<assembly alias="DevExpress.XtraEditors.v19.2" name="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="labelControl1.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
@@ -143,7 +143,7 @@
|
||||
<value>labelControl1</value>
|
||||
</data>
|
||||
<data name=">>labelControl1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -157,7 +157,7 @@
|
||||
<data name="labelControl3.Appearance.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Tahoma, 8.25pt, style=Bold</value>
|
||||
</data>
|
||||
<data name="labelControl3.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl3.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -176,7 +176,7 @@
|
||||
<value>labelControl3</value>
|
||||
</data>
|
||||
<data name=">>labelControl3.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl3.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -190,7 +190,7 @@
|
||||
<data name="labelControl4.Appearance.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Tahoma, 8.25pt, style=Bold</value>
|
||||
</data>
|
||||
<data name="labelControl4.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl4.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -209,7 +209,7 @@
|
||||
<value>labelControl4</value>
|
||||
</data>
|
||||
<data name=">>labelControl4.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl4.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -220,7 +220,7 @@
|
||||
<data name="labelControl5.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="labelControl5.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl5.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl5.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -239,7 +239,7 @@
|
||||
<value>labelControl5</value>
|
||||
</data>
|
||||
<data name=">>labelControl5.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl5.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -250,7 +250,7 @@
|
||||
<data name="labelControl6.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="labelControl6.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl6.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl6.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -269,7 +269,7 @@
|
||||
<value>labelControl6</value>
|
||||
</data>
|
||||
<data name=">>labelControl6.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl6.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -280,7 +280,7 @@
|
||||
<data name="labelControl7.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="labelControl7.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl7.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl7.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -299,7 +299,7 @@
|
||||
<value>labelControl7</value>
|
||||
</data>
|
||||
<data name=">>labelControl7.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl7.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -353,7 +353,7 @@
|
||||
<value>btnOk</value>
|
||||
</data>
|
||||
<data name=">>btnOk.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnOk.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -364,7 +364,7 @@
|
||||
<data name="labelControl2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="labelControl2.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl2.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -383,7 +383,7 @@
|
||||
<value>labelControl2</value>
|
||||
</data>
|
||||
<data name=">>labelControl2.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl2.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -410,6 +410,6 @@
|
||||
<value>PresetProgramNrDialog</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
</root>
|
||||
2
source/ChanSort.Loader.LG/Resource.Designer.cs
generated
2
source/ChanSort.Loader.LG/Resource.Designer.cs
generated
@@ -19,7 +19,7 @@ namespace ChanSort.Loader.LG {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resource {
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace ChanSort.Loader.LG
|
||||
private const string _SatConfigIndex = "offSatelliteNr";
|
||||
private const string _TransponderIndex = "offTransponderIndex";
|
||||
|
||||
public bool InUse { get; private set; }
|
||||
public bool InUse { get; }
|
||||
|
||||
public SatChannel(int order, int slot, DataMapping data, DataRoot dataRoot) : base(data)
|
||||
{
|
||||
@@ -19,8 +19,8 @@ namespace ChanSort.Loader.LG
|
||||
this.InitDvbData(data);
|
||||
|
||||
int transponderIndex = data.GetWord(_TransponderIndex);
|
||||
Transponder transponder = dataRoot.Transponder.TryGet(transponderIndex);
|
||||
Satellite sat = transponder.Satellite;
|
||||
var transponder = dataRoot.Transponder.TryGet(transponderIndex);
|
||||
var sat = transponder.Satellite;
|
||||
|
||||
this.Transponder = transponder;
|
||||
this.Satellite = sat.Name;
|
||||
@@ -32,23 +32,5 @@ namespace ChanSort.Loader.LG
|
||||
this.Polarity = transponder.Polarity;
|
||||
this.FreqInMhz = transponder.FrequencyInMhz;
|
||||
}
|
||||
|
||||
internal static SatChannel CreateFromProxy(ChannelInfo proxy, DataRoot dataRoot, DataMapping mapping, int rawSize)
|
||||
{
|
||||
if (proxy.Transponder == null || proxy.Transponder.Satellite == null || proxy.Transponder.Satellite.LnbConfig == null)
|
||||
return null;
|
||||
|
||||
byte[] rawData = mapping.Settings.GetBytes("newRecordTemplate");
|
||||
if (rawData == null)
|
||||
return null;
|
||||
|
||||
mapping.SetDataPtr(rawData, 0);
|
||||
mapping.SetWord(_SatConfigIndex, proxy.Transponder.Satellite.LnbConfig.Id);
|
||||
mapping.SetWord(_TransponderIndex, proxy.Transponder.Id);
|
||||
mapping.SetWord(_ServiceId, proxy.ServiceId);
|
||||
var channel = new SatChannel(0, proxy.NewProgramNr, mapping, dataRoot);
|
||||
channel.Name = proxy.Name;
|
||||
return channel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +56,9 @@ namespace ChanSort.Loader.LG
|
||||
this.Hidden = data.GetFlag(_Hide);
|
||||
this.Encrypted = data.GetFlag(_Encrypted);
|
||||
this.IsDeleted = data.GetFlag(_Deleted);
|
||||
if (IsDeleted) // allow setting a breakpoint
|
||||
{
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -105,7 +108,7 @@ namespace ChanSort.Loader.LG
|
||||
mapping.SetFlag(_Skip, this.Skip);
|
||||
mapping.SetFlag(_Lock, this.Lock);
|
||||
mapping.SetFlag(_Hide, this.Hidden);
|
||||
if (this.NewProgramNr == -1)
|
||||
if (this.IsDeleted)
|
||||
{
|
||||
mapping.SetFlag(_Deleted, true);
|
||||
mapping.SetByte("off" + _Moved, 0); //skip,lock,hide,moved
|
||||
|
||||
@@ -76,6 +76,8 @@ namespace ChanSort.Loader.LG
|
||||
public TllFileSerializer(string inputFile) : base(inputFile)
|
||||
{
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.Analog;
|
||||
this.Features.DeleteMode = DeleteMode.FlagWithoutPrNr;
|
||||
this.Features.CanHaveGaps = true;
|
||||
this.Features.DeviceSettings = true;
|
||||
this.Features.CleanUpChannelData = true;
|
||||
this.SupportedTvCountryCodes = new List<string>
|
||||
@@ -125,10 +127,6 @@ namespace ChanSort.Loader.LG
|
||||
#endregion
|
||||
|
||||
|
||||
#region DisplayName
|
||||
public override string DisplayName { get { return "TLL loader"; } }
|
||||
#endregion
|
||||
|
||||
#region Load()
|
||||
|
||||
public override void Load()
|
||||
@@ -530,11 +528,7 @@ namespace ChanSort.Loader.LG
|
||||
else
|
||||
{
|
||||
if (ci.IsDeleted)
|
||||
{
|
||||
ci.OldProgramNr = -1;
|
||||
ci.NewProgramNr = -1;
|
||||
++this.deletedChannelsSoft;
|
||||
}
|
||||
|
||||
var list = this.DataRoot.GetChannelList(ci.SignalSource);
|
||||
var dupes = list.GetChannelByUid(ci.Uid);
|
||||
@@ -923,10 +917,11 @@ namespace ChanSort.Loader.LG
|
||||
newDvbctChannelCount = 0;
|
||||
foreach (var list in this.DataRoot.ChannelLists)
|
||||
{
|
||||
int count = list.Channels.Count;
|
||||
for (int i=0; i<count; i++)
|
||||
foreach(var channel in list.Channels)
|
||||
{
|
||||
ChannelInfo channel = list.Channels[i];
|
||||
if (channel.IsProxy)
|
||||
continue;
|
||||
|
||||
if (channel.NewProgramNr != -1)
|
||||
{
|
||||
if ((channel.SignalSource & SignalSource.Analog) != 0)
|
||||
@@ -935,12 +930,6 @@ namespace ChanSort.Loader.LG
|
||||
++newDvbctChannelCount;
|
||||
}
|
||||
|
||||
if (!(channel is TllChannelBase))
|
||||
{
|
||||
var newChannel = this.CreateChannelFromProxy(channel);
|
||||
if (newChannel != null)
|
||||
list.Channels[i] = newChannel;
|
||||
}
|
||||
channel.UpdateRawData();
|
||||
}
|
||||
}
|
||||
@@ -948,21 +937,6 @@ namespace ChanSort.Loader.LG
|
||||
|
||||
#endregion
|
||||
|
||||
#region CreateChannelFromProxy()
|
||||
private ChannelInfo CreateChannelFromProxy(ChannelInfo proxy)
|
||||
{
|
||||
if ((proxy.SignalSource & SignalSource.Sat) != 0)
|
||||
{
|
||||
var mapping = this.GetDvbsChannelMapping();
|
||||
var channel = SatChannel.CreateFromProxy(proxy, this.DataRoot, mapping, this.satConfig.dvbsChannelLength);
|
||||
if (channel != null)
|
||||
this.mustReorganizeDvbs = true;
|
||||
return channel;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ReorderActChannelsPhysically()
|
||||
private void ReorderActChannelsPhysically()
|
||||
{
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
<value>cbHbbTv</value>
|
||||
</data>
|
||||
<data name=">>cbHbbTv.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbHbbTv.Parent" xml:space="preserve">
|
||||
<value>grpOption</value>
|
||||
@@ -166,7 +166,7 @@
|
||||
<value>cbCustomCountry</value>
|
||||
</data>
|
||||
<data name=">>cbCustomCountry.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbCustomCountry.Parent" xml:space="preserve">
|
||||
<value>grpOption</value>
|
||||
@@ -177,8 +177,8 @@
|
||||
<data name="comboBoxEdit1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>72, 29</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.Utils.v19.1" name="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="comboBoxEdit1.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.1">
|
||||
<assembly alias="DevExpress.Utils.v19.2" name="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="comboBoxEdit1.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.2">
|
||||
<value>Combo</value>
|
||||
</data>
|
||||
<data name="comboBoxEdit1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
@@ -191,7 +191,7 @@
|
||||
<value>comboBoxEdit1</value>
|
||||
</data>
|
||||
<data name=">>comboBoxEdit1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>comboBoxEdit1.Parent" xml:space="preserve">
|
||||
<value>grpOption</value>
|
||||
@@ -215,7 +215,7 @@
|
||||
<value>labelControl1</value>
|
||||
</data>
|
||||
<data name=">>labelControl1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl1.Parent" xml:space="preserve">
|
||||
<value>grpOption</value>
|
||||
@@ -242,7 +242,7 @@
|
||||
<value>grpOption</value>
|
||||
</data>
|
||||
<data name=">>grpOption.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>grpOption.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -269,7 +269,7 @@
|
||||
<value>btnOk</value>
|
||||
</data>
|
||||
<data name=">>btnOk.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnOk.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -296,7 +296,7 @@
|
||||
<value>btnCancel</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -304,8 +304,8 @@
|
||||
<data name=">>btnCancel.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.XtraEditors.v19.1" name="DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="labelControl3.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<assembly alias="DevExpress.XtraEditors.v19.2" name="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="labelControl3.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -324,7 +324,7 @@
|
||||
<value>labelControl3</value>
|
||||
</data>
|
||||
<data name=">>labelControl3.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl3.Parent" xml:space="preserve">
|
||||
<value>grpHotelMode</value>
|
||||
@@ -348,7 +348,7 @@
|
||||
<value>labelControl2</value>
|
||||
</data>
|
||||
<data name=">>labelControl2.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl2.Parent" xml:space="preserve">
|
||||
<value>grpHotelMode</value>
|
||||
@@ -375,7 +375,7 @@
|
||||
<value>cbDtvUpdate</value>
|
||||
</data>
|
||||
<data name=">>cbDtvUpdate.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbDtvUpdate.Parent" xml:space="preserve">
|
||||
<value>grpHotelMode</value>
|
||||
@@ -402,7 +402,7 @@
|
||||
<value>cbHotelMode</value>
|
||||
</data>
|
||||
<data name=">>cbHotelMode.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbHotelMode.Parent" xml:space="preserve">
|
||||
<value>grpHotelMode</value>
|
||||
@@ -429,7 +429,7 @@
|
||||
<value>grpHotelMode</value>
|
||||
</data>
|
||||
<data name=">>grpHotelMode.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>grpHotelMode.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -456,7 +456,7 @@
|
||||
<value>cbAutoChannelUpdate</value>
|
||||
</data>
|
||||
<data name=">>cbAutoChannelUpdate.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbAutoChannelUpdate.Parent" xml:space="preserve">
|
||||
<value>grpSetup</value>
|
||||
@@ -483,7 +483,7 @@
|
||||
<value>grpSetup</value>
|
||||
</data>
|
||||
<data name=">>grpSetup.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>grpSetup.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -491,7 +491,7 @@
|
||||
<data name=">>grpSetup.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="labelControl4.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl4.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -510,7 +510,7 @@
|
||||
<value>labelControl4</value>
|
||||
</data>
|
||||
<data name=">>labelControl4.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl4.Parent" xml:space="preserve">
|
||||
<value>grpInformation</value>
|
||||
@@ -537,7 +537,7 @@
|
||||
<value>grpInformation</value>
|
||||
</data>
|
||||
<data name=">>grpInformation.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>grpInformation.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -567,7 +567,7 @@
|
||||
<value>lblHotelMenuAutoDetect</value>
|
||||
</data>
|
||||
<data name=">>lblHotelMenuAutoDetect.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lblHotelMenuAutoDetect.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -594,6 +594,6 @@
|
||||
<value>TvSettingsForm</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.Panasonic</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.Panasonic</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
@@ -23,6 +23,7 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -31,6 +32,7 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,14 +42,16 @@
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<OutputPath>..\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
@@ -60,7 +64,6 @@
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -8,7 +8,6 @@ namespace ChanSort.Loader.Panasonic
|
||||
{
|
||||
internal class DbChannel : ChannelInfo
|
||||
{
|
||||
internal int Bits;
|
||||
internal byte[] RawName;
|
||||
|
||||
#region ctor()
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.Data;
|
||||
using System.Data.SQLite;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using ChanSort.Api;
|
||||
|
||||
namespace ChanSort.Loader.Panasonic
|
||||
@@ -41,9 +40,10 @@ namespace ChanSort.Loader.Panasonic
|
||||
DepencencyChecker.AssertVc2010RedistPackageX86Installed();
|
||||
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.None; // due to the chaos with binary data inside the "sname" string column, writing back a name has undesired side effects
|
||||
this.Features.DeleteMode = DeleteMode.Physically;
|
||||
this.Features.CanHaveGaps = false;
|
||||
this.Features.EncryptedFlagEdit = true;
|
||||
this.DataRoot.SortedFavorites = true;
|
||||
this.Features.SortedFavorites = true;
|
||||
|
||||
this.DataRoot.AddChannelList(this.avbtChannels);
|
||||
this.DataRoot.AddChannelList(this.avbcChannels);
|
||||
@@ -63,8 +63,6 @@ namespace ChanSort.Loader.Panasonic
|
||||
}
|
||||
#endregion
|
||||
|
||||
public override string DisplayName => "Panasonic .db/.bin Loader";
|
||||
|
||||
#region Load()
|
||||
public override void Load()
|
||||
{
|
||||
@@ -102,7 +100,8 @@ namespace ChanSort.Loader.Panasonic
|
||||
|
||||
var tempFile = this.FileName + ".tmp";
|
||||
File.Delete(tempFile);
|
||||
Application.ApplicationExit += CleanTempFile;
|
||||
this.DeleteOnExit(tempFile);
|
||||
|
||||
if (cypherMode == CypherMode.Encryption)
|
||||
this.CypherFile(this.FileName, tempFile, false);
|
||||
else
|
||||
@@ -202,18 +201,6 @@ namespace ChanSort.Loader.Panasonic
|
||||
|
||||
#endregion
|
||||
|
||||
#region CleanTempFile()
|
||||
private void CleanTempFile(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (this.workFile != null)
|
||||
File.Delete(this.workFile);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region CreateDummySatellites()
|
||||
private void CreateDummySatellites()
|
||||
{
|
||||
@@ -351,7 +338,7 @@ order by s.ntype,major_channel
|
||||
var channel = channelInfo as DbChannel;
|
||||
if (channel == null) // skip reference list proxy channels
|
||||
continue;
|
||||
if (channel.NewProgramNr < 0 || channel.OldProgramNr < 0)
|
||||
if (channel.IsDeleted && channel.OldProgramNr >= 0)
|
||||
continue;
|
||||
cmd.Parameters["@rowid"].Value = channel.RecordIndex;
|
||||
cmd.Parameters["@progNr"].Value = channel.NewProgramNr;
|
||||
@@ -368,7 +355,7 @@ order by s.ntype,major_channel
|
||||
cmd.Parameters.Add(new SQLiteParameter("@rowid", DbType.Int32));
|
||||
foreach (ChannelInfo channel in channelList.Channels)
|
||||
{
|
||||
if (channel.NewProgramNr == -1 && channel.OldProgramNr >= 0)
|
||||
if (channel.IsDeleted && channel.OldProgramNr >= 0)
|
||||
{
|
||||
cmd.Parameters["@rowid"].Value = channel.RecordIndex;
|
||||
cmd.ExecuteNonQuery();
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.PhilipsXml</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.PhilipsXml</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -21,32 +22,36 @@
|
||||
<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>bin\Release\</OutputPath>
|
||||
<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>bin\x86\Debug\</OutputPath>
|
||||
<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>bin\x86\Release\</OutputPath>
|
||||
<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" />
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace ChanSort.Loader.PhilipsXml
|
||||
public Serializer(string inputFile) : base(inputFile)
|
||||
{
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
this.Features.CanDeleteChannels = true;
|
||||
this.Features.DeleteMode = DeleteMode.Physically;
|
||||
|
||||
this.DataRoot.AddChannelList(this.terrChannels);
|
||||
this.DataRoot.AddChannelList(this.cableChannels);
|
||||
@@ -59,11 +59,6 @@ namespace ChanSort.Loader.PhilipsXml
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DisplayName
|
||||
public override string DisplayName => "Philips *.xml loader";
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Load()
|
||||
|
||||
@@ -134,8 +129,8 @@ namespace ChanSort.Loader.PhilipsXml
|
||||
if (setupNode.HasAttribute("ChannelName"))
|
||||
{
|
||||
this.formatVersion = 1;
|
||||
this.DataRoot.SupportedFavorites = Favorites.A;
|
||||
this.DataRoot.SortedFavorites = true;
|
||||
this.Features.SupportedFavorites = Favorites.A;
|
||||
this.Features.SortedFavorites = true;
|
||||
|
||||
var dtype = bcastNode.GetAttribute("DecoderType");
|
||||
if (dtype == "1")
|
||||
@@ -150,8 +145,8 @@ namespace ChanSort.Loader.PhilipsXml
|
||||
else if (setupNode.HasAttribute("name"))
|
||||
{
|
||||
this.formatVersion = 2;
|
||||
this.DataRoot.SupportedFavorites = 0;
|
||||
this.DataRoot.SortedFavorites = false;
|
||||
this.Features.SupportedFavorites = 0;
|
||||
this.Features.SortedFavorites = false;
|
||||
foreach (var list in this.DataRoot.ChannelLists)
|
||||
{
|
||||
list.VisibleColumnFieldNames.Remove("Favorites");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.Samsung</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.Samsung</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
@@ -25,6 +25,7 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -33,6 +34,7 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -45,9 +47,10 @@
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<OutputPath>..\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -56,15 +59,12 @@
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>true</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\DLL\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -13,9 +13,16 @@ namespace ChanSort.Loader.Samsung
|
||||
{
|
||||
this.InitCommonData(slot, signalSource & ~SignalSource.MaskTvRadioData, data);
|
||||
|
||||
if (!this.InUse || this.OldProgramNr == 0)
|
||||
if (!this.InUse)
|
||||
return;
|
||||
|
||||
// "InUse" and "IsDeleted" are not always guessed correctly. If PrNr=0, the channel contains garbage
|
||||
if (this.OldProgramNr == 0)
|
||||
{
|
||||
this.InUse = false;
|
||||
return;
|
||||
}
|
||||
|
||||
this.InitDvbData(data, providerNames);
|
||||
|
||||
int transp = data.GetByte(_ChannelOrTransponder);
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace ChanSort.Loader.Samsung {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resource {
|
||||
|
||||
@@ -12,7 +12,10 @@ namespace ChanSort.Loader.Samsung
|
||||
{
|
||||
this.InitCommonData(slot, SignalSource.DvbS | presetList, data);
|
||||
if (!this.InUse)
|
||||
{
|
||||
this.IsDeleted = true;
|
||||
return;
|
||||
}
|
||||
|
||||
this.InitDvbData(data, providerNames);
|
||||
|
||||
@@ -37,7 +40,7 @@ namespace ChanSort.Loader.Samsung
|
||||
|
||||
public override void UpdateRawData()
|
||||
{
|
||||
if (this.NewProgramNr < 0) // "deleted" flag is currently unknown for sat channels
|
||||
if (this.IsDeleted) // "deleted" flag is currently unknown for sat channels
|
||||
this.InUse = false;
|
||||
base.UpdateRawData();
|
||||
}
|
||||
|
||||
@@ -71,8 +71,6 @@ namespace ChanSort.Loader.Samsung
|
||||
this.Skip = data.GetFlag(_Skip);
|
||||
this.Encrypted = data.GetFlag(_Encrypted);
|
||||
this.IsDeleted = data.GetFlag(_Deleted, false) || !data.GetFlag(_IsActive, true);
|
||||
if (this.IsDeleted)
|
||||
this.OldProgramNr = -1;
|
||||
this.AddDebug(data.Data, data.BaseOffset + 25, 3);
|
||||
}
|
||||
#endregion
|
||||
@@ -142,8 +140,7 @@ namespace ChanSort.Loader.Samsung
|
||||
{
|
||||
mapping.SetDataPtr(this.rawData, this.baseOffset);
|
||||
mapping.SetFlag(_InUse, this.InUse);
|
||||
if (this.NewProgramNr >= 0)
|
||||
mapping.SetWord(_ProgramNr, this.NewProgramNr);
|
||||
mapping.SetWord(_ProgramNr, this.NewProgramNr);
|
||||
|
||||
if (this.IsNameModified)
|
||||
{
|
||||
@@ -153,8 +150,8 @@ namespace ChanSort.Loader.Samsung
|
||||
}
|
||||
this.UpdateRawFavorites();
|
||||
mapping.SetFlag(_Lock, this.Lock);
|
||||
mapping.SetFlag(_Deleted, this.NewProgramNr < 0);
|
||||
mapping.SetFlag(_IsActive, this.NewProgramNr >= 0);
|
||||
mapping.SetFlag(_Deleted, this.IsDeleted);
|
||||
mapping.SetFlag(_IsActive, !this.IsDeleted);
|
||||
mapping.SetFlag(_Skip, this.Skip);
|
||||
mapping.SetByte(this.mapping.GetByte(_Hidden) != 255 ? _Hidden : _HiddenAlt, this.Hidden ? 1 : 0);
|
||||
if (this.Encrypted != null)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Reflection;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using ChanSort.Api;
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
|
||||
namespace ChanSort.Loader.Samsung
|
||||
{
|
||||
@@ -62,15 +62,12 @@ namespace ChanSort.Loader.Samsung
|
||||
{
|
||||
this.ReadConfigurationFromIniFile();
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
this.Features.DeleteMode = DeleteMode.FlagWithPrNr;
|
||||
this.Features.CleanUpChannelData = true;
|
||||
this.Features.EncryptedFlagEdit = true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DisplayName
|
||||
public override string DisplayName { get { return "Samsung *.scm Loader"; } }
|
||||
#endregion
|
||||
|
||||
#region ReadConfigurationFromIniFile()
|
||||
private void ReadConfigurationFromIniFile()
|
||||
{
|
||||
@@ -108,34 +105,34 @@ namespace ChanSort.Loader.Samsung
|
||||
#region Load()
|
||||
public override void Load()
|
||||
{
|
||||
using (ZipFile zip = new ZipFile(this.FileName))
|
||||
{
|
||||
DetectModelConstants(zip);
|
||||
DataRoot.SupportedFavorites = c.supportedFavorites;
|
||||
DataRoot.SortedFavorites = c.SortedFavorites == FavoritesIndexMode.IndividuallySorted;
|
||||
var tempDir = this.UnzipFileToTempFolder();
|
||||
|
||||
DetectModelConstants(tempDir);
|
||||
Features.SupportedFavorites = c.supportedFavorites;
|
||||
Features.SortedFavorites = c.SortedFavorites == FavoritesIndexMode.IndividuallySorted;
|
||||
|
||||
ReadAnalogFineTuning(tempDir);
|
||||
ReadAnalogChannels(tempDir, "map-AirA", this.avbtChannels, out this.avbtFileContent, this.avbtFrequency);
|
||||
ReadAnalogChannels(tempDir, "map-CableA", this.avbcChannels, out this.avbcFileContent, this.avbcFrequency);
|
||||
ReadAnalogChannels(tempDir, "map-AirCableMixedA", this.avbxChannels, out this.avbxFileContent, this.avbcFrequency);
|
||||
ReadDvbTransponderFrequenciesFromPtc(tempDir, "PTCAIR", this.dvbtFrequency);
|
||||
ReadDvbServiceProviders(tempDir);
|
||||
ReadDvbctChannels(tempDir, "map-AirD", this.dvbtChannels, out this.dvbtFileContent, this.dvbtFrequency);
|
||||
ReadDvbTransponderFrequenciesFromPtc(tempDir, "PTCCABLE", this.dvbcFrequency);
|
||||
ReadDvbctChannels(tempDir, "map-CableD", this.dvbcChannels, out this.dvbcFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(tempDir, "map-AirCableMixedD", this.dvbxChannels, out this.dvbxFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(tempDir, "map-CablePrime_D", this.primeChannels, out this.primeFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(tempDir, "map-FreesatD", this.freesatChannels, out this.freesatFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(tempDir, "map-TivusatD", this.tivusatChannels, out this.tivusatFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(tempDir, "map-CanalDigitalSatD", this.canalDigitalChannels, out this.canalDigitalFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(tempDir, "map-DigitalPlusD", this.digitalPlusChannels, out this.digitalPlusFileContent, this.dvbcFrequency);
|
||||
ReadSatellites(tempDir);
|
||||
ReadTransponder(tempDir, "UserTransponderDataBase.dat"); // read user data first so it has priority over overridden default transponsers
|
||||
ReadTransponder(tempDir, "TransponderDataBase.dat");
|
||||
ReadDvbsChannels(tempDir, "map-SateD", this.dvbsChannels, out this.dvbsFileContent, c.dvbsChannelLength);
|
||||
ReadDvbsChannels(tempDir, "map-CyfraPlusD", this.cyfraPlusChannels, out this.cyfraPlusFileContent, c.cyfraPlusChannelSize);
|
||||
ReadAstraHdPlusChannels(tempDir);
|
||||
|
||||
ReadAnalogFineTuning(zip);
|
||||
ReadAnalogChannels(zip, "map-AirA", this.avbtChannels, out this.avbtFileContent, this.avbtFrequency);
|
||||
ReadAnalogChannels(zip, "map-CableA", this.avbcChannels, out this.avbcFileContent, this.avbcFrequency);
|
||||
ReadAnalogChannels(zip, "map-AirCableMixedA", this.avbxChannels, out this.avbxFileContent, this.avbcFrequency);
|
||||
ReadDvbTransponderFrequenciesFromPtc(zip, "PTCAIR", this.dvbtFrequency);
|
||||
ReadDvbServiceProviders(zip);
|
||||
ReadDvbctChannels(zip, "map-AirD", this.dvbtChannels, out this.dvbtFileContent, this.dvbtFrequency);
|
||||
ReadDvbTransponderFrequenciesFromPtc(zip, "PTCCABLE", this.dvbcFrequency);
|
||||
ReadDvbctChannels(zip, "map-CableD", this.dvbcChannels, out this.dvbcFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(zip, "map-AirCableMixedD", this.dvbxChannels, out this.dvbxFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(zip, "map-CablePrime_D", this.primeChannels, out this.primeFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(zip, "map-FreesatD", this.freesatChannels, out this.freesatFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(zip, "map-TivusatD", this.tivusatChannels, out this.tivusatFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(zip, "map-CanalDigitalSatD", this.canalDigitalChannels, out this.canalDigitalFileContent, this.dvbcFrequency);
|
||||
ReadDvbctChannels(zip, "map-DigitalPlusD", this.digitalPlusChannels, out this.digitalPlusFileContent, this.dvbcFrequency);
|
||||
ReadSatellites(zip);
|
||||
ReadTransponder(zip, "UserTransponderDataBase.dat"); // read user data first so it has priority over overridden default transponsers
|
||||
ReadTransponder(zip, "TransponderDataBase.dat");
|
||||
ReadDvbsChannels(zip, "map-SateD", this.dvbsChannels, out this.dvbsFileContent, c.dvbsChannelLength);
|
||||
ReadDvbsChannels(zip, "map-CyfraPlusD", this.cyfraPlusChannels, out this.cyfraPlusFileContent, c.cyfraPlusChannelSize);
|
||||
ReadAstraHdPlusChannels(zip);
|
||||
}
|
||||
|
||||
foreach (var list in this.DataRoot.ChannelLists)
|
||||
{
|
||||
@@ -148,11 +145,11 @@ namespace ChanSort.Loader.Samsung
|
||||
#endregion
|
||||
|
||||
#region DetectModelConstants()
|
||||
internal void DetectModelConstants(ZipFile zip)
|
||||
internal void DetectModelConstants(string tempDir)
|
||||
{
|
||||
if (DetectModelFromFileName()) return;
|
||||
if (DetectModelFromCloneInfoFile(zip)) return;
|
||||
if (DetectModelFromContentFileLengths(zip)) return;
|
||||
if (DetectModelFromCloneInfoFile(tempDir)) return;
|
||||
if (DetectModelFromContentFileLengths(tempDir)) return;
|
||||
throw new FileLoadException("Unable to determine TV model from file content or name");
|
||||
}
|
||||
#endregion
|
||||
@@ -187,9 +184,9 @@ namespace ChanSort.Loader.Samsung
|
||||
#endregion
|
||||
|
||||
#region DetectModelFromCloneInfoFile()
|
||||
private bool DetectModelFromCloneInfoFile(ZipFile zip)
|
||||
private bool DetectModelFromCloneInfoFile(string tempDir)
|
||||
{
|
||||
byte[] cloneInfo = ReadFileContent(zip, "CloneInfo");
|
||||
byte[] cloneInfo = ReadFileContent(tempDir, "CloneInfo");
|
||||
if (cloneInfo == null)
|
||||
{
|
||||
this.c = this.modelConstants["Series:B"];
|
||||
@@ -213,7 +210,7 @@ namespace ChanSort.Loader.Samsung
|
||||
#endregion
|
||||
|
||||
#region DetectModelFromContentFileLengths()
|
||||
private bool DetectModelFromContentFileLengths(ZipFile zip)
|
||||
private bool DetectModelFromContentFileLengths(string zip)
|
||||
{
|
||||
string[] candidates = {
|
||||
DetectModelFromAirAOrCableA(zip),
|
||||
@@ -267,69 +264,84 @@ namespace ChanSort.Loader.Samsung
|
||||
|
||||
#endregion
|
||||
|
||||
#region DetectModelFromAirAOrCableA()
|
||||
private string DetectModelFromAirAOrCableA(ZipFile zip)
|
||||
#region GetFileInfo()
|
||||
private FileInfo GetFileInfo(string zipFolder, params string[] fileNames)
|
||||
{
|
||||
var entry = zip.GetEntry("map-AirA") ?? zip.GetEntry("map-CableA");
|
||||
if (entry == null)
|
||||
foreach (var fileName in fileNames)
|
||||
{
|
||||
var path = Path.Combine(zipFolder, fileName);
|
||||
var info = new FileInfo(path);
|
||||
if (info.Exists)
|
||||
return info;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DetectModelFromAirAOrCableA()
|
||||
private string DetectModelFromAirAOrCableA(string zip)
|
||||
{
|
||||
var info = GetFileInfo(zip, "map-AirA", "map-CableA");
|
||||
if (info == null)
|
||||
return null;
|
||||
|
||||
var candidates = "";
|
||||
if (entry.Size % 28000 == 0)
|
||||
if (info.Length % 28000 == 0)
|
||||
candidates += "B";
|
||||
if (entry.Size % 40000 == 0)
|
||||
if (info.Length % 40000 == 0)
|
||||
candidates += "C";
|
||||
if (entry.Size % 64000 == 0)
|
||||
if (info.Length % 64000 == 0)
|
||||
candidates += "DE";
|
||||
return candidates;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DetectModelFromAirDOrCableD()
|
||||
private string DetectModelFromAirDOrCableD(ZipFile zip)
|
||||
private string DetectModelFromAirDOrCableD(string zip)
|
||||
{
|
||||
var entry = zip.GetEntry("map-AirD") ?? zip.GetEntry("map-CableD") ?? zip.GetEntry("map-CablePrime_D") ?? zip.GetEntry("map-FreesatD")
|
||||
?? zip.GetEntry("map-TivusatD") ?? zip.GetEntry("map-CanalDigitalSatD") ?? zip.GetEntry("map-DigitalPlusD");
|
||||
var entry = GetFileInfo(zip, "map-AirD", "map-CableD", "map-CablePrime_D", "map-FreesatD",
|
||||
"map-TivusatD", "map-CanalDigitalSatD", "map-DigitalPlusD");
|
||||
if (entry == null)
|
||||
return null;
|
||||
|
||||
var candidates = "";
|
||||
if (entry.Size % 248 == 0)
|
||||
if (entry.Length % 248 == 0)
|
||||
candidates += "B";
|
||||
if (entry.Size % 292 == 0)
|
||||
if (entry.Length % 292 == 0)
|
||||
candidates += "C";
|
||||
if (entry.Size % 320 == 0)
|
||||
if (entry.Length % 320 == 0)
|
||||
candidates += "DE";
|
||||
return candidates;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DetectModelFromSateD()
|
||||
private string DetectModelFromSateD(ZipFile zip)
|
||||
private string DetectModelFromSateD(string zip)
|
||||
{
|
||||
var entry = zip.GetEntry("map-SateD");
|
||||
var entry = this.GetFileInfo(zip, "map-SateD");
|
||||
if (entry == null)
|
||||
return null;
|
||||
|
||||
var candidates = "";
|
||||
if (entry.Size % 144 == 0)
|
||||
if (entry.Length % 144 == 0)
|
||||
candidates += "BC";
|
||||
if (entry.Size % 172 == 0)
|
||||
if (entry.Length % 172 == 0)
|
||||
candidates += "D";
|
||||
if (entry.Size % 168 == 0)
|
||||
if (entry.Length % 168 == 0)
|
||||
candidates += "E";
|
||||
return candidates;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DetectModelFromTranspoderDatabase()
|
||||
private string DetectModelFromTranspoderDatabase(ZipFile zip)
|
||||
private string DetectModelFromTranspoderDatabase(string zip)
|
||||
{
|
||||
var entry = zip.GetEntry("TransponderDatabase.dat");
|
||||
var entry = GetFileInfo(zip, "TransponderDatabase.dat");
|
||||
if (entry == null)
|
||||
return null;
|
||||
|
||||
var size = entry.Size - 4;
|
||||
var size = entry.Length - 4;
|
||||
var candidates = "";
|
||||
if (size%49 == 0)
|
||||
candidates += "B";
|
||||
@@ -340,13 +352,13 @@ namespace ChanSort.Loader.Samsung
|
||||
#endregion
|
||||
|
||||
#region DetectModelFromAstraHdPlusD()
|
||||
private string DetectModelFromAstraHdPlusD(ZipFile zip)
|
||||
private string DetectModelFromAstraHdPlusD(string zip)
|
||||
{
|
||||
var entry = zip.GetEntry("map-AstraHDPlusD");
|
||||
var entry = GetFileInfo(zip, "map-AstraHDPlusD");
|
||||
if (entry == null)
|
||||
return null;
|
||||
|
||||
var size = entry.Size;
|
||||
var size = entry.Length;
|
||||
string candidates = null;
|
||||
if (size % 212 == 0)
|
||||
candidates += "DE";
|
||||
@@ -356,7 +368,7 @@ namespace ChanSort.Loader.Samsung
|
||||
|
||||
|
||||
#region ReadAnalogFineTuning()
|
||||
private void ReadAnalogFineTuning(ZipFile zip)
|
||||
private void ReadAnalogFineTuning(string zip)
|
||||
{
|
||||
int entrySize = c.avbtFineTuneLength;
|
||||
if (entrySize == 0)
|
||||
@@ -382,7 +394,7 @@ namespace ChanSort.Loader.Samsung
|
||||
#endregion
|
||||
|
||||
#region ReadAnalogChannels()
|
||||
private void ReadAnalogChannels(ZipFile zip, string fileName, ChannelList list, out byte[] data, Dictionary<int,decimal> freq)
|
||||
private void ReadAnalogChannels(string zip, string fileName, ChannelList list, out byte[] data, Dictionary<int,decimal> freq)
|
||||
{
|
||||
data = null;
|
||||
int entrySize = c.avbtChannelLength;
|
||||
@@ -421,7 +433,7 @@ namespace ChanSort.Loader.Samsung
|
||||
|
||||
|
||||
#region ReadDvbTransponderFrequenciesFromPtc()
|
||||
private void ReadDvbTransponderFrequenciesFromPtc(ZipFile zip, string file, IDictionary<int, decimal> table)
|
||||
private void ReadDvbTransponderFrequenciesFromPtc(string zip, string file, IDictionary<int, decimal> table)
|
||||
{
|
||||
byte[] data = ReadFileContent(zip, file);
|
||||
if (data == null)
|
||||
@@ -441,7 +453,7 @@ namespace ChanSort.Loader.Samsung
|
||||
#endregion
|
||||
|
||||
#region ReadDvbServiceProviders()
|
||||
private void ReadDvbServiceProviders(ZipFile zip)
|
||||
private void ReadDvbServiceProviders(string zip)
|
||||
{
|
||||
this.serviceProviderNames = new Dictionary<int, string>();
|
||||
var data = ReadFileContent(zip, "ServiceProviders");
|
||||
@@ -466,7 +478,7 @@ namespace ChanSort.Loader.Samsung
|
||||
#endregion
|
||||
|
||||
#region ReadDvbctChannels()
|
||||
private void ReadDvbctChannels(ZipFile zip, string fileName, ChannelList list, out byte[] data, Dictionary<int, decimal> frequency)
|
||||
private void ReadDvbctChannels(string zip, string fileName, ChannelList list, out byte[] data, Dictionary<int, decimal> frequency)
|
||||
{
|
||||
data = null;
|
||||
int entrySize = c.dvbtChannelLength;
|
||||
@@ -486,7 +498,7 @@ namespace ChanSort.Loader.Samsung
|
||||
for (int slotIndex = 0; slotIndex < count; slotIndex++)
|
||||
{
|
||||
DigitalChannel ci = new DigitalChannel(slotIndex, source, rawChannel, frequency, c.SortedFavorites, this.serviceProviderNames);
|
||||
if (ci.InUse && !ci.IsDeleted && ci.OldProgramNr > 0)
|
||||
if (ci.InUse)
|
||||
this.DataRoot.AddChannel(list, ci);
|
||||
|
||||
rawChannel.BaseOffset += entrySize;
|
||||
@@ -496,7 +508,7 @@ namespace ChanSort.Loader.Samsung
|
||||
|
||||
|
||||
#region ReadSatellites()
|
||||
private void ReadSatellites(ZipFile zip)
|
||||
private void ReadSatellites(string zip)
|
||||
{
|
||||
byte[] data = ReadFileContent(zip, "SatDataBase.dat");
|
||||
if (data == null || data.Length < 4)
|
||||
@@ -527,7 +539,7 @@ namespace ChanSort.Loader.Samsung
|
||||
|
||||
#region ReadTransponder()
|
||||
|
||||
private void ReadTransponder(ZipFile zip, string fileName)
|
||||
private void ReadTransponder(string zip, string fileName)
|
||||
{
|
||||
byte[] data = ReadFileContent(zip, fileName);
|
||||
if (data == null)
|
||||
@@ -562,7 +574,7 @@ namespace ChanSort.Loader.Samsung
|
||||
#endregion
|
||||
|
||||
#region ReadDvbsChannels()
|
||||
private void ReadDvbsChannels(ZipFile zip, string filename, ChannelList channels, out byte[] fileContent, int entrySize)
|
||||
private void ReadDvbsChannels(string zip, string filename, ChannelList channels, out byte[] fileContent, int entrySize)
|
||||
{
|
||||
fileContent = ReadFileContent(zip, filename);
|
||||
if (fileContent == null)
|
||||
@@ -585,7 +597,7 @@ namespace ChanSort.Loader.Samsung
|
||||
#endregion
|
||||
|
||||
#region ReadAstraHdPlusChannels()
|
||||
private void ReadAstraHdPlusChannels(ZipFile zip)
|
||||
private void ReadAstraHdPlusChannels(string zip)
|
||||
{
|
||||
this.hdplusFileContent = ReadFileContent(zip, "map-AstraHDPlusD");
|
||||
if (hdplusFileContent == null || c.hdplusChannelLength == 0)
|
||||
@@ -608,64 +620,46 @@ namespace ChanSort.Loader.Samsung
|
||||
|
||||
|
||||
#region ReadFileContent()
|
||||
private static byte[] ReadFileContent(ZipFile zip, string fileName)
|
||||
private static byte[] ReadFileContent(string tempDir, string fileName)
|
||||
{
|
||||
var entry = zip.GetEntry(fileName);
|
||||
if (entry == null)
|
||||
return null;
|
||||
byte[] data = new byte[entry.Size];
|
||||
using (var stream = zip.GetInputStream(entry))
|
||||
{
|
||||
stream.Read(data, 0, data.Length);
|
||||
}
|
||||
return data;
|
||||
var path = Path.Combine(tempDir, fileName);
|
||||
return File.Exists(path) ? File.ReadAllBytes(path) : null;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Save()
|
||||
public override void Save(string tvOutputFile)
|
||||
{
|
||||
if (tvOutputFile != this.FileName)
|
||||
{
|
||||
File.Copy(this.FileName, tvOutputFile, true);
|
||||
this.FileName = tvOutputFile;
|
||||
}
|
||||
using (ZipFile zip = new ZipFile(tvOutputFile))
|
||||
{
|
||||
zip.BeginUpdate();
|
||||
this.SaveChannels(zip, "map-AirA", this.avbtChannels, this.avbtFileContent);
|
||||
this.SaveChannels(zip, "map-CableA", this.avbcChannels, this.avbcFileContent);
|
||||
this.SaveChannels(zip, "map-AirCableMixedA", this.avbxChannels, this.avbxFileContent);
|
||||
this.SaveChannels(zip, "map-AirD", this.dvbtChannels, this.dvbtFileContent);
|
||||
this.SaveChannels(zip, "map-CableD", this.dvbcChannels, this.dvbcFileContent);
|
||||
this.SaveChannels(zip, "map-AirCableMixedD", this.dvbxChannels, this.dvbxFileContent);
|
||||
this.SaveChannels(zip, "map-SateD", this.dvbsChannels, this.dvbsFileContent);
|
||||
this.SaveChannels(zip, "map-AstraHDPlusD", this.hdplusChannels, this.hdplusFileContent);
|
||||
this.SaveChannels(zip, "map-CablePrime_D", this.primeChannels, this.primeFileContent);
|
||||
this.SaveChannels(zip, "map-FreesatD", this.freesatChannels, this.freesatFileContent);
|
||||
this.SaveChannels(zip, "map-TivusatD", this.tivusatChannels, this.tivusatFileContent);
|
||||
this.SaveChannels(zip, "map-CanalDigitalSatD", this.canalDigitalChannels, this.canalDigitalFileContent);
|
||||
this.SaveChannels(zip, "map-DigitalPlusD", this.digitalPlusChannels, this.digitalPlusFileContent);
|
||||
this.SaveChannels(zip, "map-CyfraPlusD", this.cyfraPlusChannels, this.cyfraPlusFileContent);
|
||||
zip.CommitUpdate();
|
||||
}
|
||||
string zip = this.FileName + ".tmp";
|
||||
this.SaveChannels(zip, "map-AirA", this.avbtChannels, this.avbtFileContent);
|
||||
this.SaveChannels(zip, "map-CableA", this.avbcChannels, this.avbcFileContent);
|
||||
this.SaveChannels(zip, "map-AirCableMixedA", this.avbxChannels, this.avbxFileContent);
|
||||
this.SaveChannels(zip, "map-AirD", this.dvbtChannels, this.dvbtFileContent);
|
||||
this.SaveChannels(zip, "map-CableD", this.dvbcChannels, this.dvbcFileContent);
|
||||
this.SaveChannels(zip, "map-AirCableMixedD", this.dvbxChannels, this.dvbxFileContent);
|
||||
this.SaveChannels(zip, "map-SateD", this.dvbsChannels, this.dvbsFileContent);
|
||||
this.SaveChannels(zip, "map-AstraHDPlusD", this.hdplusChannels, this.hdplusFileContent);
|
||||
this.SaveChannels(zip, "map-CablePrime_D", this.primeChannels, this.primeFileContent);
|
||||
this.SaveChannels(zip, "map-FreesatD", this.freesatChannels, this.freesatFileContent);
|
||||
this.SaveChannels(zip, "map-TivusatD", this.tivusatChannels, this.tivusatFileContent);
|
||||
this.SaveChannels(zip, "map-CanalDigitalSatD", this.canalDigitalChannels, this.canalDigitalFileContent);
|
||||
this.SaveChannels(zip, "map-DigitalPlusD", this.digitalPlusChannels, this.digitalPlusFileContent);
|
||||
this.SaveChannels(zip, "map-CyfraPlusD", this.cyfraPlusChannels, this.cyfraPlusFileContent);
|
||||
this.ZipToOutputFile(tvOutputFile);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region SaveChannels()
|
||||
private void SaveChannels(ZipFile zip, string fileName, ChannelList channels, byte[] fileContent)
|
||||
private void SaveChannels(string zip, string fileName, ChannelList channels, byte[] fileContent)
|
||||
{
|
||||
if (fileContent == null)
|
||||
return;
|
||||
zip.Delete(fileName);
|
||||
|
||||
string tempFilePath = Path.GetTempFileName();
|
||||
string tempFilePath = Path.Combine(zip, fileName);
|
||||
using (var stream = new FileStream(tempFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
|
||||
{
|
||||
this.WriteChannels(channels, fileContent, stream);
|
||||
}
|
||||
|
||||
zip.Add(tempFilePath, fileName);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.SamsungJ</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.SamsungJ</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -21,6 +22,7 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -29,6 +31,7 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -38,26 +41,25 @@
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<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="ICSharpCode.SharpZipLib">
|
||||
<HintPath>..\DLL\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.SQLite">
|
||||
<HintPath>..\DLL\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
|
||||
@@ -3,15 +3,14 @@ using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SQLite;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using ChanSort.Api;
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
|
||||
namespace ChanSort.Loader.SamsungJ
|
||||
{
|
||||
/// <summary>
|
||||
/// Loader for Samsung J/K/M/Q/N/... series .zip files
|
||||
/// Loader for Samsung J/K/M/N/R/Q series .zip files (2015 - 2019+)
|
||||
/// </summary>
|
||||
class DbSerializer : SerializerBase
|
||||
{
|
||||
@@ -27,124 +26,79 @@ namespace ChanSort.Loader.SamsungJ
|
||||
DepencencyChecker.AssertVc2010RedistPackageX86Installed();
|
||||
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
this.Features.CanDeleteChannels = true;
|
||||
this.DataRoot.SupportedFavorites = Favorites.A | Favorites.B | Favorites.C | Favorites.D | Favorites.E;
|
||||
this.DataRoot.SortedFavorites = true;
|
||||
this.DataRoot.AllowGapsInFavNumbers = false;
|
||||
this.DataRoot.ShowDeletedChannels = false;
|
||||
this.Features.DeleteMode = DeleteMode.Physically;
|
||||
this.Features.SupportedFavorites = Favorites.A | Favorites.B | Favorites.C | Favorites.D | Favorites.E;
|
||||
this.Features.SortedFavorites = true;
|
||||
this.Features.AllowGapsInFavNumbers = false;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DisplayName
|
||||
public override string DisplayName => "Samsung .zip Loader";
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Load()
|
||||
public override void Load()
|
||||
{
|
||||
this.UnzipDataFile();
|
||||
if (File.Exists(tempDir + "\\sat"))
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var conn = new SQLiteConnection("Data Source=" + tempDir + "\\sat"))
|
||||
{
|
||||
conn.Open();
|
||||
this.ReadSatDatabase(conn);
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
var files = Directory.GetFiles(tempDir, "*.");
|
||||
if (files.Length == 0)
|
||||
throw new FileLoadException("The Samsung .zip channel list archive does not contain any supported files.");
|
||||
|
||||
foreach (var filePath in files)
|
||||
{
|
||||
var filename = Path.GetFileName(filePath) ?? "";
|
||||
if (filename.StartsWith("vconf_"))
|
||||
continue;
|
||||
try
|
||||
{
|
||||
using (var conn = new SQLiteConnection("Data Source=" + filePath))
|
||||
{
|
||||
FileType type;
|
||||
conn.Open();
|
||||
using (var cmd = conn.CreateCommand())
|
||||
{
|
||||
this.RepairCorruptedDatabaseImage(cmd);
|
||||
type = this.DetectFileType(cmd);
|
||||
}
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case FileType.SatDb: break;
|
||||
case FileType.ChannelDbAnalog:
|
||||
ReadChannelDatabase(conn, filePath, false);
|
||||
break;
|
||||
case FileType.ChannelDbDvb:
|
||||
ReadChannelDatabase(conn, filePath, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region UnzipDataFile()
|
||||
private void UnzipDataFile()
|
||||
{
|
||||
this.tempDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()) + "\\";
|
||||
Directory.CreateDirectory(tempDir);
|
||||
Application.ApplicationExit += this.CleanTempFolder;
|
||||
|
||||
using (ZipFile zip = new ZipFile(this.FileName))
|
||||
{
|
||||
foreach (ZipEntry entry in zip)
|
||||
{
|
||||
// only expand files from the root folder to avoid pit-falls with incorrectly rezipped lists
|
||||
// that contain the data files in a subfolder
|
||||
if (Path.GetDirectoryName(entry.Name) == "")
|
||||
this.Expand(zip, entry.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region CleanTempFolder()
|
||||
private void CleanTempFolder(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach(var file in Directory.GetFiles(this.tempDir))
|
||||
File.Delete(file);
|
||||
Directory.Delete(this.tempDir);
|
||||
this.tempDir = this.UnzipFileToTempFolder();
|
||||
if (File.Exists(tempDir + "\\sat"))
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var conn = new SQLiteConnection("Data Source=" + tempDir + "\\sat"))
|
||||
{
|
||||
conn.Open();
|
||||
this.ReadSatDatabase(conn);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
var files = Directory.GetFiles(tempDir, "*.");
|
||||
if (files.Length == 0)
|
||||
throw new FileLoadException("The Samsung .zip channel list archive does not contain any supported files.");
|
||||
|
||||
foreach (var filePath in files)
|
||||
{
|
||||
var filename = Path.GetFileName(filePath) ?? "";
|
||||
if (filename.StartsWith("vconf_"))
|
||||
continue;
|
||||
try
|
||||
{
|
||||
using (var conn = new SQLiteConnection("Data Source=" + filePath))
|
||||
{
|
||||
FileType type;
|
||||
conn.Open();
|
||||
using (var cmd = conn.CreateCommand())
|
||||
{
|
||||
this.RepairCorruptedDatabaseImage(cmd);
|
||||
type = this.DetectFileType(cmd);
|
||||
}
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case FileType.SatDb: break;
|
||||
case FileType.ChannelDbAnalog:
|
||||
ReadChannelDatabase(conn, filePath, false);
|
||||
break;
|
||||
case FileType.ChannelDbDvb:
|
||||
ReadChannelDatabase(conn, filePath, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Expand()
|
||||
private void Expand(ZipFile zip, string path)
|
||||
{
|
||||
var entry = zip.GetEntry(path);
|
||||
if (entry == null)
|
||||
throw new FileLoadException("File not found inside .zip: " + path);
|
||||
|
||||
byte[] buffer = new byte[65536];
|
||||
using (var input = zip.GetInputStream(entry))
|
||||
using (var output = new FileStream(this.tempDir + Path.GetFileName(path), FileMode.Create))
|
||||
finally
|
||||
{
|
||||
int len;
|
||||
while ((len = input.Read(buffer, 0, buffer.Length)) != 0)
|
||||
output.Write(buffer, 0, len);
|
||||
// force closing the file and releasing the locks
|
||||
SQLiteConnection.ClearAllPools();
|
||||
GC.Collect();
|
||||
GC.WaitForPendingFinalizers();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
@@ -296,11 +250,8 @@ namespace ChanSort.Loader.SamsungJ
|
||||
// Note that we can have channels from multiple satellites in the same list, so this is a loop variable now
|
||||
var sat = tp?.Satellite;
|
||||
var channel = new DbChannel(r, fields, this.DataRoot, providers, sat, tp);
|
||||
//if (!channel.IsDeleted)
|
||||
{
|
||||
this.DataRoot.AddChannel(channelList, channel);
|
||||
this.channelById.Add(channel.RecordIndex, channel);
|
||||
}
|
||||
this.DataRoot.AddChannel(channelList, channel);
|
||||
this.channelById.Add(channel.RecordIndex, channel);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -404,28 +355,18 @@ namespace ChanSort.Loader.SamsungJ
|
||||
#region Save()
|
||||
public override void Save(string tvOutputFile)
|
||||
{
|
||||
if (tvOutputFile != this.FileName)
|
||||
foreach (var channelList in this.DataRoot.ChannelLists)
|
||||
{
|
||||
File.Copy(this.FileName, tvOutputFile);
|
||||
this.FileName = tvOutputFile;
|
||||
var dbPath = this.dbPathByChannelList[channelList];
|
||||
SaveChannelList(channelList, dbPath);
|
||||
}
|
||||
|
||||
using (var zip = new ZipFile(this.FileName))
|
||||
{
|
||||
zip.BeginUpdate();
|
||||
// force closing the file and releasing the locks
|
||||
SQLiteConnection.ClearAllPools();
|
||||
GC.Collect();
|
||||
GC.WaitForPendingFinalizers();
|
||||
|
||||
foreach (var channelList in this.DataRoot.ChannelLists)
|
||||
{
|
||||
var dbPath = this.dbPathByChannelList[channelList];
|
||||
SaveChannelList(channelList, dbPath);
|
||||
|
||||
var entryName = Path.GetFileName(dbPath);
|
||||
zip.Delete(entryName);
|
||||
zip.Add(dbPath, entryName);
|
||||
}
|
||||
|
||||
zip.CommitUpdate();
|
||||
}
|
||||
this.ZipToOutputFile(tvOutputFile);
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -496,6 +437,7 @@ namespace ChanSort.Loader.SamsungJ
|
||||
cmd.Prepare();
|
||||
return cmd;
|
||||
}
|
||||
|
||||
private static SQLiteCommand PrepareUpdateFavCommand(SQLiteConnection conn)
|
||||
{
|
||||
var cmd = conn.CreateCommand();
|
||||
@@ -523,17 +465,18 @@ namespace ChanSort.Loader.SamsungJ
|
||||
ChannelList channelList, bool analog = false)
|
||||
{
|
||||
|
||||
foreach (ChannelInfo channelInfo in channelList.Channels)
|
||||
foreach (ChannelInfo channelInfo in channelList.Channels.ToList())
|
||||
{
|
||||
var channel = channelInfo as DbChannel;
|
||||
if (channel == null) // ignore reference list proxy channels
|
||||
continue;
|
||||
|
||||
if (channel.NewProgramNr < 0)
|
||||
if (channel.IsDeleted)
|
||||
{
|
||||
// delete channel from all tables that have a reference to srvId
|
||||
cmdDeleteSrv.Parameters["@id"].Value = channel.RecordIndex;
|
||||
cmdDeleteSrv.ExecuteNonQuery();
|
||||
channelList.Channels.Remove(channelInfo);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.SilvaSchneider</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.SilvaSchneider</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -43,7 +44,7 @@
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<OutputPath>..\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
|
||||
@@ -16,8 +16,9 @@ namespace ChanSort.Loader.SilvaSchneider
|
||||
public Serializer(string inputFile) : base(inputFile)
|
||||
{
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.None;
|
||||
this.DataRoot.SortedFavorites = false;
|
||||
this.DataRoot.SupportedFavorites = 0;
|
||||
this.Features.DeleteMode = DeleteMode.Physically;
|
||||
this.Features.SortedFavorites = false;
|
||||
this.Features.SupportedFavorites = 0;
|
||||
|
||||
this.DataRoot.AddChannelList(this.allChannels);
|
||||
|
||||
@@ -37,8 +38,6 @@ namespace ChanSort.Loader.SilvaSchneider
|
||||
|
||||
#endregion
|
||||
|
||||
public override string DisplayName => "Silva Schneider *.sdx Loader";
|
||||
|
||||
#region Load()
|
||||
|
||||
public override void Load()
|
||||
@@ -77,7 +76,9 @@ namespace ChanSort.Loader.SilvaSchneider
|
||||
foreach (var channel in this.allChannels.GetChannelsByNewOrder())
|
||||
{
|
||||
// when a reference list was applied, the list may contain proxy entries for deleted channels, which must be ignored
|
||||
if (channel is Channels realChannel && channel.NewProgramNr >= 0)
|
||||
if (channel.IsProxy || channel.IsDeleted)
|
||||
continue;
|
||||
if (channel is Channels realChannel)
|
||||
file.Write(this.content, realChannel.FileOffset, realChannel.Length + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.Sony</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.Sony</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -21,6 +22,7 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -29,24 +31,27 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<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>bin\x86\Release\</OutputPath>
|
||||
<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" />
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace ChanSort.Loader.Sony
|
||||
public Serializer(string inputFile) : base(inputFile)
|
||||
{
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
this.Features.CanDeleteChannels = true;
|
||||
this.Features.DeleteMode = DeleteMode.FlagWithoutPrNr; // in Android/e-format, this will be changed to FlagWithPrNr
|
||||
|
||||
this.DataRoot.AddChannelList(new ChannelList(SignalSource.DvbT | SignalSource.Tv, "DVB-T TV"));
|
||||
this.DataRoot.AddChannelList(new ChannelList(SignalSource.DvbT | SignalSource.Radio, "DVB-T Radio"));
|
||||
@@ -62,12 +62,6 @@ namespace ChanSort.Loader.Sony
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DisplayName
|
||||
public override string DisplayName => "Sony sdb.xml loader";
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Load()
|
||||
|
||||
public override void Load()
|
||||
@@ -142,9 +136,7 @@ namespace ChanSort.Loader.Sony
|
||||
{
|
||||
this.format = "e" + formatNode.InnerText;
|
||||
this.isEFormat = true;
|
||||
this.DataRoot.DeletedChannelsNeedNumbers = true;
|
||||
foreach(var list in this.DataRoot.ChannelLists)
|
||||
list.VisibleColumnFieldNames.Add("IsDeleted");
|
||||
this.Features.DeleteMode = DeleteMode.FlagWithPrNr;
|
||||
}
|
||||
|
||||
if (SupportedFormatVersions.IndexOf(" " + this.format + " ", StringComparison.Ordinal) < 0)
|
||||
@@ -332,7 +324,7 @@ namespace ChanSort.Loader.Sony
|
||||
}
|
||||
|
||||
chan.ServiceType = int.Parse(dvbData["ui1_sdt_service_type"][i]);
|
||||
chan.SignalSource |= LookupData.Instance.IsRadioOrTv(chan.ServiceType);
|
||||
chan.SignalSource |= LookupData.Instance.IsRadioOrTv(chan.ServiceType); // could also use <ServiceFilter> information with 1=TV, 2=Radio, 3=Other
|
||||
|
||||
CopyDataValues(serviceNode, svcData, i, chan.ServiceData);
|
||||
|
||||
@@ -535,7 +527,7 @@ namespace ChanSort.Loader.Sony
|
||||
{
|
||||
var dvbt = this.DataRoot.GetChannelList(SignalSource.DvbT | SignalSource.Tv).Channels
|
||||
.Concat(this.DataRoot.GetChannelList(SignalSource.DvbT | SignalSource.Radio).Channels)
|
||||
.Concat(this.DataRoot.GetChannelList(SignalSource.DvbT).Channels)
|
||||
.Concat(this.DataRoot.GetChannelList(SignalSource.DvbT | SignalSource.Data).Channels)
|
||||
.ToList();
|
||||
this.UpdateChannelList(dvbt, nodes);
|
||||
}
|
||||
@@ -544,14 +536,14 @@ namespace ChanSort.Loader.Sony
|
||||
{
|
||||
var dvbc = this.DataRoot.GetChannelList(SignalSource.DvbC | SignalSource.Tv).Channels
|
||||
.Concat(this.DataRoot.GetChannelList(SignalSource.DvbC | SignalSource.Radio).Channels)
|
||||
.Concat(this.DataRoot.GetChannelList(SignalSource.DvbC).Channels)
|
||||
.Concat(this.DataRoot.GetChannelList(SignalSource.DvbC | SignalSource.Data).Channels)
|
||||
.ToList();
|
||||
this.UpdateChannelList(dvbc, nodes);
|
||||
}
|
||||
|
||||
foreach (var list in this.DataRoot.ChannelLists)
|
||||
{
|
||||
if ((list.SignalSource & SignalSource.DvbS) == SignalSource.DvbS && this.channeListNodes.TryGetValue(list.SignalSource, out nodes))
|
||||
if ((list.SignalSource & SignalSource.DvbS) == SignalSource.DvbS && this.channeListNodes.TryGetValue(list.SignalSource & ~SignalSource.MaskTvRadioData, out nodes))
|
||||
this.UpdateChannelList(list.Channels, nodes);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.Toshiba</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.Toshiba</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
@@ -24,6 +24,7 @@
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -32,6 +33,7 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -42,9 +44,10 @@
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<OutputPath>..\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -52,22 +55,19 @@
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\DLL\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.SQLite">
|
||||
<HintPath>..\DLL\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -133,7 +133,7 @@ namespace ChanSort.Loader.Toshiba
|
||||
#region UpdateRawData()
|
||||
public override void UpdateRawData()
|
||||
{
|
||||
Bits &= ~(BITS_FavA | BITS_FavB | BITS_FavC | BITS_FavC | BITS_FavD | BITS_Locked);
|
||||
Bits &= ~(BITS_FavA | BITS_FavB | BITS_FavC | BITS_FavD | BITS_Locked);
|
||||
if ((this.Favorites & Favorites.A) != 0) Bits |= BITS_FavA;
|
||||
if ((this.Favorites & Favorites.B) != 0) Bits |= BITS_FavB;
|
||||
if ((this.Favorites & Favorites.C) != 0) Bits |= BITS_FavC;
|
||||
|
||||
@@ -1,19 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SQLite;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using ChanSort.Api;
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
|
||||
namespace ChanSort.Loader.Toshiba
|
||||
{
|
||||
class DbSerializer : SerializerBase
|
||||
{
|
||||
private const string FILE_chmgt_db = "chmgt.db";
|
||||
private const string FILE_dvbSysData_db = "dvbSysData.db";
|
||||
private const string FILE_dvbMainData_db = "dvbMainData.db";
|
||||
private const string FILE_chmgt_db = "chmgt_type001\\chmgt.db";
|
||||
private const string FILE_dvbSysData_db = "dvb_type001\\dvbSysData.db";
|
||||
private const string FILE_dvbMainData_db = "dvb_type001\\dvbMainData.db";
|
||||
|
||||
private readonly ChannelList atvChannels = new ChannelList(SignalSource.AnalogCT, "Analog");
|
||||
private readonly ChannelList dtvTvChannels = new ChannelList(SignalSource.DvbCT | SignalSource.Tv, "DTV");
|
||||
@@ -30,6 +26,7 @@ namespace ChanSort.Loader.Toshiba
|
||||
DepencencyChecker.AssertVc2010RedistPackageX86Installed();
|
||||
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.All;
|
||||
this.Features.DeleteMode = DeleteMode.Physically;
|
||||
|
||||
this.DataRoot.AddChannelList(this.atvChannels);
|
||||
this.DataRoot.AddChannelList(this.dtvTvChannels);
|
||||
@@ -39,15 +36,10 @@ namespace ChanSort.Loader.Toshiba
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DisplayName
|
||||
public override string DisplayName { get { return "Toshiba *.db Loader"; } }
|
||||
#endregion
|
||||
|
||||
|
||||
#region Load()
|
||||
public override void Load()
|
||||
{
|
||||
this.UnzipDataFile();
|
||||
this.tempDir = this.UnzipFileToTempFolder() + "\\";
|
||||
|
||||
string sysDataConnString = "Data Source=" + tempDir + FILE_dvbSysData_db;
|
||||
using (var conn = new SQLiteConnection(sysDataConnString))
|
||||
@@ -84,54 +76,7 @@ namespace ChanSort.Loader.Toshiba
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region UnzipDataFile()
|
||||
private void UnzipDataFile()
|
||||
{
|
||||
this.tempDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()) + "\\";
|
||||
Directory.CreateDirectory(tempDir);
|
||||
Application.ApplicationExit += this.CleanTempFolder;
|
||||
|
||||
using (ZipFile zip = new ZipFile(this.FileName))
|
||||
{
|
||||
this.Expand(zip, "chmgt_type001/" + FILE_chmgt_db);
|
||||
this.Expand(zip, "dvb_type001/" + FILE_dvbSysData_db);
|
||||
this.Expand(zip, "dvb_type001/" + FILE_dvbMainData_db);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region CleanTempFolder()
|
||||
private void CleanTempFolder(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach(var file in Directory.GetFiles(this.tempDir))
|
||||
File.Delete(file);
|
||||
Directory.Delete(this.tempDir);
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Expand()
|
||||
private void Expand(ZipFile zip, string path)
|
||||
{
|
||||
var entry = zip.GetEntry(path);
|
||||
if (entry == null)
|
||||
throw new FileLoadException("File not found inside .zip: " + path);
|
||||
|
||||
byte[] buffer = new byte[65536];
|
||||
using (var input = zip.GetInputStream(entry))
|
||||
using (var output = new FileStream(this.tempDir + Path.GetFileName(path), FileMode.Create))
|
||||
{
|
||||
int len;
|
||||
while ((len = input.Read(buffer, 0, buffer.Length)) != 0)
|
||||
output.Write(buffer, 0, len);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region RepairCorruptedDatabaseImage()
|
||||
private void RepairCorruptedDatabaseImage(SQLiteCommand cmd)
|
||||
{
|
||||
@@ -291,37 +236,32 @@ namespace ChanSort.Loader.Toshiba
|
||||
#region Save()
|
||||
public override void Save(string tvOutputFile)
|
||||
{
|
||||
if (tvOutputFile != this.FileName)
|
||||
{
|
||||
File.Copy(this.FileName, tvOutputFile);
|
||||
this.FileName = tvOutputFile;
|
||||
}
|
||||
|
||||
string channelConnString = "Data Source=" + this.tempDir + FILE_chmgt_db;
|
||||
using (var conn = new SQLiteConnection(channelConnString))
|
||||
{
|
||||
conn.Open();
|
||||
using (var cmd = conn.CreateCommand())
|
||||
using (var cmd2 = conn.CreateCommand())
|
||||
{
|
||||
using (var trans = conn.BeginTransaction())
|
||||
{
|
||||
this.WriteChannels(cmd, "EuroATVChanList", this.atvChannels, true);
|
||||
this.WriteChannels(cmd, "EuroDTVChanList", this.dtvTvChannels);
|
||||
this.WriteChannels(cmd, "EuroDTVChanList", this.dtvRadioChannels);
|
||||
this.WriteChannels(cmd, "EuroSATChanList", this.satTvChannels);
|
||||
this.WriteChannels(cmd, "EuroSATChanList", this.satRadioChannels);
|
||||
this.WriteChannels(cmd, cmd2, "EuroATVChanList", this.atvChannels, true);
|
||||
this.WriteChannels(cmd, cmd2, "EuroDTVChanList", this.dtvTvChannels);
|
||||
this.WriteChannels(cmd, cmd2, "EuroDTVChanList", this.dtvRadioChannels);
|
||||
this.WriteChannels(cmd, cmd2, "EuroSATChanList", this.satTvChannels);
|
||||
this.WriteChannels(cmd, cmd2, "EuroSATChanList", this.satRadioChannels);
|
||||
trans.Commit();
|
||||
}
|
||||
this.RepairCorruptedDatabaseImage(cmd);
|
||||
}
|
||||
}
|
||||
|
||||
this.ZipFiles();
|
||||
this.ZipToOutputFile(tvOutputFile);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region WriteChannels()
|
||||
private void WriteChannels(SQLiteCommand cmd, string table, ChannelList channelList, bool analog=false)
|
||||
private void WriteChannels(SQLiteCommand cmd, SQLiteCommand cmdDelete, string table, ChannelList channelList, bool analog=false)
|
||||
{
|
||||
string sql = "update " + table + " set channel_number=@nr ";
|
||||
if (!analog)
|
||||
@@ -332,30 +272,29 @@ namespace ChanSort.Loader.Toshiba
|
||||
cmd.Parameters.Add(new SQLiteParameter("@nr", DbType.Int32));
|
||||
cmd.Parameters.Add(new SQLiteParameter("@Bits", DbType.Int32));
|
||||
cmd.Prepare();
|
||||
|
||||
cmdDelete.CommandText = "delete from " + table + " where channel_handle=@id";
|
||||
cmdDelete.Parameters.Add(new SQLiteParameter("@id", DbType.Int32));
|
||||
|
||||
foreach (ChannelInfo channelInfo in channelList.Channels)
|
||||
{
|
||||
var channel = channelInfo as DbChannel;
|
||||
if (channel == null) // ignore reference list proxy channels
|
||||
continue;
|
||||
channel.UpdateRawData();
|
||||
cmd.Parameters["@id"].Value = channel.RecordIndex;
|
||||
cmd.Parameters["@nr"].Value = channel.NewProgramNr;
|
||||
cmd.Parameters["@Bits"].Value = channel.Bits;
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region ZipFiles()
|
||||
private void ZipFiles()
|
||||
{
|
||||
const string entryName = "chmgt_type001/" + FILE_chmgt_db;
|
||||
using (var zip = new ZipFile(this.FileName))
|
||||
{
|
||||
zip.BeginUpdate();
|
||||
zip.Delete(entryName);
|
||||
zip.Add(this.tempDir + "chmgt.db", entryName);
|
||||
zip.CommitUpdate();
|
||||
if (channel.IsDeleted)
|
||||
{
|
||||
cmdDelete.Parameters["@id"].Value = channel.RecordIndex;
|
||||
cmdDelete.ExecuteNonQuery();
|
||||
}
|
||||
else
|
||||
{
|
||||
channel.UpdateRawData();
|
||||
cmd.Parameters["@id"].Value = channel.RecordIndex;
|
||||
cmd.Parameters["@nr"].Value = channel.NewProgramNr;
|
||||
cmd.Parameters["@Bits"].Value = channel.Bits;
|
||||
cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Loader.VDR</RootNamespace>
|
||||
<AssemblyName>ChanSort.Loader.VDR</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
@@ -23,6 +23,7 @@
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
@@ -31,6 +32,7 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,14 +42,16 @@
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<OutputPath>..\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
|
||||
@@ -14,15 +14,14 @@ namespace ChanSort.Loader.VDR
|
||||
DepencencyChecker.AssertVc2010RedistPackageX86Installed();
|
||||
|
||||
this.Features.ChannelNameEdit = ChannelNameEditMode.None;
|
||||
this.DataRoot.SortedFavorites = false;
|
||||
//this.DataRoot.SupportedFavorites = new Favorites();
|
||||
this.Features.DeleteMode = DeleteMode.Physically;
|
||||
this.Features.SortedFavorites = false;
|
||||
//this.Features.SupportedFavorites = new Favorites();
|
||||
|
||||
this.DataRoot.AddChannelList(this.allChannels);
|
||||
}
|
||||
#endregion
|
||||
|
||||
public override string DisplayName { get { return "VDR channels .conf Loader"; } }
|
||||
|
||||
#region Load()
|
||||
public override void Load()
|
||||
{
|
||||
@@ -62,7 +61,7 @@ namespace ChanSort.Loader.VDR
|
||||
foreach (ChannelInfo channel in this.allChannels.GetChannelsByNewOrder())
|
||||
{
|
||||
// when a reference list was applied, the list may contain proxy entries for deleted channels, which must be ignored
|
||||
if (channel is Channels vdrChannel)
|
||||
if (channel is Channels vdrChannel && !channel.IsDeleted)
|
||||
file.WriteLine(vdrChannel.confLine);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -286,8 +286,8 @@ Global
|
||||
{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|Any CPU
|
||||
{D7BAFD55-50F5-46C3-A76B-2193BED5358F}.Release|x86.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
|
||||
@@ -298,8 +298,8 @@ Global
|
||||
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Release|x86.Build.0 = Release|Any CPU
|
||||
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Release|x86.ActiveCfg = Release|x86
|
||||
{AA31A65D-9437-42AE-89C8-98C7392B450D}.Release|x86.Build.0 = Release|x86
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
@@ -310,8 +310,8 @@ Global
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|x86.Build.0 = Release|Any CPU
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|x86.ActiveCfg = Release|x86
|
||||
{D1E4454F-DB09-402D-AD87-1E3BD17266A9}.Release|x86.Build.0 = Release|x86
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
@@ -322,8 +322,8 @@ Global
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Release|x86.Build.0 = Release|Any CPU
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Release|x86.ActiveCfg = Release|x86
|
||||
{2717DB4C-7E94-4277-A880-FC2571096E74}.Release|x86.Build.0 = Release|x86
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
@@ -334,8 +334,8 @@ Global
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Release|x86.Build.0 = Release|Any CPU
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Release|x86.ActiveCfg = Release|x86
|
||||
{8D592EB4-3BE2-4D99-8923-FA0794C729ED}.Release|x86.Build.0 = Release|x86
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
@@ -346,8 +346,8 @@ Global
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|x86.Build.0 = Release|Any CPU
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|x86.ActiveCfg = Release|x86
|
||||
{0A162099-DA92-426A-AB70-36F88F9E5DC1}.Release|x86.Build.0 = Release|x86
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
@@ -358,8 +358,8 @@ Global
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Release|x86.Build.0 = Release|Any CPU
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Release|x86.ActiveCfg = Release|x86
|
||||
{902EA731-EBB2-4B18-BE87-256C05277B3E}.Release|x86.Build.0 = Release|x86
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
@@ -370,8 +370,8 @@ Global
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|x86.Build.0 = Release|Any CPU
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|x86.ActiveCfg = Release|x86
|
||||
{C0528858-F32D-4C0C-8EC8-CEDB53C01402}.Release|x86.Build.0 = Release|x86
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
@@ -382,8 +382,8 @@ Global
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Release|x86.Build.0 = Release|Any CPU
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Release|x86.ActiveCfg = Release|x86
|
||||
{F732435A-0188-456C-8F06-7FBA1842FB35}.Release|x86.Build.0 = Release|x86
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
@@ -394,8 +394,8 @@ Global
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Release|x86.Build.0 = Release|Any CPU
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Release|x86.ActiveCfg = Release|x86
|
||||
{D7B71F40-C941-4364-A25F-8D41B384507A}.Release|x86.Build.0 = Release|x86
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||
@@ -406,8 +406,8 @@ Global
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|x86.Build.0 = Release|Any CPU
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|x86.ActiveCfg = Release|x86
|
||||
{AED060F0-495C-494C-89C2-7A96A0FA3762}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -117,8 +117,8 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="DevExpress.XtraEditors.v19.1" name="DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="lblWebsite.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<assembly alias="DevExpress.XtraEditors.v19.2" name="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="lblWebsite.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
@@ -139,7 +139,7 @@
|
||||
<value>lblWebsite</value>
|
||||
</data>
|
||||
<data name=">>lblWebsite.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lblWebsite.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -170,7 +170,7 @@
|
||||
<value>lnkDownload</value>
|
||||
</data>
|
||||
<data name=">>lnkDownload.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lnkDownload.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -194,7 +194,7 @@
|
||||
<value>gcPlugins</value>
|
||||
</data>
|
||||
<data name=">>gcPlugins.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="lnkEmail.EditValue" xml:space="preserve">
|
||||
<value>horst@beham.biz</value>
|
||||
@@ -215,7 +215,7 @@
|
||||
<value>lnkEmail</value>
|
||||
</data>
|
||||
<data name=">>lnkEmail.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lnkEmail.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -223,7 +223,7 @@
|
||||
<data name=">>lnkEmail.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="lblAuthor.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="lblAuthor.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="lblAuthor.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -242,7 +242,7 @@
|
||||
<value>lblAuthor</value>
|
||||
</data>
|
||||
<data name=">>lblAuthor.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lblAuthor.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -250,7 +250,7 @@
|
||||
<data name=">>lblAuthor.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="lblLicense.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="lblLicense.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="lblLicense.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -269,7 +269,7 @@
|
||||
<value>lblLicense</value>
|
||||
</data>
|
||||
<data name=">>lblLicense.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lblLicense.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -299,7 +299,7 @@
|
||||
<value>lnkLicense</value>
|
||||
</data>
|
||||
<data name=">>lnkLicense.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lnkLicense.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -307,7 +307,7 @@
|
||||
<data name=">>lnkLicense.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="lblCredits.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="lblCredits.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="lblCredits.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -326,7 +326,7 @@
|
||||
<value>lblCredits</value>
|
||||
</data>
|
||||
<data name=">>lblCredits.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lblCredits.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -350,7 +350,7 @@
|
||||
<value>txtCredits</value>
|
||||
</data>
|
||||
<data name=">>txtCredits.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.MemoEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.MemoEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>txtCredits.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -377,7 +377,7 @@
|
||||
<value>btnClose</value>
|
||||
</data>
|
||||
<data name=">>btnClose.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -401,7 +401,7 @@
|
||||
<value>txtAuthor</value>
|
||||
</data>
|
||||
<data name=">>txtAuthor.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>txtAuthor.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -428,30 +428,30 @@
|
||||
<value>gvPlugins</value>
|
||||
</data>
|
||||
<data name=">>gvPlugins.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>colPlugin.Name" xml:space="preserve">
|
||||
<value>colPlugin</value>
|
||||
</data>
|
||||
<data name=">>colPlugin.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>colDisplayText.Name" xml:space="preserve">
|
||||
<value>colDisplayText</value>
|
||||
</data>
|
||||
<data name=">>colDisplayText.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>colFileTypes.Name" xml:space="preserve">
|
||||
<value>colFileTypes</value>
|
||||
</data>
|
||||
<data name=">>colFileTypes.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>AboutForm</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -125,8 +125,8 @@
|
||||
<data name="lblMessage.Appearance.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Tahoma, 9pt</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.XtraEditors.v19.1" name="DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="lblMessage.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<assembly alias="DevExpress.XtraEditors.v19.2" name="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="lblMessage.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="lblMessage.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -146,7 +146,7 @@
|
||||
<value>lblMessage</value>
|
||||
</data>
|
||||
<data name=">>lblMessage.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lblMessage.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -160,8 +160,8 @@
|
||||
<data name="imageCollection1.ImageSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 32</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.Utils.v19.1" name="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="imageCollection1.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<assembly alias="DevExpress.Utils.v19.2" name="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="imageCollection1.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxMi4yLCBWZXJzaW9uPTEyLjIu
|
||||
OC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
|
||||
@@ -459,12 +459,12 @@
|
||||
<value>imageCollection1</value>
|
||||
</data>
|
||||
<data name=">>imageCollection1.Type" xml:space="preserve">
|
||||
<value>DevExpress.Utils.ImageCollection, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.Utils.ImageCollection, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>ActionBoxDialog</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -120,8 +120,8 @@
|
||||
<metadata name="imageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>349, 503</value>
|
||||
</metadata>
|
||||
<assembly alias="DevExpress.Utils.v19.1" name="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="imageCollection1.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<assembly alias="DevExpress.Utils.v19.2" name="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="imageCollection1.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxNS4yLCBWZXJzaW9uPTE1LjIu
|
||||
NS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAAAChE
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>ChanSort.Ui</RootNamespace>
|
||||
<AssemblyName>ChanSort</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
@@ -30,7 +30,7 @@
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<OutputPath>..\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
@@ -62,44 +62,44 @@
|
||||
<ApplicationIcon>app.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Data.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Reference Include="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Office.v19.1.Core, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Pdf.v19.1.Core, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Reference Include="DevExpress.Office.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Pdf.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.RichEdit.v19.1.Export, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Reference Include="DevExpress.RichEdit.v19.2.Export, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Printing.v19.1.Core, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Reference Include="DevExpress.Printing.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.RichEdit.v19.1.Core, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Reference Include="DevExpress.RichEdit.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Utils.v19.1.UI, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Reference Include="DevExpress.Utils.v19.2.UI, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Reference Include="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.XtraPrinting.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Reference Include="DevExpress.XtraPrinting.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<Reference Include="DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Charts.v19.1.Core, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v19.1.Wizard, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.PivotGrid.v19.1.Core, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Sparkline.v19.1.Core, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.CodeParser.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraReports.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraReports.v19.1.Extensions, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Charts.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v19.2.Wizard, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.PivotGrid.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Sparkline.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.CodeParser.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraReports.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraReports.v19.2.Extensions, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.configuration" />
|
||||
|
||||
@@ -138,13 +138,13 @@
|
||||
<value>btnCancel</value>
|
||||
</data>
|
||||
<data name=">>btnOk.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="gcCharset.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>433, 446</value>
|
||||
</data>
|
||||
<data name=">>gvCharset.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>CharsetForm</value>
|
||||
@@ -178,12 +178,12 @@
|
||||
<data name=">>btnMyCountry.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.XtraEditors.v19.1" name="DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="gcCharset.EmbeddedNavigator.TextLocation" type="DevExpress.XtraEditors.NavigatorButtonsTextLocation, DevExpress.XtraEditors.v19.1">
|
||||
<assembly alias="DevExpress.XtraEditors.v19.2" name="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="gcCharset.EmbeddedNavigator.TextLocation" type="DevExpress.XtraEditors.NavigatorButtonsTextLocation, DevExpress.XtraEditors.v19.2">
|
||||
<value>Center</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.Utils.v19.1" name="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="gcCharset.EmbeddedNavigator.ToolTipIconType" type="DevExpress.Utils.ToolTipIconType, DevExpress.Utils.v19.1">
|
||||
<assembly alias="DevExpress.Utils.v19.2" name="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="gcCharset.EmbeddedNavigator.ToolTipIconType" type="DevExpress.Utils.ToolTipIconType, DevExpress.Utils.v19.2">
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name=">>gvCharset.Name" xml:space="preserve">
|
||||
@@ -196,7 +196,7 @@
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name=">>btnMyCountry.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="gcCharset.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
@@ -211,10 +211,10 @@
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>gcCharset.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>colName.Name" xml:space="preserve">
|
||||
<value>colName</value>
|
||||
@@ -256,7 +256,7 @@
|
||||
<value>gcCharset</value>
|
||||
</data>
|
||||
<data name=">>colCodePage.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="btnMyCountry.Text" xml:space="preserve">
|
||||
<value>Default character set for my country</value>
|
||||
@@ -271,7 +271,7 @@
|
||||
<value>353, 6</value>
|
||||
</data>
|
||||
<data name=">>colName.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="btnCancel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
@@ -331,7 +331,7 @@
|
||||
<value>btnOk</value>
|
||||
</data>
|
||||
<data name=">>colDisplayName.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>433, 483</value>
|
||||
@@ -340,17 +340,17 @@
|
||||
<value>142</value>
|
||||
</data>
|
||||
<data name=">>panelControl1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="colName.Visible" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.Data.v19.1" name="DevExpress.Data.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="gcCharset.EmbeddedNavigator.AllowHtmlTextInToolTip" type="DevExpress.Utils.DefaultBoolean, DevExpress.Data.v19.1">
|
||||
<assembly alias="DevExpress.Data.v19.2" name="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="gcCharset.EmbeddedNavigator.AllowHtmlTextInToolTip" type="DevExpress.Utils.DefaultBoolean, DevExpress.Data.v19.2">
|
||||
<value>Default</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
|
||||
@@ -120,8 +120,8 @@
|
||||
<metadata name="sharedImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="DevExpress.Utils.v19.1" name="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="sharedImageCollection1.ImageSource.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<assembly alias="DevExpress.Utils.v19.2" name="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="sharedImageCollection1.ImageSource.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxOS4xLCBWZXJzaW9uPTE5LjEu
|
||||
NS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
|
||||
|
||||
78
source/ChanSort/MainForm.Designer.cs
generated
78
source/ChanSort/MainForm.Designer.cs
generated
@@ -128,10 +128,6 @@
|
||||
this.miAddChannel = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miRemove = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miRenameChannel = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miSort = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miRenum = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miRenumFavByPrNr = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miCopyCsv = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.mnuFavSet = new DevExpress.XtraBars.BarSubItem();
|
||||
this.mnuFavUnset = new DevExpress.XtraBars.BarSubItem();
|
||||
this.miLockOn = new DevExpress.XtraBars.BarButtonItem();
|
||||
@@ -140,6 +136,10 @@
|
||||
this.miSkipOff = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miHideOn = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miHideOff = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miRenum = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miSort = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miRenumFavByPrNr = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miCopyCsv = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.barSubItem2 = new DevExpress.XtraBars.BarSubItem();
|
||||
this.miTvSettings = new DevExpress.XtraBars.BarButtonItem();
|
||||
this.miCleanupChannels = new DevExpress.XtraBars.BarButtonItem();
|
||||
@@ -1295,41 +1295,6 @@
|
||||
this.miRenameChannel.Name = "miRenameChannel";
|
||||
this.miRenameChannel.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRenameChannel_ItemClick);
|
||||
//
|
||||
// miSort
|
||||
//
|
||||
resources.ApplyResources(this.miSort, "miSort");
|
||||
this.miSort.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
|
||||
this.miSort.Id = 40;
|
||||
this.miSort.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSort.ImageOptions.ImageIndex")));
|
||||
this.miSort.Name = "miSort";
|
||||
this.miSort.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSort_ItemClick);
|
||||
//
|
||||
// miRenum
|
||||
//
|
||||
resources.ApplyResources(this.miRenum, "miRenum");
|
||||
this.miRenum.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
|
||||
this.miRenum.Id = 41;
|
||||
this.miRenum.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRenum.ImageOptions.ImageIndex")));
|
||||
this.miRenum.Name = "miRenum";
|
||||
this.miRenum.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRenum_ItemClick);
|
||||
//
|
||||
// miRenumFavByPrNr
|
||||
//
|
||||
resources.ApplyResources(this.miRenumFavByPrNr, "miRenumFavByPrNr");
|
||||
this.miRenumFavByPrNr.Id = 63;
|
||||
this.miRenumFavByPrNr.Name = "miRenumFavByPrNr";
|
||||
this.miRenumFavByPrNr.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRenumFavByPrNr_ItemClick);
|
||||
//
|
||||
// miCopyCsv
|
||||
//
|
||||
resources.ApplyResources(this.miCopyCsv, "miCopyCsv");
|
||||
this.miCopyCsv.Id = 100;
|
||||
this.miCopyCsv.ImageOptions.ImageIndex = ((int)(resources.GetObject("miCopyCsv.ImageOptions.ImageIndex")));
|
||||
this.miCopyCsv.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
|
||||
| System.Windows.Forms.Keys.C));
|
||||
this.miCopyCsv.Name = "miCopyCsv";
|
||||
this.miCopyCsv.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miCopyCsv_ItemClick);
|
||||
//
|
||||
// mnuFavSet
|
||||
//
|
||||
resources.ApplyResources(this.mnuFavSet, "mnuFavSet");
|
||||
@@ -1406,6 +1371,41 @@
|
||||
this.miHideOff.Name = "miHideOff";
|
||||
this.miHideOff.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miHideOff_ItemClick);
|
||||
//
|
||||
// miRenum
|
||||
//
|
||||
resources.ApplyResources(this.miRenum, "miRenum");
|
||||
this.miRenum.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
|
||||
this.miRenum.Id = 41;
|
||||
this.miRenum.ImageOptions.ImageIndex = ((int)(resources.GetObject("miRenum.ImageOptions.ImageIndex")));
|
||||
this.miRenum.Name = "miRenum";
|
||||
this.miRenum.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRenum_ItemClick);
|
||||
//
|
||||
// miSort
|
||||
//
|
||||
resources.ApplyResources(this.miSort, "miSort");
|
||||
this.miSort.CategoryGuid = new System.Guid("d7eec464-59c9-4f45-88aa-602e64c81cc0");
|
||||
this.miSort.Id = 40;
|
||||
this.miSort.ImageOptions.ImageIndex = ((int)(resources.GetObject("miSort.ImageOptions.ImageIndex")));
|
||||
this.miSort.Name = "miSort";
|
||||
this.miSort.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miSort_ItemClick);
|
||||
//
|
||||
// miRenumFavByPrNr
|
||||
//
|
||||
resources.ApplyResources(this.miRenumFavByPrNr, "miRenumFavByPrNr");
|
||||
this.miRenumFavByPrNr.Id = 63;
|
||||
this.miRenumFavByPrNr.Name = "miRenumFavByPrNr";
|
||||
this.miRenumFavByPrNr.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miRenumFavByPrNr_ItemClick);
|
||||
//
|
||||
// miCopyCsv
|
||||
//
|
||||
resources.ApplyResources(this.miCopyCsv, "miCopyCsv");
|
||||
this.miCopyCsv.Id = 100;
|
||||
this.miCopyCsv.ImageOptions.ImageIndex = ((int)(resources.GetObject("miCopyCsv.ImageOptions.ImageIndex")));
|
||||
this.miCopyCsv.ItemShortcut = new DevExpress.XtraBars.BarShortcut(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
|
||||
| System.Windows.Forms.Keys.C));
|
||||
this.miCopyCsv.Name = "miCopyCsv";
|
||||
this.miCopyCsv.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miCopyCsv_ItemClick);
|
||||
//
|
||||
// barSubItem2
|
||||
//
|
||||
resources.ApplyResources(this.barSubItem2, "barSubItem2");
|
||||
|
||||
@@ -551,7 +551,7 @@ namespace ChanSort.Ui
|
||||
if (!this.PromptSaveAndContinue())
|
||||
return false;
|
||||
|
||||
serializer.DataRoot.SetPrNrForDeletedChannels();
|
||||
serializer.DataRoot.ValidateAfterLoad();
|
||||
this.SetFileName(tvDataFile);
|
||||
this.currentPlugin = plugin;
|
||||
this.currentTvSerializer = serializer;
|
||||
@@ -765,10 +765,10 @@ namespace ChanSort.Ui
|
||||
|
||||
try
|
||||
{
|
||||
if (!this.PromptHandlingOfUnsortedChannels())
|
||||
return;
|
||||
if (!this.HandleChannelNumberGaps())
|
||||
return;
|
||||
if (!this.PromptHandlingOfUnsortedChannels())
|
||||
return;
|
||||
this.SaveTvDataFile();
|
||||
this.DataRoot.NeedsSaving = false;
|
||||
this.RefreshGrid(this.gviewLeft, this.gviewRight);
|
||||
@@ -795,7 +795,7 @@ namespace ChanSort.Ui
|
||||
{
|
||||
foreach (var channel in list.Channels)
|
||||
{
|
||||
if (channel.NewProgramNr < 0 && (!channel.IsDeleted || DataRoot.DeletedChannelsNeedNumbers))
|
||||
if (channel.NewProgramNr < 0 && (!channel.IsDeleted /* || DataRoot.DeletedChannelsNeedNumbers */))
|
||||
{
|
||||
hasUnsorted = true;
|
||||
break;
|
||||
@@ -803,7 +803,7 @@ namespace ChanSort.Ui
|
||||
}
|
||||
}
|
||||
|
||||
UnsortedChannelMode mode = UnsortedChannelMode.MarkDeleted;
|
||||
UnsortedChannelMode mode = UnsortedChannelMode.Delete;
|
||||
|
||||
if (hasUnsorted)
|
||||
{
|
||||
@@ -812,7 +812,7 @@ namespace ChanSort.Ui
|
||||
using (var dlg = new ActionBoxDialog(msg))
|
||||
{
|
||||
dlg.AddAction(Resources.MainForm_PromptHandlingOfUnsortedChannels_Append, DialogResult.Yes, dlg.FullList);
|
||||
if (this.currentTvSerializer.Features.CanDeleteChannels)
|
||||
if (this.currentTvSerializer.Features.CanDeleteChannelsWithFlag || this.currentTvSerializer.Features.CanDeleteChannelsFromFile)
|
||||
dlg.AddAction(Resources.MainForm_PromptHandlingOfUnsortedChannels_Delete, DialogResult.No, dlg.Delete);
|
||||
dlg.AddAction(Resources.MainForm_Cancel, DialogResult.Cancel, dlg.Cancel);
|
||||
res = dlg.ShowDialog(this);
|
||||
@@ -928,19 +928,7 @@ namespace ChanSort.Ui
|
||||
File.Copy(currentTvFile, bakFile);
|
||||
}
|
||||
this.currentTvSerializer.Save(this.currentTvFile);
|
||||
|
||||
// after saving old numbers match the new numbers
|
||||
foreach (var list in this.DataRoot.ChannelLists)
|
||||
{
|
||||
foreach (var chan in list.Channels)
|
||||
{
|
||||
if (chan.IsDeleted && !this.DataRoot.DeletedChannelsNeedNumbers) // during the saving process, deleted channels temporarily got a NewProgramNr assigned
|
||||
chan.NewProgramNr = -1;
|
||||
chan.OldProgramNr = chan.NewProgramNr;
|
||||
chan.OldFavIndex.Clear();
|
||||
chan.OldFavIndex.AddRange(chan.FavIndex);
|
||||
}
|
||||
}
|
||||
this.DataRoot.ValidateAfterSave();
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -1692,6 +1680,8 @@ namespace ChanSort.Ui
|
||||
try
|
||||
{
|
||||
File.Copy(bakFile, this.currentTvFile, true);
|
||||
var attr = File.GetAttributes(this.currentTvFile);
|
||||
File.SetAttributes(this.currentTvFile, attr & ~FileAttributes.ReadOnly);
|
||||
this.currentTvSerializer.DataRoot.NeedsSaving = false;
|
||||
if (this.currentPlugin != null)
|
||||
this.LoadFiles(this.currentPlugin, this.currentTvFile);
|
||||
@@ -2675,8 +2665,7 @@ namespace ChanSort.Ui
|
||||
{
|
||||
this.gviewRight.BeginSort();
|
||||
this.gviewRight.ClearColumnsFilter();
|
||||
if (this.DataRoot != null && !this.DataRoot.ShowDeletedChannels)
|
||||
this.colSlotOld.FilterInfo = new ColumnFilterInfo("[OldProgramNr]<>-1");
|
||||
this.colSlotOld.FilterInfo = new ColumnFilterInfo("[OldProgramNr]<>-1");
|
||||
if (this.subListIndex > 0 && !this.CurrentChannelList.IsMixedSourceFavoritesList)
|
||||
this.colPrNr.FilterInfo = new ColumnFilterInfo("[NewProgramNr]<>-1");
|
||||
this.gviewRight.EndSort();
|
||||
|
||||
@@ -556,8 +556,8 @@ speziellen Anbieter, Satelliten oder Länderlisten aus.</value>
|
||||
<data name="lblHotkeyLeft.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>333, 17</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.XtraBars.v19.1" name="DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<assembly alias="DevExpress.XtraBars.v19.2" name="DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
|
||||
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
|
||||
@@ -567,7 +567,7 @@ speziellen Anbieter, Satelliten oder Länderlisten aus.</value>
|
||||
Xxl+0wEL
|
||||
</value>
|
||||
</data>
|
||||
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
|
||||
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
|
||||
@@ -577,7 +577,7 @@ speziellen Anbieter, Satelliten oder Länderlisten aus.</value>
|
||||
KphCYAEL
|
||||
</value>
|
||||
</data>
|
||||
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
|
||||
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
|
||||
@@ -587,7 +587,7 @@ speziellen Anbieter, Satelliten oder Länderlisten aus.</value>
|
||||
ZMgcwAEL
|
||||
</value>
|
||||
</data>
|
||||
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
|
||||
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
|
||||
@@ -597,7 +597,7 @@ speziellen Anbieter, Satelliten oder Länderlisten aus.</value>
|
||||
WIeWYGkVXQEL
|
||||
</value>
|
||||
</data>
|
||||
<data name="barManager1.Categories4" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="barManager1.Categories4" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxNS4yLCBWZXJzaW9uPTE1
|
||||
LjIuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
|
||||
|
||||
@@ -62,9 +62,9 @@
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<assembly alias="DevExpress.Data.v19.1" name="DevExpress.Data.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<assembly alias="DevExpress.XtraEditors.v19.1" name="DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<assembly alias="DevExpress.Utils.v19.1" name="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<assembly alias="DevExpress.Data.v19.2" name="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<assembly alias="DevExpress.XtraEditors.v19.2" name="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<assembly alias="DevExpress.Utils.v19.2" name="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="colOutSlot.Caption" xml:space="preserve">
|
||||
<value>Novo Pos</value>
|
||||
</data>
|
||||
@@ -329,8 +329,8 @@
|
||||
<data name="colOutServiceType.Caption" xml:space="preserve">
|
||||
<value>Tipo serviço</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.XtraBars.v19.1" name="DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<assembly alias="DevExpress.XtraBars.v19.2" name="DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
|
||||
LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
|
||||
@@ -340,7 +340,7 @@
|
||||
Xxl+0wEL
|
||||
</value>
|
||||
</data>
|
||||
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
|
||||
LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
|
||||
@@ -350,7 +350,7 @@
|
||||
KphCYAEL
|
||||
</value>
|
||||
</data>
|
||||
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
|
||||
LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
|
||||
@@ -360,7 +360,7 @@
|
||||
ZMgcwAEL
|
||||
</value>
|
||||
</data>
|
||||
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
|
||||
LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -135,7 +135,7 @@
|
||||
<value>labelControl1</value>
|
||||
</data>
|
||||
<data name=">>labelControl1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -162,7 +162,7 @@
|
||||
<value>rbSortByNumber</value>
|
||||
</data>
|
||||
<data name=">>rbSortByNumber.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>rbSortByNumber.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -186,7 +186,7 @@
|
||||
<value>rbSortByName</value>
|
||||
</data>
|
||||
<data name=">>rbSortByName.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>rbSortByName.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -210,7 +210,7 @@
|
||||
<value>labelControl2</value>
|
||||
</data>
|
||||
<data name=">>labelControl2.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl2.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -228,8 +228,8 @@
|
||||
<data name="fontEdit1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>106, 52</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.Utils.v19.1" name="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="fontEdit1.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.1">
|
||||
<assembly alias="DevExpress.Utils.v19.2" name="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="fontEdit1.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.2">
|
||||
<value>Combo</value>
|
||||
</data>
|
||||
<data name="fontEdit1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
@@ -242,7 +242,7 @@
|
||||
<value>fontEdit1</value>
|
||||
</data>
|
||||
<data name=">>fontEdit1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.FontEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.FontEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>fontEdit1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -269,7 +269,7 @@
|
||||
<value>btnPreview</value>
|
||||
</data>
|
||||
<data name=">>btnPreview.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnPreview.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -296,7 +296,7 @@
|
||||
<value>btnCancel</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -313,7 +313,7 @@
|
||||
<data name="spinFontSize.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>266, 52</value>
|
||||
</data>
|
||||
<data name="spinFontSize.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.1">
|
||||
<data name="spinFontSize.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.2">
|
||||
<value>Combo</value>
|
||||
</data>
|
||||
<data name="spinFontSize.Properties.Mask.ShowPlaceHolders" type="System.Boolean, mscorlib">
|
||||
@@ -329,7 +329,7 @@
|
||||
<value>spinFontSize</value>
|
||||
</data>
|
||||
<data name=">>spinFontSize.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SpinEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SpinEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>spinFontSize.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -356,6 +356,6 @@
|
||||
<value>ReportOptionsDialog</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
</root>
|
||||
2
source/ChanSort/Properties/Settings.Designer.cs
generated
2
source/ChanSort/Properties/Settings.Designer.cs
generated
@@ -12,7 +12,7 @@ namespace ChanSort.Ui.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.1.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraReports.UI.XtraReport, DevExpress.XtraReports.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
|
||||
@@ -6,9 +6,9 @@ using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using ChanSort.Api;
|
||||
using ChanSort.Ui.Properties;
|
||||
using DevExpress.Utils.Extensions;
|
||||
using DevExpress.XtraEditors;
|
||||
using DevExpress.XtraEditors.Controls;
|
||||
using DevExpress.XtraPrinting.Native;
|
||||
|
||||
namespace ChanSort.Ui
|
||||
{
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
<value>labelControl1</value>
|
||||
</data>
|
||||
<data name=">>labelControl1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl1.Parent" xml:space="preserve">
|
||||
<value>groupControl1</value>
|
||||
@@ -153,8 +153,8 @@
|
||||
<data name="edFile.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>132, 36</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.Utils.v19.1" name="DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="edFile.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.1">
|
||||
<assembly alias="DevExpress.Utils.v19.2" name="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="edFile.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.2">
|
||||
<value>Ellipsis</value>
|
||||
</data>
|
||||
<data name="edFile.Properties.Buttons1" xml:space="preserve">
|
||||
@@ -181,7 +181,7 @@
|
||||
<data name="edFile.Properties.Buttons8" type="System.Resources.ResXNullRef, System.Windows.Forms">
|
||||
<value />
|
||||
</data>
|
||||
<data name="edFile.Properties.Buttons9" type="DevExpress.Utils.ToolTipAnchor, DevExpress.Utils.v19.1">
|
||||
<data name="edFile.Properties.Buttons9" type="DevExpress.Utils.ToolTipAnchor, DevExpress.Utils.v19.2">
|
||||
<value>Default</value>
|
||||
</data>
|
||||
<data name="edFile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
@@ -194,7 +194,7 @@
|
||||
<value>edFile</value>
|
||||
</data>
|
||||
<data name=">>edFile.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>edFile.Parent" xml:space="preserve">
|
||||
<value>groupControl1</value>
|
||||
@@ -202,8 +202,8 @@
|
||||
<data name=">>edFile.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<assembly alias="DevExpress.XtraEditors.v19.1" name="DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="labelControl2.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<assembly alias="DevExpress.XtraEditors.v19.2" name="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<data name="labelControl2.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -224,7 +224,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>labelControl2</value>
|
||||
</data>
|
||||
<data name=">>labelControl2.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl2.Parent" xml:space="preserve">
|
||||
<value>groupControl1</value>
|
||||
@@ -251,7 +251,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>rbAuto</value>
|
||||
</data>
|
||||
<data name=">>rbAuto.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>rbAuto.Parent" xml:space="preserve">
|
||||
<value>groupControl2</value>
|
||||
@@ -278,7 +278,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>rbManual</value>
|
||||
</data>
|
||||
<data name=">>rbManual.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>rbManual.Parent" xml:space="preserve">
|
||||
<value>groupControl2</value>
|
||||
@@ -302,7 +302,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>labelControl3</value>
|
||||
</data>
|
||||
<data name=">>labelControl3.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl3.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -313,7 +313,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<data name="comboSource.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>123, 33</value>
|
||||
</data>
|
||||
<data name="comboSource.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.1">
|
||||
<data name="comboSource.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.2">
|
||||
<value>Combo</value>
|
||||
</data>
|
||||
<data name="comboSource.Size" type="System.Drawing.Size, System.Drawing">
|
||||
@@ -326,7 +326,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>comboSource</value>
|
||||
</data>
|
||||
<data name=">>comboSource.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>comboSource.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -337,7 +337,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<data name="comboTarget.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>123, 7</value>
|
||||
</data>
|
||||
<data name="comboTarget.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.1">
|
||||
<data name="comboTarget.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.2">
|
||||
<value>Combo</value>
|
||||
</data>
|
||||
<data name="comboTarget.Size" type="System.Drawing.Size, System.Drawing">
|
||||
@@ -350,7 +350,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>comboTarget</value>
|
||||
</data>
|
||||
<data name=">>comboTarget.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>comboTarget.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -374,7 +374,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>labelControl4</value>
|
||||
</data>
|
||||
<data name=">>labelControl4.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl4.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -398,7 +398,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbTv</value>
|
||||
</data>
|
||||
<data name=">>cbTv.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbTv.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -422,7 +422,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbRadio</value>
|
||||
</data>
|
||||
<data name=">>cbRadio.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbRadio.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -446,7 +446,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>labelControl5</value>
|
||||
</data>
|
||||
<data name=">>labelControl5.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl5.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -454,7 +454,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<data name=">>labelControl5.ZOrder" xml:space="preserve">
|
||||
<value>20</value>
|
||||
</data>
|
||||
<data name="labelControl6.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl6.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl6.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -473,7 +473,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>labelControl6</value>
|
||||
</data>
|
||||
<data name=">>labelControl6.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl6.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -487,7 +487,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<data name="comboPrNr.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>123, 134</value>
|
||||
</data>
|
||||
<data name="comboPrNr.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.1">
|
||||
<data name="comboPrNr.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v19.2">
|
||||
<value>Combo</value>
|
||||
</data>
|
||||
<data name="comboPrNr.Properties.Items" xml:space="preserve">
|
||||
@@ -521,7 +521,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>comboPrNr</value>
|
||||
</data>
|
||||
<data name=">>comboPrNr.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>comboPrNr.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -548,7 +548,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbData</value>
|
||||
</data>
|
||||
<data name=">>cbData.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbData.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -572,7 +572,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbConsecutive</value>
|
||||
</data>
|
||||
<data name=">>cbConsecutive.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbConsecutive.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -596,7 +596,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbIp</value>
|
||||
</data>
|
||||
<data name=">>cbIp.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbIp.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -620,7 +620,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbSat</value>
|
||||
</data>
|
||||
<data name=">>cbSat.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbSat.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -644,7 +644,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>labelControl11</value>
|
||||
</data>
|
||||
<data name=">>labelControl11.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl11.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -668,7 +668,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbAntenna</value>
|
||||
</data>
|
||||
<data name=">>cbAntenna.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbAntenna.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -692,7 +692,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbCable</value>
|
||||
</data>
|
||||
<data name=">>cbCable.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbCable.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -716,7 +716,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>labelControl9</value>
|
||||
</data>
|
||||
<data name=">>labelControl9.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl9.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -740,7 +740,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbAnalog</value>
|
||||
</data>
|
||||
<data name=">>cbAnalog.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbAnalog.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -764,7 +764,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>cbDigital</value>
|
||||
</data>
|
||||
<data name=">>cbDigital.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>cbDigital.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -788,7 +788,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>lblTargetInfo</value>
|
||||
</data>
|
||||
<data name=">>lblTargetInfo.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lblTargetInfo.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -812,7 +812,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>lblSourceInfo</value>
|
||||
</data>
|
||||
<data name=">>lblSourceInfo.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>lblSourceInfo.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -836,7 +836,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>labelControl7</value>
|
||||
</data>
|
||||
<data name=">>labelControl7.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl7.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -863,7 +863,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>btnApply</value>
|
||||
</data>
|
||||
<data name=">>btnApply.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnApply.Parent" xml:space="preserve">
|
||||
<value>grpManual</value>
|
||||
@@ -890,7 +890,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>grpManual</value>
|
||||
</data>
|
||||
<data name=">>grpManual.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>grpManual.Parent" xml:space="preserve">
|
||||
<value>groupControl2</value>
|
||||
@@ -917,7 +917,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>btnOk</value>
|
||||
</data>
|
||||
<data name=">>btnOk.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnOk.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -944,7 +944,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>btnClose</value>
|
||||
</data>
|
||||
<data name=">>btnClose.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>btnClose.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -971,7 +971,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>linkWiki</value>
|
||||
</data>
|
||||
<data name=">>linkWiki.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.HyperlinkLabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.HyperlinkLabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>linkWiki.Parent" xml:space="preserve">
|
||||
<value>groupControl1</value>
|
||||
@@ -995,7 +995,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<value>groupControl1</value>
|
||||
</data>
|
||||
<data name=">>groupControl1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>groupControl1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -1006,7 +1006,7 @@ or a data file from another TV (SCM, TLL, DB, BIN, ...)</value>
|
||||
<data name="groupControl2.AppearanceCaption.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Tahoma, 12pt</value>
|
||||
</data>
|
||||
<data name="labelControl10.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl10.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl10.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -1026,7 +1026,7 @@ This step can be repeated as needed.</value>
|
||||
<value>labelControl10</value>
|
||||
</data>
|
||||
<data name=">>labelControl10.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl10.Parent" xml:space="preserve">
|
||||
<value>groupControl2</value>
|
||||
@@ -1034,7 +1034,7 @@ This step can be repeated as needed.</value>
|
||||
<data name=">>labelControl10.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="labelControl8.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.1">
|
||||
<data name="labelControl8.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v19.2">
|
||||
<value>Vertical</value>
|
||||
</data>
|
||||
<data name="labelControl8.Location" type="System.Drawing.Point, System.Drawing">
|
||||
@@ -1054,7 +1054,7 @@ This step can be repeated as needed.</value>
|
||||
<value>labelControl8</value>
|
||||
</data>
|
||||
<data name=">>labelControl8.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>labelControl8.Parent" xml:space="preserve">
|
||||
<value>groupControl2</value>
|
||||
@@ -1078,7 +1078,7 @@ This step can be repeated as needed.</value>
|
||||
<value>groupControl2</value>
|
||||
</data>
|
||||
<data name=">>groupControl2.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>groupControl2.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -1105,6 +1105,6 @@ This step can be repeated as needed.</value>
|
||||
<value>ReferenceListForm</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -145,7 +145,7 @@
|
||||
<value>0, 14, 0, 14</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>WaitForm1</value>
|
||||
@@ -227,7 +227,7 @@
|
||||
<value>Horizontal</value>
|
||||
</data>
|
||||
<data name=">>progressPanel1.Type" xml:space="preserve">
|
||||
<value>DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v19.1, Version=19.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
<value>DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
|
||||
</data>
|
||||
<data name="progressPanel1.Appearance.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
|
||||
<value>Horizontal</value>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<section name="GUI.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup><userSettings>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/></startup><userSettings>
|
||||
<GUI.Properties.Settings>
|
||||
<setting name="InputTLL" serializeAs="String">
|
||||
<value/>
|
||||
|
||||
Binary file not shown.
@@ -11,18 +11,11 @@ namespace Test.Loader.GlobalClone
|
||||
[TestClass]
|
||||
public class LgGlobalCloneTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static LgGlobalCloneTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
#region TestSatChannelsAddedToCorrectLists
|
||||
[TestMethod]
|
||||
public void TestSatChannelsAddedToCorrectLists()
|
||||
{
|
||||
this.TestChannelsAddedToCorrectLists("GlobalClone00001.TLL", SignalSource.DvbS, 1138, 160, 8692, "DOWNLOAD G10 HUMAX");
|
||||
this.ChannelsAddedToCorrectLists("GlobalClone00001.TLL", SignalSource.DvbS, 1138, 160, 8692, "DOWNLOAD G10 HUMAX");
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -30,7 +23,7 @@ namespace Test.Loader.GlobalClone
|
||||
[TestMethod]
|
||||
public void TestCableChannelsAddedToCorrectLists()
|
||||
{
|
||||
this.TestChannelsAddedToCorrectLists("GlobalClone00002.TLL", SignalSource.DvbC, 405, 113, 11105, "ITV Content 01");
|
||||
this.ChannelsAddedToCorrectLists("GlobalClone00002.TLL", SignalSource.DvbC, 405, 113, 11105, "ITV Content 01");
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -38,16 +31,17 @@ namespace Test.Loader.GlobalClone
|
||||
[TestMethod]
|
||||
public void TestAntennaChannelsAddedToCorrectLists()
|
||||
{
|
||||
this.TestChannelsAddedToCorrectLists("GlobalClone00003.TLL", SignalSource.DvbT, 67, 6, 14120, "SRT8505 OTA");
|
||||
this.ChannelsAddedToCorrectLists("GlobalClone00003.TLL", SignalSource.DvbT, 67, 6, 14120, "SRT8505 OTA");
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region TestChannelsAddedToCorrectList
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTv, int expectedRadio, int dataProgramSid, string dataProgramName)
|
||||
private void ChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTv, int expectedRadio, int dataProgramSid, string dataProgramName)
|
||||
{
|
||||
var testFile = TestUtils.DeploymentItem("Test.Loader.GlobalClone\\TestFiles\\" + fileName);
|
||||
var plugin = new GcSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(testFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -66,5 +60,53 @@ namespace Test.Loader.GlobalClone
|
||||
Assert.AreEqual(dataProgramName, chan.Name);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.GlobalClone\\TestFiles\\GlobalClone00001.TLL");
|
||||
var plugin = new GcSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 122 = ORF2W HD
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2w = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2W HD");
|
||||
Assert.AreEqual(122, orf2w.OldProgramNr);
|
||||
Assert.AreEqual(122, orf2w.NewProgramNr);
|
||||
Assert.IsFalse(orf2w.IsDeleted);
|
||||
|
||||
orf2w.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2w.IsDeleted);
|
||||
Assert.AreNotEqual(-1, orf2w.NewProgramNr);
|
||||
Assert.AreEqual(0, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2w = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2W HD");
|
||||
Assert.IsTrue(orf2w.IsDeleted);
|
||||
Assert.AreEqual(-1, orf2w.OldProgramNr);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.GlobalClone</RootNamespace>
|
||||
<AssemblyName>Test.Loader.GlobalClone</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
@@ -20,6 +20,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,7 +41,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -69,15 +70,9 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="TestFiles\GlobalClone00001.TLL">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\GlobalClone00002.TLL">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\GlobalClone00003.TLL">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\GlobalClone00001.TLL" />
|
||||
<None Include="TestFiles\GlobalClone00002.TLL" />
|
||||
<None Include="TestFiles\GlobalClone00003.TLL" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
|
||||
@@ -88,6 +83,10 @@
|
||||
<Project>{5361c8cb-f737-4709-af8c-e1f0456f3c5b}</Project>
|
||||
<Name>ChanSort.Loader.GlobalClone</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
|
||||
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
|
||||
<Name>Test.Loader</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Linq;
|
||||
using ChanSort.Api;
|
||||
using ChanSort.Loader.Hisense;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
@@ -11,13 +8,6 @@ namespace Test.Loader.Hisense
|
||||
[TestClass]
|
||||
public class HisenseChannelDbTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static HisenseChannelDbTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
#region TestSatChannelsAddedToCorrectLists
|
||||
[TestMethod]
|
||||
public void TestSatChannelsAddedToCorrectLists()
|
||||
@@ -39,8 +29,9 @@ namespace Test.Loader.Hisense
|
||||
#region TestChannelsAddedToCorrectList
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTotal, int expectedTv, int expectedRadio, int dataProgramSid, string dataProgramName)
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Hisense\\TestFiles\\" + fileName);
|
||||
var plugin = new HisDbSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -58,6 +49,53 @@ namespace Test.Loader.Hisense
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Hisense\\TestFiles\\channel.db");
|
||||
var plugin = new HisDbSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 130 = ORF2E
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.AreEqual(130, orf2e.OldProgramNr);
|
||||
Assert.AreEqual(130, orf2e.NewProgramNr);
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
|
||||
orf2e.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.AppendInOrder);
|
||||
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
Assert.IsTrue(orf2e.NewProgramNr > 0);
|
||||
Assert.AreEqual(0, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// channel was removed from database
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.IsTrue(orf2e.NewProgramNr > 0);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.Hisense</RootNamespace>
|
||||
<AssemblyName>Test.Loader.Hisense</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
@@ -20,6 +20,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,7 +41,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -72,9 +73,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="TestFiles\channel.db">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\channel.db" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
|
||||
@@ -85,6 +84,10 @@
|
||||
<Project>{d093e7ee-d3ad-4e7b-af82-c6918ca017fb}</Project>
|
||||
<Name>ChanSort.Loader.Hisense</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
|
||||
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
|
||||
<Name>Test.Loader</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
|
||||
@@ -1,23 +1,16 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using ChanSort.Api;
|
||||
using ChanSort.Loader.Hisense2017;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
|
||||
namespace Test.Loader.Hisense2017
|
||||
{
|
||||
[TestClass]
|
||||
public class HisenseServicelistDbTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static HisenseServicelistDbTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
#region TestAstraChannelsAddedToCorrectLists
|
||||
[TestMethod]
|
||||
public void TestAstraChannelsAddedToCorrectLists()
|
||||
@@ -38,8 +31,9 @@ namespace Test.Loader.Hisense2017
|
||||
#region TestChannelsAddedToCorrectList
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, string listCaption, int expectedTotal, int expectedTv, int expectedRadio)
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Hisense2017\\TestFiles\\" + fileName);
|
||||
var plugin = new HisDbSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -54,6 +48,54 @@ namespace Test.Loader.Hisense2017
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Hisense2017\\TestFiles\\servicelist.db");
|
||||
var plugin = new HisDbSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 910 = ORF2E
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.AreEqual(910, orf2e.OldProgramNr);
|
||||
Assert.AreEqual(910, orf2e.NewProgramNr);
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
|
||||
orf2e.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.IsTrue(orf2e.NewProgramNr > 0);
|
||||
Assert.AreEqual(0, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// channel was marked deleted in database
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.AreEqual(-1, orf2e.NewProgramNr);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.Hisense2017</RootNamespace>
|
||||
<AssemblyName>Test.Loader.Hisense2017</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
@@ -20,6 +20,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,7 +41,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -72,9 +73,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="TestFiles\servicelist.db">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\servicelist.db" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
|
||||
@@ -85,6 +84,10 @@
|
||||
<Project>{9282e1db-cd1f-400a-aca1-17e0c4562acf}</Project>
|
||||
<Name>ChanSort.Loader.Hisense2017</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
|
||||
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
|
||||
<Name>Test.Loader</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
|
||||
@@ -35,9 +35,9 @@ namespace Test.Loader.LG
|
||||
private void ExecuteTest(string modelAndBaseName, bool generateReferenceFile = false)
|
||||
{
|
||||
// copy required input and assertion files
|
||||
DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini");
|
||||
DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.in");
|
||||
DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.out");
|
||||
TestUtils.DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini");
|
||||
TestUtils.DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.in");
|
||||
TestUtils.DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.out");
|
||||
|
||||
var baseName = Path.GetFileNameWithoutExtension(modelAndBaseName);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace Test.Loader.LG
|
||||
serializer.CleanUpChannelData();
|
||||
serializer.Save(tempFile);
|
||||
if (generateReferenceFile)
|
||||
File.Copy(tempFile, this.GetSolutionBaseDir() + "\\Test.Loader.LG\\" + modelAndBaseName + ".TLL.out", true);
|
||||
File.Copy(tempFile, TestUtils.GetSolutionBaseDir() + "\\Test.Loader.LG\\" + modelAndBaseName + ".TLL.out", true);
|
||||
else
|
||||
AssertBinaryFileContent(tempFile, baseName + ".TLL.out");
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System.Linq;
|
||||
using ChanSort.Api;
|
||||
using ChanSort.Loader.LG;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
namespace Test.Loader.LG
|
||||
{
|
||||
@@ -37,5 +40,51 @@ namespace Test.Loader.LG
|
||||
this.ExecuteTest("LM/xxLM860V-ZB99998");
|
||||
}
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.LG\\LM\\xxLM620s-ZE00001.TLL.in");
|
||||
var plugin = new TllFileSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 127 = ORF2 HD
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2 = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2 HD");
|
||||
Assert.AreEqual(127, orf2.OldProgramNr);
|
||||
Assert.AreEqual(127, orf2.NewProgramNr);
|
||||
Assert.IsFalse(orf2.IsDeleted);
|
||||
|
||||
orf2.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2.IsDeleted);
|
||||
Assert.AreEqual(0, orf2.NewProgramNr);
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2 = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2 HD");
|
||||
|
||||
Assert.IsTrue(orf2.IsDeleted);
|
||||
Assert.AreEqual(-1, orf2.OldProgramNr);
|
||||
Assert.AreEqual(-1, orf2.NewProgramNr);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.LG</RootNamespace>
|
||||
<AssemblyName>Test.Loader.LG</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<TargetFrameworkProfile />
|
||||
@@ -107,6 +107,10 @@
|
||||
<Project>{E972D8A1-2F5F-421C-AC91-CFF45E5191BE}</Project>
|
||||
<Name>ChanSort.Loader.LG</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="GlobalClone.xml" />
|
||||
|
||||
@@ -20,10 +20,10 @@ namespace Test.Loader.LG
|
||||
protected void ExecuteTest(string modelAndBaseName)
|
||||
{
|
||||
// copy required input and assertion files
|
||||
DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini");
|
||||
DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.in");
|
||||
DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".csv.in");
|
||||
DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.out");
|
||||
TestUtils.DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini");
|
||||
TestUtils.DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.in");
|
||||
TestUtils.DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".csv.in");
|
||||
TestUtils.DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.out");
|
||||
|
||||
var baseName = Path.GetFileNameWithoutExtension(modelAndBaseName);
|
||||
|
||||
@@ -35,6 +35,7 @@ namespace Test.Loader.LG
|
||||
|
||||
// verify channel name, number, favorites, ... against a reference list
|
||||
var data = serializer.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
AssertRefListContent(data, baseName + ".csv.in");
|
||||
|
||||
@@ -78,7 +79,7 @@ namespace Test.Loader.LG
|
||||
{
|
||||
MemoryStream mem = new MemoryStream();
|
||||
var writer = new StreamWriter(mem);
|
||||
CsvRefListSerializer.Save(writer, dataRoot);
|
||||
CsvRefListSerializer.Save(writer, dataRoot, false); // don't include deleted channels to maintain compatibility between new code and old test files
|
||||
writer.Flush();
|
||||
mem.Seek(0, SeekOrigin.Begin);
|
||||
var actual = new StreamReader(mem).ReadToEnd();
|
||||
@@ -115,47 +116,6 @@ namespace Test.Loader.LG
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DeploymentItem()
|
||||
private string baseDir;
|
||||
private string destDir;
|
||||
|
||||
/// <summary>
|
||||
/// DeploymentItemAttribute doesn't work with the combination of VS2010, ReSharper 7.1.3, Target Framework 3.5
|
||||
/// </summary>
|
||||
protected void DeploymentItem(string file)
|
||||
{
|
||||
if (this.baseDir == null)
|
||||
{
|
||||
this.baseDir = this.GetSolutionBaseDir();
|
||||
this.destDir = Path.GetDirectoryName(this.GetType().Assembly.Location);
|
||||
}
|
||||
|
||||
File.Copy(baseDir + "\\" + file, destDir + "\\" + Path.GetFileName(file), true);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region GetSolutionBaseDir()
|
||||
protected string GetSolutionBaseDir()
|
||||
{
|
||||
var dir = Path.GetDirectoryName(this.GetType().Assembly.Location);
|
||||
do
|
||||
{
|
||||
if (File.Exists(dir + "\\ChanSort.sln"))
|
||||
return dir;
|
||||
dir = Path.GetDirectoryName(dir);
|
||||
} while (!string.IsNullOrEmpty(dir));
|
||||
|
||||
dir = Environment.CurrentDirectory;
|
||||
do
|
||||
{
|
||||
if (File.Exists(dir + "\\ChanSort.sln"))
|
||||
return dir;
|
||||
dir = Path.GetDirectoryName(dir);
|
||||
} while (!string.IsNullOrEmpty(dir));
|
||||
|
||||
throw new InvalidOperationException("Cannot determine base directory of ChanSort solution");
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TearDown()
|
||||
[TestCleanup]
|
||||
@@ -169,9 +129,8 @@ namespace Test.Loader.LG
|
||||
#region GenerateTestFiles()
|
||||
protected void GenerateTestFiles(string modelAndBaseName, bool moveChannels = true)
|
||||
{
|
||||
DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini");
|
||||
string solutionDir = this.GetSolutionBaseDir();
|
||||
var testDataDir = solutionDir + "\\Test.Loader.LG\\" + Path.GetDirectoryName(modelAndBaseName);
|
||||
TestUtils.DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini");
|
||||
var testDataDir = TestUtils.GetSolutionBaseDir() + "\\Test.Loader.LG\\" + Path.GetDirectoryName(modelAndBaseName);
|
||||
var basename = Path.GetFileNameWithoutExtension(modelAndBaseName);
|
||||
|
||||
// copy .TLL.in
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/></startup></configuration>
|
||||
|
||||
@@ -11,13 +11,6 @@ namespace Test.Loader.Panasonic
|
||||
[TestClass]
|
||||
public class PanasonicSvlTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static PanasonicSvlTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
#region TestSatChannelsAddedToCorrectLists
|
||||
[TestMethod]
|
||||
public void TestSatChannelsAddedToCorrectLists()
|
||||
@@ -38,8 +31,9 @@ namespace Test.Loader.Panasonic
|
||||
#region TestChannelsAddedToCorrectList
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTotal, int expectedTv, int expectedRadio)
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Panasonic\\TestFiles\\" + fileName);
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -55,5 +49,52 @@ namespace Test.Loader.Panasonic
|
||||
#endregion
|
||||
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Panasonic\\TestFiles\\svl-sat.db");
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 130 = ORF2E
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.AreEqual(130, orf2e.OldProgramNr);
|
||||
Assert.AreEqual(130, orf2e.NewProgramNr);
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
|
||||
orf2e.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.IsTrue(orf2e.NewProgramNr == 0);
|
||||
Assert.AreEqual(1, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// channel was deleted from database
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNull(orf2e);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.Panasonic</RootNamespace>
|
||||
<AssemblyName>Test.Loader.Panasonic</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
@@ -20,6 +20,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,7 +41,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -72,12 +73,8 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="TestFiles\svl-cable.db">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\svl-sat.db">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\svl-cable.db" />
|
||||
<None Include="TestFiles\svl-sat.db" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
@@ -89,6 +86,10 @@
|
||||
<Project>{68da8072-3a29-4076-9f64-d66f38349585}</Project>
|
||||
<Name>ChanSort.Loader.Panasonic</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
|
||||
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
|
||||
<Name>Test.Loader</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -11,13 +11,6 @@ namespace Test.Loader.PhilipsXml
|
||||
[TestClass]
|
||||
public class PhilipsXmlTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static PhilipsXmlTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
#region TestFormat1SatChannelsAddedToCorrectLists
|
||||
[TestMethod]
|
||||
public void TestFormat1SatChannelsAddedToCorrectLists()
|
||||
@@ -26,7 +19,6 @@ namespace Test.Loader.PhilipsXml
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region TestFormat1CableChannelsAddedToCorrectLists
|
||||
[TestMethod]
|
||||
public void TestFormat1CableChannelsAddedToCorrectLists()
|
||||
@@ -48,8 +40,9 @@ namespace Test.Loader.PhilipsXml
|
||||
#region TestChannelsAddedToCorrectList
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, 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(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -64,5 +57,52 @@ namespace Test.Loader.PhilipsXml
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.PhilipsXml\\TestFiles\\dvbs.xml");
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 42 = NTV HD
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var ntvHd = dvbs.Channels.FirstOrDefault(ch => ch.Name == "NTV HD");
|
||||
Assert.IsNotNull(ntvHd);
|
||||
Assert.AreEqual(42, ntvHd.OldProgramNr);
|
||||
Assert.AreEqual(42, ntvHd.NewProgramNr);
|
||||
Assert.IsFalse(ntvHd.IsDeleted);
|
||||
|
||||
ntvHd.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(ntvHd.IsDeleted);
|
||||
Assert.IsTrue(ntvHd.NewProgramNr == 0);
|
||||
Assert.AreEqual(1, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// channel was deleted from database
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
ntvHd = dvbs.Channels.FirstOrDefault(ch => ch.Name == "NTV HD");
|
||||
Assert.IsNull(ntvHd);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.PhilipsXml</RootNamespace>
|
||||
<AssemblyName>Test.Loader.PhilipsXml</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
@@ -20,6 +20,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,7 +41,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -82,18 +83,16 @@
|
||||
<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>
|
||||
<Content Include="TestFiles\CM_TPM1013E_LA_CK.xml">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="TestFiles\DVBC.xml">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="TestFiles\DVBS.xml">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<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" />
|
||||
|
||||
@@ -8,41 +8,12 @@ namespace Test.Loader.Samsung
|
||||
[TestClass]
|
||||
public class FileFormatDetectionTest
|
||||
{
|
||||
private static readonly string RootPath;
|
||||
|
||||
static FileFormatDetectionTest()
|
||||
{
|
||||
RootPath = GetSolutionBaseDir() + @"\Test.Loader.Samsung\TestFiles\";
|
||||
}
|
||||
|
||||
#region GetSolutionBaseDir()
|
||||
protected static string GetSolutionBaseDir()
|
||||
{
|
||||
var dir = Path.GetDirectoryName(typeof(FileFormatDetectionTest).Assembly.Location);
|
||||
do
|
||||
{
|
||||
if (File.Exists(dir + "\\ChanSort.sln"))
|
||||
return dir;
|
||||
dir = Path.GetDirectoryName(dir);
|
||||
} while (!string.IsNullOrEmpty(dir));
|
||||
|
||||
dir = Environment.CurrentDirectory;
|
||||
do
|
||||
{
|
||||
if (File.Exists(dir + "\\ChanSort.sln"))
|
||||
return dir;
|
||||
dir = Path.GetDirectoryName(dir);
|
||||
} while (!string.IsNullOrEmpty(dir));
|
||||
|
||||
throw new InvalidOperationException("Cannot determine base directory of ChanSort solution");
|
||||
}
|
||||
#endregion
|
||||
|
||||
[TestMethod]
|
||||
public void LoadFileWithExcessiveHighFrequency_1()
|
||||
{
|
||||
// this seems to be a corrupt file caused by a buffer-overflow from analog channel names into the frequency data bytes
|
||||
var s = new ScmSerializer(RootPath + @"channel_list_UE55H6470_1201-Suchlauf-2015-04-26.scm");
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\TestFiles\\channel_list_UE55H6470_1201-Suchlauf-2015-04-26.scm");
|
||||
var s = new ScmSerializer(tempFile);
|
||||
s.Load();
|
||||
}
|
||||
|
||||
@@ -50,7 +21,8 @@ namespace Test.Loader.Samsung
|
||||
public void LoadFileWithExcessiveHighFrequency_2()
|
||||
{
|
||||
// this seems to be a corrupt file caused by a buffer-overflow from analog channel names into the frequency data bytes
|
||||
var s = new ScmSerializer(RootPath + @"channel_list_UE55H6470_1201.scm");
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\TestFiles\\channel_list_UE55H6470_1201.scm");
|
||||
var s = new ScmSerializer(tempFile);
|
||||
s.Load();
|
||||
}
|
||||
|
||||
@@ -58,7 +30,8 @@ namespace Test.Loader.Samsung
|
||||
public void LoadRenamedFile_HE40Cxxx_1201()
|
||||
{
|
||||
// This file uses the 1201 format (E,F,H,J), but has a "C" in its model name
|
||||
var s = new ScmSerializer(RootPath + @"E_format_with_C_model_name.scm");
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\TestFiles\\E_format_with_C_model_name.scm");
|
||||
var s = new ScmSerializer(tempFile);
|
||||
s.Load();
|
||||
Assert.AreEqual("E", s.Series);
|
||||
}
|
||||
@@ -67,7 +40,8 @@ namespace Test.Loader.Samsung
|
||||
public void LoadRenamedFile_LT24B_1201()
|
||||
{
|
||||
// This file uses the 1201 format (E,F,H,J), but has a "B" in its model name
|
||||
var s = new ScmSerializer(RootPath + @"E_format_with_C_model_name.scm");
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\TestFiles\\E_format_with_B_model_name.scm");
|
||||
var s = new ScmSerializer(tempFile);
|
||||
s.Load();
|
||||
Assert.AreEqual("E", s.Series);
|
||||
}
|
||||
@@ -76,7 +50,8 @@ namespace Test.Loader.Samsung
|
||||
public void LoadJSeriesWithScm1201Format()
|
||||
{
|
||||
// J-series model with E-J series SCM format
|
||||
var s = new ScmSerializer(RootPath + @"channel_list_UE32J5170_1201_orig.scm");
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\TestFiles\\channel_list_UE32J5170_1201_orig.scm");
|
||||
var s = new ScmSerializer(tempFile);
|
||||
s.Load();
|
||||
Assert.AreEqual("E", s.Series);
|
||||
}
|
||||
|
||||
@@ -5,9 +5,10 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using ChanSort.Api;
|
||||
using ChanSort.Loader.Samsung;
|
||||
|
||||
namespace Test.Loader
|
||||
namespace Test.Loader.Samsung
|
||||
{
|
||||
[TestClass]
|
||||
public class SamsungTest : LoaderTestBase
|
||||
@@ -142,5 +143,109 @@ namespace Test.Loader
|
||||
return fileName.StartsWith("channel_list_") ? fileName.Substring(13, fileName.IndexOf('_', 14) - 13) : fileName;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestDeletingSatChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingSatChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\TestFiles\\channel_list_T_J_ohne_smart_12.scm");
|
||||
var plugin = new ScmSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 122 = ORF2W HD
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2w = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2W HD");
|
||||
Assert.AreEqual(122, orf2w.OldProgramNr);
|
||||
Assert.AreEqual(122, orf2w.NewProgramNr);
|
||||
Assert.IsFalse(orf2w.IsDeleted);
|
||||
|
||||
orf2w.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2w.IsDeleted);
|
||||
Assert.AreNotEqual(-1, orf2w.NewProgramNr);
|
||||
Assert.AreEqual(0, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2w = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2W HD");
|
||||
|
||||
// For .scm sat-channels, there is no known "IsDeleted" flag. Instead, the "IsUsed" flag is set to false when saving a channel with IsDeleted==true
|
||||
// When loading the file back, it can no longer be distinguished between a garbage record and a deleted record. The loader doesn't add IsUsed=false channels to the list
|
||||
Assert.IsNull(orf2w);
|
||||
//Assert.IsTrue(orf2w.IsDeleted);
|
||||
//Assert.AreEqual(-1, orf2w.OldProgramNr);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestDeletingCableChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingCableChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\TestFiles\\Samsung_upcmini_EF_12.scm");
|
||||
var plugin = new ScmSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 2 = ORF 2 Wien HD
|
||||
|
||||
var dvbc = data.GetChannelList(SignalSource.DvbC);
|
||||
var orf2w = dvbc.Channels.FirstOrDefault(ch => ch.Name == "ORF 2 Wien HD");
|
||||
Assert.IsNotNull(orf2w);
|
||||
Assert.AreEqual(2, orf2w.OldProgramNr);
|
||||
Assert.AreEqual(2, orf2w.NewProgramNr);
|
||||
Assert.IsFalse(orf2w.IsDeleted);
|
||||
|
||||
orf2w.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2w.IsDeleted);
|
||||
Assert.AreNotEqual(-1, orf2w.NewProgramNr);
|
||||
Assert.AreEqual(0, dvbc.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
|
||||
dvbc = data.GetChannelList(SignalSource.DvbC);
|
||||
orf2w = dvbc.Channels.FirstOrDefault(ch => ch.Name == "ORF 2 Wien HD");
|
||||
|
||||
// For .scm sat-channels, there is no known "IsDeleted" flag. Instead, the "IsUsed" flag is set to false when saving a channel with IsDeleted==true
|
||||
// When loading the file back, it can no longer be distinguished between a garbage record and a deleted record. The loader doesn't add IsUsed=false channels to the list
|
||||
Assert.IsNotNull(orf2w);
|
||||
Assert.IsTrue(orf2w.IsDeleted);
|
||||
Assert.AreEqual(-1, orf2w.OldProgramNr);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.Samsung</RootNamespace>
|
||||
<AssemblyName>Test.Loader.Samsung</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
@@ -16,6 +16,7 @@
|
||||
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
|
||||
<IsCodedUITest>False</IsCodedUITest>
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -36,7 +37,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -90,11 +91,13 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="TestFiles\Channel_list_T_J_ohne_smart_12.scm" />
|
||||
<None Include="TestFiles\channel_list_UE32J5170_1201_orig.scm" />
|
||||
<None Include="TestFiles\channel_list_UE55H6470_1201-Suchlauf-2015-04-26.scm" />
|
||||
<None Include="TestFiles\channel_list_UE55H6470_1201.scm" />
|
||||
<None Include="TestFiles\E_format_with_B_model_name.scm" />
|
||||
<None Include="TestFiles\E_format_with_C_model_name.scm" />
|
||||
<None Include="TestFiles\Samsung_upcmini_EF_12.scm" />
|
||||
</ItemGroup>
|
||||
<Choose>
|
||||
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
|
||||
|
||||
Binary file not shown.
BIN
source/Test.Loader.Samsung/TestFiles/Samsung_upcmini_EF_12.scm
Normal file
BIN
source/Test.Loader.Samsung/TestFiles/Samsung_upcmini_EF_12.scm
Normal file
Binary file not shown.
@@ -11,13 +11,6 @@ namespace Test.Loader.SamsungJ
|
||||
[TestClass]
|
||||
public class SamsungZipTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static SamsungZipTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
#region TestSatChannelsAddedToCorrectLists
|
||||
[TestMethod]
|
||||
public void TestSatChannelsAddedToCorrectLists()
|
||||
@@ -38,7 +31,7 @@ namespace Test.Loader.SamsungJ
|
||||
[TestMethod]
|
||||
public void TestAntennaChannelsAddedToCorrectLists()
|
||||
{
|
||||
this.TestChannelsAddedToCorrectLists("Channel_list_T-KTSUDEUC-1007.1.zip", SignalSource.DvbT, 77, 71, 4, 3995, "Irdeto Code 4");
|
||||
this.TestChannelsAddedToCorrectLists("Channel_list_T-KTSUDEUC-1007.2.zip", SignalSource.DvbT, 77, 71, 4, 3995, "Irdeto Code 4");
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -46,8 +39,9 @@ namespace Test.Loader.SamsungJ
|
||||
#region TestChannelsAddedToCorrectList
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTotal, int expectedTv, int expectedRadio, int dataProgramSid = 0, string dataProgramName = null)
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.SamsungJ\\TestFiles\\" + fileName);
|
||||
var plugin = new DbSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -67,5 +61,53 @@ namespace Test.Loader.SamsungJ
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.SamsungJ\\TestFiles\\Channel_list_T-KTSUDEUC-1007.3.zip");
|
||||
var plugin = new DbSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 418 = ORF2E
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.AreEqual(418, orf2e.OldProgramNr);
|
||||
Assert.AreEqual(418, orf2e.NewProgramNr);
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
|
||||
orf2e.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.AreNotEqual(-1, orf2e.NewProgramNr);
|
||||
Assert.AreEqual(1, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNull(orf2e);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.SamsungJ</RootNamespace>
|
||||
<AssemblyName>Test.Loader.SamsungJ</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
@@ -20,6 +20,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,7 +41,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -72,12 +73,10 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="TestFiles\Channel_list_T-KTMDEUC-1132.6.zip">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\Channel_list_T-KTSUDEUC-1007.1.zip">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\Channel_list_T-KTMDEUC-1132.6.zip" />
|
||||
<None Include="TestFiles\Channel_list_T-KTSUDEUC-1007.3.zip" />
|
||||
<None Include="TestFiles\Channel_list_T-KTSUDEUC-1007.2.zip" />
|
||||
<None Include="TestFiles\Channel_list_T-KTSUDEUC-1007.1.zip" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
|
||||
@@ -88,6 +87,10 @@
|
||||
<Project>{33897002-0537-49a4-b963-a18d17311b3d}</Project>
|
||||
<Name>ChanSort.Loader.SamsungJ</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
|
||||
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
|
||||
<Name>Test.Loader</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Linq;
|
||||
using ChanSort.Api;
|
||||
using ChanSort.Loader.SilvaSchneider;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
@@ -11,13 +8,6 @@ namespace Test.Loader.SilvaSchneider
|
||||
[TestClass]
|
||||
public class SdxTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static SdxTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
#region TestSatChannelsAddedToCorrectLists
|
||||
[TestMethod]
|
||||
public void TestSatChannelsAddedToCorrectLists()
|
||||
@@ -30,8 +20,9 @@ namespace Test.Loader.SilvaSchneider
|
||||
#region TestChannelsAddedToCorrectList
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTotal, int expectedTv, int expectedRadio, int dataProgramSid = 0, string dataProgramName = null)
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.SilvaSchneider\\TestFiles\\" + fileName);
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -51,5 +42,53 @@ namespace Test.Loader.SilvaSchneider
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.SilvaSchneider\\TestFiles\\silva_schneider.sdx");
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 128 = ORF2E
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.AreEqual(128, orf2e.OldProgramNr);
|
||||
Assert.AreEqual(128, orf2e.NewProgramNr);
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
|
||||
orf2e.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.IsTrue(orf2e.NewProgramNr == 0);
|
||||
Assert.AreEqual(1, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// channel was deleted from file
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNull(orf2e);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.SilvaSchneider</RootNamespace>
|
||||
<AssemblyName>Test.Loader.SilvaSchneider</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
@@ -20,6 +20,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,7 +41,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -72,9 +73,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
<None Include="TestFiles\silva_schneider.sdx">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="TestFiles\silva_schneider.sdx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ChanSort.Api\ChanSort.Api.csproj">
|
||||
@@ -85,6 +84,10 @@
|
||||
<Project>{e6279ff8-362a-41e6-ac0d-d0861d43f01c}</Project>
|
||||
<Name>ChanSort.Loader.SilvaSchneider</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
|
||||
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
|
||||
<Name>Test.Loader</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Linq;
|
||||
using ChanSort.Api;
|
||||
using ChanSort.Loader.Sony;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
@@ -11,13 +8,6 @@ namespace Test.Loader.Sony
|
||||
[TestClass]
|
||||
public class SonyXmlTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static SonyXmlTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
// Android OS seems to use the "FormateVer" XML element, KDL 2012 and 2014 use "FormatVer"
|
||||
|
||||
#region TestAndroid ... ChannelsAddedToCorrectLists
|
||||
@@ -65,8 +55,9 @@ namespace Test.Loader.Sony
|
||||
#region TestChannelsAddedToCorrectList
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTotal, int expectedTv, int expectedRadio, int dataProgramSid = 0, string dataProgramName = null)
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Sony\\TestFiles\\" + fileName);
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -86,5 +77,104 @@ namespace Test.Loader.Sony
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region TestAndroidDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestAndroidDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Sony\\TestFiles\\android_sdb-sat.xml");
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 128 = ORF2E
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.AreEqual(127, orf2e.OldProgramNr);
|
||||
Assert.AreEqual(127, orf2e.NewProgramNr);
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
|
||||
orf2e.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.IsTrue(orf2e.NewProgramNr > 0);
|
||||
Assert.AreEqual(0, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0));
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// channel was marked deleted
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.AreEqual(-1, orf2e.NewProgramNr);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TestKdlDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestKdlDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Sony\\TestFiles\\kdl_sdb-cable-sat.xml");
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 128 = ORF2E
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.AreEqual(693, orf2e.OldProgramNr);
|
||||
Assert.AreEqual(693, orf2e.NewProgramNr);
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
|
||||
orf2e.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.IsTrue(orf2e.NewProgramNr == 0);
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// channel was not assigned a number in the file
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.AreEqual(-1, orf2e.NewProgramNr);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.Sony</RootNamespace>
|
||||
<AssemblyName>Test.Loader.Sony</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
@@ -20,6 +20,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,7 +41,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -82,21 +83,17 @@
|
||||
<Project>{70e29c6b-b926-4859-9548-23375bf1e1b5}</Project>
|
||||
<Name>ChanSort.Loader.Sony</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
|
||||
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
|
||||
<Name>Test.Loader</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Content Include="TestFiles\android_sdb-antenna.xml">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="TestFiles\android_sdb-cable.xml">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="TestFiles\android_sdb-sat.xml">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="TestFiles\kdl_sdb-cable-sat.xml">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<None Include="TestFiles\android_sdb-antenna.xml" />
|
||||
<None Include="TestFiles\android_sdb-cable.xml" />
|
||||
<None Include="TestFiles\android_sdb-sat.xml" />
|
||||
<None Include="TestFiles\kdl_sdb-cable-sat.xml" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Test.Loader.Toshiba</RootNamespace>
|
||||
<AssemblyName>Test.Loader.Toshiba</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
|
||||
@@ -20,6 +20,7 @@
|
||||
<TestProjectType>UnitTest</TestProjectType>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -40,7 +41,7 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<OutputPath>..\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -85,6 +86,10 @@
|
||||
<Project>{f6f02792-07f1-48d5-9af3-f945ca5e3931}</Project>
|
||||
<Name>ChanSort.Loader.Toshiba</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Test.Loader\Test.Loader.csproj">
|
||||
<Project>{68cfcb2f-b52a-43a1-aa5c-5d64a1d655d2}</Project>
|
||||
<Name>Test.Loader</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Linq;
|
||||
using ChanSort.Api;
|
||||
using ChanSort.Loader.Toshiba;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
@@ -11,13 +8,6 @@ namespace Test.Loader.Toshiba
|
||||
[TestClass]
|
||||
public class ToshibaChmgtDbTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static ToshibaChmgtDbTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
#region TestSatChannelsAddedToCorrectLists
|
||||
|
||||
[TestMethod]
|
||||
@@ -43,8 +33,9 @@ namespace Test.Loader.Toshiba
|
||||
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTv, int expectedRadio, int dataProgramSid = 0, string dataProgramName = null)
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Toshiba\\TestFiles\\" + fileName);
|
||||
var plugin = new DbSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -73,5 +64,53 @@ namespace Test.Loader.Toshiba
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.Toshiba\\TestFiles\\Toshiba-SL863G.zip");
|
||||
var plugin = new DbSerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 128 = ORF2E
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.AreEqual(336, orf2e.OldProgramNr);
|
||||
Assert.AreEqual(336, orf2e.NewProgramNr);
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
|
||||
orf2e.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.IsTrue(orf2e.NewProgramNr == 0);
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// channel was deleted from database
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNull(orf2e);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Linq;
|
||||
using ChanSort.Api;
|
||||
using ChanSort.Loader.VDR;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
@@ -11,13 +8,6 @@ namespace Test.Loader.VDR
|
||||
[TestClass]
|
||||
public class LinuxVdrTest
|
||||
{
|
||||
private static readonly string filesDir;
|
||||
|
||||
static LinuxVdrTest()
|
||||
{
|
||||
filesDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestFiles\\";
|
||||
}
|
||||
|
||||
#region TestAstraChannelsAddedToCorrectLists
|
||||
[TestMethod]
|
||||
public void TestAstraChannelsAddedToCorrectLists()
|
||||
@@ -29,8 +19,9 @@ namespace Test.Loader.VDR
|
||||
#region TestChannelsAddedToCorrectList
|
||||
private void TestChannelsAddedToCorrectLists(string fileName, int expectedTotal, int expectedTv, int expectedRadio)
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.VDR\\TestFiles\\channels.conf");
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(filesDir + fileName);
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
|
||||
var root = ser.DataRoot;
|
||||
@@ -46,5 +37,51 @@ namespace Test.Loader.VDR
|
||||
#endregion
|
||||
|
||||
|
||||
#region TestDeletingChannel
|
||||
|
||||
[TestMethod]
|
||||
public void TestDeletingChannel()
|
||||
{
|
||||
var tempFile = TestUtils.DeploymentItem("Test.Loader.VDR\\TestFiles\\channels.conf");
|
||||
var plugin = new SerializerPlugin();
|
||||
var ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
var data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// Pr# 421 = ORF2E
|
||||
|
||||
var dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNotNull(orf2e);
|
||||
Assert.AreEqual(421, orf2e.OldProgramNr);
|
||||
Assert.AreEqual(421, orf2e.NewProgramNr);
|
||||
Assert.IsFalse(orf2e.IsDeleted);
|
||||
|
||||
orf2e.NewProgramNr = -1;
|
||||
var editor = new Editor();
|
||||
editor.DataRoot = data;
|
||||
editor.AutoNumberingForUnassignedChannels(UnsortedChannelMode.Delete);
|
||||
|
||||
Assert.IsTrue(orf2e.IsDeleted);
|
||||
Assert.IsTrue(orf2e.NewProgramNr == 0);
|
||||
|
||||
|
||||
// save and reload
|
||||
ser.Save(tempFile);
|
||||
ser = plugin.CreateSerializer(tempFile);
|
||||
ser.Load();
|
||||
data = ser.DataRoot;
|
||||
data.ValidateAfterLoad();
|
||||
data.ApplyCurrentProgramNumbers();
|
||||
|
||||
// channel was deleted from file
|
||||
dvbs = data.GetChannelList(SignalSource.DvbS);
|
||||
orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E");
|
||||
Assert.IsNull(orf2e);
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user