- targeting .NET 4.0 and DevExpress 13.1

- auto-detect byte-order for Panasonic "svl.bin" channel list
- saving SamToolBox *.chl channel list
- no longer auto-saving *.csv channel list
- disabled, incomplete: creating channels from reference list
This commit is contained in:
hbeham
2013-07-19 17:27:02 +02:00
parent 3bb80ed6bb
commit f99c865b51
54 changed files with 936 additions and 6053 deletions

View File

@@ -10,9 +10,10 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChanSort.Api</RootNamespace>
<AssemblyName>ChanSort.Api</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -68,6 +69,7 @@
<Compile Include="Controller\ISerializerPlugin.cs" />
<Compile Include="Model\ChannelList.cs" />
<Compile Include="Model\Enums.cs" />
<Compile Include="Model\LnbConfig.cs" />
<Compile Include="Model\LookupData.cs" />
<Compile Include="Model\NetworkInfo.cs" />
<Compile Include="Model\Satellite.cs" />

View File

@@ -0,0 +1,2 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=Model/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@@ -1,5 +1,6 @@
using System.IO;
using System.Linq;
using System.Text;
namespace ChanSort.Api
{
@@ -11,7 +12,7 @@ namespace ChanSort.Api
public class ChlFileSerializer
{
private static readonly char[] Separators = new[] { ';' };
private readonly System.Text.StringBuilder warnings = new System.Text.StringBuilder();
private readonly StringBuilder warnings = new StringBuilder();
private int lineNumber;
private DataRoot dataRoot;
private ChannelList channelList;
@@ -30,7 +31,7 @@ namespace ChanSort.Api
foreach (var channel in this.channelList.Channels)
channel.NewProgramNr = -1;
using (var stream = new StreamReader(fileName, System.Text.Encoding.Default))
using (var stream = new StreamReader(fileName, Encoding.Default))
{
ReadChannelsFromStream(stream);
}
@@ -97,5 +98,23 @@ namespace ChanSort.Api
this.warnings.AppendFormat("Line {0,4}: Pr# {1,4}, channel '{2}' found multiple times\r\n", this.lineNumber, progNr, name);
}
#endregion
#region Save()
public void Save(string fileName, ChannelList list)
{
using (var writer = new StreamWriter(fileName, false, Encoding.UTF8))
{
foreach (var channel in list.Channels.OrderBy(c => c.NewProgramNr))
{
if (channel.NewProgramNr == -1) continue;
writer.Write(channel.NewProgramNr);
writer.Write(';');
writer.Write(channel.Name);
writer.WriteLine();
}
}
}
#endregion
}
}

View File

@@ -15,12 +15,14 @@ namespace ChanSort.Api
private readonly HashSet<ChannelList> clearedLists = new HashSet<ChannelList>();
private readonly DataRoot dataRoot;
private readonly string fileName;
private readonly bool addChannels;
#region ctor()
public CsvFileSerializer(string fileName, DataRoot dataRoot)
public CsvFileSerializer(string fileName, DataRoot dataRoot, bool addChannels)
{
this.fileName = fileName;
this.dataRoot = dataRoot;
this.addChannels = addChannels;
}
#endregion
@@ -77,13 +79,21 @@ namespace ChanSort.Api
var channel = channels == null ? null : channels.FirstOrDefault(c => c.NewProgramNr == -1);
if (channel != null)
{
channel.NewProgramNr = programNr;
if (parts.Count >= 7)
ApplyFlags(channel, parts[6]);
if (!this.addChannels)
{
channel.NewProgramNr = programNr;
if (parts.Count >= 7)
ApplyFlags(channel, parts[6]);
}
}
else if (parts.Count >= 6) // create proxy channel when using the new ref-list format
{
channel = new ChannelInfo(signalSource, uid, programNr, name);
if (addChannels)
{
channel.NewProgramNr = -1;
channel.OldProgramNr = programNr;
}
channelList.AddChannel(channel);
}
}
@@ -135,7 +145,7 @@ namespace ChanSort.Api
var channelList = dataRoot.GetChannelList(signalSource);
if (channelList == null || channelList.ReadOnly)
return null;
if (!this.clearedLists.Contains(channelList))
if (!this.addChannels && !this.clearedLists.Contains(channelList))
{
foreach (var channel in channelList.Channels)
channel.NewProgramNr = -1;

View File

@@ -7,12 +7,14 @@ namespace ChanSort.Api
{
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();
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 ICollection<ChannelList> ChannelLists { get { return this.channelLists; } }
public bool IsEmpty { get { return this.channelLists.Count == 0; } }
public bool NeedsSaving { get; set; }
@@ -45,6 +47,13 @@ namespace ChanSort.Api
}
#endregion
#region AddLnbConfig()
public void AddLnbConfig(LnbConfig lnb)
{
this.lnbConfig.Add(lnb.Id, lnb);
}
#endregion
#region AddChannelList()
public virtual void AddChannelList(ChannelList list)
{

View File

@@ -0,0 +1,7 @@
namespace ChanSort.Api
{
public class LnbConfig
{
public int Id { get; protected set; }
}
}

View File

@@ -17,9 +17,12 @@ namespace ChanSort.Api
this.id = id;
}
public LnbConfig LnbConfig { get; set; }
public override string ToString()
{
return Name;
}
}
}

View File

@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.586
// Runtime Version:4.0.30319.18052
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.

View File

@@ -133,6 +133,8 @@ namespace ChanSort.Api
{
Section currentSection = null;
string line;
string key = null;
string val = null;
while ((line = rdr.ReadLine()) != null)
{
string trimmedLine = line.Trim();
@@ -150,12 +152,23 @@ namespace ChanSort.Api
}
if (currentSection == null)
continue;
int idx = trimmedLine.IndexOf("=");
if (idx < 0)
continue;
string key = trimmedLine.Substring(0, idx).Trim();
string val = trimmedLine.Substring(idx + 1).Trim();
currentSection.Set(key, val);
if (val == null)
{
int idx = trimmedLine.IndexOf("=");
if (idx < 0)
continue;
key = trimmedLine.Substring(0, idx).Trim();
val = trimmedLine.Substring(idx + 1).Trim();
}
else
val += line;
if (val.EndsWith("\\"))
val = val.Substring(val.Length - 1).Trim();
else
{
currentSection.Set(key, val);
val = null;
}
}
}
}

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
namespace ChanSort.Api
{
@@ -11,6 +12,7 @@ namespace ChanSort.Api
return val;
}
#region GetAnalogChannelNumber()
public static string GetAnalogChannelNumber(int freq)
{
if (freq < 41) return "";
@@ -23,20 +25,58 @@ namespace ChanSort.Api
if (freq <= 1000) return ((freq - 471)/8 + 21).ToString("d2"); // Band IV, V
return "";
}
#endregion
public static void SetInt16(byte[] data, int offset, int value)
#region GetInt16/32()
public static int GetInt16(byte[] data, int offset, bool littleEndian)
{
data[offset+0] = (byte)value;
data[offset + 1] = (byte) (value >> 8);
return littleEndian ? BitConverter.ToInt16(data, offset) : (data[offset] << 8) + data[offset + 1];
}
public static void SetInt32(byte[] data, int offset, int value)
public static int GetInt32(byte[] data, int offset, bool littleEndian)
{
data[offset + 0] = (byte)value;
data[offset + 1] = (byte)(value >> 8);
data[offset + 2] = (byte)(value >> 16);
data[offset + 3] = (byte)(value >> 24);
return littleEndian ? BitConverter.ToInt32(data, offset) :
(data[offset] << 24) + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];
}
#endregion
#region SetInt16/32()
public static void SetInt16(byte[] data, int offset, int value, bool littleEndian = true)
{
if (littleEndian)
{
data[offset + 0] = (byte) value;
data[offset + 1] = (byte) (value >> 8);
}
else
{
data[offset + 0] = (byte)(value >> 8);
data[offset + 1] = (byte) value;
}
}
public static void SetInt32(byte[] data, int offset, int value, bool littleEndian = true)
{
if (littleEndian)
{
data[offset + 0] = (byte) value;
data[offset + 1] = (byte) (value >> 8);
data[offset + 2] = (byte) (value >> 16);
data[offset + 3] = (byte) (value >> 24);
}
else
{
data[offset + 0] = (byte)(value >> 24);
data[offset + 1] = (byte)(value >> 16);
data[offset + 2] = (byte)(value >> 8);
data[offset + 3] = (byte)value;
}
}
#endregion
#region MemCopy(), MemSet()
public static void MemCopy(byte[] source, int sourceIndex, byte[] dest, int destIndex, int count)
{
@@ -49,5 +89,6 @@ namespace ChanSort.Api
for (int i = 0; i < count; i++)
data[offset++] = value;
}
#endregion
}
}

View File

