diff --git a/ChanSort.Api/ChanSort.Api.csproj b/ChanSort.Api/ChanSort.Api.csproj index e564e4b..7557e6c 100644 --- a/ChanSort.Api/ChanSort.Api.csproj +++ b/ChanSort.Api/ChanSort.Api.csproj @@ -10,9 +10,10 @@ Properties ChanSort.Api ChanSort.Api - v3.5 + v4.0 512 - Client + + true @@ -68,6 +69,7 @@ + diff --git a/ChanSort.Api/ChanSort.Api.csproj.DotSettings b/ChanSort.Api/ChanSort.Api.csproj.DotSettings new file mode 100644 index 0000000..12e33bc --- /dev/null +++ b/ChanSort.Api/ChanSort.Api.csproj.DotSettings @@ -0,0 +1,2 @@ + + True \ No newline at end of file diff --git a/ChanSort.Api/Controller/ChlFileSerializer.cs b/ChanSort.Api/Controller/ChlFileSerializer.cs index 1c17f47..f4cebe5 100644 --- a/ChanSort.Api/Controller/ChlFileSerializer.cs +++ b/ChanSort.Api/Controller/ChlFileSerializer.cs @@ -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 } } diff --git a/ChanSort.Api/Controller/CsvFileSerializer.cs b/ChanSort.Api/Controller/CsvFileSerializer.cs index 8f13962..f923c88 100644 --- a/ChanSort.Api/Controller/CsvFileSerializer.cs +++ b/ChanSort.Api/Controller/CsvFileSerializer.cs @@ -15,12 +15,14 @@ namespace ChanSort.Api private readonly HashSet clearedLists = new HashSet(); 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; diff --git a/ChanSort.Api/Model/DataRoot.cs b/ChanSort.Api/Model/DataRoot.cs index 82bfc75..6796a14 100644 --- a/ChanSort.Api/Model/DataRoot.cs +++ b/ChanSort.Api/Model/DataRoot.cs @@ -7,12 +7,14 @@ namespace ChanSort.Api { private readonly IDictionary satellites = new Dictionary(); private readonly IDictionary transponder = new Dictionary(); + private readonly IDictionary lnbConfig = new Dictionary(); private readonly IList channelLists = new List(); private readonly StringBuilder warnings = new StringBuilder(); public StringBuilder Warnings { get { return this.warnings; } } public IDictionary Satellites { get { return this.satellites; } } public IDictionary Transponder { get { return this.transponder; } } + public IDictionary LnbConfig { get { return this.lnbConfig; } } public ICollection 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) { diff --git a/ChanSort.Api/Model/LnbConfig.cs b/ChanSort.Api/Model/LnbConfig.cs new file mode 100644 index 0000000..2aa3d91 --- /dev/null +++ b/ChanSort.Api/Model/LnbConfig.cs @@ -0,0 +1,7 @@ +namespace ChanSort.Api +{ + public class LnbConfig + { + public int Id { get; protected set; } + } +} diff --git a/ChanSort.Api/Model/Satellite.cs b/ChanSort.Api/Model/Satellite.cs index a74c460..df37910 100644 --- a/ChanSort.Api/Model/Satellite.cs +++ b/ChanSort.Api/Model/Satellite.cs @@ -17,9 +17,12 @@ namespace ChanSort.Api this.id = id; } + public LnbConfig LnbConfig { get; set; } + public override string ToString() { return Name; } + } } diff --git a/ChanSort.Api/Resources.Designer.cs b/ChanSort.Api/Resources.Designer.cs index 8de5a0e..fd49a5b 100644 --- a/ChanSort.Api/Resources.Designer.cs +++ b/ChanSort.Api/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // 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. diff --git a/ChanSort.Api/Utils/IniFile.cs b/ChanSort.Api/Utils/IniFile.cs index 4e719a2..91f1697 100644 --- a/ChanSort.Api/Utils/IniFile.cs +++ b/ChanSort.Api/Utils/IniFile.cs @@ -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; + } } } } diff --git a/ChanSort.Api/Utils/Tools.cs b/ChanSort.Api/Utils/Tools.cs index 6e206c8..63e5260 100644 --- a/ChanSort.Api/Utils/Tools.cs +++ b/ChanSort.Api/Utils/Tools.cs @@ -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 } } diff --git a/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj b/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj index 5787312..081ead9 100644 --- a/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj +++ b/ChanSort.Loader.LG/ChanSort.Loader.LG.csproj @@ -10,7 +10,7 @@ Properties ChanSort.Loader.LG ChanSort.Loader.LG - v3.5 + v4.0 512 @@ -56,9 +56,9 @@ true - - - + + + @@ -73,6 +73,7 @@ + Form diff --git a/ChanSort.Loader.LG/ChanSort.Loader.LG.ini b/ChanSort.Loader.LG/ChanSort.Loader.LG.ini index c50aee8..97aaae0 100644 --- a/ChanSort.Loader.LG/ChanSort.Loader.LG.ini +++ b/ChanSort.Loader.LG/ChanSort.Loader.LG.ini @@ -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 diff --git a/ChanSort.Loader.LG/LnbConfig.cs b/ChanSort.Loader.LG/LnbConfig.cs new file mode 100644 index 0000000..179056f --- /dev/null +++ b/ChanSort.Loader.LG/LnbConfig.cs @@ -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]; + } + } +} diff --git a/ChanSort.Loader.LG/PresetProgramNrDialog.resx b/ChanSort.Loader.LG/PresetProgramNrDialog.resx index 2d00e34..8cae940 100644 --- a/ChanSort.Loader.LG/PresetProgramNrDialog.resx +++ b/ChanSort.Loader.LG/PresetProgramNrDialog.resx @@ -121,8 +121,8 @@ Top, Left, Right - - + + Vertical @@ -143,7 +143,7 @@ labelControl1 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -157,7 +157,7 @@ Tahoma, 8.25pt, style=Bold - + Vertical @@ -176,7 +176,7 @@ labelControl3 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -190,7 +190,7 @@ Tahoma, 8.25pt, style=Bold - + Vertical @@ -209,7 +209,7 @@ labelControl4 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -220,7 +220,7 @@ Top, Left, Right - + Vertical @@ -239,7 +239,7 @@ labelControl5 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -250,7 +250,7 @@ Top, Left, Right - + Vertical @@ -269,7 +269,7 @@ labelControl6 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -280,7 +280,7 @@ Top, Left, Right - + Vertical @@ -299,7 +299,7 @@ labelControl7 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -353,7 +353,7 @@ btnOk - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -364,7 +364,7 @@ Top, Left, Right - + Vertical @@ -383,7 +383,7 @@ labelControl2 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -410,6 +410,6 @@ PresetProgramNrDialog - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/ChanSort.Loader.LG/Properties/licenses.licx b/ChanSort.Loader.LG/Properties/licenses.licx index 1694bc1..e69de29 100644 --- a/ChanSort.Loader.LG/Properties/licenses.licx +++ b/ChanSort.Loader.LG/Properties/licenses.licx @@ -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 diff --git a/ChanSort.Loader.LG/Resource.Designer.cs b/ChanSort.Loader.LG/Resource.Designer.cs index b2b1f3c..ddf11d3 100644 --- a/ChanSort.Loader.LG/Resource.Designer.cs +++ b/ChanSort.Loader.LG/Resource.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // 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. diff --git a/ChanSort.Loader.LG/SatChannel.cs b/ChanSort.Loader.LG/SatChannel.cs index 9d4109e..c4f94ed 100644 --- a/ChanSort.Loader.LG/SatChannel.cs +++ b/ChanSort.Loader.LG/SatChannel.cs @@ -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; + } } } diff --git a/ChanSort.Loader.LG/TllChannelBase.cs b/ChanSort.Loader.LG/TllChannelBase.cs index e78195c..59731e8 100644 --- a/ChanSort.Loader.LG/TllChannelBase.cs +++ b/ChanSort.Loader.LG/TllChannelBase.cs @@ -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; } } } } diff --git a/ChanSort.Loader.LG/TllFileSerializer.cs b/ChanSort.Loader.LG/TllFileSerializer.cs index f07adac..65e1028 100644 --- a/ChanSort.Loader.LG/TllFileSerializer.cs +++ b/ChanSort.Loader.LG/TllFileSerializer.cs @@ -24,6 +24,7 @@ namespace ChanSort.Loader.LG private readonly MappingPool dvbsMappings = new MappingPool("DVB-S Channel"); private readonly MappingPool dvbsTransponderMappings = new MappingPool("DVB-S Transponder"); private readonly MappingPool firmwareMappings = new MappingPool("Firmware"); + private readonly MappingPool lnbMappings = new MappingPool("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; icbHbbTv - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOption @@ -166,7 +166,7 @@ cbCustomCountry - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOption @@ -177,8 +177,8 @@ 72, 29 - - + + Combo @@ -191,7 +191,7 @@ comboBoxEdit1 - DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOption @@ -215,7 +215,7 @@ labelControl1 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOption @@ -242,7 +242,7 @@ grpOption - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -269,7 +269,7 @@ btnOk - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -296,7 +296,7 @@ btnCancel - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -304,8 +304,8 @@ 2 - - + + Vertical @@ -324,7 +324,7 @@ labelControl3 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpHotelMode @@ -348,7 +348,7 @@ labelControl2 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpHotelMode @@ -375,7 +375,7 @@ cbDtvUpdate - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpHotelMode @@ -402,7 +402,7 @@ cbHotelMode - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpHotelMode @@ -429,7 +429,7 @@ grpHotelMode - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -456,7 +456,7 @@ cbAutoChannelUpdate - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpSetup @@ -483,7 +483,7 @@ grpSetup - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -491,7 +491,7 @@ 5 - + Vertical @@ -510,7 +510,7 @@ labelControl4 - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpInformation @@ -537,7 +537,7 @@ grpInformation - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -567,7 +567,7 @@ lblHotelMenuAutoDetect - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -594,6 +594,6 @@ TvSettingsForm - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/ChanSort.Loader.Panasonic/ChanSort.Loader.Panasonic.csproj b/ChanSort.Loader.Panasonic/ChanSort.Loader.Panasonic.csproj index ac789b9..5ff604b 100644 --- a/ChanSort.Loader.Panasonic/ChanSort.Loader.Panasonic.csproj +++ b/ChanSort.Loader.Panasonic/ChanSort.Loader.Panasonic.csproj @@ -10,7 +10,7 @@ Properties ChanSort.Loader.Panasonic ChanSort.Loader.Panasonic - v3.5 + v4.0 512 diff --git a/ChanSort.Loader.Panasonic/Serializer.cs b/ChanSort.Loader.Panasonic/Serializer.cs index 31b51c9..7c95c73 100644 --- a/ChanSort.Loader.Panasonic/Serializer.cs +++ b/ChanSort.Loader.Panasonic/Serializer.cs @@ -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)) diff --git a/ChanSort.Loader.Samsung/ChanSort.Loader.Samsung.csproj b/ChanSort.Loader.Samsung/ChanSort.Loader.Samsung.csproj index 3e9538f..fc1235e 100644 --- a/ChanSort.Loader.Samsung/ChanSort.Loader.Samsung.csproj +++ b/ChanSort.Loader.Samsung/ChanSort.Loader.Samsung.csproj @@ -10,7 +10,7 @@ Properties ChanSort.Loader.Samsung ChanSort.Loader.Samsung - v3.5 + v4.0 512 diff --git a/ChanSort.Loader.Toshiba/ChanSort.Loader.Toshiba.csproj b/ChanSort.Loader.Toshiba/ChanSort.Loader.Toshiba.csproj index 770f0b2..d694590 100644 --- a/ChanSort.Loader.Toshiba/ChanSort.Loader.Toshiba.csproj +++ b/ChanSort.Loader.Toshiba/ChanSort.Loader.Toshiba.csproj @@ -10,7 +10,7 @@ Properties ChanSort.Loader.Toshiba ChanSort.Loader.Toshiba - v3.5 + v4.0 512 diff --git a/ChanSort/AboutForm.resx b/ChanSort/AboutForm.resx index 2a7b249..d0738ef 100644 --- a/ChanSort/AboutForm.resx +++ b/ChanSort/AboutForm.resx @@ -117,8 +117,8 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + + Vertical @@ -139,7 +139,7 @@ lblWebsite - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -170,7 +170,7 @@ lnkDownload - DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -194,7 +194,7 @@ gcPlugins - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a horst@beham.biz @@ -215,7 +215,7 @@ lnkEmail - DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -223,7 +223,7 @@ 7 - + Vertical @@ -242,7 +242,7 @@ lblAuthor - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -250,7 +250,7 @@ 6 - + Vertical @@ -269,7 +269,7 @@ lblLicense - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -299,7 +299,7 @@ lnkLicense - DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.HyperLinkEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -307,7 +307,7 @@ 4 - + Vertical @@ -326,7 +326,7 @@ lblCredits - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -350,7 +350,7 @@ txtCredits - DevExpress.XtraEditors.MemoEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.MemoEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -377,7 +377,7 @@ btnClose - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -401,7 +401,7 @@ txtAuthor - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -428,30 +428,30 @@ gvPlugins - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colPlugin - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colDisplayText - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colFileTypes - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a AboutForm - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/ChanSort/ActionBox.resx b/ChanSort/ActionBox.resx index dcf11f7..fb21e0a 100644 --- a/ChanSort/ActionBox.resx +++ b/ChanSort/ActionBox.resx @@ -125,8 +125,8 @@ Tahoma, 9pt - - + + Vertical @@ -146,7 +146,7 @@ lblMessage - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -160,8 +160,8 @@ 32, 32 - - + + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxMi4yLCBWZXJzaW9uPTEyLjIu OC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT @@ -459,12 +459,12 @@ imageCollection1 - DevExpress.Utils.ImageCollection, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.Utils.ImageCollection, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a ActionBoxDialog - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a \ No newline at end of file diff --git a/ChanSort/ChanSort.csproj b/ChanSort/ChanSort.csproj index 8a2fdd8..a9d71b7 100644 --- a/ChanSort/ChanSort.csproj +++ b/ChanSort/ChanSort.csproj @@ -10,7 +10,7 @@ Properties ChanSort.Ui ChanSort - v3.5 + v4.0 512 @@ -58,22 +58,25 @@ app.ico - + False - + False - + False - + False - + False - + + False + + False @@ -81,7 +84,7 @@ - + diff --git a/ChanSort/CharsetForm.resx b/ChanSort/CharsetForm.resx index 77cbdf6..9b00c74 100644 --- a/ChanSort/CharsetForm.resx +++ b/ChanSort/CharsetForm.resx @@ -138,13 +138,13 @@ btnCancel - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a 433, 446 - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a CharsetForm @@ -178,12 +178,12 @@ 0 - - + + Center - - + + None @@ -196,7 +196,7 @@ Top, Right - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a Fill @@ -211,10 +211,10 @@ $this - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colName @@ -259,7 +259,7 @@ gcCharset - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a Default character set for my country @@ -274,7 +274,7 @@ 353, 6 - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a 75, 23 @@ -337,7 +337,7 @@ - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a 433, 483 @@ -346,17 +346,17 @@ 142 - DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a True - - + + Default - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a True diff --git a/ChanSort/GlobalImageCollection.resx b/ChanSort/GlobalImageCollection.resx index 9eacb30..a387f7f 100644 --- a/ChanSort/GlobalImageCollection.resx +++ b/ChanSort/GlobalImageCollection.resx @@ -120,8 +120,8 @@ 17, 17 - - + + AAEAAAD/////AQAAAAAAAAAMAgAAAFpEZXZFeHByZXNzLlV0aWxzLnYxMi4yLCBWZXJzaW9uPTEyLjIu OC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEMAwAAAFFT diff --git a/ChanSort/MainForm.Designer.cs b/ChanSort/MainForm.Designer.cs index 9544aa4..23d7d38 100644 --- a/ChanSort/MainForm.Designer.cs +++ b/ChanSort/MainForm.Designer.cs @@ -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; } } diff --git a/ChanSort/MainForm.cs b/ChanSort/MainForm.cs index c90c85a..7239797 100644 --- a/ChanSort/MainForm.cs +++ b/ChanSort/MainForm.cs @@ -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 LoadSerializerPlugins() { var list = new List(); - 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 + } } diff --git a/ChanSort/MainForm.de.resx b/ChanSort/MainForm.de.resx index 1234960..21d9238 100644 --- a/ChanSort/MainForm.de.resx +++ b/ChanSort/MainForm.de.resx @@ -167,7 +167,7 @@ Referenzliste öffnen... - Referenzliste speichern + Referenzliste speichern... Excel liste exportieren... @@ -253,8 +253,8 @@ &Über ChanSort... - - + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA @@ -264,7 +264,7 @@ Xxl+0wEL - + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA @@ -274,7 +274,7 @@ KphCYAEL - + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA @@ -284,7 +284,7 @@ ZMgcwAEL - + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA diff --git a/ChanSort/MainForm.pt.resx b/ChanSort/MainForm.pt.resx index 92c78a6..bb8eaa7 100644 --- a/ChanSort/MainForm.pt.resx +++ b/ChanSort/MainForm.pt.resx @@ -62,9 +62,9 @@ - - - + + + Tipo serviço @@ -194,8 +194,8 @@ &Sobre ChanSort... - - + + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA @@ -205,7 +205,7 @@ Xxl+0wEL - + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA @@ -215,7 +215,7 @@ KphCYAEL - + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA @@ -225,7 +225,7 @@ ZMgcwAEL - + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy LjIuNi4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA diff --git a/ChanSort/MainForm.resx b/ChanSort/MainForm.resx index d9d7c5a..5d21496 100644 --- a/ChanSort/MainForm.resx +++ b/ChanSort/MainForm.resx @@ -112,20 +112,20 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + Fill - + 0, 108 - + 361, 17 @@ -146,7 +146,7 @@ Service Type - + True @@ -189,15 +189,15 @@ False - - + + Combo - - + + RegEx @@ -230,7 +230,7 @@ False - + Numeric @@ -243,7 +243,7 @@ gridLeft - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOutputList @@ -273,7 +273,7 @@ lblHotkeyLeft - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOutputList @@ -281,10 +281,10 @@ 1 - + 600, 17 - + True @@ -309,7 +309,7 @@ pageProgNr - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabSubList @@ -327,7 +327,7 @@ tabSubList - DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpSubList @@ -357,7 +357,7 @@ grpSubList - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -368,7 +368,7 @@ 256, 6 - + 475, 17 @@ -395,8 +395,11 @@ Load reference list... + + Add channels from reference list... + - Save reference list + Save reference list... Export Excel list... @@ -509,41 +512,41 @@ Tools - - + + - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMy4xLCBWZXJzaW9uPTEz + LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEZpbGUE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICKaPJ5gsBeU2NTSFe Xxl+0wEL - + - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMy4xLCBWZXJzaW9uPTEz + LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEhlbHAE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICdEVVDegwMU2acNpw KphCYAEL - + - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMy4xLCBWZXJzaW9uPTEz + LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAABEVkaXQE/P///wtTeXN0ZW0uR3VpZAsAAAACX2ECX2IC X2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICZMTu18lZRU+IqmAu ZMgcwAEL - + - AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMi4yLCBWZXJzaW9uPTEy - LjIuOC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA + AAEAAAD/////AQAAAAAAAAAMAgAAAF1EZXZFeHByZXNzLlh0cmFCYXJzLnYxMy4xLCBWZXJzaW9uPTEz + LjEuNS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI4OGQxNzU0ZDcwMGU0OWEFAQAA ACZEZXZFeHByZXNzLlh0cmFCYXJzLkJhck1hbmFnZXJDYXRlZ29yeQMAAAAETmFtZQRHdWlkB1Zpc2li bGUBAwALU3lzdGVtLkd1aWQBAgAAAAYDAAAAB09wdGlvbnME/P///wtTeXN0ZW0uR3VpZAsAAAACX2EC X2ICX2MCX2QCX2UCX2YCX2cCX2gCX2kCX2oCX2sAAAAAAAAAAAAAAAgHBwICAgICAgICXJMOh9nzAkKc @@ -563,7 +566,7 @@ barDockControlTop - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -584,7 +587,7 @@ barDockControlBottom - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -605,7 +608,7 @@ barDockControlLeft - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -626,7 +629,7 @@ barDockControlRight - DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarDockControl, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -643,8 +646,8 @@ swap - - + + Default @@ -657,7 +660,7 @@ rbInsertSwap - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpTopPanel @@ -684,7 +687,7 @@ rbInsertAfter - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpTopPanel @@ -708,7 +711,7 @@ rbInsertBefore - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpTopPanel @@ -738,7 +741,7 @@ cbCloseGap - DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpTopPanel @@ -762,7 +765,7 @@ lblInsertMode - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpTopPanel @@ -789,7 +792,7 @@ picDonate - DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpTopPanel @@ -813,7 +816,7 @@ pageEmpty - DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraTab.XtraTabPage, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a tabChannelList @@ -831,7 +834,7 @@ tabChannelList - DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraTab.XtraTabControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpTopPanel @@ -839,7 +842,7 @@ 6 - + Vertical @@ -861,7 +864,7 @@ lblSetProgramNr - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpTopPanel @@ -872,13 +875,13 @@ 437, 5 - + OK \d{1,4} - + RegEx @@ -891,7 +894,7 @@ txtSetSlot - DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpTopPanel @@ -918,7 +921,7 @@ grpTopPanel - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -936,67 +939,67 @@ dsChannels - System.Windows.Forms.BindingSource, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.BindingSource, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 gviewLeft - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colIndex1 - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colOutServiceType - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colOutSlot - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colOutName - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colOutFav - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a repositoryItemCheckedComboBoxEdit1 - DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colUid1 - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colOutLock - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a repositoryItemTextEdit1 - DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a globalImageCollection1 @@ -1008,502 +1011,508 @@ gviewRight - DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Views.Grid.GridView, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colIndex - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colSlotOld - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colSlotNew - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colName - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colShortName - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colFavorites - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a repositoryItemCheckedComboBoxEdit2 - DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.Repository.RepositoryItemCheckedComboBoxEdit, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colLock - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colSkip - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colHidden - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colEncrypted - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colChannelOrTransponder - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colFreqInMhz - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colServiceId - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colVideoPid - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colAudioPid - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colServiceType - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colServiceTypeName - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colSatellite - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colNetworkId - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colTransportStreamId - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colSymbolRate - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colPolarity - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colUid - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colNetworkName - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colNetworkOperator - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colDebug - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colLogicalIndex - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a colSignalSource - DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a barManager1 - 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 bar1 - DevExpress.XtraBars.Bar, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.Bar, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miFile - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miOpen - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miReload - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miRestoreOriginal - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miFileInformation - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miSave - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miSaveAs - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miOpenReferenceFile - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + + + miAddFromRefList + + + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miSaveReferenceFile - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miExcelExport - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miQuit - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miRecentFiles - DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miEdit - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miAddChannel - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miRemove - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miRenameChannel - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miSort - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miRenum - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a mnuFavSet - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miFavSet - DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a mnuFavUnset - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miFavUnset - DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miLockOn - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miLockOff - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miSkipOn - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miSkipOff - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miHideOn - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miHideOff - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a barSubItem2 - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miTvSettings - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miCleanupChannels - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a mnuOptions - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a barSubItem1 - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miEnglish - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miGerman - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miPortuguese - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a mnuCharset - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miCharsetForm - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miIsoCharSets - DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarListItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miShowWarningsAfterLoad - DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarCheckItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a mnuHelp - DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarSubItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miWiki - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miOpenWebsite - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miAbout - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miMoveUp - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a miMoveDown - DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a defaultLookAndFeel1 - DevExpress.LookAndFeel.DefaultLookAndFeel, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.LookAndFeel.DefaultLookAndFeel, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a splashScreenManager1 - DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraSplashScreen.SplashScreenManager, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a mnuContext - DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a timerEditDelay - System.Windows.Forms.Timer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 MainForm - DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a - 07/02/2013 20:57:05 + 07/19/2013 17:03:01 16, 16 @@ -1524,7 +1533,7 @@ btnToggleLock - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1548,7 +1557,7 @@ btnToggleFavE - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1572,7 +1581,7 @@ btnToggleFavD - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1596,7 +1605,7 @@ btnToggleFavC - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1620,7 +1629,7 @@ btnToggleFavB - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1644,7 +1653,7 @@ btnToggleFavA - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1674,7 +1683,7 @@ btnClearLeftFilter - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1701,7 +1710,7 @@ btnRenum - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1728,7 +1737,7 @@ btnDown - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1755,7 +1764,7 @@ btnUp - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1782,7 +1791,7 @@ btnRemoveLeft - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a pnlEditControls @@ -1806,7 +1815,7 @@ pnlEditControls - DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpOutputList @@ -1833,7 +1842,7 @@ grpOutputList - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a splitContainerControl1.Panel1 @@ -1916,13 +1925,13 @@ False - + Combo - + RegEx @@ -2166,7 +2175,7 @@ gridRight - DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpInputList @@ -2196,7 +2205,7 @@ lblHotkeyRight - DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpInputList @@ -2223,7 +2232,7 @@ btnRemoveRight - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a panelControl3 @@ -2250,7 +2259,7 @@ btnAddAll - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a panelControl3 @@ -2280,7 +2289,7 @@ btnClearRightFilter - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a panelControl3 @@ -2307,7 +2316,7 @@ btnAdd - DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SimpleButton, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a panelControl3 @@ -2331,7 +2340,7 @@ panelControl3 - DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.PanelControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a grpInputList @@ -2358,7 +2367,7 @@ grpInputList - DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.GroupControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a splitContainerControl1.Panel2 @@ -2382,7 +2391,7 @@ splitContainerControl1 - DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraEditors.SplitContainerControl, DevExpress.Utils.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a $this @@ -2390,13 +2399,13 @@ 0 - + 194, 17 - + 781, 17 - + 900, 17 \ No newline at end of file diff --git a/ChanSort/Properties/Resources.Designer.cs b/ChanSort/Properties/Resources.Designer.cs index ded89f6..4370e2a 100644 --- a/ChanSort/Properties/Resources.Designer.cs +++ b/ChanSort/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // 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 { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// internal static System.Drawing.Bitmap Donate { get { object obj = ResourceManager.GetObject("Donate", resourceCulture); diff --git a/ChanSort/Properties/Settings.Designer.cs b/ChanSort/Properties/Settings.Designer.cs index 0ddbaf9..ed728d7 100644 --- a/ChanSort/Properties/Settings.Designer.cs +++ b/ChanSort/Properties/Settings.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // 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. diff --git a/ChanSort/Properties/licenses.licx b/ChanSort/Properties/licenses.licx index e0298cf..ff64f1a 100644 --- a/ChanSort/Properties/licenses.licx +++ b/ChanSort/Properties/licenses.licx @@ -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 diff --git a/ChanSort/WaitForm1.resx b/ChanSort/WaitForm1.resx index 5d6673c..f997a62 100644 --- a/ChanSort/WaitForm1.resx +++ b/ChanSort/WaitForm1.resx @@ -145,7 +145,7 @@ 0, 14, 0, 14 - DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraWaitForm.WaitForm, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a WaitForm1 @@ -227,7 +227,7 @@ Horizontal - DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v12.2, Version=12.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + DevExpress.XtraWaitForm.ProgressPanel, DevExpress.XtraEditors.v13.1, Version=13.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a Horizontal diff --git a/ChanSort/app.config b/ChanSort/app.config index b7cc4c8..5f7ac01 100644 --- a/ChanSort/app.config +++ b/ChanSort/app.config @@ -6,7 +6,7 @@
- + 0 @@ -15,37 +15,37 @@ 0 - + - + - + - + - + - + - + - + - + - + - + False @@ -54,13 +54,13 @@ 0, 0 - + - + - + 0 @@ -81,19 +81,19 @@ True - + - + - + - + - + diff --git a/DLL/System.Data.SQLite.dll b/DLL/System.Data.SQLite.dll index 970f07d..2652b9b 100644 Binary files a/DLL/System.Data.SQLite.dll and b/DLL/System.Data.SQLite.dll differ diff --git a/DLL/System.Data.SQLite.xml b/DLL/System.Data.SQLite.xml deleted file mode 100644 index 65e9cf7..0000000 --- a/DLL/System.Data.SQLite.xml +++ /dev/null @@ -1,5365 +0,0 @@ - - - - System.Data.SQLite - - - - - This is the method signature for the SQLite core library logging callback - function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. - - WARNING: This delegate is used more-or-less directly by native code, do - not modify its type signature. - - - The extra data associated with this message, if any. - - - The error code associated with this message. - - - The message string to be logged. - - - - - This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET - - - - - This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement - a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. - - - - - This base class provides datatype conversion services for the SQLite provider. - - - - - The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. - - - - - The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). - - - - - The value of the OLE Automation epoch represented as a Julian day. - - - - - An array of ISO8601 datetime formats we support conversion from - - - - - The internal default format for UTC DateTime values when converting - to a string. - - - - - The internal default format for local DateTime values when converting - to a string. - - - - - An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 - - - - - The default DateTime format for this instance - - - - - The default DateTimeKind for this instance. - - - - - Initializes the conversion class - - The default date/time format to use for this instance - The DateTimeKind to use. - - - - Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. - - The string to convert to UTF-8 - A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. - - - - Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. - - - This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the - string result. - - The DateTime to convert. - The UTF-8 encoded string, including a 0 terminating byte at the end of the array. - - - - Converts a UTF-8 encoded IntPtr of the specified length into a .NET string - - The pointer to the memory where the UTF-8 string is encoded - The number of bytes to decode - A string containing the translated character(s) - - - - Converts a UTF-8 encoded IntPtr of the specified length into a .NET string - - The pointer to the memory where the UTF-8 string is encoded - The number of bytes to decode - A string containing the translated character(s) - - - - Converts a string into a DateTime, using the current DateTimeFormat specified for the connection when it was opened. - - - Acceptable ISO8601 DateTime formats are: - - THHmmssK - THHmmK - HH:mm:ss.FFFFFFFK - HH:mm:ssK - HH:mmK - yyyy-MM-dd HH:mm:ss.FFFFFFFK - yyyy-MM-dd HH:mm:ssK - yyyy-MM-dd HH:mmK - yyyy-MM-ddTHH:mm:ss.FFFFFFFK - yyyy-MM-ddTHH:mmK - yyyy-MM-ddTHH:mm:ssK - yyyyMMddHHmmssK - yyyyMMddHHmmK - yyyyMMddTHHmmssFFFFFFFK - THHmmss - THHmm - HH:mm:ss.FFFFFFF - HH:mm:ss - HH:mm - yyyy-MM-dd HH:mm:ss.FFFFFFF - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd HH:mm - yyyy-MM-ddTHH:mm:ss.FFFFFFF - yyyy-MM-ddTHH:mm - yyyy-MM-ddTHH:mm:ss - yyyyMMddHHmmss - yyyyMMddHHmm - yyyyMMddTHHmmssFFFFFFF - yyyy-MM-dd - yyyyMMdd - yy-MM-dd - - If the string cannot be matched to one of the above formats, an exception will be thrown. - - The string containing either a long integer number of 100-nanosecond units since - System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a - culture-independent formatted date and time string, a formatted date and time string in the current - culture, or an ISO8601-format string. - A DateTime value - - - - Converts a string into a DateTime, using the specified DateTimeFormat and DateTimeKind. - - - Acceptable ISO8601 DateTime formats are: - - THHmmssK - THHmmK - HH:mm:ss.FFFFFFFK - HH:mm:ssK - HH:mmK - yyyy-MM-dd HH:mm:ss.FFFFFFFK - yyyy-MM-dd HH:mm:ssK - yyyy-MM-dd HH:mmK - yyyy-MM-ddTHH:mm:ss.FFFFFFFK - yyyy-MM-ddTHH:mmK - yyyy-MM-ddTHH:mm:ssK - yyyyMMddHHmmssK - yyyyMMddHHmmK - yyyyMMddTHHmmssFFFFFFFK - THHmmss - THHmm - HH:mm:ss.FFFFFFF - HH:mm:ss - HH:mm - yyyy-MM-dd HH:mm:ss.FFFFFFF - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd HH:mm - yyyy-MM-ddTHH:mm:ss.FFFFFFF - yyyy-MM-ddTHH:mm - yyyy-MM-ddTHH:mm:ss - yyyyMMddHHmmss - yyyyMMddHHmm - yyyyMMddTHHmmssFFFFFFF - yyyy-MM-dd - yyyyMMdd - yy-MM-dd - - If the string cannot be matched to one of the above formats, an exception will be thrown. - - The string containing either a long integer number of 100-nanosecond units since - System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a - culture-independent formatted date and time string, a formatted date and time string in the current - culture, or an ISO8601-format string. - The SQLiteDateFormats to use. - The DateTimeKind to use. - A DateTime value - - - - Converts a julianday value into a DateTime - - The value to convert - A .NET DateTime - - - - Converts a julianday value into a DateTime - - The value to convert - The DateTimeKind to use. - A .NET DateTime - - - - Converts a DateTime struct to a JulianDay double - - The DateTime to convert - The JulianDay value the Datetime represents - - - - Converts a DateTime struct to the whole number of seconds since the - Unix epoch. - - The DateTime to convert - The whole number of seconds since the Unix epoch - - - - Returns the default DateTime format string to use for the specified - DateTimeKind. - - The DateTimeKind to use. - - The default DateTime format string to use for the specified DateTimeKind. - - - - - Converts a DateTime to a string value, using the current DateTimeFormat specified for the connection when it was opened. - - The DateTime value to convert - Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a - Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time - string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. - - - - Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. - - - This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls - ToDateTime() on the string to return a DateTime. - - A pointer to the UTF-8 encoded string - The length in bytes of the string - The parsed DateTime value - - - - Smart method of splitting a string. Skips quoted elements, removes the quotes. - - - This split function works somewhat like the String.Split() function in that it breaks apart a string into - pieces and returns the pieces as an array. The primary differences are: - - Only one character can be provided as a separator character - Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. - - Thus, if splitting the following string looking for a comma:
- One,Two, "Three, Four", Five
-
- The resulting array would contain
- [0] One
- [1] Two
- [2] Three, Four
- [3] Five
-
- Note that the leading and trailing spaces were removed from each item during the split. -
- Source string to split apart - Separator character - A string array of the split up elements -
- - - Convert a value to true or false. - - A string or number representing true or false - - - - - Convert a string to true or false. - - A string representing true or false - - - "yes", "no", "y", "n", "0", "1", "on", "off" as well as Boolean.FalseString and Boolean.TrueString will all be - converted to a proper boolean value. - - - - - Determines the data type of a column in a statement - - The statement to retrieve information for - The column to retrieve type information on - The SQLiteType to receive the affinity for the given column - - - - Converts a SQLiteType to a .NET Type object - - The SQLiteType to convert - Returns a .NET Type object - - - - For a given intrinsic type, return a DbType - - The native type to convert - The corresponding (closest match) DbType - - - - Returns the ColumnSize for the given DbType - - The DbType to get the size of - - - - - Convert a DbType to a Type - - The DbType to convert from - The closest-match .NET type - - - - For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. - - The type to evaluate - The SQLite type affinity for that type. - - - - For a given type name, return a closest-match .NET type - - The name of the type to match - The .NET DBType the text evaluates to. - - - - Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. - If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is - global to the process. - - Non-zero to enable memory usage tracking, zero otherwise. - A standard SQLite return code (i.e. zero for success and non-zero for failure). - - - - Shutdown the SQLite engine so that it can be restarted with different config options. - We depend on auto initialization to recover. - - - - - Returns non-zero if a database connection is open. - - - - - - Opens a database. - - - Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection - to bind all attributed user-defined functions and collating sequences to the new connection. - - The filename of the database to open. SQLite automatically creates it if it doesn't exist. - The flags associated with the parent connection object - The open flags to use when creating the connection - The maximum size of the pool for the given filename - If true, the connection can be pulled from the connection pool - - - - Closes the currently-open database. - - - After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated - memory associated with the user-defined functions and collating sequences tied to the closed connection. - - Non-zero if the operation is allowed to throw exceptions, zero otherwise. - - - - Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. - - The number of milliseconds to wait before returning SQLITE_BUSY - - - - Returns the text of the last error issued by SQLite - - - - - - When pooling is enabled, force this connection to be disposed rather than returned to the pool - - - - - When pooling is enabled, returns the number of pool entries matching the current file name. - - The number of pool entries matching the current file name. - - - - Prepares a SQL statement for execution. - - The source connection preparing the command. Can be null for any caller except LINQ - The SQL command text to prepare - The previous statement in a multi-statement command, or null if no previous statement exists - The timeout to wait before aborting the prepare - The remainder of the statement that was not processed. Each call to prepare parses the - SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned - here for a subsequent call to Prepare() until all the text has been processed. - Returns an initialized SQLiteStatement. - - - - Steps through a prepared statement. - - The SQLiteStatement to step through - True if a row was returned, False if not. - - - - Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, - transparently attempt to rebuild the SQL statement and throw an error if that was not possible. - - The statement to reset - Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock - - - - Enables or disabled extension loading by SQLite. - - - True to enable loading of extensions, false to disable. - - - - - Loads a SQLite extension library from the named file. - - - The name of the dynamic link library file containing the extension. - - - The name of the exported function used to initialize the extension. - If null, the default "sqlite3_extension_init" will be used. - - - - - Enables or disabled extened result codes returned by SQLite - - true to enable extended result codes, false to disable. - - - - - Returns the numeric result code for the most recent failed SQLite API call - associated with the database connection. - - Result code - - - - Returns the extended numeric result code for the most recent failed SQLite API call - associated with the database connection. - - Extended result code - - - - Add a log message via the SQLite sqlite3_log interface. - - Error code to be logged with the message. - String to be logged. Unlike the SQLite sqlite3_log() - interface, this should be pre-formatted. Consider using the - String.Format() function. - - - - - Checks if the SQLite core library has been initialized in the current process. - - - Non-zero if the SQLite core library has been initialized in the current process, - zero otherwise. - - - - - Creates a new SQLite backup object based on the provided destination - database connection. The source database connection is the one - associated with this object. The source and destination database - connections cannot be the same. - - The destination database connection. - The destination database name. - The source database name. - The newly created backup object. - - - - Copies up to N pages from the source database to the destination - database associated with the specified backup object. - - The backup object to use. - - The number of pages to copy or negative to copy all remaining pages. - - - Set to true if the operation needs to be retried due to database - locking issues. - - - True if there are more pages to be copied, false otherwise. - - - - - Returns the number of pages remaining to be copied from the source - database to the destination database associated with the specified - backup object. - - The backup object to check. - The number of pages remaining to be copied. - - - - Returns the total number of pages in the source database associated - with the specified backup object. - - The backup object to check. - The total number of pages in the source database. - - - - Destroys the backup object, rolling back any backup that may be in - progess. - - The backup object to destroy. - - - - Returns the error message for the specified SQLite return code using - the internal static lookup table. - - The SQLite return code. - The error message or null if it cannot be found. - - - - Returns the error message for the specified SQLite return code using - the sqlite3_errstr() function, falling back to the internal lookup - table if necessary. - - The SQLite return code. - The error message or null if it cannot be found. - - - - Returns a string representing the active version of SQLite - - - - - Returns an integer representing the active version of SQLite - - - - - Returns the rowid of the most recent successful INSERT into the database from this connection. - - - - - Returns the number of changes the last executing insert/update caused. - - - - - Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection - value, it is global to the process. - - - - - Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. - This is not really a per-connection value, it is global to the process. - - - - - The opaque pointer returned to us by the sqlite provider - - - - - The user-defined functions registered on this connection - - - - - Shutdown the SQLite engine so that it can be restarted with different config options. - We depend on auto initialization to recover. - - Returns a result code - - - - Enables or disabled extension loading by SQLite. - - - True to enable loading of extensions, false to disable. - - - - - Loads a SQLite extension library from the named file. - - - The name of the dynamic link library file containing the extension. - - - The name of the exported function used to initialize the extension. - If null, the default "sqlite3_extension_init" will be used. - - - - Enables or disabled extended result codes returned by SQLite - - - Gets the last SQLite error code - - - Gets the last SQLite extended error code - - - Add a log message via the SQLite sqlite3_log interface. - - - - Allows the setting of a logging callback invoked by SQLite when a - log event occurs. Only one callback may be set. If NULL is passed, - the logging callback is unregistered. - - The callback function to invoke. - Returns a result code - - - - Creates a new SQLite backup object based on the provided destination - database connection. The source database connection is the one - associated with this object. The source and destination database - connections cannot be the same. - - The destination database connection. - The destination database name. - The source database name. - The newly created backup object. - - - - Copies up to N pages from the source database to the destination - database associated with the specified backup object. - - The backup object to use. - - The number of pages to copy, negative to copy all remaining pages. - - - Set to true if the operation needs to be retried due to database - locking issues; otherwise, set to false. - - - True if there are more pages to be copied, false otherwise. - - - - - Returns the number of pages remaining to be copied from the source - database to the destination database associated with the specified - backup object. - - The backup object to check. - The number of pages remaining to be copied. - - - - Returns the total number of pages in the source database associated - with the specified backup object. - - The backup object to check. - The total number of pages in the source database. - - - - Destroys the backup object, rolling back any backup that may be in - progess. - - The backup object to destroy. - - - - Determines if the SQLite core library has been initialized for the - current process. - - - A boolean indicating whether or not the SQLite core library has been - initialized for the current process. - - - - - Determines if the SQLite core library has been initialized for the - current process. - - - A boolean indicating whether or not the SQLite core library has been - initialized for the current process. - - - - - Helper function to retrieve a column of data from an active statement. - - The statement being step()'d through - The column index to retrieve - The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. - Returns the data in the column - - - - Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) - - - - - Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 - - A pointer to a UTF-16 string - The length (IN BYTES) of the string - A .NET string - - - - Represents a single SQL backup in SQLite. - - - - - The underlying SQLite object this backup is bound to. - - - - - The actual backup handle. - - - - - The destination database for the backup. - - - - - The destination database name for the backup. - - - - - The source database for the backup. - - - - - The source database name for the backup. - - - - - The last result from the StepBackup method of the SQLite3 class. - This is used to determine if the call to the FinishBackup method of - the SQLite3 class should throw an exception when it receives a non-Ok - return code from the core SQLite library. - - - - - Initializes the backup. - - The base SQLite object. - The backup handle. - The destination database for the backup. - The destination database name for the backup. - The source database for the backup. - The source database name for the backup. - - - - Disposes and finalizes the backup. - - - - - The extra behavioral flags that can be applied to a connection. - - - - - No extra flags. - - - - - Enable logging of all SQL statements to be prepared. - - - - - Enable logging of all bound parameter types and raw values. - - - - - Enable logging of all bound parameter strongly typed values. - - - - - Enable logging of all exceptions caught from user-provided - managed code called from native code via delegates. - - - - - Enable logging of backup API errors. - - - - - Skip adding the extension functions provided by the native - interop assembly. - - - - - Enable all logging. - - - - - The default extra flags for new connections. - - - - - SQLite implementation of DbCommand. - - - - - The command text this command is based on - - - - - The connection the command is associated with - - - - - The version of the connection the command is associated with - - - - - Indicates whether or not a DataReader is active on the command. - - - - - The timeout for the command, kludged because SQLite doesn't support per-command timeout values - - - - - Designer support - - - - - Used by DbDataAdapter to determine updating behavior - - - - - The collection of parameters for the command - - - - - The SQL command text, broken into individual SQL statements as they are executed - - - - - Unprocessed SQL text that has not been executed - - - - - Transaction associated with this command - - - - - Constructs a new SQLiteCommand - - - Default constructor - - - - - Initializes the command with the given command text - - The SQL command text - - - - Initializes the command with the given SQL command text and attach the command to the specified - connection. - - The SQL command text - The connection to associate with the command - - - - Initializes the command and associates it with the specified connection. - - The connection to associate with the command - - - - Initializes a command with the given SQL, connection and transaction - - The SQL command text - The connection to associate with the command - The transaction the command should be associated with - - - - Disposes of the command and clears all member variables - - Whether or not the class is being explicitly or implicitly disposed - - - - Clears and destroys all statements currently prepared - - - - - Builds an array of prepared statements for each complete SQL statement in the command text - - - - - Not implemented - - - - - Forwards to the local CreateParameter() function - - - - - - Create a new parameter - - - - - - This function ensures there are no active readers, that we have a valid connection, - that the connection is open, that all statements are prepared and all parameters are assigned - in preparation for allocating a data reader. - - - - - Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements - - The behavior the data reader should adopt - Returns a SQLiteDataReader object - - - - Overrides the default behavior to return a SQLiteDataReader specialization class - - The flags to be associated with the reader - A SQLiteDataReader - - - - Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class - - A SQLiteDataReader - - - - Called by the SQLiteDataReader when the data reader is closed. - - - - - Execute the command and return the number of rows inserted/updated affected by it. - - - - - - Execute the command and return the first column of the first row of the resultset - (if present), or null if no resultset was returned. - - The first column of the first row of the first resultset from the query - - - - Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. - - - - - Clones a command, including all its parameters - - A new SQLiteCommand with the same commandtext, connection and parameters - - - - The SQL command text associated with the command - - - - - The amount of time to wait for the connection to become available before erroring out - - - - - The type of the command. SQLite only supports CommandType.Text - - - - - The connection associated with this command - - - - - Forwards to the local Connection property - - - - - Returns the SQLiteParameterCollection for the given command - - - - - Forwards to the local Parameters property - - - - - The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the - command's underlying connection. - - - - - Forwards to the local Transaction property - - - - - Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. - - - - - Determines if the command is visible at design time. Defaults to True. - - - - - SQLite implementation of DbCommandBuilder. - - - - - Default constructor - - - - - Initializes the command builder and associates it with the specified data adapter. - - - - - - Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema - - The parameter to use in applying custom behaviors to a row - The row to apply the parameter to - The type of statement - Whether the application of the parameter is part of a WHERE clause - - - - Returns a valid named parameter - - The name of the parameter - Error - - - - Returns a named parameter for the given ordinal - - The i of the parameter - Error - - - - Returns a placeholder character for the specified parameter i. - - The index of the parameter to provide a placeholder for - Returns a named parameter - - - - Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL - statements that may not have previously been generated. - - A data adapter to receive events on. - - - - Returns the automatically-generated SQLite command to delete rows from the database - - - - - - Returns the automatically-generated SQLite command to delete rows from the database - - - - - - - Returns the automatically-generated SQLite command to update rows in the database - - - - - - Returns the automatically-generated SQLite command to update rows in the database - - - - - - - Returns the automatically-generated SQLite command to insert rows into the database - - - - - - Returns the automatically-generated SQLite command to insert rows into the database - - - - - - - Places brackets around an identifier - - The identifier to quote - The bracketed identifier - - - - Removes brackets around an identifier - - The quoted (bracketed) identifier - The undecorated identifier - - - - Override helper, which can help the base command builder choose the right keys for the given query - - - - - - - Gets/sets the DataAdapter for this CommandBuilder - - - - - Overridden to hide its property from the designer - - - - - Overridden to hide its property from the designer - - - - - Overridden to hide its property from the designer - - - - - Overridden to hide its property from the designer - - - - - Overridden to hide its property from the designer - - - - - Event data for connection event handlers. - - - - - The type of event being raised. - - - - - The associated with this event, if any. - - - - - The transaction associated with this event, if any. - - - - - The command associated with this event, if any. - - - - - Command or message text associated with this event, if any. - - - - - Extra data associated with this event, if any. - - - - - Constructs the object. - - The type of event being raised. - The base associated - with this event, if any. - The transaction associated with this event, if any. - The command associated with this event, if any. - The command or message text, if any. - The extra data, if any. - - - - Raised when an event pertaining to a connection occurs. - - The connection involved. - Extra information about the event. - - - - SQLite implentation of DbConnection. - - - The property can contain the following parameter(s), delimited with a semi-colon: - - - Parameter - Values - Required - Default - - - Data Source - This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). - Y - - - - Version - 3 - N - 3 - - - UseUTF16Encoding - True
False
- N - False -
- - DateTimeFormat - - Ticks - Use the value of DateTime.Ticks.
- ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC - DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
- JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
- UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
- InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
- CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
- N - ISO8601 -
- - DateTimeKind - Unspecified - Not specified as either UTC or local time.
Utc - The time represented is UTC.
Local - The time represented is local time.
- N - Unspecified -
- - BaseSchemaName - Some base data classes in the framework (e.g. those that build SQL queries dynamically) - assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting - alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used - as a placeholder and removed prior to preparing any SQL statements that may contain it. - N - sqlite_default_schema - - - BinaryGUID - True - Store GUID columns in binary form
False - Store GUID columns as text
- N - True -
- - Cache Size - {size in bytes} - N - 2000 - - - Synchronous - Normal - Normal file flushing behavior
Full - Full flushing after all writes
Off - Underlying OS flushes I/O's
- N - Full -
- - Page Size - {size in bytes} - N - 1024 - - - Password - {password} - Using this parameter requires that the CryptoAPI based codec be enabled at compile-time for both the native interop assembly and the core managed assemblies; otherwise, using this parameter may result in an exception being thrown when attempting to open the connection. - N - - - - Enlist - Y - Automatically enlist in distributed transactions
N - No automatic enlistment
- N - Y -
- - Pooling - True - Use connection pooling
False - Do not use connection pooling
- N - False -
- - FailIfMissing - True - Don't create the database if it does not exist, throw an error instead
False - Automatically create the database if it does not exist
- N - False -
- - Max Page Count - {size in pages} - Limits the maximum number of pages (limits the size) of the database - N - 0 - - - Legacy Format - True - Use the more compatible legacy 3.x database format
False - Use the newer 3.3x database format which compresses numbers more effectively
- N - False -
- - Default Timeout - {time in seconds}
The default command timeout
- N - 30 -
- - Journal Mode - Delete - Delete the journal file after a commit
Persist - Zero out and leave the journal file on disk after a commit
Off - Disable the rollback journal entirely
- N - Delete -
- - Read Only - True - Open the database for read only access
False - Open the database for normal read/write access
- N - False -
- - Max Pool Size - The maximum number of connections for the given connection string that can be in the connection pool - N - 100 - - - Default IsolationLevel - The default transaciton isolation level - N - Serializable - - - Foreign Keys - Enable foreign key constraints - N - False - - - Flags - Extra behavioral flags for the connection. See the enumeration for possible values. - N - Default - - - SetDefaults - - True - Apply the default connection settings to the opened database.
- False - Skip applying the default connection settings to the opened database. -
- N - True -
- - ToFullPath - - True - Attempt to expand the data source file name to a fully qualified path before opening.
- False - Skip attempting to expand the data source file name to a fully qualified path before opening. -
- N - True -
-
-
-
- - - The default "stub" (i.e. placeholder) base schema name to use when - returning column schema information. Used as the initial value of - the BaseSchemaName property. This should start with "sqlite_*" - because those names are reserved for use by SQLite (i.e. they cannot - be confused with the names of user objects). - - - - - Object used to synchronize access to the static instance data - for this class. - - - - - State of the current connection - - - - - The connection string - - - - - Nesting level of the transactions open on the connection - - - - - If set, then the connection is currently being disposed. - - - - - The default isolation level for new transactions - - - - - Whether or not the connection is enlisted in a distrubuted transaction - - - - - The base SQLite object to interop with - - - - - The database filename minus path and extension - - - - - Temporary password storage, emptied after the database has been opened - - - - - The "stub" (i.e. placeholder) base schema name to use when returning - column schema information. - - - - - The extra behavioral flags for this connection, if any. See the - enumeration for a list of - possible values. - - - - - Default command timeout - - - - - Non-zero if the built-in (i.e. framework provided) connection string - parser should be used when opening the connection. - - - - - Constructs a new SQLiteConnection object - - - Default constructor - - - - - Initializes the connection with the specified connection string. - - The connection string to use. - - - - Initializes the connection with the specified connection string. - - - The connection string to use on. - - - Non-zero to parse the connection string using the built-in (i.e. - framework provided) parser when opening the connection. - - - - - Clones the settings and connection string from an existing connection. If the existing connection is already open, this - function will open its own connection, enumerate any attached databases of the original connection, and automatically - attach to them. - - The connection to copy the settings from. - - - - Raises the event. - - - The connection associated with this event. - - - A that contains the event data. - - - - - Backs up the database, using the specified database connection as the - destination. - - The destination database connection. - The destination database name. - The source database name. - - The number of pages to copy or negative to copy all remaining pages. - - - The method to invoke between each step of the backup process. This - parameter may be null (i.e. no callbacks will be performed). - - - The number of milliseconds to sleep after encountering a locking error - during the backup process. A value less than zero means that no sleep - should be performed. - - - - - Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection - will also be opened. - - - - - - Creates a database file. This just creates a zero-byte file which SQLite - will turn into a database when the file is opened properly. - - The file to create - - - - Raises the state change event when the state of the connection changes - - The new connection state. If this is different - from the previous state, the event is - raised. - The event data created for the raised event, if - it was actually raised. - - - - OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. - - This parameter is ignored. - When TRUE, SQLite defers obtaining a write lock until a write operation is requested. - When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer - environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. - Returns a SQLiteTransaction object. - - - - OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. - - When TRUE, SQLite defers obtaining a write lock until a write operation is requested. - When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer - environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. - Returns a SQLiteTransaction object. - - - - Creates a new if one isn't already active on the connection. - - Supported isolation levels are Serializable, ReadCommitted and Unspecified. - - Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the - connection string, Serializable is used. - Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads - may begin a transaction. Other threads may read from the database, but not write. - With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start - a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread - has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. - - Returns a SQLiteTransaction object. - - - - Creates a new if one isn't already - active on the connection. - - Returns the new transaction object. - - - - Forwards to the local function - - Supported isolation levels are Unspecified, Serializable, and ReadCommitted - - - - - This method is not implemented; however, the - event will still be raised. - - - - - - When the database connection is closed, all commands linked to this connection are automatically reset. - - - - - Clears the connection pool associated with the connection. Any other active connections using the same database file - will be discarded instead of returned to the pool when they are closed. - - - - - - Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. - - - - - Create a new and associate it with this connection. - - Returns a new command object already assigned to this connection. - - - - Forwards to the local function. - - - - - - Parses the connection string into component parts using the custom - connection string parser. - - The connection string to parse - An array of key-value pairs representing each parameter of the connection string - - - - Parses a connection string using the built-in (i.e. framework provided) - connection string parser class and returns the key/value pairs. An - exception may be thrown if the connection string is invalid or cannot be - parsed. When compiled for the .NET Compact Framework, the custom - connection string parser is always used instead because the framework - provided one is unavailable there. - - - The connection string to parse. - - - Non-zero to throw an exception if any connection string values are not of - the type. - - The list of key/value pairs. - - - - Manual distributed transaction enlistment support - - The distributed transaction to enlist in - - - - Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value - - The list to look in - The key to find - The default value to return if the key is not found - The value corresponding to the specified key, or the default value if not found. - - - - Attempts to convert the string value to an enumerated value of the specified type. - - The enumerated type to convert the string value to. - The string value to be converted. - Non-zero to make the conversion case-insensitive. - The enumerated value upon success or null upon error. - - - - Enables or disabled extension loading. - - - True to enable loading of extensions, false to disable. - - - - - Loads a SQLite extension library from the named dynamic link library file. - - - The name of the dynamic link library file containing the extension. - - - - - Loads a SQLite extension library from the named dynamic link library file. - - - The name of the dynamic link library file containing the extension. - - - The name of the exported function used to initialize the extension. - If null, the default "sqlite3_extension_init" will be used. - - - - - Opens the connection using the parameters found in the . - - - - - Opens the connection using the parameters found in the and then returns it. - - The current connection object. - - - - This method causes any pending database operation to abort and return at - its earliest opportunity. This routine is typically called in response - to a user action such as pressing "Cancel" or Ctrl-C where the user wants - a long query operation to halt immediately. It is safe to call this - routine from any thread. However, it is not safe to call this routine - with a database connection that is closed or might close before this method - returns. - - - - - Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. - If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is - global to the process. - - Non-zero to enable memory usage tracking, zero otherwise. - A standard SQLite return code (i.e. zero for success and non-zero for failure). - - - Passes a shutdown request off to SQLite. - - - Enables or disabled extended result codes returned by SQLite - - - Enables or disabled extended result codes returned by SQLite - - - Enables or disabled extended result codes returned by SQLite - - - Add a log message via the SQLite sqlite3_log interface. - - - Add a log message via the SQLite sqlite3_log interface. - - - - Change the password (or assign a password) to an open database. - - - No readers or writers may be active for this process. The database must already be open - and if it already was password protected, the existing password must already have been supplied. - - The new password to assign to the database - - - - Change the password (or assign a password) to an open database. - - - No readers or writers may be active for this process. The database must already be open - and if it already was password protected, the existing password must already have been supplied. - - The new password to assign to the database - - - - Sets the password for a password-protected database. A password-protected database is - unusable for any operation until the password has been set. - - The password for the database - - - - Sets the password for a password-protected database. A password-protected database is - unusable for any operation until the password has been set. - - The password for the database - - - - Queries or modifies the number of retries or the retry interval (in milliseconds) for - certain I/O operations that may fail due to anti-virus software. - - The number of times to retry the I/O operation. A negative value - will cause the current count to be queried and replace that negative value. - The number of milliseconds to wait before retrying the I/O - operation. This number is multiplied by the number of retry attempts so far to come - up with the final number of milliseconds to wait. A negative value will cause the - current interval to be queried and replace that negative value. - Zero for success, non-zero for error. - - - - Removes one set of surrounding single -OR- double quotes from the string - value and returns the resulting string value. If the string is null, empty, - or contains quotes that are not balanced, nothing is done and the original - string value will be returned. - - The string value to process. - - The string value, modified to remove one set of surrounding single -OR- - double quotes, if applicable. - - - - - Expand the filename of the data source, resolving the |DataDirectory| - macro as appropriate. - - The database filename to expand - - Non-zero if the returned file name should be converted to a full path - (except when using the .NET Compact Framework). - - The expanded path and filename of the filename - - - - The following commands are used to extract schema information out of the database. Valid schema types are: - - - MetaDataCollections - - - DataSourceInformation - - - Catalogs - - - Columns - - - ForeignKeys - - - Indexes - - - IndexColumns - - - Tables - - - Views - - - ViewColumns - - - - - Returns the MetaDataCollections schema - - A DataTable of the MetaDataCollections schema - - - - Returns schema information of the specified collection - - The schema collection to retrieve - A DataTable of the specified collection - - - - Retrieves schema information using the specified constraint(s) for the specified collection - - The collection to retrieve - The restrictions to impose - A DataTable of the specified collection - - - - Builds a MetaDataCollections schema datatable - - DataTable - - - - Builds a DataSourceInformation datatable - - DataTable - - - - Build a Columns schema - - The catalog (attached database) to query, can be null - The table to retrieve schema information for, must not be null - The column to retrieve schema information for, can be null - DataTable - - - - Returns index information for the given database and catalog - - The catalog (attached database) to query, can be null - The name of the index to retrieve information for, can be null - The table to retrieve index information for, can be null - DataTable - - - - Retrieves table schema information for the database and catalog - - The catalog (attached database) to retrieve tables on - The table to retrieve, can be null - The table type, can be null - DataTable - - - - Retrieves view schema information for the database - - The catalog (attached database) to retrieve views on - The view name, can be null - DataTable - - - - Retrieves catalog (attached databases) schema information for the database - - The catalog to retrieve, can be null - DataTable - - - - Returns the base column information for indexes in a database - - The catalog to retrieve indexes for (can be null) - The table to restrict index information by (can be null) - The index to restrict index information by (can be null) - The source column to restrict index information by (can be null) - A DataTable containing the results - - - - Returns detailed column information for a specified view - - The catalog to retrieve columns for (can be null) - The view to restrict column information by (can be null) - The source column to restrict column information by (can be null) - A DataTable containing the results - - - - Retrieves foreign key information from the specified set of filters - - An optional catalog to restrict results on - An optional table to restrict results on - An optional foreign key name to restrict results on - A DataTable with the results of the query - - - - Static variable to store the connection event handlers to call. - - - - - This event is raised whenever the database is opened or closed. - - - - - This event is raised when events related to the lifecycle of a - SQLiteConnection object occur. - - - - - Returns the number of pool entries for the file name associated with this connection. - - - - - The connection string containing the parameters for the connection - - - - - Parameter - Values - Required - Default - - - Data Source - This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). - Y - - - - Version - 3 - N - 3 - - - UseUTF16Encoding - True
False
- N - False -
- - DateTimeFormat - - Ticks - Use the value of DateTime.Ticks.
- ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC - DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
- JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
- UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
- InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
- CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
- N - ISO8601 -
- - DateTimeKind - Unspecified - Not specified as either UTC or local time.
Utc - The time represented is UTC.
Local - The time represented is local time.
- N - Unspecified -
- - BaseSchemaName - Some base data classes in the framework (e.g. those that build SQL queries dynamically) - assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting - alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used - as a placeholder and removed prior to preparing any SQL statements that may contain it. - N - sqlite_default_schema - - - BinaryGUID - True - Store GUID columns in binary form
False - Store GUID columns as text
- N - True -
- - Cache Size - {size in bytes} - N - 2000 - - - Synchronous - Normal - Normal file flushing behavior
Full - Full flushing after all writes
Off - Underlying OS flushes I/O's
- N - Full -
- - Page Size - {size in bytes} - N - 1024 - - - Password - {password} - Using this parameter requires that the CryptoAPI based codec be enabled at compile-time for both the native interop assembly and the core managed assemblies; otherwise, using this parameter may result in an exception being thrown when attempting to open the connection. - N - - - - Enlist - Y - Automatically enlist in distributed transactions
N - No automatic enlistment
- N - Y -
- - Pooling - True - Use connection pooling
False - Do not use connection pooling
- N - False -
- - FailIfMissing - True - Don't create the database if it does not exist, throw an error instead
False - Automatically create the database if it does not exist
- N - False -
- - Max Page Count - {size in pages} - Limits the maximum number of pages (limits the size) of the database - N - 0 - - - Legacy Format - True - Use the more compatible legacy 3.x database format
False - Use the newer 3.3x database format which compresses numbers more effectively
- N - False -
- - Default Timeout - {time in seconds}
The default command timeout
- N - 30 -
- - Journal Mode - Delete - Delete the journal file after a commit
Persist - Zero out and leave the journal file on disk after a commit
Off - Disable the rollback journal entirely
- N - Delete -
- - Read Only - True - Open the database for read only access
False - Open the database for normal read/write access
- N - False -
- - Max Pool Size - The maximum number of connections for the given connection string that can be in the connection pool - N - 100 - - - Default IsolationLevel - The default transaciton isolation level - N - Serializable - - - Foreign Keys - Enable foreign key constraints - N - False - - - Flags - Extra behavioral flags for the connection. See the enumeration for possible values. - N - Default - - - SetDefaults - - True - Apply the default connection settings to the opened database.
- False - Skip applying the default connection settings to the opened database. -
- N - True -
- - ToFullPath - - True - Attempt to expand the data source file name to a fully qualified path before opening.
- False - Skip attempting to expand the data source file name to a fully qualified path before opening. -
- N - True -
-
-
-
- - - Returns the data source file name without extension or path. - - - - - Returns the string "main". - - - - - Gets/sets the default command timeout for newly-created commands. This is especially useful for - commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. - This can also be set in the ConnectionString with "Default Timeout" - - - - - Non-zero if the built-in (i.e. framework provided) connection string - parser should be used when opening the connection. - - - - - Gets/sets the extra behavioral flags for this connection. See the - enumeration for a list of - possible values. - - - - - Returns the version of the underlying SQLite database engine - - - - - Returns the rowid of the most recent successful INSERT into the database from this connection. - - - - - Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on - this connection. - - - - - Returns the amount of memory (in bytes) currently in use by the SQLite core library. - - - - - Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. - - - - - Returns a string containing the define constants (i.e. compile-time - options) used to compile the core managed assembly, delimited with - spaces. - - - - - Returns the version of the underlying SQLite database engine - - - - - This method returns the string whose value is the same as the - SQLITE_SOURCE_ID C preprocessor macro used when compiling the - SQLite core library. - - - - - Returns the state of the connection. - - - - - This event is raised whenever SQLite makes an update/delete/insert into the database on - this connection. It only applies to the given connection. - - - - - This event is raised whenever SQLite is committing a transaction. - Return non-zero to trigger a rollback. - - - - - This event is raised whenever SQLite statement first begins executing on - this connection. It only applies to the given connection. - - - - - This event is raised whenever SQLite is rolling back a transaction. - - - - - Returns the instance. - - - - - The I/O file cache flushing behavior for the connection - - - - - Normal file flushing at critical sections of the code - - - - - Full file flushing after every write operation - - - - - Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing - - - - - Raised when a transaction is about to be committed. To roll back a transaction, set the - rollbackTrans boolean value to true. - - The connection committing the transaction - Event arguments on the transaction - - - - Raised when data is inserted, updated and deleted on a given connection - - The connection committing the transaction - The event parameters which triggered the event - - - - Raised when a statement first begins executing on a given connection - - The connection executing the statement - Event arguments of the trace - - - - Raised between each backup step. - - - The source database connection. - - - The source database name. - - - The destination database connection. - - - The destination database name. - - - The number of pages copied with each step. - - - The number of pages remaining to be copied. - - - The total number of pages in the source database. - - - Set to true if the operation needs to be retried due to database - locking issues; otherwise, set to false. - - - True to continue with the backup process or false to halt the backup - process, rolling back any changes that have been made so far. - - - - - Whenever an update event is triggered on a connection, this enum will indicate - exactly what type of operation is being performed. - - - - - A row is being deleted from the given database and table - - - - - A row is being inserted into the table. - - - - - A row is being updated in the table. - - - - - Passed during an Update callback, these event arguments detail the type of update operation being performed - on the given connection. - - - - - The name of the database being updated (usually "main" but can be any attached or temporary database) - - - - - The name of the table being updated - - - - - The type of update being performed (insert/update/delete) - - - - - The RowId affected by this update. - - - - - Event arguments raised when a transaction is being committed - - - - - Set to true to abort the transaction and trigger a rollback - - - - - Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text - - - - - SQL statement text as the statement first begins executing - - - - - The connection pool object - - - - - The default version number new pools will get - - - - - The number of connections successfully opened from any pool. - This value is incremented by the Remove method. - - - - - The number of connections successfully closed from any pool. - This value is incremented by the Add method. - - - - - Counts the number of pool entries matching the specified file name. - - The file name to match or null to match all files. - The pool entry counts for each matching file. - The total number of connections successfully opened from any pool. - The total number of connections successfully closed from any pool. - The total number of pool entries for all matching files. - - - - Attempt to pull a pooled connection out of the queue for active duty - - The filename for a desired connection - The maximum size the connection pool for the filename can be - The pool version the returned connection will belong to - Returns NULL if no connections were available. Even if none are, the poolversion will still be a valid pool version - - - - Clears out all pooled connections and rev's up the default pool version to force all old active objects - not in the pool to get discarded rather than returned to their pools. - - - - - Clear a given pool for a given filename. Discards anything in the pool for the given file, and revs the pool - version so current active objects on the old version of the pool will get discarded rather than be returned to the pool. - - The filename of the pool to clear - - - - Return a connection to the pool for someone else to use. - - The filename of the pool to use - The connection handle to pool - The pool version the handle was created under - - If the version numbers don't match between the connection and the pool, then the handle is discarded. - - - - - We don't have to thread-lock anything in this function, because it's only called by other functions above - which already have a thread-safe lock. - - The queue to resize - If a function intends to add to the pool, this is true, which forces the resize - to take one more than it needs from the pool - - - - Keeps track of connections made on a specified file. The PoolVersion dictates whether old objects get - returned to the pool or discarded when no longer in use. - - - - - SQLite implementation of DbConnectionStringBuilder. - - - - - Properties of this class - - - - - Constructs a new instance of the class - - - Default constructor - - - - - Constructs a new instance of the class using the specified connection string. - - The connection string to parse - - - - Private initializer, which assigns the connection string and resets the builder - - The connection string to assign - - - - Helper function for retrieving values from the connectionstring - - The keyword to retrieve settings for - The resulting parameter value - Returns true if the value was found and returned - - - - Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() - - The hashtable to fill with property descriptors - - - - Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. - - - - - Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". - - - - - Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. - - - - - Gets/Sets whether or not to use connection pooling. The default is "False" - - - - - Gets/Sets whethor not to store GUID's in binary format. The default is True - which saves space in the database. - - - - - Gets/Sets the filename to open on the connection string. - - - - - An alternate to the data source property - - - - - An alternate to the data source property that uses the SQLite URI syntax. - - - - - Gets/sets the default command timeout for newly-created commands. This is especially useful for - commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. - - - - - Determines whether or not the connection will automatically participate - in the current distributed transaction (if one exists) - - - - - If set to true, will throw an exception if the database specified in the connection - string does not exist. If false, the database will be created automatically. - - - - - If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger - database sizes. - - - - - When enabled, the database will be opened for read-only access and writing will be disabled. - - - - - Gets/sets the database encryption password - - - - - Gets/Sets the page size for the connection. - - - - - Gets/Sets the maximum number of pages the database may hold - - - - - Gets/Sets the cache size for the connection. - - - - - Gets/Sets the DateTime format for the connection. - - - - - Gets/Sets the DateTime kind for the connection. - - - - - Gets/Sets the placeholder base schema name used for - .NET Framework compatibility purposes. - - - - - Determines how SQLite handles the transaction journal file. - - - - - Sets the default isolation level for transactions on the connection. - - - - - If enabled, use foreign key constraints - - - - - Gets/Sets the extra behavioral flags. - - - - - If enabled, apply the default connection settings to opened databases. - - - - - If enabled, attempt to resolve the provided data source file name to a - full path before opening. - - - - - SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite - understands. The DateTime extension to the spec is for internal use only. - - - - - Not used - - - - - All integers in SQLite default to Int64 - - - - - All floating point numbers in SQLite default to double - - - - - The default data type of SQLite is text - - - - - Typically blob types are only seen when returned from a function - - - - - Null types can be returned from functions - - - - - Used internally by this provider - - - - - Used internally - - - - - These are the event types associated with the - - delegate (and its corresponding event) and the - class. - - - - - Not used. - - - - - Not used. - - - - - The connection is being opened. - - - - - The connection string has been parsed. - - - - - The connection was opened. - - - - - The method was called on the - connection. - - - - - A transaction was created using the connection. - - - - - The connection was enlisted into a transaction. - - - - - A command was created using the connection. - - - - - The connection is being closed. - - - - - The connection was closed. - - - - - This implementation of SQLite for ADO.NET can process date/time fields in databases in only one of three formats. Ticks, ISO8601 - and JulianDay. - - - ISO8601 is more compatible, readable, fully-processable, but less accurate as it doesn't provide time down to fractions of a second. - JulianDay is the numeric format the SQLite uses internally and is arguably the most compatible with 3rd party tools. It is - not readable as text without post-processing. - Ticks less compatible with 3rd party tools that query the database, and renders the DateTime field unreadable as text without post-processing. - - The preferred order of choosing a datetime format is JulianDay, ISO8601, and then Ticks. Ticks is mainly present for legacy - code support. - - - - - Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. - - - - - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and - "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). - - - - - The interval of time in days and fractions of a day since January 1, 4713 BC. - - - - - The whole number of seconds since the Unix epoch (January 1, 1970). - - - - - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. - - - - - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. - - - - - The default format for this provider. - - - - - This enum determines how SQLite treats its journal file. - - - By default SQLite will create and delete the journal file when needed during a transaction. - However, for some computers running certain filesystem monitoring tools, the rapid - creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. - - If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" - when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. - - - - - The default mode, this causes SQLite to use the existing journaling mode for the database. - - - - - SQLite will create and destroy the journal file as-needed. - - - - - When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, - and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. - - - - - This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database - corruption in this mode! - - - - - SQLite will truncate the journal file to zero-length instead of deleting it. - - - - - SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. - If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the - database file will very likely go corrupt. - - - - - SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; - after being set it stays in effect across multiple database connections and after closing and reopening the database. A database - in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. - - - - - Possible values for the "synchronous" database setting. This setting determines - how often the database engine calls the xSync method of the VFS. - - - - - Use the default "synchronous" database setting. Currently, this should be - the same as using the FULL mode. - - - - - The database engine continues without syncing as soon as it has handed - data off to the operating system. If the application running SQLite - crashes, the data will be safe, but the database might become corrupted - if the operating system crashes or the computer loses power before that - data has been written to the disk surface. - - - - - The database engine will still sync at the most critical moments, but - less often than in FULL mode. There is a very small (though non-zero) - chance that a power failure at just the wrong time could corrupt the - database in NORMAL mode. - - - - - The database engine will use the xSync method of the VFS to ensure that - all content is safely written to the disk surface prior to continuing. - This ensures that an operating system crash or power failure will not - corrupt the database. FULL synchronous is very safe, but it is also - slower. - - - - - Struct used internally to determine the datatype of a column in a resultset - - - - - The DbType of the column, or DbType.Object if it cannot be determined - - - - - The affinity of a column, used for expressions or when Type is DbType.Object - - - - - SQLite implementation of DbDataAdapter. - - - - - This class is just a shell around the DbDataAdapter. Nothing from DbDataAdapter is overridden here, just a few constructors are defined. - - - Default constructor. - - - - - Constructs a data adapter using the specified select command. - - The select command to associate with the adapter. - - - - Constructs a data adapter with the supplied select command text and associated with the specified connection. - - The select command text to associate with the data adapter. - The connection to associate with the select command. - - - - Constructs a data adapter with the specified select command text, and using the specified database connection string. - - The select command text to use to construct a select command. - A connection string suitable for passing to a new SQLiteConnection, which is associated with the select command. - - - - Raised by the underlying DbDataAdapter when a row is being updated - - The event's specifics - - - - Raised by DbDataAdapter after a row is updated - - The event's specifics - - - - Row updating event handler - - - - - Row updated event handler - - - - - Gets/sets the select command for this DataAdapter - - - - - Gets/sets the insert command for this DataAdapter - - - - - Gets/sets the update command for this DataAdapter - - - - - Gets/sets the delete command for this DataAdapter - - - - - SQLite implementation of DbDataReader. - - - - - Underlying command this reader is attached to - - - - - Index of the current statement in the command being processed - - - - - Current statement being Read() - - - - - State of the current statement being processed. - -1 = First Step() executed, so the first Read() will be ignored - 0 = Actively reading - 1 = Finished reading - 2 = Non-row-returning statement, no records - - - - - Number of records affected by the insert/update statements executed on the command - - - - - Count of fields (columns) in the row-returning statement currently being processed - - - - - Maps the field (column) names to their corresponding indexes within the results. - - - - - Datatypes of active fields (columns) in the current statement, used for type-restricting data - - - - - The behavior of the datareader - - - - - If set, then dispose of the command object when the reader is finished - - - - - If set, then raise an exception when the object is accessed after being disposed. - - - - - An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified - - - - - Matches the version of the connection. - - - - - The "stub" (i.e. placeholder) base schema name to use when returning - column schema information. Matches the base schema name used by the - associated connection. - - - - - Internal constructor, initializes the datareader and sets up to begin executing statements - - The SQLiteCommand this data reader is for - The expected behavior of the data reader - - - - Dispose of all resources used by this datareader. - - - - - - Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. - - - - - Throw an error if the datareader is closed - - - - - Throw an error if a row is not loaded - - - - - Enumerator support - - Returns a DbEnumerator object. - - - - SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table - and the affinity of returned types are all we have to go on to type-restrict data in the reader. - - This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In - the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) - to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. - - - This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. - - The index of the column to type-check - The type we want to get out of the column - - - - Retrieves the column as a boolean value - - The index of the column to retrieve - bool - - - - Retrieves the column as a single byte value - - The index of the column to retrieve - byte - - - - Retrieves a column as an array of bytes (blob) - - The index of the column to retrieve - The zero-based index of where to begin reading the data - The buffer to write the bytes into - The zero-based index of where to begin writing into the array - The number of bytes to retrieve - The actual number of bytes written into the array - - To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. - - - - - Returns the column as a single character - - The index of the column to retrieve - char - - - - Retrieves a column as an array of chars (blob) - - The index of the column to retrieve - The zero-based index of where to begin reading the data - The buffer to write the characters into - The zero-based index of where to begin writing into the array - The number of bytes to retrieve - The actual number of characters written into the array - - To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. - - - - - Retrieves the name of the back-end datatype of the column - - The index of the column to retrieve - string - - - - Retrieve the column as a date/time value - - The index of the column to retrieve - DateTime - - - - Retrieve the column as a decimal value - - The index of the column to retrieve - decimal - - - - Returns the column as a double - - The index of the column to retrieve - double - - - - Returns the .NET type of a given column - - The index of the column to retrieve - Type - - - - Returns a column as a float value - - The index of the column to retrieve - float - - - - Returns the column as a Guid - - The index of the column to retrieve - Guid - - - - Returns the column as a short - - The index of the column to retrieve - Int16 - - - - Retrieves the column as an int - - The index of the column to retrieve - Int32 - - - - Retrieves the column as a long - - The index of the column to retrieve - Int64 - - - - Retrieves the name of the column - - The index of the column to retrieve - string - - - - Retrieves the i of a column, given its name - - The name of the column to retrieve - The int i of the column - - - - Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done - to gather the necessary information so it can be represented in an ADO.NET manner. - - Returns a DataTable containing the schema information for the active SELECT statement being processed. - - - - Retrieves the column as a string - - The index of the column to retrieve - string - - - - Retrieves the column as an object corresponding to the underlying datatype of the column - - The index of the column to retrieve - object - - - - Retreives the values of multiple columns, up to the size of the supplied array - - The array to fill with values from the columns in the current resultset - The number of columns retrieved - - - - Returns a collection containing all the column names and values for the - current row of data in the current resultset, if any. If there is no - current row or no current resultset, an exception may be thrown. - - - The collection containing the column name and value information for the - current row of data in the current resultset or null if this information - cannot be obtained. - - - - - Returns True if the specified column is null - - The index of the column to retrieve - True or False - - - - Moves to the next resultset in multiple row-returning SQL command. - - True if the command was successful and a new resultset is available, False otherwise. - - - - Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. - - The index of the column to retrieve - A SQLiteType structure - - - - Reads the next row from the resultset - - True if a new row was successfully loaded and is ready for processing - - - - Not implemented. Returns 0 - - - - - Returns the number of columns in the current resultset - - - - - Returns the number of visible fields in the current resultset - - - - - Returns True if the resultset has rows that can be fetched - - - - - Returns True if the data reader is closed - - - - - Retrieve the count of records affected by an update/insert command. Only valid once the data reader is closed! - - - - - Indexer to retrieve data from a column given its name - - The name of the column to retrieve data for - The value contained in the column - - - - Indexer to retrieve data from a column given its i - - The index of the column to retrieve - The value contained in the column - - - - SQLite exception class. - - - - - Private constructor for use with serialization. - - - Holds the serialized object data about the exception being thrown. - - - Contains contextual information about the source or destination. - - - - - Public constructor for generating a SQLite exception given the error - code and message. - - - The SQLite return code to report. - - - Message text to go along with the return code message text. - - - - - Public constructor that uses the base class constructor for the error - message. - - Error message text. - - - - Public constructor that uses the default base class constructor. - - - - - Public constructor that uses the base class constructor for the error - message and inner exception. - - Error message text. - The original (inner) exception. - - - - Adds extra information to the serialized object data specific to this - class type. This is only used for serialization. - - - Holds the serialized object data about the exception being thrown. - - - Contains contextual information about the source or destination. - - - - - Returns the error message for the specified SQLite return code. - - The SQLite return code. - The error message or null if it cannot be found. - - - - Returns the composite error message based on the SQLite return code - and the optional detailed error message. - - The SQLite return code. - Optional detailed error message. - Error message text for the return code. - - - - Gets the associated SQLite return code for this exception as a - . This property returns the same - underlying value as the property. - - - - - Gets the associated SQLite return code for this exception as an - . For desktop versions of the .NET Framework, - this property overrides the property of the same name within the - - class. This property returns the same underlying value as the - property. - - - - - SQLite error codes. Actually, this enumeration represents a return code, - which may also indicate success in one of several ways (e.g. SQLITE_OK, - SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is - something of a misnomer. - - - - - Successful result - - - - - SQL error or missing database - - - - - Internal logic error in SQLite - - - - - Access permission denied - - - - - Callback routine requested an abort - - - - - The database file is locked - - - - - A table in the database is locked - - - - - A malloc() failed - - - - - Attempt to write a readonly database - - - - - Operation terminated by sqlite3_interrupt() - - - - - Some kind of disk I/O error occurred - - - - - The database disk image is malformed - - - - - Unknown opcode in sqlite3_file_control() - - - - - Insertion failed because database is full - - - - - Unable to open the database file - - - - - Database lock protocol error - - - - - Database is empty - - - - - The database schema changed - - - - - String or BLOB exceeds size limit - - - - - Abort due to constraint violation - - - - - Data type mismatch - - - - - Library used incorrectly - - - - - Uses OS features not supported on host - - - - - Authorization denied - - - - - Auxiliary database format error - - - - - 2nd parameter to sqlite3_bind out of range - - - - - File opened that is not a database file - - - - - sqlite3_step() has another row ready - - - - - sqlite3_step() has finished executing - - - - - SQLite implementation of . - - - SQLite implementation of . - - - - - Constructs a new instance. - - - - - Static instance member which returns an instanced class. - - - - - Creates and returns a new object. - - The new object. - - - - Creates and returns a new object. - - The new object. - - - - Creates and returns a new object. - - The new object. - - - - Creates and returns a new object. - - The new object. - - - - Creates and returns a new object. - - The new object. - - - - Creates and returns a new object. - - The new object. - - - - Will provide a object in .NET 3.5. - - The class or interface type to query for. - - - - - This event is raised whenever SQLite raises a logging event. - Note that this should be set as one of the first things in the - application. This event is provided for backward compatibility only. - New code should use the class instead. - - - - - This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each - connection to the database. - - - Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access - to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database - calls during processing. - - It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class - services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement - information in member variables of user-defined function classes. - - For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will - be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. - - - - - The error code used for logging exceptions caught in user-provided - code. - - - - - The base connection this function is attached to - - - - - Internal array used to keep track of aggregate function context data - - - - - The connection flags associated with this object (this should be the - same value as the flags associated with the parent connection object). - - - - - Holds a reference to the callback function for user functions - - - - - Holds a reference to the callbakc function for stepping in an aggregate function - - - - - Holds a reference to the callback function for finalizing an aggregate function - - - - - Holds a reference to the callback function for collation sequences - - - - - Current context of the current callback. Only valid during a callback - - - - - This static list contains all the user-defined functions declared using the proper attributes. - - - - - Internal constructor, initializes the function's internal variables. - - - - - Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if - someone closes the connection while a DataReader is open. - - - - - Placeholder for a user-defined disposal routine - - True if the object is being disposed explicitly - - - - Scalar functions override this method to do their magic. - - - Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available - to force them into a certain type. Therefore the only types you will ever see as parameters are - DBNull.Value, Int64, Double, String or byte[] array. - - The arguments for the command to process - You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or - you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, - just return it! - - - - Aggregate functions override this method to do their magic. - - - Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. - - The arguments for the command to process - The 1-based step number. This is incrememted each time the step method is called. - A placeholder for implementers to store contextual data pertaining to the current context. - - - - Aggregate functions override this method to finish their aggregate processing. - - - If you implemented your aggregate function properly, - you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have - all the information you need in there to figure out what to return. - NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will - be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value - if that is the case. - - Your own assigned contextData, provided for you so you can return your final results. - You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or - you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, - just return it! - - - - - User-defined collation sequences override this method to provide a custom string sorting algorithm. - - The first string to compare - The second strnig to compare - 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2 - - - - Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. - - - Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available - to force them into a certain type. Therefore the only types you will ever see as parameters are - DBNull.Value, Int64, Double, String or byte[] array. - - The number of arguments - A pointer to the array of arguments - An object array of the arguments once they've been converted to .NET values - - - - Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. - - The context the return value applies to - The parameter to return to SQLite - - - - Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. - WARNING: Must not throw exceptions. - - A raw context pointer - Number of arguments passed in - A pointer to the array of arguments - - - - Internal collation sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. - WARNING: Must not throw exceptions. - - Not used - Length of the string pv1 - Pointer to the first string to compare - Length of the string pv2 - Pointer to the second string to compare - Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater - than the second. Returns 0 if an exception is caught. - - - - Internal collation sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. - WARNING: Must not throw exceptions. - - Not used - Length of the string pv1 - Pointer to the first string to compare - Length of the string pv2 - Pointer to the second string to compare - Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater - than the second. Returns 0 if an exception is caught. - - - - The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. - WARNING: Must not throw exceptions. - - - This function takes care of doing the lookups and getting the important information put together to call the Step() function. - That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so - binary searches can be done to find the data. - - A raw context pointer - Number of arguments passed in - A pointer to the array of arguments - - - - An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. - WARNING: Must not throw exceptions. - - A raw context pointer - - - - Using reflection, enumerate all assemblies in the current appdomain looking for classes that - have a SQLiteFunctionAttribute attribute, and registering them accordingly. - - - - - Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work - properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. - - The type of the function to register - - - - Called by SQLiteBase derived classes, this function binds all user-defined functions to a connection. - It is done this way so that all user-defined functions will access the database using the same encoding scheme - as the connection (UTF-8 or UTF-16). - - - The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to - all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. - - The base object on which the functions are to bind - The flags associated with the parent connection object - Returns an array of functions which the connection object should retain until the connection is closed. - - - - Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert - strings and DateTime's into the current connection's encoding schema. - - - - - Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. - - - User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. - - - - - Obtains the collating sequence in effect for the given function. - - - - - - The type of user-defined function to declare - - - - - Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. - - - - - Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. - Examples include SUM(), COUNT(), AVG(), etc. - - - - - Collation sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is - sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting - in a user-defined manner. - - - - - An internal callback delegate declaration. - - Raw context pointer for the user function - Count of arguments to the function - A pointer to the array of argument pointers - - - - An internal final callback delegate declaration. - - Raw context pointer for the user function - - - - Internal callback delegate for implementing collation sequences - - Not used - Length of the string pv1 - Pointer to the first string to compare - Length of the string pv2 - Pointer to the second string to compare - Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater - than the second. - - - - The type of collating sequence - - - - - The built-in BINARY collating sequence - - - - - The built-in NOCASE collating sequence - - - - - The built-in REVERSE collating sequence - - - - - A custom user-defined collating sequence - - - - - The encoding type the collation sequence uses - - - - - The collation sequence is UTF8 - - - - - The collation sequence is UTF16 little-endian - - - - - The collation sequence is UTF16 big-endian - - - - - A struct describing the collating sequence a function is executing in - - - - - The name of the collating sequence - - - - - The type of collating sequence - - - - - The text encoding of the collation sequence - - - - - Context of the function that requested the collating sequence - - - - - Calls the base collating sequence to compare two strings - - The first string to compare - The second string to compare - -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 - - - - Calls the base collating sequence to compare two character arrays - - The first array to compare - The second array to compare - -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 - - - - A simple custom attribute to enable us to easily find user-defined functions in - the loaded assemblies and initialize them in SQLite as connections are made. - - - - - Default constructor, initializes the internal variables for the function. - - - - - The function's name as it will be used in SQLite command text. - - - - - The number of arguments this function expects. -1 if the number of arguments is variable. - - - - - The type of function this implementation will be. - - - - - This class provides key info for a given SQLite statement. - - Providing key information for a given statement is non-trivial :( - - - - - - This function does all the nasty work at determining what keys need to be returned for - a given statement. - - - - - - - - Make sure all the subqueries are open and ready and sync'd with the current rowid - of the table they're supporting - - - - - Release any readers on any subqueries - - - - - Append all the columns we've added to the original query to the schema - - - - - - How many additional columns of keyinfo we're holding - - - - - Used to support CommandBehavior.KeyInfo - - - - - A single sub-query for a given table/database. - - - - - Event data for logging event handlers. - - - - - The error code. The type of this object value should be - or . - - - - - SQL statement text as the statement first begins executing - - - - - Extra data associated with this event, if any. - - - - - Constructs the object. - - Should be null. - - The error code. The type of this object value should be - or . - - The error message, if any. - The extra data, if any. - - - - Raised when a log event occurs. - - The current connection - Event arguments of the trace - - - - Manages the SQLite custom logging functionality and the associated - callback for the whole process. - - - - - Object used to synchronize access to the static instance data - for this class. - - - - - Member variable to store the AppDomain.DomainUnload event handler. - - - - - The default log event handler. - - - - - The log callback passed to native SQLite engine. This must live - as long as the SQLite library has a pointer to it. - - - - - The base SQLite object to interop with. - - - - - This will be non-zero if logging is currently enabled. - - - - - Initializes the SQLite logging facilities. - - - - - Handles the AppDomain being unloaded. - - Should be null. - The data associated with this event. - - - - Log a message to all the registered log event handlers without going - through the SQLite library. - - The message to be logged. - - - - Log a message to all the registered log event handlers without going - through the SQLite library. - - The SQLite error code. - The message to be logged. - - - - Log a message to all the registered log event handlers without going - through the SQLite library. - - The integer error code. - The message to be logged. - - - - Log a message to all the registered log event handlers without going - through the SQLite library. - - - The error code. The type of this object value should be - System.Int32 or SQLiteErrorCode. - - The message to be logged. - - - - Creates and initializes the default log event handler. - - - - - Adds the default log event handler to the list of handlers. - - - - - Removes the default log event handler from the list of handlers. - - - - - Internal proxy function that calls any registered application log - event handlers. - - WARNING: This method is used more-or-less directly by native code, - do not modify its type signature. - - - The extra data associated with this message, if any. - - - The error code associated with this message. - - - The message string to be logged. - - - - - Default logger. Currently, uses the Trace class (i.e. sends events - to the current trace listeners, if any). - - Should be null. - The data associated with this event. - - - - Member variable to store the application log handler to call. - - - - - This event is raised whenever SQLite raises a logging event. - Note that this should be set as one of the first things in the - application. - - - - - If this property is true, logging is enabled; otherwise, logging is - disabled. When logging is disabled, no logging events will fire. - - - - - MetaDataCollections specific to SQLite - - - - - Returns a list of databases attached to the connection - - - - - Returns column information for the specified table - - - - - Returns index information for the optionally-specified table - - - - - Returns base columns for the given index - - - - - Returns the tables in the given catalog - - - - - Returns user-defined views in the given catalog - - - - - Returns underlying column information on the given view - - - - - Returns foreign key information for the given catalog - - - - - Returns the triggers on the database - - - - - SQLite implementation of DbParameter. - - - - - The data type of the parameter - - - - - The version information for mapping the parameter - - - - - The value of the data in the parameter - - - - - The source column for the parameter - - - - - The column name - - - - - The data size, unused by SQLite - - - - - Default constructor - - - - - Constructs a named parameter given the specified parameter name - - The parameter name - - - - Constructs a named parameter given the specified parameter name and initial value - - The parameter name - The initial value of the parameter - - - - Constructs a named parameter of the specified type - - The parameter name - The datatype of the parameter - - - - Constructs a named parameter of the specified type and source column reference - - The parameter name - The data type - The source column - - - - Constructs a named parameter of the specified type, source column and row version - - The parameter name - The data type - The source column - The row version information - - - - Constructs an unnamed parameter of the specified data type - - The datatype of the parameter - - - - Constructs an unnamed parameter of the specified data type and sets the initial value - - The datatype of the parameter - The initial value of the parameter - - - - Constructs an unnamed parameter of the specified data type and source column - - The datatype of the parameter - The source column - - - - Constructs an unnamed parameter of the specified data type, source column and row version - - The data type - The source column - The row version information - - - - Constructs a named parameter of the specified type and size - - The parameter name - The data type - The size of the parameter - - - - Constructs a named parameter of the specified type, size and source column - - The name of the parameter - The data type - The size of the parameter - The source column - - - - Constructs a named parameter of the specified type, size, source column and row version - - The name of the parameter - The data type - The size of the parameter - The source column - The row version information - - - - Constructs a named parameter of the specified type, size, source column and row version - - The name of the parameter - The data type - The size of the parameter - Only input parameters are supported in SQLite - Ignored - Ignored - Ignored - The source column - The row version information - The initial value to assign the parameter - - - - Constructs a named parameter, yet another flavor - - The name of the parameter - The data type - The size of the parameter - Only input parameters are supported in SQLite - Ignored - Ignored - The source column - The row version information - Whether or not this parameter is for comparing NULL's - The intial value to assign the parameter - - - - Constructs an unnamed parameter of the specified type and size - - The data type - The size of the parameter - - - - Constructs an unnamed parameter of the specified type, size, and source column - - The data type - The size of the parameter - The source column - - - - Constructs an unnamed parameter of the specified type, size, source column and row version - - The data type - The size of the parameter - The source column - The row version information - - - - Resets the DbType of the parameter so it can be inferred from the value - - - - - Clones a parameter - - A new, unassociated SQLiteParameter - - - - Whether or not the parameter can contain a null value - - - - - Returns the datatype of the parameter - - - - - Supports only input parameters - - - - - Returns the parameter name - - - - - Returns the size of the parameter - - - - - Gets/sets the source column - - - - - Used by DbCommandBuilder to determine the mapping for nullable fields - - - - - Gets and sets the row version - - - - - Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. - - - - - SQLite implementation of DbParameterCollection. - - - - - The underlying command to which this collection belongs - - - - - The internal array of parameters in this collection - - - - - Determines whether or not all parameters have been bound to their statement(s) - - - - - Initializes the collection - - The command to which the collection belongs - - - - Retrieves an enumerator for the collection - - An enumerator for the underlying array - - - - Adds a parameter to the collection - - The parameter name - The data type - The size of the value - The source column - A SQLiteParameter object - - - - Adds a parameter to the collection - - The parameter name - The data type - The size of the value - A SQLiteParameter object - - - - Adds a parameter to the collection - - The parameter name - The data type - A SQLiteParameter object - - - - Adds a parameter to the collection - - The parameter to add - A zero-based index of where the parameter is located in the array - - - - Adds a parameter to the collection - - The parameter to add - A zero-based index of where the parameter is located in the array - - - - Adds a named/unnamed parameter and its value to the parameter collection. - - Name of the parameter, or null to indicate an unnamed parameter - The initial value of the parameter - Returns the SQLiteParameter object created during the call. - - - - Adds an array of parameters to the collection - - The array of parameters to add - - - - Adds an array of parameters to the collection - - The array of parameters to add - - - - Clears the array and resets the collection - - - - - Determines if the named parameter exists in the collection - - The name of the parameter to check - True if the parameter is in the collection - - - - Determines if the parameter exists in the collection - - The SQLiteParameter to check - True if the parameter is in the collection - - - - Not implemented - - - - - - - Retrieve a parameter by name from the collection - - The name of the parameter to fetch - A DbParameter object - - - - Retrieves a parameter by its index in the collection - - The index of the parameter to retrieve - A DbParameter object - - - - Returns the index of a parameter given its name - - The name of the parameter to find - -1 if not found, otherwise a zero-based index of the parameter - - - - Returns the index of a parameter - - The parameter to find - -1 if not found, otherwise a zero-based index of the parameter - - - - Inserts a parameter into the array at the specified location - - The zero-based index to insert the parameter at - The parameter to insert - - - - Removes a parameter from the collection - - The parameter to remove - - - - Removes a parameter from the collection given its name - - The name of the parameter to remove - - - - Removes a parameter from the collection given its index - - The zero-based parameter index to remove - - - - Re-assign the named parameter to a new parameter object - - The name of the parameter to replace - The new parameter - - - - Re-assign a parameter at the specified index - - The zero-based index of the parameter to replace - The new parameter - - - - Un-binds all parameters from their statements - - - - - This function attempts to map all parameters in the collection to all statements in a Command. - Since named parameters may span multiple statements, this function makes sure all statements are bound - to the same named parameter. Unnamed parameters are bound in sequence. - - - - - Returns true - - - - - Returns false - - - - - Returns false - - - - - Returns null - - - - - Returns a count of parameters in the collection - - - - - Overloaded to specialize the return value of the default indexer - - Name of the parameter to get/set - The specified named SQLite parameter - - - - Overloaded to specialize the return value of the default indexer - - The index of the parameter to get/set - The specified SQLite parameter - - - - Represents a single SQL statement in SQLite. - - - - - The underlying SQLite object this statement is bound to - - - - - The command text of this SQL statement - - - - - The actual statement pointer - - - - - An index from which unnamed parameters begin - - - - - Names of the parameters as SQLite understands them to be - - - - - Parameters for this statement - - - - - Command this statement belongs to (if any) - - - - - The flags associated with the parent connection object. - - - - - Initializes the statement and attempts to get all information about parameters in the statement - - The base SQLite object - The flags associated with the parent connection object - The statement - The command text for this statement - The previous command in a multi-statement command - - - - Disposes and finalizes the statement - - - - - If the underlying database connection is open, fetches the number of changed rows - resulting from the most recent query; otherwise, does nothing. - - - The number of changes when true is returned. - Undefined if false is returned. - - Non-zero if the number of changed rows was fetched. - - - - Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to - this statement, and if so, keeps a reference to the parameter so it can be bound later. - - The parameter name to map - The parameter to assign it - - - - Bind all parameters, making sure the caller didn't miss any - - - - - Attempts to convert an arbitrary object to the Boolean data type. - Null object values are converted to false. Throws a SQLiteException - upon failure. - - The object value to convert. - The format provider to use. - The converted boolean value. - - - - Perform the bind operation for an individual parameter - - The index of the parameter to bind - The parameter we're binding - - - - SQLite implementation of DbTransaction. - - - - - The connection to which this transaction is bound - - - - - Constructs the transaction object, binding it to the supplied connection - - The connection to open a transaction on - TRUE to defer the writelock, or FALSE to lock immediately - - - - Disposes the transaction. If it is currently active, any changes are rolled back. - - - - - Commits the current transaction. - - - - - Rolls back the active transaction. - - - - - Returns the underlying connection to which this transaction applies. - - - - - Forwards to the local Connection property - - - - - Gets the isolation level of the transaction. SQLite only supports Serializable transactions. - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> - <DocumentElement> - <DataTypes> - <TypeName>smallint</TypeName> - <ProviderDbType>10</ProviderDbType> - <ColumnSize>5</ColumnSize> - <DataType>System.Int16</DataType> - <CreateFormat>smallint</CreateFormat> - <IsAutoIncrementable>false</IsAutoIncrementable> - <IsCaseSensitive>false</IsCaseSensitive> - <IsFixedLength>true</IsFixedLength> - <IsFixedPrecisionScale>true</IsFixedPrecisionScale> - <IsLong>false</IsLong> - <IsNullable>true</ [rest of string was truncated]";. - - - - - Looks up a localized string similar to ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE. - - - - - Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> - <DocumentElement> - <MetaDataCollections> - <CollectionName>MetaDataCollections</CollectionName> - <NumberOfRestrictions>0</NumberOfRestrictions> - <NumberOfIdentifierParts>0</NumberOfIdentifierParts> - </MetaDataCollections> - <MetaDataCollections> - <CollectionName>DataSourceInformation</CollectionName> - <NumberOfRestrictions>0</NumberOfRestrictions> - <NumberOfIdentifierParts>0</NumberOfIdentifierParts> - </MetaDataCollections> - <MetaDataC [rest of string was truncated]";. - - - - - The name of the environment variable containing the processor - architecture of the current process. - - - - - This is the P/Invoke method that wraps the native Win32 LoadLibrary - function. See the MSDN documentation for full details on what it - does. - - - The name of the executable library. - - - The native module handle upon success -OR- IntPtr.Zero on failure. - - - - - This lock is used to protect the static _SQLiteModule and - processorArchitecturePlatforms fields, below. - - - - - Stores the mappings between processor architecture names and platform - names. - - - - - The native module handle for the native SQLite library or the value - IntPtr.Zero. - - - - - For now, this method simply calls the Initialize method. - - - - - Attempts to initialize this class by pre-loading the native SQLite - library for the processor architecture of the current process. - - - - - Queries and returns the base directory of the current application - domain. - - - The base directory for the current application domain -OR- null if it - cannot be determined. - - - - - Determines if the dynamic link library file name requires a suffix - and adds it if necessary. - - - The original dynamic link library file name to inspect. - - - The dynamic link library file name, possibly modified to include an - extension. - - - - - Queries and returns the processor architecture of the current - process. - - - The processor architecture of the current process -OR- null if it - cannot be determined. Always returns an empty string when running on - the .NET Compact Framework. - - - - - Given the processor architecture, returns the name of the platform. - - - The processor architecture to be translated to a platform name. - - - The platform name for the specified processor architecture -OR- null - if it cannot be determined. - - - - - Attempts to load the native SQLite library based on the specified - directory and processor architecture. - - - The base directory to use, null for default (the base directory of - the current application domain). This directory should contain the - processor architecture specific sub-directories. - - - The requested processor architecture, null for default (the - processor architecture of the current process). This caller should - almost always specify null for this parameter. - - - The native module handle as returned by LoadLibrary -OR- IntPtr.Zero - if the loading fails for any reason. - - -
-
diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/scm-map-Digital.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/scm-map-Digital.h index 97d5c2d..53b6d55 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/scm-map-Digital.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/scm-map-Digital.h @@ -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[*]; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/scm-map-Satellite.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/scm-map-Satellite.h index ec16426..194e9c9 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/scm-map-Satellite.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/scm-map-Satellite.h @@ -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[*]; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-192-LM_LS.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-192-LM_LS.h index dac8992..609311d 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-192-LM_LS.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-192-LM_LS.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-256-LA.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-256-LA.h index 03843d7..616e131 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-256-LA.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-256-LA.h @@ -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; }; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-common.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-common.h index ee6209e..fb56652 100644 --- a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-common.h +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-common.h @@ -43,3 +43,9 @@ enum LH_SignalSource : byte Antenna = 2, Cable = 3 }; + +struct TLL_SettingsBlock +{ + dword BlockSize; + byte Data[BlockSize]; +}; diff --git a/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-satellite.h b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-satellite.h new file mode 100644 index 0000000..d89dd7a --- /dev/null +++ b/Information/FileStructures_for_HHD_Hex_Editor_Neo/tll-satellite.h @@ -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; +}; diff --git a/Test.Loader.LG/DvbsCleanup/xxLM860V-ZB99998.TLL.out b/Test.Loader.LG/DvbsCleanup/xxLM860V-ZB99998.TLL.out index 7eb0e9c..3ef568c 100644 Binary files a/Test.Loader.LG/DvbsCleanup/xxLM860V-ZB99998.TLL.out and b/Test.Loader.LG/DvbsCleanup/xxLM860V-ZB99998.TLL.out differ diff --git a/Test.Loader.LG/Test.Loader.LG.csproj b/Test.Loader.LG/Test.Loader.LG.csproj index 4027df9..e6274d1 100644 --- a/Test.Loader.LG/Test.Loader.LG.csproj +++ b/Test.Loader.LG/Test.Loader.LG.csproj @@ -11,7 +11,7 @@ Properties Test.Loader.LG Test.Loader.LG - v3.5 + v4.0 512 {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} @@ -55,7 +55,7 @@ false - + False ..\DLL\nunit.framework.dll diff --git a/Test.Loader.LG/TestBase.cs b/Test.Loader.LG/TestBase.cs index 6c7c9a2..f838480 100644 --- a/Test.Loader.LG/TestBase.cs +++ b/Test.Loader.LG/TestBase.cs @@ -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 diff --git a/Test.Loader.LG/app.config b/Test.Loader.LG/app.config index e59af44..e365603 100644 --- a/Test.Loader.LG/app.config +++ b/Test.Loader.LG/app.config @@ -1,3 +1,3 @@ - + diff --git a/Test.Loader/Test.Loader.csproj b/Test.Loader/Test.Loader.csproj index 2ea4ed9..6577966 100644 --- a/Test.Loader/Test.Loader.csproj +++ b/Test.Loader/Test.Loader.csproj @@ -11,7 +11,7 @@ Properties Test.Loader Test.Loader - v3.5 + v4.0 512 {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} @@ -55,7 +55,7 @@ false - + 3.5 diff --git a/makeDistribZip.cmd b/makeDistribZip.cmd index 9b3525d..8728e77 100644 --- a/makeDistribZip.cmd +++ b/makeDistribZip.cmd @@ -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 diff --git a/readme.txt b/readme.txt index 3c1c03c..3506762 100644 --- a/readme.txt +++ b/readme.txt @@ -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)