mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-05-05 12:57:00 +02:00
Changes:
- File / "File information" now shows information for all TV models - Disabled "TV-Set" menu items which are not applicable - Fixed DVB-S transponder/frequency information for LG LN and LA61xx series - Fixed deleting channels in Samsung B-series Digital Air/Cable lists - Fixed encryption information in Samsung B-series Digital Air/Cable lists - Fixed loading of reference lists with non-unique channel identifiers - Fixed error when saving LG files for models LD-LK after applying a reference list which contains channels not present in the TLL file
This commit is contained in:
@@ -126,24 +126,25 @@
|
||||
offProgramNr = 0
|
||||
offVideoPid = 2
|
||||
offPcrPid = 4
|
||||
offServiceId = 10
|
||||
offDeleted = 7
|
||||
maskDeleted = 0x20
|
||||
offFavOld = 6
|
||||
offQam = 7
|
||||
offInUse = 8
|
||||
maskInUse = 0x80
|
||||
offServiceType = 9
|
||||
offEncrypted = 23
|
||||
maskEncrypted = 0x01
|
||||
offSymbolRate = 32
|
||||
offLock = 244
|
||||
maskLock = 0x01
|
||||
offServiceId = 10
|
||||
offOriginalNetworkId = 12
|
||||
offNetworkId = 14
|
||||
offBouquet = 34
|
||||
offEncrypted = 23
|
||||
maskEncrypted = 0x20
|
||||
offChannelTransponder = 26
|
||||
offLogicalProgramNr = 28
|
||||
offSymbolRate = 32
|
||||
offBouqet = 34
|
||||
offTransportStreamId = 36
|
||||
offName = 44
|
||||
lenName = 100
|
||||
offLock = 245
|
||||
maskLock = 0x01
|
||||
offFavorites = 246
|
||||
offChecksum = 247
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace ChanSort.Loader.Samsung
|
||||
#region InitCommonData()
|
||||
protected void InitCommonData(int slot, SignalSource signalSource, DataMapping data)
|
||||
{
|
||||
this.InUse = data.GetFlag(_InUse);
|
||||
this.InUse = data.GetFlag(_InUse, true);
|
||||
this.RecordIndex = slot;
|
||||
this.RecordOrder = slot;
|
||||
this.SignalSource = signalSource;
|
||||
@@ -58,8 +58,6 @@ namespace ChanSort.Loader.Samsung
|
||||
this.Lock = data.GetFlag(_Lock);
|
||||
this.Encrypted = data.GetFlag(_Encrypted);
|
||||
this.IsDeleted = data.GetFlag(_Deleted);
|
||||
if (this.IsDeleted)
|
||||
this.OldProgramNr = -1;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -117,8 +117,8 @@ namespace ChanSort.Loader.Samsung
|
||||
#region DetectModelConstants()
|
||||
private void DetectModelConstants(ZipFile zip)
|
||||
{
|
||||
if (DetectModelFromCloneInfoFile(zip)) return;
|
||||
if (DetectModelFromFileName()) return;
|
||||
if (DetectModelFromCloneInfoFile(zip)) return;
|
||||
if (DetectModelFromContentFileLengths(zip)) return;
|
||||
throw new FileLoadException("Unable to determine TV model from file content or name");
|
||||
}
|
||||
@@ -129,11 +129,20 @@ namespace ChanSort.Loader.Samsung
|
||||
{
|
||||
string file = Path.GetFileName(this.FileName)??"";
|
||||
System.Text.RegularExpressions.Regex regex =
|
||||
new System.Text.RegularExpressions.Regex("channel_list_(?:[A-Z]{2}[0-9]{2}|BD-)([A-Z])[0-9A-Z]+_[0-9]{4}.*\\.scm");
|
||||
new System.Text.RegularExpressions.Regex("channel_list_([A-Z]{2}[0-9]{2}|BD-)([A-Z])[0-9A-Z]+_([0-9]{4}).*\\.scm");
|
||||
var match = regex.Match(file);
|
||||
if (match.Success)
|
||||
{
|
||||
string series = match.Groups[1].Value;
|
||||
string series;
|
||||
switch (match.Groups[3].Value)
|
||||
{
|
||||
case "1001": series = "C"; break;
|
||||
case "1101": series = "D"; break;
|
||||
case "1201": series = "E"; break;
|
||||
default:
|
||||
series = match.Groups[1].Value.StartsWith("LT") ? "F" : match.Groups[2].Value;
|
||||
break;
|
||||
}
|
||||
if (this.modelConstants.TryGetValue("Series:" + series, out this.c))
|
||||
return true;
|
||||
}
|
||||
@@ -154,6 +163,8 @@ namespace ChanSort.Loader.Samsung
|
||||
if (cloneInfo.Length >= 9)
|
||||
{
|
||||
char series = (char) cloneInfo[8];
|
||||
if (series == 'B') // 2013 B-series uses E/F-series format
|
||||
series = 'F';
|
||||
if (this.modelConstants.TryGetValue("Series:" + series, out this.c))
|
||||
return true;
|
||||
}
|
||||
@@ -173,7 +184,7 @@ namespace ChanSort.Loader.Samsung
|
||||
DetectModelFromAstraHdPlusD(zip)
|
||||
};
|
||||
|
||||
// note: E and F series use an identical format, so we only care about E here
|
||||
// note: E, F and B(2013) series use an identical format, so we only care about E here
|
||||
string validCandidates = "BCDE";
|
||||
foreach (var candidateList in candidates)
|
||||
{
|
||||
@@ -390,7 +401,7 @@ namespace ChanSort.Loader.Samsung
|
||||
for (int slotIndex = 0; slotIndex < count; slotIndex++)
|
||||
{
|
||||
DigitalChannel ci = new DigitalChannel(slotIndex, isCable, rawChannel, frequency, c.SortedFavorites);
|
||||
if (ci.OldProgramNr > 0)
|
||||
if (ci.InUse && !ci.IsDeleted)
|
||||
this.DataRoot.AddChannel(list, ci);
|
||||
|
||||
rawChannel.BaseOffset += entrySize;
|
||||
@@ -583,13 +594,6 @@ namespace ChanSort.Loader.Samsung
|
||||
}
|
||||
#endregion
|
||||
|
||||
public override void ShowDeviceSettingsForm(object parentWindow)
|
||||
{
|
||||
MessageBox.Show((Form) parentWindow, "Sorry, ChanSort currently doesn't support any settings for your TV model.",
|
||||
"Device Settings",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
// ------- testing -----------
|
||||
|
||||
internal string Series { get { return c.series; } }
|
||||
|
||||
Reference in New Issue
Block a user