mirror of
https://github.com/PredatH0r/ChanSort.git
synced 2026-07-21 05:40:06 +02:00
- 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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user