feyris-tan 8808dc92e0
Some checks failed
🚀 Pack skyscraper8 / make-zip (push) Failing after 37s
Added FFTTerm to the StreamReader I/O.
2026-05-09 20:38:32 +02:00

504 lines
12 KiB
C#

using System;
namespace skyscraper5.Skyscraper.IO.CrazycatStreamReader
{
/// <summary>
/// FEC error correction methods.
/// </summary>
public enum VITERBIRATE_TYPE : int
{
VR_AUTO = 0, // DVB-S: automatic detection of viterbi rate
VR_1_2 = 1,
VR_2_3 = 2,
VR_3_4 = 3,
VR_4_5 = 4,
VR_5_6 = 5,
VR_6_7 = 6,
VR_7_8 = 7,
VR_8_9 = 8,
VR_9_10 = 9,
VR_1_4 = 10,
VR_1_3 = 11,
VR_2_5 = 12,
VR_3_5 = 13,
VR_5_9 = 14,
VR_7_9 = 15,
VR_8_15 = 16,
VR_11_15 = 17,
VR_13_18 = 18,
VR_9_20 = 19,
VR_11_20 = 20,
VR_23_36 = 21,
VR_25_36 = 22,
VR_13_45 = 23,
VR_26_45 = 24,
VR_28_45 = 25,
VR_32_45 = 26,
VR_77_90 = 27,
}
/// <summary>
/// Modulation type
/// </summary>
public enum MOD_TYPE : int
{
/// <summary>
/// Automatic detection of modulation type
/// </summary>
MOD_AUTO = 0,
/// <summary>
/// QPSK (DVB-S)
/// </summary>
MOD_QPSK = 1,
/// <summary>
/// 8PSK (DVB-S2)
/// </summary>
MOD_8PSK = 2,
/// <summary>
/// 16APSK (DVB-S2)
/// </summary>
MOD_16APSK = 3,
/// <summary>
/// 32APSK (DVB-S2)
/// </summary>
MOD_32APSK = 4,
/// <summary>
/// QPSK (DVB-S2)
/// </summary>
MOD_QPSK2 = 5,
/// <summary>
/// Turbo QPSK
/// </summary>
MOD_QPSK_T = 6,
/// <summary>
/// Turbo 8PSK
/// </summary>
MOD_8PSK_T = 7,
/// <summary>
/// Turbo 16QAM
/// </summary>
MOD_16QAM_T = 8,
/// <summary>
/// DirectTV DSS
/// </summary>
MOD_DSS = 9,
/// <summary>
/// BPSK
/// </summary>
MOD_BPSK = 10,
/// <summary>
/// Offset QPSK
/// </summary>
MOD_OQPSK = 11,
/// <summary>
/// Digicipher II Combo
/// </summary>
MOD_DC2_COMBO = 12,
/// <summary>
/// Digicipher II Split(I)
/// </summary>
MOD_DC2_SPLIT_I = 13,
/// <summary>
/// Digicipher II Split(Q)
/// </summary>
MOD_DC2_SPLIT_Q = 14,
/// <summary>
/// Digicipher II Offset QPSK
/// </summary>
MOD_DC2_OQPSK = 15,
/// <summary>
/// 8-Level Vestigial Sideband
/// </summary>
MOD_8VSB = 16,
/// <summary>
/// 16-Level Vestigial Sideband
/// </summary>
MOD_16VSB = 17,
MOD_16QAM = 18,
MOD_32QAM = 19,
MOD_64QAM = 20,
MOD_128QAM = 21,
MOD_256QAM = 22,
/// <summary>
/// 512QAM (DVB-C2)
/// </summary>
MOD_512QAM = 23,
/// <summary>
/// 1024QAM (DVB-C2)
/// </summary>
MOD_1024QAM = 24,
/// <summary>
/// 4096QAM (DVB-C2)
/// </summary>
MOD_4096QAM = 25,
/// <summary>
/// VL-SNR (DVB-S2X)
/// </summary>
MOD_VLSNR = 26,
/// <summary>
/// 64APSK (DVB-S2X)
/// </summary>
MOD_64APSK = 27,
/// <summary>
/// 128APSK (DVB-S2X)
/// </summary>
MOD_128APSK = 28,
/// <summary>
/// 256APSK (DVB-S2X)
/// </summary>
MOD_256APSK = 29,
/// <summary>
/// 8PSK_L (DVB-S2X)
/// </summary>
MOD_8PSK_L = 30,
/// <summary>
/// 16APSK_L (DVB-S2X)
/// </summary>
MOD_16APSK_L = 31,
/// <summary>
/// 32APSK_L (DVB-S2X)
/// </summary>
MOD_32APSK_L = 32,
/// <summary>
/// 64APSK_L (DVB-S2X)
/// </summary>
MOD_64APSK_L = 33,
/// <summary>
/// 256APSK_L (DVB-S2X)
/// </summary>
MOD_256APSK_L = 34,
/// <summary>
/// 1024APSK (DVB-S2X)
/// </summary>
MOD_1024APSK = 35,
}
/// <summary>
/// Network types
/// </summary>
public enum STD_TYPE : int
{
/// <summary>
/// Autodetect the network type.
/// </summary>
STD_AUTO = 0,
/// <summary>
/// A DVB-S compliant satellite network.
/// </summary>
STD_DVBS = 1,
/// <summary>
/// A DVB-S2 compliant satellite network.
/// </summary>
STD_DVBS2 = 2,
/// <summary>
/// The target network is DirecTV
/// </summary>
STD_DIRECTV = 3,
/// <summary>
/// A DVB-Turbo compliant satellite network.
/// </summary>
STD_TURBO = 4,
/// <summary>
/// A Digicipher II compliant cable or satellite network. Usually found in America.
/// </summary>
STD_DC2 = 5,
/// <summary>
/// A DVB-T compliant network.
/// </summary>
STD_DVBT = 6,
/// <summary>
/// A DVB-T2 compliant network.
/// </summary>
STD_DVBT2 = 7,
/// <summary>
/// A DVB-C compliant cable television network.
/// </summary>
STD_DVBC = 8,
/// <summary>
/// A DVB-C2 compliant cable television network.
/// </summary>
STD_DVBC2 = 9,
/// <summary>
/// An ATSC compliant network. American.
/// </summary>
STD_ATSC = 10,
/// <summary>
/// An ISDB-T compliant network. Commonly found in Japan or Brazil.
/// </summary>
STD_ISDBT = 11,
/// <summary>
/// An ISDB-S compliant network. Commonly found in Japan.
/// </summary>
STD_ISDBS = 12,
}
/// <summary>
/// Possible values for the signal-curve steepness.
/// </summary>
public enum ROLLOFF_TYPE
{
ROLLOFF_AUTO = 0, // Automatic detection of S2-rolloff
ROLLOFF_35, // 35% RollOff
ROLLOFF_25, // 25% RollOff
ROLLOFF_20, // 20% RollOff
ROLLOFF_15, // 15% RollOff
ROLLOFF_10, // 10% RollOff
ROLLOFF_5, // 5% RollOff
}
/// <summary>
/// DVB-S2 specific modulations
/// </summary>
public enum S2MODCODE : int
{
S2_DUMMY_PLF = 0,
S2_QPSK_14 = 1,
S2_QPSK_13 = 2,
S2_QPSK_25 = 3,
S2_QPSK_12 = 4,
S2_QPSK_35 = 5,
S2_QPSK_23 = 6,
S2_QPSK_34 = 7,
S2_QPSK_45 = 8,
S2_QPSK_56 = 9,
S2_QPSK_89 = 10,
S2_QPSK_910 = 11,
S2_8PSK_35 = 12,
S2_8PSK_23 = 13,
S2_8PSK_34 = 14,
S2_8PSK_56 = 15,
S2_8PSK_89 = 16,
S2_8PSK_910 = 17,
S2_16APSK_23 = 18,
S2_16APSK_34 = 19,
S2_16APSK_45 = 20,
S2_16APSK_56 = 21,
S2_16APSK_89 = 22,
S2_16APSK_910 = 23,
S2_32APSK_34 = 24,
S2_32APSK_45 = 25,
S2_32APSK_56 = 26,
S2_32APSK_89 = 27,
S2_32APSK_910 = 28,
S2X_VLSNR1 = 64,
S2X_VLSNR2 = 29,
S2X_QPSK_13_45 = 30,
S2X_QPSK_9_20 = 31,
S2X_QPSK_11_20 = 32,
S2X_8APSK_5_9_L = 33,
S2X_8APSK_26_45_L = 34,
S2X_8PSK_23_36 = 35,
S2X_8PSK_25_36 = 36,
S2X_8PSK_13_18 = 37,
S2X_16APSK_1_2_L = 38,
S2X_16APSK_8_15_L = 39,
S2X_16APSK_5_9_L = 40,
S2X_16APSK_26_45 = 41,
S2X_16APSK_3_5 = 42,
S2X_16APSK_3_5_L = 43,
S2X_16APSK_28_45 = 44,
S2X_16APSK_23_36 = 45,
S2X_16APSK_2_3_L = 46,
S2X_16APSK_25_36 = 47,
S2X_16APSK_13_18 = 48,
S2X_16APSK_7_9 = 49,
S2X_16APSK_77_90 = 50,
S2X_32APSK_2_3_L = 51,
S2X_32APSK_32_45 = 89,
S2X_32APSK_11_15 = 52,
S2X_32APSK_7_9 = 53,
S2X_64APSK_32_45_L = 54,
S2X_64APSK_11_15 = 55,
S2X_64APSK_7_9 = 95,
S2X_64APSK_4_5 = 97,
S2X_64APSK_5_6 = 99,
S2X_128APSK_3_4 = 56,
S2X_128APSK_7_9 = 57,
S2X_256APSK_29_45_L = 58,
S2X_256APSK_2_3_L = 59,
S2X_256APSK_31_45_L = 60,
S2X_256APSK_32_45 = 61,
S2X_256APSK_11_15_L = 62,
S2X_256APSK_3_4 = 63,
S2X_QPSK_11_45 = 64,
S2X_QPSK_4_15 = 65,
S2X_QPSK_14_45 = 66,
S2X_QPSK_7_15 = 67,
S2X_QPSK_8_15 = 68,
S2X_QPSK_32_45 = 69,
S2X_8PSK_7_15 = 70,
S2X_8PSK_8_15 = 71,
S2X_8PSK_26_45 = 72,
S2X_8PSK_32_45 = 73,
S2X_16APSK_7_15 = 74,
S2X_16APSK_8_15 = 75,
S2X_16APSK_26_45_S = 76,
S2X_16APSK_3_5_S = 77,
S2X_16APSK_32_45 = 78,
S2X_32APSK_2_3 = 79,
S2X_32APSK_32_45_S = 80,
/* POFF Modes */
S2X_8PSK = 81,
S2X_32APSK = 82,
S2X_256APSK = 83,
/* PON Modes */
S2X_16APSK = 84,
S2X_64APSK = 85,
S2X_1024APSK = 86,
}
/// <summary>
/// These flags can be OR-ed together to form a DISEqC Switch Opcode
/// </summary>
[Flags]
public enum DiSEqC_Opcode : byte
{
/// <summary>
/// Magic bits, set this.
/// </summary>
DISEQC_HIGH_NIBBLE = 0xF0,
DISEQC_LOW_BAND = 0x00,
DISEQC_HIGH_BAND = 0x01,
DISEQC_VERTICAL = 0x00,
DISEQC_HORIZONTAL = 0x02,
DISEQC_POSITION_A = 0x00,
DISEQC_POSITION_B = 0x04,
DISEQC_OPTION_A = 0x00,
DISEQC_OPTION_B = 0x08
}
[Flags]
public enum Caps : int
{
BitFilter = 0x01,
SR_RC = 0x02,
/// <summary>
/// The tuner can act as a networking interface.
/// </summary>
SR_GETMAC = 0x04,
SR_SIGNALEX = 0x08,
SR_SIMPLETB = 0x10,
/// <summary>
/// The tuner supports up to 4 LNBs.
/// </summary>
SR_DISEQC10 = 0x20,
/// <summary>
/// The tuner supports up to 16 LNBs.
/// </summary>
SR_DISEQC1X = 0x40,
/// <summary>
/// The tuner supports rotatable satellite dishes.
/// </summary>
SR_DISEQC2X = 0x80,
/// <summary>
/// The tuner can mearue RF Strengths of satellite frequencies.
/// </summary>
SR_RFSCAN = 0x100,
/// <summary>
/// The tuner is happy with approximate frequencies.
/// </summary>
SR_BLSCAN = 0x200,
/// <summary>
/// The tuner can measure constellation data for satellite networks.
/// </summary>
SR_IQSCAN = 0x400,
SR_MISSEL = 0x800,
/// <summary>
/// The tuner has an EEPROM
/// </summary>
SR_EEPROM = 0x1000,
/// <summary>
/// The tuner can report signal information for satellite networks.
/// </summary>
SR_SIGINFO = 0x2000,
/// <summary>
/// The tuner can report signal information for non-satellite networks.
/// </summary>
SR_SIGINFO2 = 0x4000,
SR_RFSCAN2 = 0x10000,
/// <summary>
/// The tuner can blind-scan satellite networks.
/// </summary>
SR_BLSCAN2 = 0x20000,
/// <summary>
/// The tuner supports Physical Layer scrambling
/// </summary>
SR_PLSSEL = 0x40000,
/// <summary>
/// The tuner can measure constellations for non-satellite networks.
/// </summary>
SR_IQSCAN2 = 0x80000,
SR_BBFRAME = 0x100000,
SR_MODSEL = 0x200000,
SR_MODINV = 0x400000,
/// <summary>
/// The tuner can blind-scan non-satellite networks.
/// </summary>
SR_AIRSCAN = 0x800000,
SR_CIRSCAN = 0x1000000,
SR_FFTSCAN = 0x2000000,
SR_CARESNO = 0x4000000,
SR_SETPOL = 0x8000000
}
}