@@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChanSort.Loader.LG</RootNamespace>
<AssemblyName>ChanSort.Loader.LG</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
@@ -56,9 +56,9 @@
<CodeAnalysisFailOnMissingRules>true</CodeAnalysisFailOnMissingRules>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Data.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
@@ -73,6 +73,7 @@
<Compile Include="DtvChannel.cs" />
<Compile Include="DvbsDataLayout.cs" />
<Compile Include="FirmwareData.cs" />
<Compile Include="LnbConfig.cs" />
<Compile Include="PresetProgramNrDialog.cs">
<SubType>Form</SubType>
</Compile>

View File

@@ -376,6 +376,7 @@
offVideoPid = 60
offAudioPid = 62
[SatChannelDataMapping:72]
; LM series
lenName = 40
@@ -403,6 +404,11 @@
offName = 20
offVideoPid = 60
offAudioPid = 62
newRecordTemplate = \
0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 31, 255, 31
252, 127, 0, 0, 0, 0, 0, 0
[SatChannelDataMapping:76]
; LN series
@@ -460,6 +466,21 @@
offVideoPid = 72
offAudioPid = 74
[LnbMapping:44]
; all except LA
offSettingId = 0
offSatIndex = 4
[LnbMapping:48]
; LA
offSettingId = 0
offSatIndex = 4
[LnbMapping:52]
; LN
offSettingId = 0
offSatIndex = 4
[FirmwareData:6936]
; LH3000
offSize = 0

View File

@@ -0,0 +1,18 @@
using ChanSort.Api;
namespace ChanSort.Loader.LG
{
internal class LnbConfig : Api.LnbConfig
{
public Satellite Satellite { get; private set; }
public LnbConfig(DataMapping mapping, DataRoot dataRoot)
{
this.Id = mapping.GetByte("SettingId");
if (this.Id == 0)
return;
int satIndex = mapping.GetByte("SatIndex");
this.Satellite = dataRoot.Satellites[satIndex];
}
}
}

View File

@@ -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.v12.2" name="DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="labelControl1.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v12.2">
<assembly alias="DevExpress.XtraEditors.v13.1" name="DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="labelControl1.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
@@ -143,7 +143,7 @@
<value>labelControl1</value>
</data>
<data name="&gt;&gt;labelControl1.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;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.v12.2">
<data name="labelControl3.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="labelControl3.Location" type="System.Drawing.Point, System.Drawing">
@@ -176,7 +176,7 @@
<value>labelControl3</value>
</data>
<data name="&gt;&gt;labelControl3.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;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.v12.2">
<data name="labelControl4.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="labelControl4.Location" type="System.Drawing.Point, System.Drawing">
@@ -209,7 +209,7 @@
<value>labelControl4</value>
</data>
<data name="&gt;&gt;labelControl4.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;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.v12.2">
<data name="labelControl5.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="labelControl5.Location" type="System.Drawing.Point, System.Drawing">
@@ -239,7 +239,7 @@
<value>labelControl5</value>
</data>
<data name="&gt;&gt;labelControl5.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;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.v12.2">
<data name="labelControl6.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="labelControl6.Location" type="System.Drawing.Point, System.Drawing">
@@ -269,7 +269,7 @@
<value>labelControl6</value>
</data>
<data name="&gt;&gt;labelControl6.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;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.v12.2">
<data name="labelControl7.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="labelControl7.Location" type="System.Drawing.Point, System.Drawing">
@@ -299,7 +299,7 @@
<value>labelControl7</value>
</data>
<data name="&gt;&gt;labelControl7.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;labelControl7.Parent" xml:space="preserve">
<value>$this</value>
@@ -353,7 +353,7 @@
<value>btnOk</value>
</data>
<data name="&gt;&gt;btnOk.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;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.v12.2">
<data name="labelControl2.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="labelControl2.Location" type="System.Drawing.Point, System.Drawing">
@@ -383,7 +383,7 @@
<value>labelControl2</value>
</data>
<data name="&gt;&gt;labelControl2.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;labelControl2.Parent" xml:space="preserve">
<value>$this</value>
@@ -410,6 +410,6 @@
<value>PresetProgramNrDialog</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
</root>

View File

@@ -1,3 +0,0 @@
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.586
// Runtime Version:4.0.30319.18052
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.

View File

@@ -36,14 +36,22 @@ namespace ChanSort.Loader.LG
this.FreqInMhz = transponder.FrequencyInMhz;
}
public override void UpdateRawData()
internal static SatChannel CreateFromProxy(ChannelInfo proxy, DataRoot dataRoot, DataMapping mapping, int rawSize)
{
base.UpdateRawData();
#if false
bool deleted = this.NewProgramNr == -1;
if (deleted)
mapping.SetWord(_SatConfigIndex, 0xFFFF);
#endif
}
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;
}
}
}

View File

@@ -5,28 +5,28 @@ namespace ChanSort.Loader.LG
public class TllChannelBase : ChannelInfo
{
// common
private const string _ProgramNr = "offProgramNr";
private const string _ProgramNr2 = "offProgramNr2"; // not for DVB-S
private const string _Name = "offName";
private const string _NameLength = "offNameLength";
private const string _Favorites = "offFavorites"; // not for DVB-S (which only uses Favorite2)
protected const string _ProgramNr = "offProgramNr";
protected const string _ProgramNr2 = "offProgramNr2"; // not for DVB-S
protected const string _Name = "offName";
protected const string _NameLength = "offNameLength";
protected const string _Favorites = "offFavorites"; // not for DVB-S (which only uses Favorite2)
private const string _Deleted = "Deleted";
private const string _Favorites2 = "offFavorites2";
private const string _Encrypted = "Encrypted";
protected const string _Deleted = "Deleted";
protected const string _Favorites2 = "offFavorites2";
protected const string _Encrypted = "Encrypted";
private const string _Lock = "Lock";
private const string _Skip = "Skip";
private const string _Hide = "Hide";
private const string _Moved = "ProgNrCustomized";
protected const string _Lock = "Lock";
protected const string _Skip = "Skip";
protected const string _Hide = "Hide";
protected const string _Moved = "ProgNrCustomized";
// DVB
private const string _ServiceId = "offServiceId";
private const string _VideoPid = "offVideoPid";
private const string _AudioPid = "offAudioPid";
private const string _OriginalNetworkId = "offOriginalNetworkId";
private const string _TransportStreamId = "offTransportStreamId";
private const string _ServiceType = "offServiceType";
protected const string _ServiceId = "offServiceId";
protected const string _VideoPid = "offVideoPid";
protected const string _AudioPid = "offAudioPid";
protected const string _OriginalNetworkId = "offOriginalNetworkId";
protected const string _TransportStreamId = "offTransportStreamId";
protected const string _ServiceType = "offServiceType";
protected readonly DataMapping mapping;
protected readonly byte[] rawData;
@@ -121,5 +121,8 @@ namespace ChanSort.Loader.LG
this.ParseNames();
}
#endregion
internal byte[] RawDataBuffer { get { return this.rawData; } }
internal int RawDataOffset { get { return this.baseOffset; } }
}
}

View File

