- Sony: DVB-T and DVB-C lists are now separated into "TV", "Radio" and "Other" lists, each with their own unique numbering

- Samsung ZIP: deleting a channel now really deletes it from the file, instead of marking it as deleted
  and assigning -1 as channel number (which appears as 65535 on some models)
This commit is contained in:
hbeham
2019-08-11 17:27:07 +02:00
parent 8aee8a75d0
commit 0c348ed151
6 changed files with 102 additions and 59 deletions

View File

@@ -85,20 +85,19 @@ namespace ChanSort.Api
#region GetChannelList()
public ChannelList GetChannelList(SignalSource criteriaMask)
public ChannelList GetChannelList(SignalSource searchMask)
{
foreach (var list in this.channelLists)
{
uint searchMask = (uint)criteriaMask;
uint listMask = (uint) list.SignalSource;
var listMask = list.SignalSource;
if ((listMask & 0x000F & searchMask) != (searchMask & 0x000F)) // digital/analog
if ((listMask & SignalSource.MaskAnalogDigital) != 0 && (listMask & SignalSource.MaskAnalogDigital & searchMask) == 0) // digital/analog
continue;
if ((listMask & 0x00F0 & searchMask) != (searchMask & 0x00F0)) // air/cable/sat/ip
if ((listMask & SignalSource.MaskAntennaCableSat) != 0 && (listMask & SignalSource.MaskAntennaCableSat & searchMask) == 0) // air/cable/sat/ip
continue;
if ((listMask & 0x0F00 & searchMask) != (searchMask & 0x0F00)) // tv/radio
if ((listMask & SignalSource.MaskTvRadio) != 0 && (listMask & SignalSource.MaskTvRadio & searchMask) == 0) // tv/radio
continue;
if ((listMask & 0xF000) != (searchMask & 0xF000)) // preset list
if ((listMask & SignalSource.MaskProvider) != 0 && (listMask & SignalSource.MaskProvider) != (searchMask & SignalSource.MaskProvider)) // preset list
continue;
return list;
}

View File

@@ -11,12 +11,12 @@ namespace ChanSort.Api
[Flags]
public enum SignalSource
{
// bit 1+2: analog/digital
// bit 0-1: analog/digital
MaskAnalogDigital = 0x0003,
Analog = 0x0001,
Digital = 0x0002,
// bit 4+5+6+7+8: AvInput/Antenna/Cable/Sat/IP
// bit 3-7: AvInput/Antenna/Cable/Sat/IP
MaskAntennaCableSat = 0x00F8,
AvInput = 0x0008,
Antenna = 0x0010,
@@ -26,14 +26,20 @@ namespace ChanSort.Api
MaskAdInput = MaskAnalogDigital | MaskAntennaCableSat,
// bit 9+10: TV/Radio
// bit 8-9: TV/Radio
MaskTvRadio = 0x0300,
Tv = 0x0100,
Radio = 0x0200,
TvAndRadio = Tv | Radio,
// bit 13-16: Preset list selector (AstraHD+, Freesat, TivuSat, CanalDigitalSat, ... for Samsung)
// bit 12-15: Preset list selector (AstraHD+, Freesat, TivuSat, CanalDigitalSat, ... for Samsung)
MaskProvider = 0xFC00,
Provider0 = 0 << 12,
Provider1 = 1 << 12,
Provider2 = 2 << 12,
Provider3 = 3 << 12,
Provider4 = 4 << 12,
StandardSat = 0 << 12,
AstraHdPlus = 1 << 12,
Freesat = 2 << 12,
@@ -41,7 +47,7 @@ namespace ChanSort.Api
CanalDigital = 4 << 12,
DigitalPlus = 5 << 12,
CyfraPlus = 6 << 12,
StandardCable = 0 << 12,
CablePrime = 1 << 12,