mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-28 16:01:10 +02:00
add DVB-S2X support
Origin commit data
------------------
Branch: ni/coolstream
Commit: 5f24f44353
Author: TangoCash <eric@loxat.de>
Date: 2017-12-04 (Mon, 04 Dec 2017)
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -610,6 +610,13 @@ extra.tp_mod_auto QAM/AUTO
|
||||
extra.tp_pilot Pilot
|
||||
extra.tp_pilot_auto Auto (HW)
|
||||
extra.tp_pilot_auto_sw Auto (SW)
|
||||
extra.tp_plc PLM Code
|
||||
extra.tp_pli Stream ID
|
||||
extra.tp_plm PLS Modus
|
||||
extra.tp_plm_combo Combo
|
||||
extra.tp_plm_gold Gold
|
||||
extra.tp_plm_root Root (Standard)
|
||||
extra.tp_plm_unk Unbekannt
|
||||
extra.tp_pol Polarisation
|
||||
extra.tp_pol_h H
|
||||
extra.tp_pol_l L
|
||||
|
@@ -609,6 +609,13 @@ extra.tp_mod_auto QAM/AUTO
|
||||
extra.tp_pilot Pilot
|
||||
extra.tp_pilot_auto Auto (HW)
|
||||
extra.tp_pilot_auto_sw Auto (SW)
|
||||
extra.tp_plc PLM Code
|
||||
extra.tp_pli Stream ID
|
||||
extra.tp_plm PLS Mode
|
||||
extra.tp_plm_combo Combo
|
||||
extra.tp_plm_gold Gold
|
||||
extra.tp_plm_root Root (Default)
|
||||
extra.tp_plm_unk Unknown
|
||||
extra.tp_pol Polarization
|
||||
extra.tp_pol_h H
|
||||
extra.tp_pol_l L
|
||||
|
@@ -233,6 +233,9 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey)
|
||||
TP.feparams.delsys = (delivery_system_t)scansettings.sat_TP_delsys;
|
||||
TP.feparams.modulation = (fe_modulation_t) scansettings.sat_TP_mod;
|
||||
TP.feparams.pilot = (zapit_pilot_t) scansettings.sat_TP_pilot;
|
||||
TP.feparams.plp_id = atoi(scansettings.sat_TP_pli.c_str());
|
||||
TP.feparams.pls_code = atoi(scansettings.sat_TP_plc.c_str());
|
||||
TP.feparams.pls_mode = (fe_pls_mode_t) scansettings.sat_TP_plm;
|
||||
} else if (CFrontend::isTerr(delsys)) {
|
||||
/* DVB-T. TODO: proper menu and parameter setup, not all "AUTO" */
|
||||
TP.feparams.frequency = atoi(scansettings.terrestrial_TP_freq.c_str());
|
||||
@@ -248,6 +251,7 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey)
|
||||
TP.feparams.guard_interval = (fe_guard_interval_t)scansettings.terrestrial_TP_guard;
|
||||
TP.feparams.hierarchy = (fe_hierarchy_t)scansettings.terrestrial_TP_hierarchy;
|
||||
TP.feparams.delsys = (delivery_system_t)scansettings.terrestrial_TP_delsys;
|
||||
TP.feparams.plp_id = atoi(scansettings.terrestrial_TP_pli.c_str());
|
||||
} else if (CFrontend::isCable(delsys)) {
|
||||
TP.feparams.frequency = atoi(scansettings.cable_TP_freq.c_str());
|
||||
TP.feparams.symbol_rate = atoi(scansettings.cable_TP_rate.c_str());
|
||||
|
@@ -349,6 +349,15 @@ const CMenuOptionChooser::keyval FRONTEND_FORCE_MODE[FRONTEND_FORCE_MODE_COUNT]
|
||||
{ 2, LOCALE_TUNERSETUP_TERR }
|
||||
};
|
||||
|
||||
#define SATSETUP_SCANTP_PLM_COUNT 4
|
||||
const CMenuOptionChooser::keyval SATSETUP_SCANTP_PLM[SATSETUP_SCANTP_PLM_COUNT] =
|
||||
{
|
||||
{ 0, LOCALE_EXTRA_TP_PLM_ROOT },
|
||||
{ 1, LOCALE_EXTRA_TP_PLM_GOLD },
|
||||
{ 2, LOCALE_EXTRA_TP_PLM_COMBO },
|
||||
{ 3, LOCALE_EXTRA_TP_PLM_UNK }
|
||||
};
|
||||
|
||||
CScanSetup::CScanSetup(int wizard_mode)
|
||||
{
|
||||
width = 40;
|
||||
@@ -1681,6 +1690,9 @@ int CScanSetup::addScanOptionsItems(CMenuWidget *options_menu, const int &shortc
|
||||
CMenuForwarder *Freq = NULL;
|
||||
CMenuForwarder *Rate = NULL;
|
||||
CMenuOptionChooser *pilot = NULL;
|
||||
CMenuForwarder *Pli = NULL;
|
||||
CMenuForwarder *Plc = NULL;
|
||||
CMenuOptionChooser *Plm = NULL;
|
||||
if (r_system == ALL_SAT) {
|
||||
delsys = new CMenuOptionChooser(LOCALE_EXTRA_TP_DELSYS, (int *)&scansettings.sat_TP_delsys, SATSETUP_SCANTP_DELSYS, SATSETUP_SCANTP_DELSYS_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++), "", true);
|
||||
delsys->setHint("", LOCALE_MENU_HINT_SCAN_DELSYS);
|
||||
@@ -1698,6 +1710,11 @@ int CScanSetup::addScanOptionsItems(CMenuWidget *options_menu, const int &shortc
|
||||
pol->setHint("", LOCALE_MENU_HINT_SCAN_POL);
|
||||
pilot = new CMenuOptionChooser(LOCALE_EXTRA_TP_PILOT, (int *)&scansettings.sat_TP_pilot, SATSETUP_SCANTP_PILOT, SATSETUP_SCANTP_PILOT_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++));
|
||||
pilot->setHint("", LOCALE_MENU_HINT_SCAN_PILOT);
|
||||
CStringInput *pli = new CStringInput(LOCALE_EXTRA_TP_PLI, &scansettings.sat_TP_pli, 1, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789");
|
||||
Pli = new CMenuDForwarder(LOCALE_EXTRA_TP_PLI, true, scansettings.sat_TP_pli, pli, "", CRCInput::convertDigitToKey(shortCut++));
|
||||
CStringInput *plc = new CStringInput(LOCALE_EXTRA_TP_PLC, &scansettings.sat_TP_plc, 6, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789");
|
||||
Plc = new CMenuDForwarder(LOCALE_EXTRA_TP_PLC, true, scansettings.sat_TP_plc, plc, "", CRCInput::convertDigitToKey(shortCut++));
|
||||
Plm = new CMenuOptionChooser(LOCALE_EXTRA_TP_PLM, (int *)&scansettings.sat_TP_plm, SATSETUP_SCANTP_PLM, SATSETUP_SCANTP_PLM_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++));
|
||||
} else if (r_system == ALL_CABLE) {
|
||||
delsys = new CMenuOptionChooser(LOCALE_EXTRA_TP_DELSYS, (int *)&scansettings.cable_TP_delsys, CABLESETUP_SCANTP_DELSYS, CABLESETUP_SCANTP_DELSYS_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++), "", true);
|
||||
delsys->setHint("", LOCALE_MENU_HINT_SCAN_DELSYS);
|
||||
@@ -1730,6 +1747,8 @@ int CScanSetup::addScanOptionsItems(CMenuWidget *options_menu, const int &shortc
|
||||
coderateLP->setHint("", LOCALE_MENU_HINT_SCAN_FEC);
|
||||
tm = new CMenuOptionChooser(LOCALE_EXTRA_TP_TRANSMIT_MODE, (int *)&scansettings.terrestrial_TP_transmit_mode, TERRSETUP_SCANTP_TRANSMIT_MODE, TERRSETUP_SCANTP_TRANSMIT_MODE_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++));
|
||||
tm->setHint("", LOCALE_MENU_HINT_SCAN_TRANSMIT_MODE);
|
||||
CStringInput *pli = new CStringInput(LOCALE_EXTRA_TP_PLI, &scansettings.terrestrial_TP_pli, 1, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789");
|
||||
Pli = new CMenuDForwarder(LOCALE_EXTRA_TP_PLI, true, scansettings.terrestrial_TP_pli, pli, "", CRCInput::convertDigitToKey(shortCut++));
|
||||
}
|
||||
|
||||
if (delsys)
|
||||
@@ -1759,6 +1778,13 @@ int CScanSetup::addScanOptionsItems(CMenuWidget *options_menu, const int &shortc
|
||||
if (pilot)
|
||||
options_menu->addItem(pilot);
|
||||
|
||||
if (Pli)
|
||||
options_menu->addItem(Pli);
|
||||
if (Plc)
|
||||
options_menu->addItem(Plc);
|
||||
if (Plm)
|
||||
options_menu->addItem(Plm);
|
||||
|
||||
return shortCut;
|
||||
}
|
||||
|
||||
@@ -1945,6 +1971,9 @@ void CScanSetup::updateManualSettings()
|
||||
scansettings.sat_TP_delsys = tI->second.feparams.delsys;
|
||||
scansettings.sat_TP_mod = tI->second.feparams.modulation;
|
||||
scansettings.satName = CServiceManager::getInstance()->GetSatelliteName(channel->getSatellitePosition());
|
||||
scansettings.sat_TP_pli = to_string(tI->second.feparams.plp_id);
|
||||
scansettings.sat_TP_plc = to_string(tI->second.feparams.pls_code);
|
||||
scansettings.sat_TP_plm = tI->second.feparams.pls_mode;
|
||||
} else if (CFrontend::isCable(tI->second.feparams.delsys)) {
|
||||
scansettings.cable_TP_freq = to_string(tI->second.feparams.frequency);
|
||||
scansettings.cable_TP_rate = to_string(tI->second.feparams.symbol_rate);
|
||||
@@ -1961,6 +1990,7 @@ void CScanSetup::updateManualSettings()
|
||||
scansettings.terrestrial_TP_transmit_mode = tI->second.feparams.transmission_mode;
|
||||
scansettings.terrestrial_TP_coderate_HP = tI->second.feparams.code_rate_HP;
|
||||
scansettings.terrestrial_TP_coderate_LP = tI->second.feparams.code_rate_LP;
|
||||
scansettings.terrestrial_TP_pli = to_string(tI->second.feparams.plp_id);
|
||||
|
||||
scansettings.terrestrialName = CServiceManager::getInstance()->GetSatelliteName(channel->getSatellitePosition());
|
||||
}
|
||||
@@ -2053,6 +2083,9 @@ int CTPSelectHandler::exec(CMenuTarget* parent, const std::string &actionkey)
|
||||
scansettings.sat_TP_delsys = tmpI->second.feparams.delsys;
|
||||
scansettings.sat_TP_mod = tmpI->second.feparams.modulation;
|
||||
scansettings.sat_TP_pilot = tmpI->second.feparams.pilot;
|
||||
scansettings.sat_TP_pli = to_string(tmpI->second.feparams.plp_id);
|
||||
scansettings.sat_TP_plc = to_string(tmpI->second.feparams.pls_code);
|
||||
scansettings.sat_TP_plm = tmpI->second.feparams.pls_mode;
|
||||
}
|
||||
else if (CFrontend::isCable(tmpI->second.feparams.delsys)) {
|
||||
scansettings.cable_TP_freq = to_string(tmpI->second.feparams.frequency);
|
||||
@@ -2069,6 +2102,7 @@ int CTPSelectHandler::exec(CMenuTarget* parent, const std::string &actionkey)
|
||||
scansettings.terrestrial_TP_transmit_mode = tmpI->second.feparams.transmission_mode;
|
||||
scansettings.terrestrial_TP_coderate_HP = tmpI->second.feparams.code_rate_HP;
|
||||
scansettings.terrestrial_TP_coderate_LP = tmpI->second.feparams.code_rate_LP;
|
||||
scansettings.terrestrial_TP_pli = to_string(tmpI->second.feparams.plp_id);
|
||||
//scansettings.terrestrialName = CServiceManager::getInstance()->GetSatelliteName(channel->getSatellitePosition());
|
||||
}
|
||||
}
|
||||
|
@@ -636,6 +636,13 @@ typedef enum
|
||||
LOCALE_EXTRA_TP_PILOT,
|
||||
LOCALE_EXTRA_TP_PILOT_AUTO,
|
||||
LOCALE_EXTRA_TP_PILOT_AUTO_SW,
|
||||
LOCALE_EXTRA_TP_PLC,
|
||||
LOCALE_EXTRA_TP_PLI,
|
||||
LOCALE_EXTRA_TP_PLM,
|
||||
LOCALE_EXTRA_TP_PLM_COMBO,
|
||||
LOCALE_EXTRA_TP_PLM_GOLD,
|
||||
LOCALE_EXTRA_TP_PLM_ROOT,
|
||||
LOCALE_EXTRA_TP_PLM_UNK,
|
||||
LOCALE_EXTRA_TP_POL,
|
||||
LOCALE_EXTRA_TP_POL_H,
|
||||
LOCALE_EXTRA_TP_POL_L,
|
||||
|
@@ -636,6 +636,13 @@ const char * locale_real_names[] =
|
||||
"extra.tp_pilot",
|
||||
"extra.tp_pilot_auto",
|
||||
"extra.tp_pilot_auto_sw",
|
||||
"extra.tp_plc",
|
||||
"extra.tp_pli",
|
||||
"extra.tp_plm",
|
||||
"extra.tp_plm_combo",
|
||||
"extra.tp_plm_gold",
|
||||
"extra.tp_plm_root",
|
||||
"extra.tp_plm_unk",
|
||||
"extra.tp_pol",
|
||||
"extra.tp_pol_h",
|
||||
"extra.tp_pol_l",
|
||||
|
@@ -151,6 +151,9 @@ bool CScanSettings::loadSettings(const char * const fileName)
|
||||
sat_TP_mod = configfile.getInt32("sat_TP_mod", QPSK);
|
||||
sat_TP_delsys = configfile.getInt32("sat_TP_delsys", DVB_S);
|
||||
sat_TP_pilot = configfile.getInt32("sat_TP_pilot", ZPILOT_AUTO_SW);
|
||||
sat_TP_pli = configfile.getString("sat_TP_pli", "0");
|
||||
sat_TP_plc = configfile.getString("sat_TP_plc", "1");
|
||||
sat_TP_plm = configfile.getInt32("sat_TP_plm", 0);
|
||||
|
||||
cableName = configfile.getString("cableName", cableName);
|
||||
cable_TP_mod = configfile.getInt32("cable_TP_mod", QAM_64);
|
||||
@@ -169,6 +172,7 @@ bool CScanSettings::loadSettings(const char * const fileName)
|
||||
terrestrial_TP_hierarchy = configfile.getInt32("terrestrial_TP_hierarchy", HIERARCHY_AUTO);
|
||||
terrestrial_TP_transmit_mode = configfile.getInt32("terrestrial_TP_transmit_mode", TRANSMISSION_MODE_AUTO);
|
||||
terrestrial_TP_delsys = configfile.getInt32("terrestrial_TP_delsys", DVB_T);
|
||||
terrestrial_TP_pli = configfile.getString("terrestrial_TP_pli", "0");
|
||||
|
||||
#if 1
|
||||
if(sat_TP_fec == 4) sat_TP_fec = 5;
|
||||
@@ -209,6 +213,9 @@ bool CScanSettings::saveSettings(const char * const fileName)
|
||||
configfile.setInt32("sat_TP_delsys", sat_TP_delsys);
|
||||
configfile.setInt32("sat_TP_mod", sat_TP_mod);
|
||||
configfile.setInt32("sat_TP_pilot", sat_TP_pilot);
|
||||
configfile.setString("sat_TP_pli", sat_TP_pli);
|
||||
configfile.setString("sat_TP_plc", sat_TP_plc);
|
||||
configfile.setInt32("sat_TP_plm", sat_TP_plm);
|
||||
|
||||
configfile.setString("cableName", cableName);
|
||||
configfile.setInt32("cable_TP_fec", cable_TP_fec);
|
||||
@@ -227,6 +234,7 @@ bool CScanSettings::saveSettings(const char * const fileName)
|
||||
configfile.setInt32("terrestrial_TP_guard", terrestrial_TP_guard);
|
||||
configfile.setInt32("terrestrial_TP_transmit_mode", terrestrial_TP_transmit_mode);
|
||||
configfile.setInt32("terrestrial_TP_delsys", terrestrial_TP_delsys);
|
||||
configfile.setString("terrestrial_TP_pli", terrestrial_TP_pli);
|
||||
|
||||
if(configfile.getModifiedFlag())
|
||||
configfile.saveConfig(fileName);
|
||||
|
@@ -1071,6 +1071,9 @@ class CScanSettings
|
||||
int sat_TP_delsys;
|
||||
int sat_TP_mod;
|
||||
int sat_TP_pilot;
|
||||
std::string sat_TP_pli;
|
||||
std::string sat_TP_plc;
|
||||
int sat_TP_plm;
|
||||
|
||||
std::string cableName;
|
||||
int cable_TP_mod;
|
||||
@@ -1089,6 +1092,7 @@ class CScanSettings
|
||||
int terrestrial_TP_hierarchy;
|
||||
int terrestrial_TP_transmit_mode;
|
||||
int terrestrial_TP_delsys;
|
||||
std::string terrestrial_TP_pli;
|
||||
|
||||
CScanSettings();
|
||||
|
||||
|
@@ -154,6 +154,7 @@ class CFrontend
|
||||
|
||||
uint32_t deliverySystemMask;
|
||||
uint32_t forcedSystemMask;
|
||||
bool isMultistream;
|
||||
//fe_delivery_system_t deliverySystems[MAX_DELSYS];
|
||||
//uint32_t numDeliverySystems;
|
||||
|
||||
@@ -187,6 +188,7 @@ class CFrontend
|
||||
|
||||
~CFrontend(void);
|
||||
|
||||
static fe_pls_mode_t getPLSMode(const uint8_t pls_mode);
|
||||
static fe_code_rate_t getCodeRate(const uint8_t fec_inner, delivery_system_t delsys);
|
||||
static fe_hierarchy_t getHierarchy(const uint8_t hierarchy);
|
||||
static fe_transmit_mode_t getTransmissionMode(const uint8_t transmission_mode);
|
||||
|
@@ -106,6 +106,13 @@ typedef enum {
|
||||
ZPILOT_AUTO_SW
|
||||
} zapit_pilot_t;
|
||||
|
||||
typedef enum {
|
||||
PLS_Root,
|
||||
PLS_Gold,
|
||||
PLS_Combo,
|
||||
PLS_Unknown
|
||||
} fe_pls_mode_t;
|
||||
|
||||
typedef struct {
|
||||
delivery_system_t delsys;
|
||||
uint32_t frequency;
|
||||
@@ -127,7 +134,9 @@ typedef struct {
|
||||
enum fe_interleaving interleaving;
|
||||
#endif
|
||||
uint8_t polarization;
|
||||
uint8_t plp_id;
|
||||
uint8_t plp_id; //0-255
|
||||
fe_pls_mode_t pls_mode;
|
||||
uint32_t pls_code; //0-262142
|
||||
} FrontendParameters;
|
||||
|
||||
typedef struct frontend_config {
|
||||
|
@@ -66,6 +66,7 @@ extern int zapit_debug;
|
||||
// DVB-S/S2 specific
|
||||
#define PILOTS 7
|
||||
#define ROLLOFF 8
|
||||
#define MIS 9
|
||||
// DVB-T specific
|
||||
#define BANDWIDTH 4
|
||||
#define CODE_RATE_HP 6
|
||||
@@ -78,7 +79,7 @@ extern int zapit_debug;
|
||||
|
||||
#define FE_COMMON_PROPS 2
|
||||
#define FE_DVBS_PROPS 6
|
||||
#define FE_DVBS2_PROPS 8
|
||||
#define FE_DVBS2_PROPS 9
|
||||
#define FE_DVBC_PROPS 6
|
||||
#define FE_DVBT_PROPS 10
|
||||
#define FE_DVBT2_PROPS 11
|
||||
@@ -105,7 +106,8 @@ static const struct dtv_property dvbs2_cmdargs[] = {
|
||||
{ DTV_INNER_FEC, {}, { FEC_AUTO } ,0},
|
||||
{ DTV_PILOT, {}, { PILOT_AUTO } ,0},
|
||||
{ DTV_ROLLOFF, {}, { ROLLOFF_AUTO } ,0},
|
||||
{ DTV_TUNE, {}, { 0 } ,0 },
|
||||
{ DTV_STREAM_ID, {}, { NO_STREAM_ID_FILTER } ,0},
|
||||
{ DTV_TUNE, {}, { 0 } ,0 }
|
||||
};
|
||||
|
||||
static const struct dtv_property dvbc_cmdargs[] = {
|
||||
@@ -243,6 +245,7 @@ CFrontend::CFrontend(int Number, int Adapter)
|
||||
memset(&info, 0, sizeof(info));
|
||||
|
||||
deliverySystemMask = UNKNOWN_DS;
|
||||
isMultistream = false;
|
||||
}
|
||||
|
||||
CFrontend::~CFrontend(void)
|
||||
@@ -356,12 +359,14 @@ void CFrontend::getFEInfo(void)
|
||||
break;
|
||||
case SYS_DVBT2:
|
||||
deliverySystemMask |= DVB_T2;
|
||||
isMultistream = info.caps & FE_CAN_MULTISTREAM;
|
||||
break;
|
||||
case SYS_DVBS:
|
||||
deliverySystemMask |= DVB_S;
|
||||
break;
|
||||
case SYS_DVBS2:
|
||||
deliverySystemMask |= DVB_S2;
|
||||
isMultistream = info.caps & FE_CAN_MULTISTREAM;
|
||||
break;
|
||||
case SYS_DTMB:
|
||||
deliverySystemMask |= DTMB;
|
||||
@@ -688,6 +693,22 @@ fe_transmit_mode_t CFrontend::getTransmissionMode(const uint8_t transmission_mod
|
||||
}
|
||||
}
|
||||
|
||||
fe_pls_mode_t CFrontend::getPLSMode(const uint8_t pls_mode)
|
||||
{
|
||||
switch (pls_mode) {
|
||||
case 0x00:
|
||||
return PLS_Root;
|
||||
case 0x01:
|
||||
return PLS_Gold;
|
||||
case 0x02:
|
||||
return PLS_Combo;
|
||||
case 0x03:
|
||||
return PLS_Unknown;
|
||||
default:
|
||||
return PLS_Root;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t CFrontend::getPolarization(void) const
|
||||
{
|
||||
return currentTransponder.getPolarization();
|
||||
@@ -1277,6 +1298,7 @@ bool CFrontend::buildProperties(const FrontendParameters *feparams, struct dtv_p
|
||||
cmdseq.props[MODULATION].u.data = feparams->modulation;
|
||||
cmdseq.props[ROLLOFF].u.data = feparams->rolloff;
|
||||
cmdseq.props[PILOTS].u.data = pilot;
|
||||
cmdseq.props[MIS].u.data = feparams->plp_id | (feparams->pls_code << 8) | (feparams->pls_mode << 26);
|
||||
if (zapit_debug) printf("[fe%d] tuner pilot %d (feparams %d)\n", fenumber, pilot, feparams->pilot);
|
||||
} else {
|
||||
memcpy(cmdseq.props, dvbs_cmdargs, sizeof(dvbs_cmdargs));
|
||||
@@ -1810,8 +1832,8 @@ int CFrontend::setParameters(transponder *TP, bool nowait)
|
||||
break;
|
||||
}
|
||||
|
||||
printf("[fe%d] tune to %d %s %s %s %s srate %d pli %d (tuner %d offset %d timeout %d)\n", fenumber, freq, s, m, f,
|
||||
feparams.polarization & 1 ? "V/R" : "H/L", feparams.symbol_rate, feparams.plp_id, feparams.frequency, freq_offset, TIMEOUT_MAX_MS);
|
||||
printf("[fe%d] tune to %d %s %s %s %s srate %d pli %d plc %d plm %d (tuner %d offset %d timeout %d)\n", fenumber, freq, s, m, f,
|
||||
feparams.polarization & 1 ? "V/R" : "H/L", feparams.symbol_rate, feparams.plp_id, feparams.pls_code, feparams.pls_mode, feparams.frequency, freq_offset, TIMEOUT_MAX_MS);
|
||||
setFrontend(&feparams, nowait);
|
||||
|
||||
return tuned;
|
||||
|
@@ -427,6 +427,11 @@ void CServiceManager::ParseTransponders(xmlNodePtr node, t_satellite_position sa
|
||||
feparams.frequency = (int) 1000 * (int) round ((double) feparams.frequency / (double) 1000);
|
||||
/* TODO: add xml tag ? */
|
||||
feparams.pilot = ZPILOT_AUTO;
|
||||
feparams.plp_id = xmlGetNumericAttribute(node, "pli", 0);
|
||||
feparams.pls_mode = (fe_pls_mode_t) xmlGetNumericAttribute(node, "plm", 0);
|
||||
feparams.pls_code = xmlGetNumericAttribute(node, "plc", 0);
|
||||
if (feparams.pls_code == 0)
|
||||
feparams.pls_code = 1;
|
||||
}
|
||||
else if (CFrontend::isTerr(delsys)) {
|
||||
//<TS id="0001" on="7ffd" frq="650000" inv="2" bw="3" hp="9" lp="9" con="6" tm="2" gi="0" hi="4" sys="6">
|
||||
@@ -627,6 +632,10 @@ void CServiceManager::ParseSatTransponders(delivery_system_t delsys, xmlNodePtr
|
||||
feparams.frequency = xmlGetNumericAttribute(tps, "centre_frequency", 0);
|
||||
feparams.inversion = INVERSION_AUTO;
|
||||
|
||||
feparams.plp_id = NO_STREAM_ID_FILTER;
|
||||
feparams.pls_mode = PLS_Root;
|
||||
feparams.pls_code = 1;
|
||||
|
||||
if (CFrontend::isCable(delsys)) {
|
||||
const char *system = xmlGetAttribute(tps, "system");
|
||||
if (system) {
|
||||
@@ -718,6 +727,11 @@ void CServiceManager::ParseSatTransponders(delivery_system_t delsys, xmlNodePtr
|
||||
#endif
|
||||
feparams.fec_inner = (fe_code_rate_t) xml_fec;
|
||||
feparams.frequency = (int) 1000 * (int) round ((double) feparams.frequency / (double) 1000);
|
||||
feparams.plp_id = xmlGetNumericAttribute(tps, "is_id", 0);
|
||||
feparams.pls_mode = (fe_pls_mode_t) xmlGetNumericAttribute(tps, "pls_mode", 0);
|
||||
feparams.pls_code = xmlGetNumericAttribute(tps, "pls_code", 0);
|
||||
if (feparams.pls_code == 0)
|
||||
feparams.pls_code = 1;
|
||||
}
|
||||
else if (CFrontend::isTerr(delsys)) {
|
||||
const char *system = xmlGetAttribute(tps, "system");
|
||||
|
@@ -56,7 +56,10 @@ bool transponder::operator==(const transponder& t) const
|
||||
//(transport_stream_id == t.transport_stream_id) &&
|
||||
//(original_network_id == t.original_network_id) &&
|
||||
((getFEParams()->polarization & 1) == (t.getFEParams()->polarization & 1)) &&
|
||||
(abs((int) getFEParams()->frequency - (int)t.getFEParams()->frequency) <= 3000)
|
||||
(abs((int) getFEParams()->frequency - (int)t.getFEParams()->frequency) <= 3000) &&
|
||||
(getFEParams()->plp_id == t.getFEParams()->plp_id) &&
|
||||
(getFEParams()->pls_mode == t.getFEParams()->pls_mode) &&
|
||||
(getFEParams()->pls_code == t.getFEParams()->pls_code)
|
||||
);
|
||||
return ((satellitePosition == t.satellitePosition) &&
|
||||
//(transport_stream_id == t.transport_stream_id) &&
|
||||
@@ -88,7 +91,10 @@ bool transponder::compare(const transponder& t) const
|
||||
(getFEParams()->delsys == t.getFEParams()->delsys) &&
|
||||
(getFEParams()->modulation == t.getFEParams()->modulation) &&
|
||||
(getFEParams()->fec_inner == t.getFEParams()->fec_inner ||
|
||||
getFEParams()->fec_inner == FEC_AUTO || t.getFEParams()->fec_inner == FEC_AUTO)
|
||||
getFEParams()->fec_inner == FEC_AUTO || t.getFEParams()->fec_inner == FEC_AUTO) &&
|
||||
(getFEParams()->plp_id == t.getFEParams()->plp_id) &&
|
||||
(getFEParams()->pls_mode == t.getFEParams()->pls_mode) &&
|
||||
(getFEParams()->pls_code == t.getFEParams()->pls_code)
|
||||
);
|
||||
}
|
||||
else if (CFrontend::isTerr(feparams.delsys)) {
|
||||
@@ -119,7 +125,7 @@ void transponder::dumpServiceXml(FILE * fd)
|
||||
getFEParams()->modulation,
|
||||
CFrontend::getXMLDeliverySystem(getFEParams()->delsys));
|
||||
} else if (CFrontend::isSat(feparams.delsys)) {
|
||||
fprintf(fd, "\t\t<TS id=\"%04x\" on=\"%04x\" frq=\"%u\" inv=\"%hu\" sr=\"%u\" fec=\"%hu\" pol=\"%hu\" mod=\"%hu\" sys=\"%hu\">\n",
|
||||
fprintf(fd, "\t\t<TS id=\"%04x\" on=\"%04x\" frq=\"%u\" inv=\"%hu\" sr=\"%u\" fec=\"%hu\" pol=\"%hu\" mod=\"%hu\" pli=\"%u\" plc=\"%u\" plm=\"%u\" sys=\"%hu\">\n",
|
||||
transport_stream_id, original_network_id,
|
||||
getFEParams()->frequency,
|
||||
getFEParams()->inversion,
|
||||
@@ -127,6 +133,9 @@ void transponder::dumpServiceXml(FILE * fd)
|
||||
getFEParams()->fec_inner,
|
||||
getFEParams()->polarization,
|
||||
getFEParams()->modulation,
|
||||
getFEParams()->plp_id,
|
||||
getFEParams()->pls_code,
|
||||
getFEParams()->pls_mode,
|
||||
CFrontend::getXMLDeliverySystem(getFEParams()->delsys));
|
||||
} else if (CFrontend::isTerr(feparams.delsys)) {
|
||||
fprintf(fd, "\t\t<TS id=\"%04x\" on=\"%04x\" frq=\"%u\" inv=\"%hu\" bw=\"%u\" hp=\"%hu\" lp=\"%hu\" con=\"%u\" tm=\"%u\" gi=\"%u\" hi=\"%u\" pli=\"%u\" sys=\"%hu\">\n",
|
||||
|
Reference in New Issue
Block a user