@@ -24,6 +24,7 @@ namespace ChanSort.Loader.LG
private readonly MappingPool<DataMapping> dvbsMappings = new MappingPool<DataMapping>("DVB-S Channel");
private readonly MappingPool<DataMapping> dvbsTransponderMappings = new MappingPool<DataMapping>("DVB-S Transponder");
private readonly MappingPool<FirmwareData> firmwareMappings = new MappingPool<FirmwareData>("Firmware");
private readonly MappingPool<DataMapping> lnbMappings = new MappingPool<DataMapping>("LNB Config");
private readonly ChannelList atvChannels = new ChannelList(SignalSource.AnalogCT | SignalSource.Tv, "Analog TV");
private readonly ChannelList dvbcTvChannels = new ChannelList(SignalSource.DvbC | SignalSource.Tv, "DVB-C TV");
@@ -64,6 +65,7 @@ namespace ChanSort.Loader.LG
private int presetChannels;
private bool removeDeletedActChannels = false;
private bool mustReorganizeDvbs = false;
private decimal dvbsSymbolRateFactor;
#region ctor()
@@ -111,6 +113,8 @@ namespace ChanSort.Loader.LG
dvbsMappings.AddMapping(recordLength, new DataMapping(section));
else if (section.Name.StartsWith("TransponderDataMapping"))
dvbsTransponderMappings.AddMapping(recordLength, new DataMapping(section));
else if (section.Name.StartsWith("LnbMapping"))
lnbMappings.AddMapping(recordLength, new DataMapping(section));
else if (section.Name.StartsWith("FirmwareData"))
firmwareMappings.AddMapping(recordLength, new FirmwareData(section));
}
@@ -357,7 +361,7 @@ namespace ChanSort.Loader.LG
this.ReadDvbsChannels(ref off, header.LinkedListStartIndex);
// subblock 5 (satellite/LNB config)
off += satConfig.LnbBlockHeaderSize + satConfig.lnbCount*satConfig.lnbLength;
this.ReadLnbConfig(ref off);
}
#endregion
@@ -503,6 +507,25 @@ namespace ChanSort.Loader.LG
}
#endregion
#region ReadLnbConfig()
private void ReadLnbConfig(ref int off)
{
off += satConfig.LnbBlockHeaderSize;
var mapping = this.lnbMappings.GetMapping(satConfig.lnbLength);
for (int i = 0; i < satConfig.lnbCount; i++)
{
mapping.SetDataPtr(this.fileContent, off);
var lnb = new LnbConfig(mapping, this.DataRoot);
if (lnb.Id != 0)
{
lnb.Satellite.LnbConfig = lnb;
this.DataRoot.AddLnbConfig(lnb);
}
off += satConfig.lnbLength;
}
}
#endregion
// Test code for fixing broken DVB-S block of xxLM640T ==========
#region EraseDvbsBlock()
@@ -625,20 +648,21 @@ namespace ChanSort.Loader.LG
{
// even if there's 0 channels, channel[0] must contain valid data
Tools.MemSet(this.fileContent,
this.dvbsBlockOffset + satConfig.ChannelListOffset + 1 * satConfig.dvbsChannelLength,
this.dvbsBlockOffset + satConfig.ChannelListOffset + 1*satConfig.dvbsChannelLength,
0xFF,
(satConfig.dvbsMaxChannelCount - 1) * satConfig.dvbsChannelLength);
(satConfig.dvbsMaxChannelCount - 1)*satConfig.dvbsChannelLength);
}
else
{
Tools.MemCopy(sortedChannels, 0,
this.fileContent, this.dvbsBlockOffset + satConfig.ChannelListOffset,
channelCounter * satConfig.dvbsChannelLength);
this.fileContent, this.dvbsBlockOffset + satConfig.ChannelListOffset,
channelCounter*satConfig.dvbsChannelLength);
Tools.MemSet(this.fileContent,
this.dvbsBlockOffset + satConfig.ChannelListOffset + channelCounter * satConfig.dvbsChannelLength,
this.dvbsBlockOffset + satConfig.ChannelListOffset + channelCounter*satConfig.dvbsChannelLength,
0xFF,
(satConfig.dvbsMaxChannelCount - channelCounter) * satConfig.dvbsChannelLength);
(satConfig.dvbsMaxChannelCount - channelCounter)*satConfig.dvbsChannelLength);
}
UpdateChannelAllocationBitmap(channelCounter);
UpdateChannelLinkedList(channelCounter);
UpdateDvbsChecksums();
@@ -676,11 +700,12 @@ namespace ChanSort.Loader.LG
UpdateChannelIndexInTransponderData(channel, ref prevTransponderIndex, counter, ref currentTransponder);
Tools.MemCopy(this.fileContent,
this.dvbsBlockOffset + satConfig.ChannelListOffset + channel.RecordIndex*satConfig.dvbsChannelLength,
sortedChannels,
counter*satConfig.dvbsChannelLength,
satConfig.dvbsChannelLength);
Tools.MemCopy(
channel.RawDataBuffer,
channel.RawDataOffset,
sortedChannels,
counter*satConfig.dvbsChannelLength,
satConfig.dvbsChannelLength);
channel.RecordIndex = counter++;
channel.baseOffset = this.dvbsBlockOffset + satConfig.ChannelListOffset + channel.RecordIndex*satConfig.dvbsChannelLength;
@@ -778,6 +803,12 @@ namespace ChanSort.Loader.LG
if (this.reorderPhysically || removeDeletedActChannels)
this.ReorderActChannelsPhysically();
if (this.mustReorganizeDvbs)
{
this.CleanUpChannelData();
this.mustReorganizeDvbs = false;
}
if (this.dvbsSubblockCrcOffset != null)
this.UpdateDvbsChecksums();
@@ -817,21 +848,44 @@ namespace ChanSort.Loader.LG
newDvbctChannelCount = 0;
foreach (var list in this.DataRoot.ChannelLists)
{
foreach (ChannelInfo channel in list.Channels)
int count = list.Channels.Count;
for (int i=0; i<count; i++)
{
ChannelInfo channel = list.Channels[i];
if (channel.NewProgramNr != -1)
{
if ((channel.SignalSource & SignalSource.Analog) != 0)
++newAnalogChannelCount;
else if ((channel.SignalSource & SignalSource.DvbCT) != 0)
++newDvbctChannelCount;
}
}
if (!(channel is TllChannelBase))
{
var newChannel = this.CreateChannelFromProxy(channel);
if (newChannel != null)
list.Channels[i] = newChannel;
}
channel.UpdateRawData();
}
}
}
#endregion
private ChannelInfo CreateChannelFromProxy(ChannelInfo proxy)
{
if ((proxy.SignalSource & SignalSource.Sat) != 0)
{
var mapping = this.dvbsMappings.GetMapping(this.satConfig.dvbsChannelLength);
var channel = SatChannel.CreateFromProxy(proxy, this.DataRoot, mapping, this.satConfig.dvbsChannelLength);
if (channel != null)
this.mustReorganizeDvbs = true;
return channel;
}
return null;
}
#region ReorderActChannelsPhysically()
private void ReorderActChannelsPhysically()
{

View File

@@ -139,7 +139,7 @@
<value>cbHbbTv</value>
</data>
<data name="&gt;&gt;cbHbbTv.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;cbHbbTv.Parent" xml:space="preserve">
<value>grpOption</value>
@@ -166,7 +166,7 @@
<value>cbCustomCountry</value>
</data>
<data name="&gt;&gt;cbCustomCountry.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;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.v12.2" name="DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="comboBoxEdit1.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v12.2">
<assembly alias="DevExpress.Utils.v13.1" name="DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="comboBoxEdit1.Properties.Buttons" type="DevExpress.XtraEditors.Controls.ButtonPredefines, DevExpress.Utils.v13.1">
<value>Combo</value>
</data>
<data name="comboBoxEdit1.Size" type="System.Drawing.Size, System.Drawing">
@@ -191,7 +191,7 @@
<value>comboBoxEdit1</value>
</data>
<data name="&gt;&gt;comboBoxEdit1.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;comboBoxEdit1.Parent" xml:space="preserve">
<value>grpOption</value>
@@ -215,7 +215,7 @@
<value>labelControl1</value>
</data>
<data name="&gt;&gt;labelControl1.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;labelControl1.Parent" xml:space="preserve">
<value>grpOption</value>
@@ -242,7 +242,7 @@
<value>grpOption</value>
</data>
<data name="&gt;&gt;grpOption.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;grpOption.Parent" xml:space="preserve">
<value>$this</value>
@@ -269,7 +269,7 @@
<value>btnOk</value>
</data>
<data name="&gt;&gt;btnOk.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;btnOk.Parent" xml:space="preserve">
<value>$this</value>
@@ -296,7 +296,7 @@
<value>btnCancel</value>
</data>
<data name="&gt;&gt;btnCancel.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;btnCancel.Parent" xml:space="preserve">
<value>$this</value>
@@ -304,8 +304,8 @@
<data name="&gt;&gt;btnCancel.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<assembly alias="DevExpress.XtraEditors.v12.2" name="DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="labelControl3.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v12.2">
<assembly alias="DevExpress.XtraEditors.v13.1" name="DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="labelControl3.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="labelControl3.Location" type="System.Drawing.Point, System.Drawing">
@@ -324,7 +324,7 @@
<value>labelControl3</value>
</data>
<data name="&gt;&gt;labelControl3.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;labelControl3.Parent" xml:space="preserve">
<value>grpHotelMode</value>
@@ -348,7 +348,7 @@
<value>labelControl2</value>
</data>
<data name="&gt;&gt;labelControl2.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;labelControl2.Parent" xml:space="preserve">
<value>grpHotelMode</value>
@@ -375,7 +375,7 @@
<value>cbDtvUpdate</value>
</data>
<data name="&gt;&gt;cbDtvUpdate.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;cbDtvUpdate.Parent" xml:space="preserve">
<value>grpHotelMode</value>
@@ -402,7 +402,7 @@
<value>cbHotelMode</value>
</data>
<data name="&gt;&gt;cbHotelMode.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;cbHotelMode.Parent" xml:space="preserve">
<value>grpHotelMode</value>
@@ -429,7 +429,7 @@
<value>grpHotelMode</value>
</data>
<data name="&gt;&gt;grpHotelMode.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;grpHotelMode.Parent" xml:space="preserve">
<value>$this</value>
@@ -456,7 +456,7 @@
<value>cbAutoChannelUpdate</value>
</data>
<data name="&gt;&gt;cbAutoChannelUpdate.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;cbAutoChannelUpdate.Parent" xml:space="preserve">
<value>grpSetup</value>
@@ -483,7 +483,7 @@
<value>grpSetup</value>
</data>
<data name="&gt;&gt;grpSetup.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;grpSetup.Parent" xml:space="preserve">
<value>$this</value>
@@ -491,7 +491,7 @@
<data name="&gt;&gt;grpSetup.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="labelControl4.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v12.2">
<data name="labelControl4.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="labelControl4.Location" type="System.Drawing.Point, System.Drawing">
@@ -510,7 +510,7 @@
<value>labelControl4</value>
</data>
<data name="&gt;&gt;labelControl4.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;labelControl4.Parent" xml:space="preserve">
<value>grpInformation</value>
@@ -537,7 +537,7 @@
<value>grpInformation</value>
</data>
<data name="&gt;&gt;grpInformation.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;grpInformation.Parent" xml:space="preserve">
<value>$this</value>
@@ -567,7 +567,7 @@
<value>lblHotelMenuAutoDetect</value>
</data>
<data name="&gt;&gt;lblHotelMenuAutoDetect.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;lblHotelMenuAutoDetect.Parent" xml:space="preserve">
<value>$this</value>
@@ -594,6 +594,6 @@
<value>TvSettingsForm</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
</root>

View File

@@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChanSort.Loader.Panasonic</RootNamespace>
<AssemblyName>ChanSort.Loader.Panasonic</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>

View File

@@ -23,6 +23,7 @@ namespace ChanSort.Loader.Panasonic
private CypherMode cypherMode;
private byte[] fileHeader = new byte[0];
private int dbSizeOffset;
private bool littleEndianByteOrder = false;
enum CypherMode
{
@@ -410,11 +411,9 @@ namespace ChanSort.Loader.Panasonic
if (this.CalcChecksum(data, data.Length) != 0)
throw new FileLoadException("Checksum validation failed");
int offset = 30 + (data[28] << 8) + data[29];
this.dbSizeOffset = offset;
int dbSize = (data[offset] << 24) + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];
offset += 4;
if (data.Length != offset + dbSize + 4)
int offset;
if (!this.ValidateFileSize(data, false, out offset)
&& !this.ValidateFileSize(data, true, out offset))
throw new FileLoadException("File size validation failed");
using (var stream = new FileStream(outputFile, FileMode.Create, FileAccess.Write))
@@ -425,6 +424,19 @@ namespace ChanSort.Loader.Panasonic
}
#endregion
#region ValidateFileSize()
private bool ValidateFileSize(byte[] data, bool littleEndian, out int offset)
{
this.littleEndianByteOrder = littleEndian;
offset = 30 + Tools.GetInt16(data, 28, littleEndian);
if (offset >= data.Length) return false;
this.dbSizeOffset = offset;
int dbSize = Tools.GetInt32(data, offset, littleEndian);
offset += 4;
return data.Length == offset + dbSize + 4;
}
#endregion
#region CalcChecksum()
private uint CalcChecksum(byte[] data, int length)
{
@@ -607,11 +619,7 @@ order by s.ntype,major_channel
using (var stream = new FileStream(this.workFile, FileMode.Open, FileAccess.Read))
stream.Read(data, fileHeader.Length, (int)workFileSize);
data[this.dbSizeOffset + 0] = (byte)(workFileSize >> 24);
data[this.dbSizeOffset + 1] = (byte)(workFileSize >> 16);
data[this.dbSizeOffset + 2] = (byte)(workFileSize >> 8);
data[this.dbSizeOffset + 3] = (byte)(workFileSize);
Tools.SetInt32(data, this.dbSizeOffset, (int)workFileSize, this.littleEndianByteOrder);
this.UpdateChecksum(data);
using (var stream = new FileStream(this.FileName, FileMode.Create, FileAccess.Write))

View File

@@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChanSort.Loader.Samsung</RootNamespace>
<AssemblyName>ChanSort.Loader.Samsung</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile>
</TargetFrameworkProfile>

View File

@@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChanSort.Loader.Toshiba</RootNamespace>
<AssemblyName>ChanSort.Loader.Toshiba</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>

View File

@@ -117,8 +117,8 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="DevExpress.XtraEditors.v12.2" name="DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="lblWebsite.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v12.2">
<assembly alias="DevExpress.XtraEditors.v13.1" name="DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="lblWebsite.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
@@ -139,7 +139,7 @@
<value>lblWebsite</value>
</data>
<data name="&gt;&gt;lblWebsite.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;lblWebsite.Parent" xml:space="preserve">
<value>$this</value>
@@ -170,7 +170,7 @@
<value>lnkDownload</value>
</data>
<data name="&gt;&gt;lnkDownload.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;lnkDownload.Parent" xml:space="preserve">
<value>$this</value>
@@ -194,7 +194,7 @@
<value>gcPlugins</value>
</data>
<data name="&gt;&gt;gcPlugins.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v13.1, Version=13.1.5.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="&gt;&gt;lnkEmail.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;lnkEmail.Parent" xml:space="preserve">
<value>$this</value>
@@ -223,7 +223,7 @@
<data name="&gt;&gt;lnkEmail.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="lblAuthor.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v12.2">
<data name="lblAuthor.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="lblAuthor.Location" type="System.Drawing.Point, System.Drawing">
@@ -242,7 +242,7 @@
<value>lblAuthor</value>
</data>
<data name="&gt;&gt;lblAuthor.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;lblAuthor.Parent" xml:space="preserve">
<value>$this</value>
@@ -250,7 +250,7 @@
<data name="&gt;&gt;lblAuthor.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="lblLicense.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v12.2">
<data name="lblLicense.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="lblLicense.Location" type="System.Drawing.Point, System.Drawing">
@@ -269,7 +269,7 @@
<value>lblLicense</value>
</data>
<data name="&gt;&gt;lblLicense.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;lblLicense.Parent" xml:space="preserve">
<value>$this</value>
@@ -299,7 +299,7 @@
<value>lnkLicense</value>
</data>
<data name="&gt;&gt;lnkLicense.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;lnkLicense.Parent" xml:space="preserve">
<value>$this</value>
@@ -307,7 +307,7 @@
<data name="&gt;&gt;lnkLicense.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="lblCredits.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v12.2">
<data name="lblCredits.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="lblCredits.Location" type="System.Drawing.Point, System.Drawing">
@@ -326,7 +326,7 @@
<value>lblCredits</value>
</data>
<data name="&gt;&gt;lblCredits.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;lblCredits.Parent" xml:space="preserve">
<value>$this</value>
@@ -350,7 +350,7 @@
<value>txtCredits</value>
</data>
<data name="&gt;&gt;txtCredits.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.MemoEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.MemoEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;txtCredits.Parent" xml:space="preserve">
<value>$this</value>
@@ -377,7 +377,7 @@
<value>btnClose</value>
</data>
<data name="&gt;&gt;btnClose.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;btnClose.Parent" xml:space="preserve">
<value>$this</value>
@@ -401,7 +401,7 @@
<value>txtAuthor</value>
</data>
<data name="&gt;&gt;txtAuthor.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;txtAuthor.Parent" xml:space="preserve">
<value>$this</value>
@@ -428,30 +428,30 @@
<value>gvPlugins</value>
</data>
<data name="&gt;&gt;gvPlugins.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colPlugin.Name" xml:space="preserve">
<value>colPlugin</value>
</data>
<data name="&gt;&gt;colPlugin.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colDisplayText.Name" xml:space="preserve">
<value>colDisplayText</value>
</data>
<data name="&gt;&gt;colDisplayText.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colFileTypes.Name" xml:space="preserve">
<value>colFileTypes</value>
</data>
<data name="&gt;&gt;colFileTypes.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>AboutForm</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
</root>

View File

@@ -125,8 +125,8 @@
<data name="lblMessage.Appearance.Font" type="System.Drawing.Font, System.Drawing">
<value>Tahoma, 9pt</value>
</data>
<assembly alias="DevExpress.XtraEditors.v12.2" name="DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="lblMessage.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v12.2">
<assembly alias="DevExpress.XtraEditors.v13.1" name="DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="lblMessage.AutoSizeMode" type="DevExpress.XtraEditors.LabelAutoSizeMode, DevExpress.XtraEditors.v13.1">
<value>Vertical</value>
</data>
<data name="lblMessage.Location" type="System.Drawing.Point, System.Drawing">
@@ -146,7 +146,7 @@
<value>lblMessage</value>
</data>
<data name="&gt;&gt;lblMessage.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;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.v12.2" name="DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="imageCollection1.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<assembly alias="DevExpress.Utils.v13.1" name="DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="imageCollection1.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxMi4yLCBWZXJzaW9uPTEyLjIu
OC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT
@@ -459,12 +459,12 @@
<value>imageCollection1</value>
</data>
<data name="&gt;&gt;imageCollection1.Type" xml:space="preserve">
<value>DevExpress.Utils.ImageCollection, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.Utils.ImageCollection, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>ActionBoxDialog</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
</root>

View File

@@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChanSort.Ui</RootNamespace>
<AssemblyName>ChanSort</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
@@ -58,22 +58,25 @@
<ApplicationIcon>app.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Data.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Data.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Printing.v12.2.Core, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Printing.v13.1.Core, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraPrinting.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="System" />
@@ -81,7 +84,7 @@
<Reference Include="System.Deployment" />
<Reference Include="System.Design" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>

View File

@@ -138,13 +138,13 @@
<value>btnCancel</value>
</data>
<data name="&gt;&gt;btnOk.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="gcCharset.Size" type="System.Drawing.Size, System.Drawing">
<value>433, 446</value>
</data>
<data name="&gt;&gt;gvCharset.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>CharsetForm</value>
@@ -178,12 +178,12 @@
<data name="&gt;&gt;btnMyCountry.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<assembly alias="DevExpress.XtraEditors.v12.2" name="DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="gcCharset.EmbeddedNavigator.TextLocation" type="DevExpress.XtraEditors.NavigatorButtonsTextLocation, DevExpress.XtraEditors.v12.2">
<assembly alias="DevExpress.XtraEditors.v13.1" name="DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="gcCharset.EmbeddedNavigator.TextLocation" type="DevExpress.XtraEditors.NavigatorButtonsTextLocation, DevExpress.XtraEditors.v13.1">
<value>Center</value>
</data>
<assembly alias="DevExpress.Utils.v12.2" name="DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="gcCharset.EmbeddedNavigator.ToolTipIconType" type="DevExpress.Utils.ToolTipIconType, DevExpress.Utils.v12.2">
<assembly alias="DevExpress.Utils.v13.1" name="DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="gcCharset.EmbeddedNavigator.ToolTipIconType" type="DevExpress.Utils.ToolTipIconType, DevExpress.Utils.v13.1">
<value>None</value>
</data>
<data name="&gt;&gt;gvCharset.Name" xml:space="preserve">
@@ -196,7 +196,7 @@
<value>Top, Right</value>
</data>
<data name="&gt;&gt;btnMyCountry.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.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="&gt;&gt;gcCharset.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;btnCancel.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;colName.Name" xml:space="preserve">
<value>colName</value>
@@ -259,7 +259,7 @@
<value>gcCharset</value>
</data>
<data name="&gt;&gt;colCodePage.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="btnMyCountry.Text" xml:space="preserve">
<value>Default character set for my country</value>
@@ -274,7 +274,7 @@
<value>353, 6</value>
</data>
<data name="&gt;&gt;colName.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="btnCancel.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
@@ -337,7 +337,7 @@
<value />
</data>
<data name="&gt;&gt;colDisplayName.Type" xml:space="preserve">
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>433, 483</value>
@@ -346,17 +346,17 @@
<value>142</value>
</data>
<data name="&gt;&gt;panelControl1.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="colName.Visible" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="DevExpress.Data.v12.2" name="DevExpress.Data.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="gcCharset.EmbeddedNavigator.AllowHtmlTextInToolTip" type="DevExpress.Utils.DefaultBoolean, DevExpress.Data.v12.2">
<assembly alias="DevExpress.Data.v13.1" name="DevExpress.Data.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="gcCharset.EmbeddedNavigator.AllowHtmlTextInToolTip" type="DevExpress.Utils.DefaultBoolean, DevExpress.Data.v13.1">
<value>Default</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.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>

View File

@@ -120,8 +120,8 @@
<metadata name="sharedImageCollection1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="DevExpress.Utils.v12.2" name="DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="sharedImageCollection1.ImageSource.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<assembly alias="DevExpress.Utils.v13.1" name="DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="sharedImageCollection1.ImageSource.ImageStream" type="DevExpress.Utils.ImageCollectionStreamer, DevExpress.Utils.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxMi4yLCBWZXJzaW9uPTEyLjIu
OC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT

View File

@@ -106,6 +106,7 @@
this.miSave = new DevExpress.XtraBars.BarButtonItem();
this.miSaveAs = new DevExpress.XtraBars.BarButtonItem();
this.miOpenReferenceFile = new DevExpress.XtraBars.BarButtonItem();
this.miAddFromRefList = new DevExpress.XtraBars.BarButtonItem();
this.miSaveReferenceFile = new DevExpress.XtraBars.BarButtonItem();
this.miExcelExport = new DevExpress.XtraBars.BarButtonItem();
this.miQuit = new DevExpress.XtraBars.BarButtonItem();
@@ -888,9 +889,10 @@
this.miSaveReferenceFile,
this.miRecentFiles,
this.miExcelExport,
this.miPortuguese});
this.miPortuguese,
this.miAddFromRefList});
this.barManager1.MainMenu = this.bar1;
this.barManager1.MaxItemId = 61;
this.barManager1.MaxItemId = 62;
this.barManager1.ShowFullMenus = true;
//
// bar1
@@ -940,6 +942,7 @@
new DevExpress.XtraBars.LinkPersistInfo(this.miSave, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miSaveAs),
new DevExpress.XtraBars.LinkPersistInfo(this.miOpenReferenceFile, true),
new DevExpress.XtraBars.LinkPersistInfo(this.miAddFromRefList),
new DevExpress.XtraBars.LinkPersistInfo(this.miSaveReferenceFile),
new DevExpress.XtraBars.LinkPersistInfo(this.miExcelExport),
new DevExpress.XtraBars.LinkPersistInfo(this.miQuit, true),
@@ -1022,6 +1025,13 @@
this.miOpenReferenceFile.Name = "miOpenReferenceFile";
this.miOpenReferenceFile.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miOpenReferenceFile_ItemClick);
//
// miAddFromRefList
//
resources.ApplyResources(this.miAddFromRefList, "miAddFromRefList");
this.miAddFromRefList.Id = 61;
this.miAddFromRefList.Name = "miAddFromRefList";
this.miAddFromRefList.ItemClick += new DevExpress.XtraBars.ItemClickEventHandler(this.miAddFromRefList_ItemClick);
//
// miSaveReferenceFile
//
resources.ApplyResources(this.miSaveReferenceFile, "miSaveReferenceFile");
@@ -1771,6 +1781,7 @@
private DevExpress.XtraEditors.GroupControl grpSubList;
private DevExpress.XtraTab.XtraTabControl tabSubList;
private DevExpress.XtraTab.XtraTabPage pageProgNr;
private DevExpress.XtraBars.BarButtonItem miAddFromRefList;
private DevExpress.XtraSplashScreen.SplashScreenManager splashScreenManager1;
}
}

