diff --git a/ChanSort.Api/ChanSort.Api.csproj b/ChanSort.Api/ChanSort.Api.csproj
index 91d5038..c68f484 100644
--- a/ChanSort.Api/ChanSort.Api.csproj
+++ b/ChanSort.Api/ChanSort.Api.csproj
@@ -40,7 +40,7 @@
prompt
true
true
- true
+ false
bin\x86\Release\
diff --git a/ChanSort.Api/Lookup.csv b/ChanSort.Api/Lookup.csv
index ed09645..bf3811b 100644
--- a/ChanSort.Api/Lookup.csv
+++ b/ChanSort.Api/Lookup.csv
@@ -421,5 +421,6 @@ SERVICETYPE;Number;Description
SERVICETYPE;01;SD-TV
SERVICETYPE;02;Radio
SERVICETYPE;12;Data/Test
+SERVICETYPE;22;SD-TV
SERVICETYPE;25;HD-TV
-SERVICETYPE;211;Option
+SERVICETYPE;211;Option
\ No newline at end of file
diff --git a/ChanSort.Api/Model/ChannelInfo.cs b/ChanSort.Api/Model/ChannelInfo.cs
index 6987426..831686d 100644
--- a/ChanSort.Api/Model/ChannelInfo.cs
+++ b/ChanSort.Api/Model/ChannelInfo.cs
@@ -99,7 +99,8 @@ namespace ChanSort.Api
public override string ToString()
{
- return this.NewProgramNr + ": " + this.Name;
+ string nr = this.NewProgramNr != -1 ? this.NewProgramNr.ToString() : "@" + this.RecordIndex;
+ return nr + ": " + this.Name;
}
public override bool Equals(object obj)
@@ -193,10 +194,10 @@ namespace ChanSort.Api
this.Debug += " " + val.ToString("x4");
}
- public unsafe void AddDebug(byte* ptr, int len)
+ public void AddDebug(byte[] data, int offset, int len)
{
for (int i = 0; i < len; i++)
- this.AddDebug(ptr[i]);
+ this.AddDebug(data[offset + i]);
}
#endregion
diff --git a/ChanSort.Api/Model/DataRoot.cs b/ChanSort.Api/Model/DataRoot.cs
index 215a830..237c685 100644
--- a/ChanSort.Api/Model/DataRoot.cs
+++ b/ChanSort.Api/Model/DataRoot.cs
@@ -54,6 +54,11 @@ namespace ChanSort.Api
#region AddChannel()
public virtual void AddChannel(ChannelList list, ChannelInfo channel)
{
+ if (list == null)
+ {
+ warnings.AppendFormat("No list found to add channel '{0}'\r\n", channel);
+ return;
+ }
string warning = list.AddChannel(channel);
if (warning != null)
this.Warnings.AppendLine(warning);
diff --git a/ChanSort.Api/Model/Enums.cs b/ChanSort.Api/Model/Enums.cs
index 57592a5..266fbdd 100644
--- a/ChanSort.Api/Model/Enums.cs
+++ b/ChanSort.Api/Model/Enums.cs
@@ -52,13 +52,4 @@ namespace ChanSort.Api
AppendAlphabetically=1,
MarkDeleted=2
}
-
- public enum DvbServiceType
- {
- SdTv = 1,
- Radio = 2,
- Data = 12,
- HdTv = 25,
- Option = 211
- };
}
diff --git a/ChanSort.Api/Model/LookupData.cs b/ChanSort.Api/Model/LookupData.cs
index 93e0a3c..1594e63 100644
--- a/ChanSort.Api/Model/LookupData.cs
+++ b/ChanSort.Api/Model/LookupData.cs
@@ -187,5 +187,30 @@ namespace ChanSort.Api
this.AddServiceType(serviceType, fields[2]);
}
#endregion
+
+ #region IsRadioOrTv()
+ public SignalSource IsRadioOrTv(int dvbServiceType)
+ {
+ switch (dvbServiceType)
+ {
+ case 0x01: // SD MPEG1
+ case 0x11: // MPEG2-HD
+ case 0x16: // H264/AVC-SD
+ case 0x19: // H264/AVC-HD
+ return SignalSource.Tv;
+ case 0x02:
+ case 0x0A:
+ return SignalSource.Radio;
+ }
+ return 0;
+ }
+ #endregion
+
+ #region GetDvbtChannel()
+ public object GetDvbtChannel(decimal freq)
+ {
+ return ((int) (freq - 106)/8);
+ }
+ #endregion
}
}
diff --git a/ChanSort.Api/Utils/Crc32.cs b/ChanSort.Api/Utils/Crc32.cs
index e716e24..f9643a1 100644
--- a/ChanSort.Api/Utils/Crc32.cs
+++ b/ChanSort.Api/Utils/Crc32.cs
@@ -44,6 +44,7 @@
#endregion
#region Crack()
+#if false
public static unsafe int Crack(byte* block, int maxLen, uint checksum)
{
uint crc32 = CrcMask;
@@ -55,6 +56,7 @@
}
return 0;
}
+#endif
#endregion
}
}
diff --git a/ChanSort.Api/Utils/DvbStringDecoder.cs b/ChanSort.Api/Utils/DvbStringDecoder.cs
index 0153ed1..1219107 100644
--- a/ChanSort.Api/Utils/DvbStringDecoder.cs
+++ b/ChanSort.Api/Utils/DvbStringDecoder.cs
@@ -136,18 +136,15 @@ namespace ChanSort.Api
break;
char ch = '\0';
- if (singleByteChar)
+ switch (b)
{
- switch (b)
- {
- case 0x86: inShortMode = true; continue;
- case 0x87: inShortMode = false; continue;
- case 0x8a: ch = '\n'; break;
- default:
- if (b >= 0x80 && b <= 0x9f) // DVB-S control characters
- continue;
- break;
- }
+ case 0x86: inShortMode = true; continue;
+ case 0x87: inShortMode = false; continue;
+ case 0x8a: ch = '\n'; break;
+ default:
+ if (b >= 0x80 && b <= 0x9f) // DVB-S control characters
+ continue;
+ break;
}
if (ch == '\0')
{
@@ -217,5 +214,24 @@ namespace ChanSort.Api
return new byte[0];
}
#endregion
+
+ #region GetEncoding()
+ ///
+ /// Pass in either a value <=0x1F excluding 0x10 or 0x10xxyy
+ ///
+ public static Encoding GetEncoding(int encodingMarker)
+ {
+ string enc = null;
+ if (encodingMarker < 0x20)
+ enc = codePages1[encodingMarker];
+ else
+ {
+ encodingMarker &= 0xFFFF;
+ if (encodingMarker < codePages2.Length)
+ enc = codePages2[encodingMarker];
+ }
+ return enc == null ? null : Encoding.GetEncoding(enc);
+ }
+ #endregion
}
}
diff --git a/ChanSort.Api/Utils/Tools.cs b/ChanSort.Api/Utils/Tools.cs
index 43a9918..2e62446 100644
--- a/ChanSort.Api/Utils/Tools.cs
+++ b/ChanSort.Api/Utils/Tools.cs
@@ -12,18 +12,6 @@ namespace ChanSort.Api
return val;
}
- public static unsafe string GetString(this Encoding encoding, byte* str, int len)
- {
- byte[] copy = new byte[len];
- for (int i = 0; i < len; i++)
- copy[i] = *str++;
- string name = encoding.GetString(copy, 0, len);
- int idx = name.IndexOf('\0');
- if (idx >= 0)
- name = name.Substring(0, idx);
- return name;
- }
-
public static string GetAnalogChannelNumber(int freq)
{
if (freq < 41) return "";
diff --git a/ChanSort.Loader.Panasonic/ChanSort.Loader.Panasonic.csproj b/ChanSort.Loader.Panasonic/ChanSort.Loader.Panasonic.csproj
new file mode 100644
index 0000000..ac789b9
--- /dev/null
+++ b/ChanSort.Loader.Panasonic/ChanSort.Loader.Panasonic.csproj
@@ -0,0 +1,91 @@
+
+
+
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {68DA8072-3A29-4076-9F64-D66F38349585}
+ Library
+ Properties
+ ChanSort.Loader.Panasonic
+ ChanSort.Loader.Panasonic
+ v3.5
+
+
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ true
+ ..\Debug\
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+ true
+ true
+ false
+
+
+ bin\x86\Release\
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+ true
+ true
+
+
+
+
+
+ False
+ ..\DLL\System.Data.SQLite.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {DCCFFA08-472B-4D17-BB90-8F513FC01392}
+ ChanSort.Api
+
+
+
+
+
\ No newline at end of file
diff --git a/ChanSort.Loader.Panasonic/DbChannel.cs b/ChanSort.Loader.Panasonic/DbChannel.cs
new file mode 100644
index 0000000..9e9c17b
--- /dev/null
+++ b/ChanSort.Loader.Panasonic/DbChannel.cs
@@ -0,0 +1,156 @@
+using System.Collections.Generic;
+using System.Data.SQLite;
+using System.Text;
+using ChanSort.Api;
+
+namespace ChanSort.Loader.Panasonic
+{
+ internal class DbChannel : ChannelInfo
+ {
+ internal int Bits;
+
+ #region ctor()
+ internal DbChannel(SQLiteDataReader r, IDictionary field, DataRoot dataRoot)
+ {
+ this.RecordIndex = r.GetInt32(field["rowid"]);
+ this.RecordOrder = r.GetInt32(field["major_channel"]);
+ int ntype = r.GetInt32(field["ntype"]);
+ if (ntype == 1)
+ this.SignalSource |= SignalSource.DvbS;
+ else if (ntype == 2)
+ this.SignalSource |= SignalSource.DvbT;
+ else if (ntype == 3)
+ this.SignalSource |= SignalSource.DvbC;
+ else if (ntype == 10)
+ this.SignalSource |= SignalSource.AnalogC | SignalSource.Tv;
+
+ byte[] buffer = new byte[1000];
+ var len = r.GetBytes(field["delivery"], 0, buffer, 0, 1000);
+ this.AddDebug(buffer, 0, (int) len);
+
+ this.Skip = r.GetInt32(field["skip"]) != 0;
+ this.Encrypted = r.GetInt32(field["free_CA_mode"]) != 0;
+ this.Lock = r.GetInt32(field["child_lock"]) != 0;
+ this.ParseFavorites(r, field);
+
+ if (ntype == 10)
+ this.ReadAnalogData(r, field);
+ else
+ this.ReadDvbData(r, field, dataRoot, buffer);
+
+ var list = dataRoot.GetChannelList(this.SignalSource);
+ if (list != null)
+ this.OldProgramNr = ntype == 10 ? list.Count : list.Count + 1;
+ }
+
+ #endregion
+
+ #region ParseFavorites
+ private void ParseFavorites(SQLiteDataReader r, IDictionary field)
+ {
+ for (int i = 0; i < 4; i++)
+ {
+ int favIndex = r.GetInt32(field["profile" + (i + 1) + "index"]);
+ if (favIndex > 0)
+ this.Favorites |= (Favorites)(1 << i);
+ }
+ }
+ #endregion
+
+ private void ReadAnalogData(SQLiteDataReader r, IDictionary field)
+ {
+ this.Name = r.GetString(field["sname"]);
+ this.FreqInMhz = r.IsDBNull(field["freq"]) ? 0 : (decimal)r.GetInt32(field["freq"]) / 1000;
+ this.ChannelOrTransponder = Tools.GetAnalogChannelNumber((int)this.FreqInMhz);
+ }
+
+ #region ReadDvbData()
+ protected void ReadDvbData(SQLiteDataReader r, IDictionary field, DataRoot dataRoot, byte[] delivery)
+ {
+ string longName, shortName;
+ this.GetChannelNames(r.GetString(field["sname"]), out longName, out shortName);
+ this.Name = longName;
+ this.ShortName = shortName;
+
+ int stype = r.GetInt32(field["stype"]);
+ if (stype == 1 || stype == 22 || stype == 25)
+ this.SignalSource |= SignalSource.Tv;
+ else if (stype == 2)
+ this.SignalSource |= SignalSource.Radio;
+ this.ServiceType = stype;
+
+ int freq = r.GetInt32(field["freq"]);
+ if ((this.SignalSource & SignalSource.Sat) != 0)
+ {
+ this.FreqInMhz = freq/10;
+ int satId = r.GetInt32(field["physical_ch"]) >> 12;
+ var sat = dataRoot.Satellites.TryGet(satId);
+ if (sat != null)
+ {
+ this.Satellite = sat.Name;
+ this.SatPosition = sat.OrbitalPosition;
+ }
+ if (delivery.Length >= 7)
+ {
+ this.SymbolRate = (delivery[5] >> 4)*10000 + (delivery[5] & 0x0F)*1000 +
+ (delivery[6] >> 4)*100 + (delivery[6] & 0x0F)*10;
+ }
+ }
+ else
+ {
+ freq /= 1000;
+ this.FreqInMhz = freq;
+ this.ChannelOrTransponder = LookupData.Instance.GetDvbtChannel(freq).ToString();
+ this.Satellite = (this.SignalSource & SignalSource.Antenna) != 0 ? "DVB-T" : "DVB-C";
+ }
+
+ this.OriginalNetworkId = r.GetInt32(field["onid"]);
+ this.TransportStreamId = r.GetInt32(field["tsid"]);
+ this.ServiceId = r.GetInt32(field["sid"]);
+ }
+ #endregion
+
+ #region GetChannelNames()
+ private void GetChannelNames(string name, out string longName, out string shortName)
+ {
+ StringBuilder sbLong = new StringBuilder();
+ StringBuilder sbShort = new StringBuilder();
+
+#if false
+ //Encoding encoding = Encoding.Default;
+ if (name.Length > 0 && name[0] < 0x20)
+ {
+ if (name.Length >= 3 && name[0] == 0x10)
+ encoding = DvbStringDecoder.GetEncoding(name[0]);
+ }
+#endif
+ bool inShort = false;
+ foreach (char c in name)
+ {
+ if (c < 0x20)
+ continue;
+ if (c == 0x86)
+ inShort = true;
+ else if (c == 0x87)
+ inShort = false;
+ if (c >= 0x80 && c <= 0x9F)
+ continue;
+
+ if (inShort)
+ sbShort.Append(c);
+ sbLong.Append(c);
+ }
+
+ longName = sbLong.ToString();
+ shortName = sbShort.ToString();
+ }
+ #endregion
+
+ #region UpdateRawData()
+ public override void UpdateRawData()
+ {
+
+ }
+ #endregion
+ }
+}
diff --git a/ChanSort.Loader.Panasonic/Properties/AssemblyInfo.cs b/ChanSort.Loader.Panasonic/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..7bf305c
--- /dev/null
+++ b/ChanSort.Loader.Panasonic/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ChanSort.Loader.Panasonic")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ChanSort.Loader.Panasonic")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("bcd581a8-8959-404c-b7a8-e43f512eec03")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/ChanSort.Loader.Panasonic/Serializer.cs b/ChanSort.Loader.Panasonic/Serializer.cs
new file mode 100644
index 0000000..708c941
--- /dev/null
+++ b/ChanSort.Loader.Panasonic/Serializer.cs
@@ -0,0 +1,154 @@
+using System;
+using System.Collections.Generic;
+using System.Data.SQLite;
+using System.IO;
+using System.Windows.Forms;
+using ChanSort.Api;
+
+namespace ChanSort.Loader.Panasonic
+{
+ class Serializer : SerializerBase
+ {
+ private readonly ChannelList atvChannels = new ChannelList(SignalSource.AnalogCT | SignalSource.Tv, "Analog");
+ private readonly ChannelList dtvTvChannels = new ChannelList(SignalSource.DvbCT | SignalSource.DvbS | SignalSource.Tv, "DTV");
+ private readonly ChannelList dtvRadioChannels = new ChannelList(SignalSource.DvbCT | SignalSource.DvbS | SignalSource.Radio, "Radio");
+
+ private string tempFile;
+
+ public Serializer(string inputFile) : base(inputFile)
+ {
+ this.DataRoot.AddChannelList(this.atvChannels);
+ this.DataRoot.AddChannelList(this.dtvTvChannels);
+ this.DataRoot.AddChannelList(this.dtvRadioChannels);
+ }
+
+ public override string DisplayName { get { return "Panasonic .db Loader"; } }
+
+ #region Load()
+ public override void Load()
+ {
+ this.tempFile = Path.GetTempFileName();
+ Application.ApplicationExit += CleanTempFile;
+ this.CypherFile(this.FileName, this.tempFile);
+
+ this.CreateDummySatellites();
+
+ string channelConnString = "Data Source=" + this.tempFile;
+ using (var conn = new SQLiteConnection(channelConnString))
+ {
+ conn.Open();
+ using (var cmd = conn.CreateCommand())
+ {
+ this.ReadChannels(cmd);
+ }
+ }
+ }
+ #endregion
+
+ #region CypherFile()
+ ///
+ /// XOR-based cypher which can be used to alternately crypt/decrypt data
+ ///
+ private void CypherFile(string input, string output)
+ {
+ byte[] fileContent = File.ReadAllBytes(input);
+ int chiffre = 0x0388;
+ int step = 0;
+ for (int i = 0; i < fileContent.Length /*- 41*/; i++)
+ {
+ byte b = fileContent[i];
+ fileContent[i] = (byte)(b ^ (chiffre >> 8));
+ if (++step < 256)
+ chiffre += b + 0x96A3;
+ else
+ {
+ chiffre = 0x0388;
+ step = 0;
+ }
+ }
+ File.WriteAllBytes(output, fileContent);
+ }
+ #endregion
+
+ #region CleanTempFile()
+ private void CleanTempFile(object sender, EventArgs e)
+ {
+ try { File.Delete(this.tempFile);}
+ catch { }
+ }
+ #endregion
+
+ #region CreateDummySatellites()
+ private void CreateDummySatellites()
+ {
+ for (int i = 1; i <= 4; i++)
+ {
+ var sat = new Satellite(i);
+ sat.Name = "LNB "+i;
+ sat.OrbitalPosition = i.ToString();
+ this.DataRoot.Satellites.Add(i, sat);
+ }
+ }
+ #endregion
+
+ #region ReadChannels()
+ private void ReadChannels(SQLiteCommand cmd)
+ {
+ string[] fieldNames = { "rowid", "major_channel", "physical_ch","sname", "freq", "skip", "running_status","free_CA_mode","child_lock",
+ "profile1index","profile2index","profile3index","profile4index","stype", "onid", "tsid", "sid", "ntype", "delivery" };
+
+ const string sql = "select s.rowid,s.major_channel,s.physical_ch,s.sname,t.freq,s.skip,s.running_status,s.free_CA_mode,s.child_lock, " +
+ "profile1index,profile2index,profile3index,profile4index,s.stype,s.onid,s.tsid,s.svcid,s.ntype,delivery" +
+ " from SVL s left outer join TSL t on s.ntype=t.ntype and s.physical_ch=t.physical_ch and s.tsid=t.tsid"+
+ " order by s.ntype,major_channel";
+
+ var fields = this.GetFieldMap(fieldNames);
+
+ cmd.CommandText = sql;
+ using (var r = cmd.ExecuteReader())
+ {
+ while (r.Read())
+ {
+ ChannelInfo channel = new DbChannel(r, fields, this.DataRoot);
+ if (!channel.IsDeleted)
+ {
+ var channelList = this.DataRoot.GetChannelList(channel.SignalSource);
+ if (channelList != null)
+ this.DataRoot.AddChannel(channelList, channel);
+ }
+ }
+ }
+ }
+ #endregion
+
+ #region GetQuery()
+ private string GetQuery(string table, string[] fieldNames)
+ {
+ string sql = "select ";
+ for (int i = 0; i < fieldNames.Length; i++)
+ {
+ if (i > 0)
+ sql += ",";
+ sql += fieldNames[i];
+ }
+ sql += " from " + table;
+ return sql;
+ }
+ #endregion
+
+ #region GetFieldMap()
+ private IDictionary GetFieldMap(string[] fieldNames)
+ {
+ Dictionary field = new Dictionary();
+ for (int i = 0; i < fieldNames.Length; i++)
+ field[fieldNames[i]] = i;
+ return field;
+ }
+ #endregion
+
+
+ public override void Save(string tvOutputFile)
+ {
+ }
+ }
+}
diff --git a/ChanSort.Loader.Panasonic/SerializerPlugin.cs b/ChanSort.Loader.Panasonic/SerializerPlugin.cs
new file mode 100644
index 0000000..0456fe5
--- /dev/null
+++ b/ChanSort.Loader.Panasonic/SerializerPlugin.cs
@@ -0,0 +1,15 @@
+using ChanSort.Api;
+
+namespace ChanSort.Loader.Panasonic
+{
+ public class SerializerPlugin : ISerializerPlugin
+ {
+ public string PluginName { get { return "Panasonic *.db"; } }
+ public string FileFilter { get { return "*.db"; } }
+
+ public SerializerBase CreateSerializer(string inputFile)
+ {
+ return new Serializer(inputFile);
+ }
+ }
+}
diff --git a/ChanSort.Loader.ScmFile/DigitalChannel.cs b/ChanSort.Loader.ScmFile/DigitalChannel.cs
index fda6e4a..1c3c7f7 100644
--- a/ChanSort.Loader.ScmFile/DigitalChannel.cs
+++ b/ChanSort.Loader.ScmFile/DigitalChannel.cs
@@ -21,7 +21,7 @@ namespace ChanSort.Loader.ScmFile
if (freq == 0)
freq = transp*8 + 106;
- this.ChannelOrTransponder = ((int)(freq-106)/8).ToString();
+ this.ChannelOrTransponder = LookupData.Instance.GetDvbtChannel(freq).ToString();
this.FreqInMhz = freq;
}
}
diff --git a/ChanSort.Loader.ScmFile/ScmChannelBase.cs b/ChanSort.Loader.ScmFile/ScmChannelBase.cs
index 967de57..b72b844 100644
--- a/ChanSort.Loader.ScmFile/ScmChannelBase.cs
+++ b/ChanSort.Loader.ScmFile/ScmChannelBase.cs
@@ -96,10 +96,7 @@ namespace ChanSort.Loader.ScmFile
this.ServiceType = data.GetByte(_ServiceType);
this.SymbolRate = data.GetWord(_SymbolRate);
- if (this.ServiceType == (int)DvbServiceType.Radio)
- this.SignalSource |= SignalSource.Radio;
- else
- this.SignalSource |= SignalSource.Tv;
+ this.SignalSource |= LookupData.Instance.IsRadioOrTv(this.ServiceType);
}
#endregion
diff --git a/ChanSort.sln b/ChanSort.sln
index 2722500..d4fdc4e 100644
--- a/ChanSort.sln
+++ b/ChanSort.sln
@@ -22,6 +22,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.ScmFile", "
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.DbFile", "ChanSort.Loader.DbFile\ChanSort.Loader.DbFile.csproj", "{F6F02792-07F1-48D5-9AF3-F945CA5E3931}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChanSort.Loader.Panasonic", "ChanSort.Loader.Panasonic\ChanSort.Loader.Panasonic.csproj", "{68DA8072-3A29-4076-9F64-D66F38349585}"
+EndProject
Global
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = ChanSort1.vsmdi
@@ -76,6 +78,13 @@ Global
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|Any CPU.Build.0 = Release|Any CPU
{F6F02792-07F1-48D5-9AF3-F945CA5E3931}.Release|x86.ActiveCfg = Release|Any CPU
+ {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|x86.ActiveCfg = Debug|x86
+ {68DA8072-3A29-4076-9F64-D66F38349585}.Debug|x86.Build.0 = Debug|x86
+ {68DA8072-3A29-4076-9F64-D66F38349585}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {68DA8072-3A29-4076-9F64-D66F38349585}.Release|Any CPU.Build.0 = Release|Any CPU
+ {68DA8072-3A29-4076-9F64-D66F38349585}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ChanSort/MainForm.Designer.cs b/ChanSort/MainForm.Designer.cs
index c502333..f077c91 100644
--- a/ChanSort/MainForm.Designer.cs
+++ b/ChanSort/MainForm.Designer.cs
@@ -36,6 +36,7 @@
this.dsChannels = new System.Windows.Forms.BindingSource(this.components);
this.gviewLeft = new DevExpress.XtraGrid.Views.Grid.GridView();
this.colIndex1 = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.colOutServiceType = new DevExpress.XtraGrid.Columns.GridColumn();
this.colOutSlot = new DevExpress.XtraGrid.Columns.GridColumn();
this.colOutName = new DevExpress.XtraGrid.Columns.GridColumn();
this.colOutFav = new DevExpress.XtraGrid.Columns.GridColumn();
@@ -153,7 +154,7 @@
this.tabChannelList = new DevExpress.XtraTab.XtraTabControl();
this.pageEmpty = new DevExpress.XtraTab.XtraTabPage();
this.mnuContext = new DevExpress.XtraBars.PopupMenu(this.components);
- this.colOutServiceType = new DevExpress.XtraGrid.Columns.GridColumn();
+ this.colSignalSource = new DevExpress.XtraGrid.Columns.GridColumn();
((System.ComponentModel.ISupportInitialize)(this.splitContainerControl1)).BeginInit();
this.splitContainerControl1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.grpOutputList)).BeginInit();
@@ -194,7 +195,7 @@
resources.ApplyResources(this.splitContainerControl1.Panel1, "splitContainerControl1.Panel1");
this.splitContainerControl1.Panel2.Controls.Add(this.grpInputList);
resources.ApplyResources(this.splitContainerControl1.Panel2, "splitContainerControl1.Panel2");
- this.splitContainerControl1.SplitterPosition = 343;
+ this.splitContainerControl1.SplitterPosition = 386;
//
// grpOutputList
//
@@ -265,6 +266,13 @@
this.colIndex1.FieldName = "RecordIndex";
this.colIndex1.Name = "colIndex1";
//
+ // colOutServiceType
+ //
+ resources.ApplyResources(this.colOutServiceType, "colOutServiceType");
+ this.colOutServiceType.FieldName = "ServiceTypeName";
+ this.colOutServiceType.Name = "colOutServiceType";
+ this.colOutServiceType.OptionsColumn.AllowEdit = false;
+ //
// colOutSlot
//
resources.ApplyResources(this.colOutSlot, "colOutSlot");
@@ -477,7 +485,8 @@
this.colNetworkName,
this.colNetworkOperator,
this.colDebug,
- this.colLogicalIndex});
+ this.colLogicalIndex,
+ this.colSignalSource});
this.gviewRight.GridControl = this.gridRight;
this.gviewRight.Name = "gviewRight";
this.gviewRight.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseDown;
@@ -1394,12 +1403,12 @@
this.mnuContext.Manager = this.barManager1;
this.mnuContext.Name = "mnuContext";
//
- // colOutServiceType
+ // colSignalSource
//
- resources.ApplyResources(this.colOutServiceType, "colOutServiceType");
- this.colOutServiceType.FieldName = "ServiceTypeName";
- this.colOutServiceType.Name = "colOutServiceType";
- this.colOutServiceType.OptionsColumn.AllowEdit = false;
+ resources.ApplyResources(this.colSignalSource, "colSignalSource");
+ this.colSignalSource.FieldName = "SignalSource";
+ this.colSignalSource.Name = "colSignalSource";
+ this.colSignalSource.OptionsColumn.AllowEdit = false;
//
// MainForm
//
@@ -1577,6 +1586,7 @@
private DevExpress.XtraEditors.SimpleButton btnToggleFavA;
private DevExpress.XtraGrid.Columns.GridColumn colOutLock;
private DevExpress.XtraGrid.Columns.GridColumn colOutServiceType;
+ private DevExpress.XtraGrid.Columns.GridColumn colSignalSource;
private DevExpress.XtraSplashScreen.SplashScreenManager splashScreenManager1;
}
}
diff --git a/ChanSort/MainForm.resx b/ChanSort/MainForm.resx
index cb569f1..17e86e3 100644
--- a/ChanSort/MainForm.resx
+++ b/ChanSort/MainForm.resx
@@ -222,7 +222,7 @@
35
- 339, 417
+ 382, 417
1
@@ -872,6 +872,12 @@
DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
+ colOutServiceType
+
+
+ DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+
colOutSlot
@@ -1358,10 +1364,10 @@
DevExpress.XtraBars.PopupMenu, DevExpress.XtraBars.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
- colOutServiceType
+
+ colSignalSource
-
+
DevExpress.XtraGrid.Columns.GridColumn, DevExpress.XtraGrid.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
@@ -1371,7 +1377,7 @@
DevExpress.XtraEditors.XtraForm, DevExpress.Utils.v12.2, Version=12.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
- 04/08/2013 10:45:01
+ 04/11/2013 21:59:42
16, 16
@@ -1659,7 +1665,7 @@
2, 21
- 339, 33
+ 382, 33
0
@@ -1683,7 +1689,7 @@
0, 0
- 343, 490
+ 386, 490
0
@@ -2009,8 +2015,11 @@
Order
+
+ Signal source
+
- 1122, 417
+ 1079, 417
1
@@ -2148,7 +2157,7 @@
2, 21
- 1122, 33
+ 1079, 33
0
@@ -2172,7 +2181,7 @@
0, 0
- 1126, 490
+ 1083, 490
0