View File

@@ -1,4 +1,5 @@
using System;
//#define ADD_CHANNELS_FROM_REF_LIST
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Globalization;
@@ -24,7 +25,7 @@ namespace ChanSort.Ui
{
public partial class MainForm : XtraForm
{
public const string AppVersion = "v2013-07-03";
public const string AppVersion = "v2013-07-19";
private const int MaxMruEntries = 5;
@@ -80,15 +81,19 @@ namespace ChanSort.Ui
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Settings.Default.Language);
this.LookAndFeel.SetSkinStyle("Office 2010 Blue");
InitializeComponent();
//this.SetControlsEnabled(false);
if (!Settings.Default.WindowSize.IsEmpty)
this.Size = Settings.Default.WindowSize;
this.title = string.Format(this.Text, AppVersion);
this.Text = title;
this.title = string.Format(base.Text, AppVersion);
base.Text = title;
this.plugins = this.LoadSerializerPlugins();
this.FillMenuWithIsoEncodings();
this.Icon = new Icon(Assembly.GetExecutingAssembly().GetManifestResourceStream("ChanSort.Ui.app.ico"));
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ChanSort.Ui.app.ico"))
{
if (stream != null)
this.Icon = new Icon(stream);
}
var bcLeft = new BindingContext();
this.grpOutputList.BindingContext = bcLeft;
this.lastFocusedGrid = this.gviewRight;
@@ -96,6 +101,11 @@ namespace ChanSort.Ui
else if (this.curEditMode == EditMode.InsertBefore) this.rbInsertBefore.Checked = true;
else this.rbInsertSwap.Checked = true;
this.ActiveControl = this.gridRight;
#if !ADD_CHANNELS_FROM_REF_LIST
this.miAddFromRefList.Visibility = BarItemVisibility.Never;
this.miAddFromRefList.Enabled = false;
#endif
}
#endregion
@@ -106,28 +116,11 @@ namespace ChanSort.Ui
}
#endregion
#region SetControlsEnabled()
private void SetControlsEnabled(bool enabled)
{
foreach (Control control in this.grpTopPanel.Controls)
control.Enabled = enabled;
foreach (Control control in this.pnlEditControls.Controls)
{
if (control != this.btnClearLeftFilter)
control.Enabled = enabled;
}
this.miReload.Enabled = enabled;
this.miSave.Enabled = enabled;
this.miSaveAs.Enabled = enabled;
}
#endregion
#region LoadSerializerPlugins()
private IList<ISerializerPlugin> LoadSerializerPlugins()
{
var list = new List<ISerializerPlugin>();
string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? "";
foreach (var file in Directory.GetFiles(exeDir, "ChanSort.Loader.*.dll"))
{
try
@@ -197,7 +190,7 @@ namespace ChanSort.Ui
this.currentTvFile = tvDataFile;
if (!string.IsNullOrEmpty(tvDataFile))
{
this.currentCsvFile = Path.Combine(Path.GetDirectoryName(this.currentTvFile),
this.currentCsvFile = Path.Combine(Path.GetDirectoryName(this.currentTvFile) ?? "",
Path.GetFileNameWithoutExtension(this.currentTvFile) + ".csv");
}
this.Text = this.title + " - " + this.currentTvFile;
@@ -453,7 +446,7 @@ namespace ChanSort.Ui
}
if (res == DialogResult.Yes)
this.BeginInvoke((Action)this.ShowOpenReferenceFileDialog);
this.BeginInvoke((Action)(()=>this.ShowOpenReferenceFileDialog(false)));
else if (res == DialogResult.No)
{
this.dataRoot.ApplyCurrentProgramNumbers();
@@ -463,7 +456,7 @@ namespace ChanSort.Ui
#endregion
#region ShowOpenReferenceFileDialog()
private void ShowOpenReferenceFileDialog()
private void ShowOpenReferenceFileDialog(bool addChannels)
{
using (OpenFileDialog dlg = new OpenFileDialog())
{
@@ -499,14 +492,14 @@ namespace ChanSort.Ui
dlg.Title = this.miOpenReferenceFile.Caption;
if (dlg.ShowDialog(this) == DialogResult.OK)
{
this.LoadReferenceFile(dlg.FileName);
this.LoadReferenceFile(dlg.FileName, addChannels);
}
}
}
#endregion
#region LoadReferenceFile()
private void LoadReferenceFile(string fileName)
private void LoadReferenceFile(string fileName, bool addChannels)
{
this.gviewRight.BeginDataUpdate();
this.gviewLeft.BeginDataUpdate();
@@ -514,7 +507,7 @@ namespace ChanSort.Ui
string ext = (Path.GetExtension(fileName) ?? "").ToLower();
if (ext == ".csv")
{
var csvSerializer = new CsvFileSerializer(fileName, this.dataRoot);
var csvSerializer = new CsvFileSerializer(fileName, this.dataRoot, addChannels);
csvSerializer.Load();
}
else if (ext == ".chl")
@@ -627,7 +620,6 @@ namespace ChanSort.Ui
if (!this.PromptHandlingOfUnsortedChannels())
return;
this.SaveReferenceFile();
this.SaveTvDataFile();
this.dataRoot.NeedsSaving = false;
this.RefreshGrid(this.gviewLeft, this.gviewRight);
@@ -686,8 +678,28 @@ namespace ChanSort.Ui
private void SaveReferenceFile()
{
var csvSerializer = new CsvFileSerializer(this.currentCsvFile, this.dataRoot);
csvSerializer.Save();
string fileName;
using (var dlg = new SaveFileDialog())
{
dlg.RestoreDirectory = true;
dlg.InitialDirectory = Path.GetDirectoryName(this.currentCsvFile);
dlg.FileName = Path.GetFileName(this.currentCsvFile);
dlg.DefaultExt = ".csv";
dlg.Filter = "ChanSort|*.csv|SamToolBox|*.chl|All files|*";
dlg.FilterIndex = 1;
dlg.CheckPathExists = true;
dlg.CheckFileExists = false;
dlg.AddExtension = true;
if (dlg.ShowDialog(this) != DialogResult.OK)
return;
fileName = dlg.FileName;
}
string ext = (Path.GetExtension(fileName)??"").ToLower();
if (ext == ".csv")
new CsvFileSerializer(this.currentCsvFile, this.dataRoot, false).Save();
else if (ext == ".chl")
new ChlFileSerializer().Save(fileName, this.currentChannelList);
}
#endregion
@@ -1504,7 +1516,12 @@ namespace ChanSort.Ui
private void miOpenReferenceFile_ItemClick(object sender, ItemClickEventArgs e)
{
this.TryExecute(this.ShowOpenReferenceFileDialog);
this.TryExecute(() => this.ShowOpenReferenceFileDialog(false));
}
private void miAddFromRefList_ItemClick(object sender, ItemClickEventArgs e)
{
this.TryExecute(() => this.ShowOpenReferenceFileDialog(true));
}
private void miReload_ItemClick(object sender, ItemClickEventArgs e)
@@ -2351,5 +2368,6 @@ namespace ChanSort.Ui
}
#endregion
}
}

View File

@@ -167,7 +167,7 @@
<value>Referenzliste öffnen...</value>
</data>
<data name="miSaveReferenceFile.Caption" xml:space="preserve">
<value>Referenzliste speichern</value>
<value>Referenzliste speichern...</value>
</data>
<data name="miExcelExport.Caption" xml:space="preserve">
<value>Excel liste exportieren...</value>
@@ -253,8 +253,8 @@
<data name="miAbout.Caption" xml:space="preserve">
<value>&amp;Über ChanSort...</value>
</data>
<assembly alias="DevExpress.XtraBars.v12.2" name="DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<assembly alias="DevExpress.XtraBars.v13.1" name="DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
@@ -264,7 +264,7 @@
Xxl+0wEL
</value>
</data>
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
@@ -274,7 +274,7 @@
KphCYAEL
</value>
</data>
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
@@ -284,7 +284,7 @@
ZMgcwAEL
</value>
</data>
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA

View File

@@ -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.v12.2" name="DevExpress.Data.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<assembly alias="DevExpress.XtraEditors.v12.2" name="DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<assembly alias="DevExpress.Utils.v12.2" name="DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<assembly alias="DevExpress.Data.v13.1" name="DevExpress.Data.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<assembly alias="DevExpress.XtraEditors.v13.1" name="DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<assembly alias="DevExpress.Utils.v13.1" name="DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="colOutServiceType.Caption" xml:space="preserve">
<value>Tipo serviço</value>
</data>
@@ -194,8 +194,8 @@
<data name="miAbout.Caption" xml:space="preserve">
<value>&amp;Sobre ChanSort...</value>
</data>
<assembly alias="DevExpress.XtraBars.v12.2" name="DevExpress.XtraBars.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<assembly alias="DevExpress.XtraBars.v13.1" name="DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<data name="barManager1.Categories" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
@@ -205,7 +205,7 @@
Xxl+0wEL
</value>
</data>
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="barManager1.Categories1" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
@@ -215,7 +215,7 @@
KphCYAEL
</value>
</data>
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="barManager1.Categories2" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA
@@ -225,7 +225,7 @@
ZMgcwAEL
</value>
</data>
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v12.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="barManager1.Categories3" type="DevExpress.XtraBars.BarManagerCategory, DevExpress.XtraBars.v13.1" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy
LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.586
// Runtime Version:4.0.30319.18052
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -60,6 +60,9 @@ namespace ChanSort.Ui.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Donate {
get {
object obj = ResourceManager.GetObject("Donate", resourceCulture);

View File

@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.586
// Runtime Version:4.0.30319.18052
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.

View File

@@ -1,8 +1,2 @@
DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -145,7 +145,7 @@
<value>0, 14, 0, 14</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>WaitForm1</value>
@@ -227,7 +227,7 @@
<value>Horizontal</value>
</data>
<data name="&gt;&gt;progressPanel1.Type" xml:space="preserve">
<value>DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="progressPanel1.Appearance.GradientMode" type="System.Drawing.Drawing2D.LinearGradientMode, System.Drawing">
<value>Horizontal</value>

View File

@@ -6,7 +6,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="v2.0.50727"/></startup><userSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><userSettings>
<ChanSort.Ui.Properties.Settings>
<setting name="InputListRowHandle" serializeAs="String">
<value>0</value>
@@ -15,37 +15,37 @@
<value>0</value>
</setting>
<setting name="OutputListLayout" serializeAs="String">
<value />
<value/>
</setting>
<setting name="InputFilterName" serializeAs="String">
<value />
<value/>
</setting>
<setting name="InputFilterOldSlot" serializeAs="String">
<value />
<value/>
</setting>
<setting name="InputFilterCrypt" serializeAs="String">
<value />
<value/>
</setting>
<setting name="InputFilterNewSlot" serializeAs="String">
<value />
<value/>
</setting>
<setting name="InputFilterChannel" serializeAs="String">
<value />
<value/>
</setting>
<setting name="InputFilterUid" serializeAs="String">
<value />
<value/>
</setting>
<setting name="OutputFilterName" serializeAs="String">
<value />
<value/>
</setting>
<setting name="Language" serializeAs="String">
<value />
<value/>
</setting>
<setting name="OutputFilterNewSlot" serializeAs="String">
<value />
<value/>
</setting>
<setting name="Encoding" serializeAs="String">
<value />
<value/>
</setting>
<setting name="HideLeftList" serializeAs="String">
<value>False</value>
@@ -54,13 +54,13 @@
<value>0, 0</value>
</setting>
<setting name="InputGridLayoutAnalog" serializeAs="String">
<value />
<value/>
</setting>
<setting name="InputGridLayoutDvbCT" serializeAs="String">
<value />
<value/>
</setting>
<setting name="InputGridLayoutDvbS" serializeAs="String">
<value />
<value/>
</setting>
<setting name="LeftPanelWidth" serializeAs="String">
<value>0</value>
@@ -81,19 +81,19 @@
<value>True</value>
</setting>
<setting name="MruFile0" serializeAs="String">
<value />
<value/>
</setting>
<setting name="MruFile1" serializeAs="String">
<value />
<value/>
</setting>
<setting name="MruFile2" serializeAs="String">
<value />
<value/>
</setting>
<setting name="MruFile3" serializeAs="String">
<value />
<value/>
</setting>
<setting name="MruFile4" serializeAs="String">
<value />
<value/>
</setting>
</ChanSort.Ui.Properties.Settings>
<GUI.Properties.Settings>

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -81,7 +81,7 @@ public struct SCM_mapDigital_C
struct SCM_mapDigital_DE_entry
struct SCM_mapDigital_DEF_entry
{
word ProgramNr;
word VideoPid;
@@ -124,7 +124,7 @@ struct SCM_mapDigital_DE_entry
byte Checksum;
};
public struct SCM_mapDigital_DE
public struct SCM_mapDigital_DEF
{
SCM_mapDigital_DE_entry Entries[*];
};

View File

@@ -78,7 +78,7 @@ public struct SCM_mapSate_D
SCM_mapSate_D_entry Entries[*];
};
struct SCM_mapSate_E_entry
struct SCM_mapSate_EF_entry
{
word ProgramNr;
word VideoPid;
@@ -112,7 +112,7 @@ struct SCM_mapSate_E_entry
byte Checksum;
};
public struct SCM_mapSate_E
public struct SCM_mapSate_EF
{
SCM_mapSate_E_entry Entries[*];
};

View File

@@ -1,11 +1,25 @@
#include "tll-common.h"
// all LM models except 340S and 611S
#include "tll-common.h"
#define MAX_SAT_COUNT 64
#define MAX_LNB_COUNT 40
#define MAX_DVBS_COUNT 7520
struct TLL44_Satellite;
typedef TLL44_Satellite TLL_Satellite;
#define MAX_TP_COUNT 2400
struct TLL40_Transponder;
typedef TLL40_Transponder TLL_Transponder;
#define MAX_DVBS_COUNT 7520
struct TLL72_SatChannel;
typedef TLL72_SatChannel TLL_SatChannel;
#define MAX_LNB_COUNT 40
struct TLL44_Lnb;
typedef TLL44_Lnb TLL_Lnb;
#include "tll-satellite.h"
struct LM192_AnalogChannel
{
@@ -121,143 +135,7 @@ struct LM192_DvbCTBlock
LM192_DvbCtChannel Channels[ChannelCount];
};
struct LM192_DvbsHeaderSubblock
{
dword Crc32;
byte DVBS_S2_Tag[8];
word Temp03[2];
};
struct LM192_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
word Unknown1;
word Unknown2;
word Unknown3;
word TransponderCount;
word Unknown4;
};
struct LM192_DvbsSatelliteSubblock
{
dword Crc32;
word Unknown1;
byte SatAllocationBitmap[MAX_SAT_COUNT/8];
word Unknown2;
word SatCount;
byte SatOrder[MAX_SAT_COUNT];
word Unknown3;
LM192_Satellite Satellites[MAX_SAT_COUNT];
};
struct LM192_Transponder
{
byte t1[10];
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
byte t3[3];
word SRate;
byte t4[9];
byte SatIndexTimes2;
byte t5[3];
};
struct LM192_DvbsTransponderSubblock
{
dword Crc32;
word Unknown1;
word Unknown2;
word Unknown3;
word Unknown4;
word TransponderCount;
byte AllocationBitmap[MAX_TP_COUNT/8];
struct LM192_DvbsTransponderTable1
{
word Prev;
word Next;
word Current;
} TransponderTable1[MAX_TP_COUNT];
word Unknown5;
LM192_Transponder Transponder[MAX_TP_COUNT];
};
struct LM192_SatChannel
{
word LnbIndex;
word t1;
TLL_SignalSource SignalSource;
byte t2;
word TP_Number;
word ChannelNumber;
word LogicalChannelNumber;
word TP_Number2;
byte FavCrypt;
byte LockSkipHide;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word AID_Times8;
byte t6[6];
};
struct LM192_DvbsChannelSubblock
{
dword Crc32;
word Unknown[2];
word LinkedListStartIndex;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
byte AllocationBitmap[MAX_DVBS_COUNT/8];
struct LM192_LinkedChannelList
{
word Prev;
word Next;
word Current;
word Zero;
} LinkedList[MAX_DVBS_COUNT];
LM192_SatChannel Channels[MAX_DVBS_COUNT];
};
struct LM192_Lnb
{
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[18];
};
struct LM192_DvbsLnbSubblock
{
dword Crc32;
word Unknown1;
byte AllocationBitmap[5];
byte Unknown2;
LM192_Lnb Lnb[MAX_LNB_COUNT];
};
struct LM192_DvbSBlock
{
dword BlockSize;
LM192_DvbsHeaderSubblock HeaderBlock;
LM192_DvbsSatelliteSubblock SatelliteBlock;
LM192_DvbsTransponderSubblock TransponderBlock;
LM192_DvbsChannelSubblock ChannelBlock;
LM192_DvbsLnbSubblock LnbBlock;
};
struct LM192_SettingsBlock
{
@@ -272,6 +150,6 @@ public struct LM192
LM192_AnalogBlock Analog;
LM192_FirmwareBlock Firmware;
LM192_DvbCTBlock DvbCT;
LM192_DvbSBlock DvbS;
LM192_SettingsBlock Settings;
TLL_DvbSBlock DvbS;
TLL_SettingsBlock Settings;
};

View File

@@ -1,9 +1,22 @@
#include "tll-common.h"
#define MAX_SAT_COUNT 64
#define MAX_LNB_COUNT 40
#define MAX_DVBS_COUNT 7520
struct TLL48_Satellite;
typedef TLL48_Satellite TLL_Satellite;
#define MAX_TP_COUNT 2400
struct TLL56_Transponder;
typedef TLL56_Transponder TLL_Transponder;
#define MAX_DVBS_COUNT 7520
struct TLL92_SatChannel;
typedef TLL92_SatChannel TLL_SatChannel;
#define MAX_LNB_COUNT 40
struct TLL52_Lnb;
typedef TLL52_Lnb TLL_Lnb;
#include "tll-satellite.h"
struct LA256_AnalogChannel
{
@@ -147,41 +160,22 @@ struct LA256_DvbCTBlock
LA256_DvbCtChannel Channels[ChannelCount];
};
struct LA256_DvbsHeaderSubblock
{
dword Crc32;
byte DVBS_S2_Tag[8];
word Temp03[2];
};
struct LA256_Satellite
struct TLL48_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
byte LnbIndex;
byte FactoryDefault;
word TransponderStartIndex;
word TransponderEndIndex;
word TransponderHead;
word TransponderTail;
word TransponderCount;
word Unknown4;
word Unknown5;
word Unknown6;
};
struct LA256_DvbsSatelliteSubblock
{
dword Crc32;
word MagicNo;
byte SatAllocationBitmap[MAX_SAT_COUNT/8];
word Reserved;
word SatCount;
byte SatOrder[MAX_SAT_COUNT];
word Unknown3;
LA256_Satellite Satellites[MAX_SAT_COUNT];
};
struct LA256_Transponder
struct TLL56_Transponder
{
byte t1[10];
word TP_Number;
@@ -197,26 +191,7 @@ struct LA256_Transponder
byte u40[12];
};
struct LA256_DvbsTransponderSubblock
{
dword Crc32;
word Unknown1;
word Unknown2;
word Unknown3;
word Unknown4;
word TransponderCount;
byte AllocationBitmap[MAX_TP_COUNT/8];
struct LA256_DvbsTransponderTable1
{
word Prev;
word Next;
word Current;
} TransponderTable1[MAX_TP_COUNT];
word Unknown5;
LA256_Transponder Transponder[MAX_TP_COUNT];
};
struct LA256_SatChannel
struct TLL92_SatChannel
{
word LnbIndex;
word t1;
@@ -239,26 +214,7 @@ struct LA256_SatChannel
byte t5[12];
};
struct LA256_DvbsChannelSubblock
{
dword Crc32;
word Unknown[2];
word LinkedListStartIndex;
word LinkedListEndIndex1;
word LinkedListEndIndex2;
word ChannelCount;
byte AllocationBitmap[MAX_DVBS_COUNT/8];
struct LA256_LinkedChannelList
{
word Prev;
word Next;
word Current;
word Zero;
} LinkedList[MAX_DVBS_COUNT];
LA256_SatChannel Channels[MAX_DVBS_COUNT];
};
struct LA256_Lnb
struct TLL52_Lnb
{
byte SettingsID;
byte t2[3];
@@ -274,30 +230,6 @@ struct LA256_Lnb
byte t5[22];
};
struct LA256_DvbsLnbSubblock
{
dword Crc32;
word Unknown1;
byte AllocationBitmap[5];
byte Unknown2;
LA256_Lnb Lnb[MAX_LNB_COUNT];
};
struct LA256_DvbSBlock
{
dword BlockSize;
LA256_DvbsHeaderSubblock HeaderBlock;
LA256_DvbsSatelliteSubblock SatelliteBlock;
LA256_DvbsTransponderSubblock TransponderBlock;
LA256_DvbsChannelSubblock ChannelBlock;
LA256_DvbsLnbSubblock LnbBlock;
};
struct LA256_SettingsBlock
{
dword BlockSize;
byte Data[BlockSize];
};
public struct LA256
{
@@ -306,6 +238,6 @@ public struct LA256
LA256_AnalogBlock Analog;
LA256_FirmwareBlock Firmware;
LA256_DvbCTBlock DvbCT;
LA256_DvbSBlock DvbS;
LA256_SettingsBlock Settings;
TLL_DvbSBlock DvbS;
TLL_SettingsBlock Settings;
};

View File

@@ -43,3 +43,9 @@ enum LH_SignalSource : byte
Antenna = 2,
Cable = 3
};
struct TLL_SettingsBlock
{
dword BlockSize;
byte Data[BlockSize];
};

View File

@@ -0,0 +1,161 @@
struct TLL_DvbsHeaderSubblock
{
dword Crc32;
byte DVBS_S2_Tag[8];
word Temp03[2];
};
struct TLL44_Satellite
{
char Name[32];
byte PosDeg;
byte PosCDeg;
byte Unknown1[2];
word TransponderHead;
word TransponderTail;
word TransponderCount;
word InUse;
};
struct TLL40_Transponder
{
word FirstChannelIndex;
word LastChannelIndex;
word ChannelCount;
word t1a;
word t1b;
word TP_Number;
word TP_Freq;
byte t2[4];
word NID;
word TID;
word t3;
struct TP_Flags1
{
byte Unknown : 6;
byte IsHorizontal : 1;
} Flags1;
word SRate;
struct TP_Flags2
{
enum E_FEC : byte
{
FEC2_3 = 2,
FEC3_4 = 3,
FEC5_6 = 4,
FEC7_8 = 5,
FEC9_10 = 9
} FEC : 4;
byte S2 : 1;
} Flags2;
byte t4[8];
byte SatIndexTimes2;
byte t5[3];
};
struct TLL_DvbsSatelliteSubblock
{
dword Crc32;
word Unknown1;
byte SatAllocationBitmap[MAX_SAT_COUNT/8];
word Unknown2;
word SatCount;
byte SatOrder[MAX_SAT_COUNT];
word Unknown3;
TLL_Satellite Satellites[MAX_SAT_COUNT];
};
struct TLL_DvbsTransponderSubblock
{
dword Crc32;
word Unknown1;
word LinkedListHead;
word LinkedListTail1;
word LinkedListTail2;
word TransponderCount;
byte AllocationBitmap[MAX_TP_COUNT/8];
struct TLL_DvbsTransponderLinkedListEntry
{
word Prev;
word Next;
word Current;
} LinkedList[MAX_TP_COUNT];
word Unknown5;
TLL_Transponder Transponder[MAX_TP_COUNT];
};
struct TLL72_SatChannel
{
word LnbIndex;
word t1;
TLL_SignalSource SignalSource;
byte t2;
word TP_Number;
word ChannelNumber;
word LogicalChannelNumber;
word TP_Number2;
byte FavCrypt;
byte LockSkipHide;
word SID;
byte ServiceType;
byte CH_NameLength;
char CH_Name[40];
word VID;
word AID;
word AID_Times8;
byte t6[6];
};
struct TLL_DvbsChannelSubblock
{
dword Crc32;
word Unknown[2];
word LinkedListHead;
word LinkedListTail1;
word LinkedListTail2;
word ChannelCount;
byte AllocationBitmap[MAX_DVBS_COUNT/8];
struct TLL_LinkedChannelListEntry
{
word Prev;
word Next;
word Current;
word Zero;
} LinkedList[MAX_DVBS_COUNT];
TLL_SatChannel Channels[MAX_DVBS_COUNT];
};
struct TLL44_Lnb
{
byte SettingsID;
byte t2[3];
byte SatelliteID;
byte t3[3];
char FrequenceName[12];
word LOF1;
byte t4[2];
word LOF2;
byte t5[18];
};
struct TLL_DvbsLnbSubblock
{
dword Crc32;
word Unknown1;
byte AllocationBitmap[5];
byte Unknown2;
TLL_Lnb Lnb[MAX_LNB_COUNT];
};
struct TLL_DvbSBlock
{
dword BlockSize;
TLL_DvbsHeaderSubblock HeaderBlock;
TLL_DvbsSatelliteSubblock SatelliteBlock;
TLL_DvbsTransponderSubblock TransponderBlock;
TLL_DvbsChannelSubblock ChannelBlock;
TLL_DvbsLnbSubblock LnbBlock;
};

View File

@@ -11,7 +11,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Test.Loader.LG</RootNamespace>
<AssemblyName>Test.Loader.LG</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TargetFrameworkProfile />
@@ -55,7 +55,7 @@
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="nunit.framework, Version=2.6.0.12051, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DLL\nunit.framework.dll</HintPath>

View File

@@ -75,7 +75,7 @@ namespace Test.Loader.LG
#region AssertRefListContent()
private void AssertRefListContent(DataRoot dataRoot, string refListFile)
{
CsvFileSerializer csv = new CsvFileSerializer(null, dataRoot);
CsvFileSerializer csv = new CsvFileSerializer(null, dataRoot, false);
MemoryStream mem = new MemoryStream();
var writer = new StreamWriter(mem);
csv.Save(writer);
@@ -175,7 +175,7 @@ namespace Test.Loader.LG
tll.IsTesting = true;
tll.Load();
tll.DataRoot.ApplyCurrentProgramNumbers();
CsvFileSerializer csv = new CsvFileSerializer(testDataDir + "\\" + basename + ".csv.in", tll.DataRoot);
CsvFileSerializer csv = new CsvFileSerializer(testDataDir + "\\" + basename + ".csv.in", tll.DataRoot, false);
csv.Save();
// save modified list as .TLL.out

View File

@@ -1,3 +1,3 @@
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

View File

@@ -11,7 +11,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Test.Loader</RootNamespace>
<AssemblyName>Test.Loader</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TargetFrameworkProfile />
@@ -55,7 +55,7 @@
<CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>

View File

@@ -2,7 +2,7 @@
c:\cygwin\bin\date "+%%Y-%%m-%%d">%TEMP%\date.txt
set /p curdate=<%temp%\date.txt
set target=%cd%\..\ChanSort_%curdate%
set DXversion=12.2
set DXversion=13.1
mkdir "%target%" 2>nul
del /s /q "%target%\*"
copy debug\ChanSort.exe* "%target%"
@@ -21,7 +21,6 @@ del Website\ChanSort.zip 2>nul
copy Source\readme.txt %target%
cd %target%\..
"c:\program files\7-Zip\7z.exe" a -tzip ChanSort_%curdate%.zip ChanSort_%curdate%
rem c:\cygwin\bin\gzip --name -r -9 ChanSort_%curdate%.zip ChanSort%curdate%
pause

View File

@@ -1,10 +1,16 @@
Version v2013-07-03 ======================================================
Version v2013-07-19 ======================================================
Changes:
- Support for individually sorted favorite lists, if supported by TV
(e.g. Samsung E and F series, Panasonic Viera)
- FIX: "insert after" using drag and drop from right to left list
inserted before instead of after the drop position
- Supports Panasonic "svl.bin" channel lists for different TV CPUs
(auto-detecting big-endian or little-endian byte order).
- *.csv reference list is no longer created automatically. (You can always
use your TV data file as a reference list anyway)
- File / Save reference list... now opens a dialog which allows to save in
either ChanSort *.csv or SamToolBox *.chl format.
(The *.chl format only contains the currently selected list, so it can be
used to duplicate the order from e.g. the "Astra HD+" to the "Satellite"
list within the same *.scm file)
- Upgraded to .NET Framework 4.0 and DevExpress 13.1 libraries
The complete change log can be found at the end of this document
@@ -104,6 +110,18 @@ OTHER DEALINGS IN THE SOFTWARE.
Change log ================================================================
2013-07-19
- Supports Panasonic "svl.bin" channel lists for different TV CPUs
(auto-detecting big-endian or little-endian byte order).
- *.csv reference list is no longer created automatically. (You can always
use your TV data file as a reference list anyway)
- File / Save reference list... now opens a dialog which allows to save in
either ChanSort *.csv or SamToolBox *.chl format.
(The *.chl format only contains the currently selected list, so it can be
used to duplicate the order from e.g. the "Astra HD+" to the "Satellite"
list within the same *.scm file)
- Upgraded to .NET Framework 4.0 and DevExpress 13.1 libraries
2013-07-03
- Support for individually sorted favorite lists, if supported by TV
(e.g. Samsung E and F series, Panasonic Viera)