revert frontend/scan changes

This reverts commits

01: 650510526e
02: 6a04e51e4b
03: 40398dcc09
04: e53946641a
05: 969af25d98
06: 6e83dbd629
07: 850354ba63
08: 2d808d34bd
09: d97ed9d89e
10: 8003a13b98
11: 7ae8a37364


Origin commit data
------------------
Branch: ni/coolstream
Commit: 0d5d8b367f
Author: vanhofen <vanhofen@gmx.de>
Date: 2020-11-23 (Mon, 23 Nov 2020)

Origin message was:
------------------
- revert frontend/scan changes

This reverts commits

01: 650510526e
02: 6a04e51e4b
03: 40398dcc09
04: e53946641a
05: 969af25d98
06: 6e83dbd629
07: 850354ba63
08: 2d808d34bd
09: d97ed9d89e
10: 8003a13b98
11: 7ae8a37364


------------------
This commit was generated by Migit
This commit is contained in:
vanhofen
2020-11-23 22:59:16 +01:00
parent 2e12cfc8f3
commit d82e09d4a1
10 changed files with 284 additions and 275 deletions

View File

@@ -235,15 +235,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 = (unsigned int)atoi(scansettings.sat_TP_pli.c_str());
if (TP.feparams.plp_id == 0)
TP.feparams.plp_id = NO_STREAM_ID_FILTER;
TP.feparams.pls_code = (uint32_t)atoi(scansettings.sat_TP_plc.c_str());
if (TP.feparams.pls_code == 0)
TP.feparams.pls_code = PLS_Default_Gold_Code;
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;
if (TP.feparams.pls_mode == 0)
TP.feparams.pls_mode = PLS_Gold;
} 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());
@@ -259,9 +253,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 = (unsigned int)atoi(scansettings.terrestrial_TP_pli.c_str());
if (TP.feparams.plp_id == 0)
TP.feparams.plp_id = NO_STREAM_ID_FILTER;
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());
@@ -450,10 +442,7 @@ neutrino_msg_t CScanTs::handleMsg(neutrino_msg_t msg, neutrino_msg_data_t data)
if (CFrontend::isSat(feparams->delsys))
{
CFrontend::getDelSys(feparams->delsys, feparams->fec_inner, feparams->modulation, f, s, m);
if (feparams->plp_id == NO_STREAM_ID_FILTER)
snprintf(buffer,sizeof(buffer), "%u %c %d %s %s %s ", freq, transponder::pol(feparams->polarization), feparams->symbol_rate/1000, f, s, m);
else
snprintf(buffer,sizeof(buffer), "%u %c %d %s %s %s (%u/%s/%s) ", freq, transponder::pol(feparams->polarization), feparams->symbol_rate/1000, f, s, m, feparams->plp_id, transponder::getPLSCode(feparams->pls_code).c_str(), transponder::getPLSMode(feparams->pls_mode).c_str());
snprintf(buffer,sizeof(buffer), "%u %c %d %s %s %s (%d/%d/%s) ", freq, transponder::pol(feparams->polarization), feparams->symbol_rate/1000, f, s, m, feparams->plp_id, feparams->pls_code, transponder::getPLSMode(feparams->pls_mode).c_str());
}
else if (CFrontend::isCable(feparams->delsys))
{
@@ -464,10 +453,7 @@ neutrino_msg_t CScanTs::handleMsg(neutrino_msg_t msg, neutrino_msg_data_t data)
{
CFrontend::getDelSys(feparams->delsys, feparams->code_rate_HP, feparams->modulation, f, s, m);
CFrontend::getDelSys(feparams->delsys, feparams->code_rate_LP, feparams->modulation, f2, s, m);
if (feparams->plp_id == NO_STREAM_ID_FILTER)
snprintf(buffer,sizeof(buffer), "%u %d %s %s %s ", freq, CFrontend::getFEBandwidth(feparams->bandwidth)/1000, f, f2, m);
else
snprintf(buffer,sizeof(buffer), "%u %d %s %s %s %u ", freq, CFrontend::getFEBandwidth(feparams->bandwidth)/1000, f, f2, m, feparams->plp_id);
snprintf(buffer,sizeof(buffer), "%u %d %s %s %s %d ", freq, CFrontend::getFEBandwidth(feparams->bandwidth)/1000, f, f2, m, feparams->plp_id);
}
paintLine(xpos2, ypos_frequency, (ypos_frequency > ypos_radar + 66) ? w : w_to_radar, buffer);
}

View File

@@ -1826,7 +1826,7 @@ 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, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789");
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++));
}
@@ -2051,7 +2051,7 @@ 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 = (tI->second.feparams.plp_id == NO_STREAM_ID_FILTER ? "0" : to_string(tI->second.feparams.plp_id));
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)) {
@@ -2070,7 +2070,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 = (tI->second.feparams.plp_id == NO_STREAM_ID_FILTER ? "0" : to_string(tI->second.feparams.plp_id));
scansettings.terrestrial_TP_pli = to_string(tI->second.feparams.plp_id);
scansettings.terrestrialName = CServiceManager::getInstance()->GetSatelliteName(channel->getSatellitePosition());
}
@@ -2176,7 +2176,7 @@ 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 = (tmpI->second.feparams.plp_id == NO_STREAM_ID_FILTER ? "0" : to_string(tmpI->second.feparams.plp_id));
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;
}
@@ -2195,7 +2195,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 = (tmpI->second.feparams.plp_id == NO_STREAM_ID_FILTER ? "0" : to_string(tmpI->second.feparams.plp_id));
scansettings.terrestrial_TP_pli = to_string(tmpI->second.feparams.plp_id);
//scansettings.terrestrialName = CServiceManager::getInstance()->GetSatelliteName(channel->getSatellitePosition());
}
}

View File

@@ -153,7 +153,7 @@ bool CScanSettings::loadSettings(const char * const fileName)
sat_TP_delsys = configfile.getInt32("sat_TP_delsys", DVB_S);
sat_TP_pilot = configfile.getInt32("sat_TP_pilot", ZPILOT_AUTO);
sat_TP_pli = configfile.getString("sat_TP_pli", "0");
sat_TP_plc = configfile.getString("sat_TP_plc", "0");
sat_TP_plc = configfile.getString("sat_TP_plc", "1");
sat_TP_plm = configfile.getInt32("sat_TP_plm", 0);
cableName = configfile.getString("cableName", cableName);
@@ -214,18 +214,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);
if (atoi(sat_TP_pli.c_str()) == 0)
{
configfile.setString("sat_TP_pli", "0");
configfile.setString("sat_TP_plc", "0");
configfile.setInt32("sat_TP_plm", 0);
}
else
{
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("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);
@@ -244,10 +235,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);
if (atoi(terrestrial_TP_pli.c_str()) == 0)
configfile.setString("terrestrial_TP_pli", "0");
else
configfile.setString("terrestrial_TP_pli", terrestrial_TP_pli);
configfile.setString("terrestrial_TP_pli", terrestrial_TP_pli);
if(configfile.getModifiedFlag())
configfile.saveConfig(fileName);

View File

@@ -159,6 +159,8 @@ class CFrontend
//uint32_t numDeliverySystems;
t_channel_id channel_id;
bool buildProperties(const FrontendParameters*, struct dtv_properties &, bool can_multistream);
FrontendParameters getFrontend(void) const;
void secSetTone(const fe_sec_tone_mode_t mode, const uint32_t ms);
void secSetVoltage(const fe_sec_voltage_t voltage, const uint32_t ms);

View File

@@ -115,16 +115,6 @@ typedef enum {
PLS_Unknown
} fe_pls_mode_t;
typedef enum {
PLS_Default_Gold_Code,
PLS_Default_Root_Code
} fe_pls_code_t;
typedef enum {
No_T2MI_PLP_Id = NO_STREAM_ID_FILTER,
T2MI_Default_Pid = 4096
} fe_t2mi_pid_t;
typedef struct {
delivery_system_t delsys;
uint32_t frequency;
@@ -146,7 +136,7 @@ typedef struct {
enum fe_interleaving interleaving;
#endif
uint8_t polarization;
unsigned int plp_id; //0-255
uint8_t plp_id; //0-255
fe_pls_mode_t pls_mode;
uint32_t pls_code; //0-262142
} FrontendParameters;

View File

@@ -49,7 +49,6 @@ public:
static char pol(unsigned char pol);
std::string description(void);
static std::string getPLSMode(const uint8_t pls_mode);
static std::string getPLSCode(const uint32_t pls_code);
delivery_system_t getDelSys(void) { return feparams.delsys; }
t_transport_stream_id getTransportStreamId(void) { return transport_stream_id; }

View File

@@ -54,7 +54,122 @@ extern int zapit_debug;
#define WEST 1
#define USALS
#define FE_MAX_PROPS 18
#define CLEAR 0
// Common properties
#define FREQUENCY 1
#define MODULATION 2
#define INVERSION 3
// common to S/S2/C
#define SYMBOL_RATE 4
#define DELIVERY_SYSTEM 5
#define INNER_FEC 6
// DVB-S/S2 specific
#define PILOTS 7
#define ROLLOFF 8
// DVB-S2X specific
#define MIS 9
// DVB-T specific
#define BANDWIDTH 4
#define CODE_RATE_HP 6
#define CODE_RATE_LP 7
#define TRANSMISSION_MODE 8
#define GUARD_INTERVAL 9
#define HIERARCHY 10
// DVB-T2 specific
#define PLP_ID 11
#define FE_COMMON_PROPS 2
#define FE_DVBS_PROPS 6
#define FE_DVBS2_PROPS 8
#define FE_DVBS2X_PROPS 9
#define FE_DVBC_PROPS 6
#define FE_DVBT_PROPS 10
#define FE_DVBT2_PROPS 11
/* stolen from dvb.c from vlc */
static const struct dtv_property dvbs_cmdargs[] = {
{ DTV_CLEAR, {0,0,0}, { 0 }, 0 },
{ DTV_FREQUENCY, {} , { 0 }, 0 },
{ DTV_MODULATION, {} , { QPSK }, 0 },
{ DTV_INVERSION, {} , { INVERSION_AUTO }, 0 },
{ DTV_SYMBOL_RATE, {} , { 27500000 }, 0 },
{ DTV_DELIVERY_SYSTEM, {} , { SYS_DVBS }, 0 },
{ DTV_INNER_FEC, {} , { FEC_AUTO }, 0 },
{ DTV_TUNE, {} , { 0 }, 0 }
};
static const struct dtv_property dvbs2_cmdargs[] = {
{ DTV_CLEAR, {0,0,0}, { 0 }, 0 },
{ DTV_FREQUENCY, {} , { 0 }, 0 },
{ DTV_MODULATION, {} , { PSK_8 }, 0 },
{ DTV_INVERSION, {} , { INVERSION_AUTO }, 0 },
{ DTV_SYMBOL_RATE, {} , { 27500000 }, 0 },
{ DTV_DELIVERY_SYSTEM, {} , { SYS_DVBS2 }, 0 },
{ DTV_INNER_FEC, {} , { FEC_AUTO }, 0 },
{ DTV_PILOT, {} , { PILOT_AUTO }, 0 },
{ DTV_ROLLOFF, {} , { ROLLOFF_AUTO }, 0 },
{ DTV_TUNE, {} , { 0 }, 0 }
};
static const struct dtv_property dvbs2x_cmdargs[] = {
{ DTV_CLEAR, {0,0,0}, { 0 }, 0 },
{ DTV_FREQUENCY, {} , { 0 }, 0 },
{ DTV_MODULATION, {} , { PSK_8 }, 0 },
{ DTV_INVERSION, {} , { INVERSION_AUTO }, 0 },
{ DTV_SYMBOL_RATE, {} , { 27500000 }, 0 },
{ DTV_DELIVERY_SYSTEM, {} , { SYS_DVBS2 }, 0 },
{ DTV_INNER_FEC, {} , { FEC_AUTO }, 0 },
{ DTV_PILOT, {} , { PILOT_AUTO }, 0 },
{ DTV_ROLLOFF, {} , { ROLLOFF_AUTO }, 0 },
{ DTV_STREAM_ID, {} , { NO_STREAM_ID_FILTER }, 0 },
{ DTV_TUNE, {} , { 0 }, 0 }
};
static const struct dtv_property dvbc_cmdargs[] = {
{ DTV_CLEAR, {0,0,0}, { 0 }, 0 },
{ DTV_FREQUENCY, {} , { 0 }, 0 },
{ DTV_MODULATION, {} , { QAM_AUTO }, 0 },
{ DTV_INVERSION, {} , { INVERSION_AUTO }, 0 },
{ DTV_SYMBOL_RATE, {} , { 27500000 }, 0 },
{ DTV_DELIVERY_SYSTEM, {} , { SYS_DVBC_ANNEX_AC }, 0 },
{ DTV_INNER_FEC, {} , { FEC_AUTO }, 0 },
{ DTV_TUNE, {} , { 0 }, 0 }
};
static const struct dtv_property dvbt_cmdargs[] = {
{ DTV_CLEAR, {0,0,0}, { 0 }, 0 },
{ DTV_FREQUENCY, {} , { 0 }, 0 },
{ DTV_MODULATION, {} , { QAM_AUTO }, 0 },
{ DTV_INVERSION, {} , { INVERSION_AUTO }, 0 },
{ DTV_BANDWIDTH_HZ, {} , { 8000000 }, 0 },
{ DTV_DELIVERY_SYSTEM, {} , { SYS_DVBT }, 0 },
{ DTV_CODE_RATE_HP, {} , { FEC_AUTO }, 0 },
{ DTV_CODE_RATE_LP, {} , { FEC_AUTO }, 0 },
{ DTV_TRANSMISSION_MODE,{} , { TRANSMISSION_MODE_AUTO }, 0 },
{ DTV_GUARD_INTERVAL, {} , { GUARD_INTERVAL_AUTO }, 0 },
{ DTV_HIERARCHY, {} , { HIERARCHY_AUTO }, 0 },
{ DTV_TUNE, {} , { 0 }, 0 }
};
static const struct dtv_property dvbt2_cmdargs[] = {
{ DTV_CLEAR, {0,0,0}, { 0 }, 0 },
{ DTV_FREQUENCY, {} , { 0 }, 0 },
{ DTV_MODULATION, {} , { QAM_AUTO }, 0 },
{ DTV_INVERSION, {} , { INVERSION_AUTO }, 0 },
{ DTV_BANDWIDTH_HZ, {} , { 8000000 }, 0 },
{ DTV_DELIVERY_SYSTEM, {} , { SYS_DVBT2 }, 0 },
{ DTV_CODE_RATE_HP, {} , { FEC_AUTO }, 0 },
{ DTV_CODE_RATE_LP, {} , { FEC_AUTO }, 0 },
{ DTV_TRANSMISSION_MODE,{} , { TRANSMISSION_MODE_AUTO }, 0 },
{ DTV_GUARD_INTERVAL, {} , { GUARD_INTERVAL_AUTO }, 0 },
{ DTV_HIERARCHY, {} , { HIERARCHY_AUTO }, 0 },
#if defined DTV_STREAM_ID
{ DTV_STREAM_ID, {} , { NO_STREAM_ID_FILTER }, 0 },
#elif defined DTV_DVBT2_PLP_ID
{ DTV_DVBT2_PLP_ID, {} , { NO_STREAM_ID_FILTER }, 0 },
#endif
{ DTV_TUNE, {} , { 0 }, 0 }
};
#define diff(x,y) (max(x,y) - min(x,y))
@@ -1195,9 +1310,11 @@ fe_delivery_system_t CFrontend::getFEDeliverySystem(delivery_system_t Delsys)
delsys = SYS_DVBS;
break;
case DVB_S2:
case DVB_S2X:
delsys = SYS_DVBS2;
break;
case DVB_S2X:
delsys = SYS_DVBS2X;
break;
case DVB_T:
delsys = SYS_DVBT;
break;
@@ -1332,22 +1449,10 @@ uint32_t CFrontend::getFEBandwidth(fe_bandwidth_t bandwidth)
return bandwidth_hz;
}
int CFrontend::setFrontend(const FrontendParameters *feparams, bool nowait)
bool CFrontend::buildProperties(const FrontendParameters *feparams, struct dtv_properties& cmdseq, bool can_multistream)
{
tuned = false;
struct dvb_frontend_event ev;
{
// Erase previous events
while (1) {
if (ioctl(fd, FE_GET_EVENT, &ev) < 0)
break;
//printf("[fe%d/%d] DEMOD: event status %d\n", adapter, fenumber, ev.status);
}
}
fe_pilot_t pilot = PILOT_OFF;
int fec = FEC_AUTO;
int fec;
fe_code_rate_t fec_inner = feparams->fec_inner;
/* cast to int is ncesessary because many of the FEC_S2 values are not
@@ -1359,7 +1464,7 @@ int CFrontend::setFrontend(const FrontendParameters *feparams, bool nowait)
break;
case FEC_2_3:
fec = FEC_2_3;
if ((getFEDeliverySystem(feparams->delsys) == SYS_DVBS2) && feparams->modulation == PSK_8)
if ((feparams->delsys == DVB_S2 || feparams->delsys == DVB_S2X) && feparams->modulation == PSK_8)
#if BOXMODEL_VUPLUS_ARM
pilot = PILOT_AUTO;
#else
@@ -1368,7 +1473,7 @@ int CFrontend::setFrontend(const FrontendParameters *feparams, bool nowait)
break;
case FEC_3_4:
fec = FEC_3_4;
if ((getFEDeliverySystem(feparams->delsys) == SYS_DVBS2) && feparams->modulation == PSK_8)
if ((feparams->delsys == DVB_S2 || feparams->delsys == DVB_S2X) && feparams->modulation == PSK_8)
#if BOXMODEL_VUPLUS_ARM
pilot = PILOT_AUTO;
#else
@@ -1380,7 +1485,7 @@ int CFrontend::setFrontend(const FrontendParameters *feparams, bool nowait)
break;
case FEC_5_6:
fec = FEC_5_6;
if ((getFEDeliverySystem(feparams->delsys) == SYS_DVBS2) && feparams->modulation == PSK_8)
if ((feparams->delsys == DVB_S2 || feparams->delsys == DVB_S2X) && feparams->modulation == PSK_8)
#if BOXMODEL_VUPLUS_ARM
pilot = PILOT_AUTO;
#else
@@ -1398,7 +1503,7 @@ int CFrontend::setFrontend(const FrontendParameters *feparams, bool nowait)
break;
case FEC_3_5:
fec = FEC_3_5;
if ((getFEDeliverySystem(feparams->delsys) == SYS_DVBS2) && feparams->modulation == PSK_8)
if ((feparams->delsys == DVB_S2 || feparams->delsys == DVB_S2X) && feparams->modulation == PSK_8)
#if BOXMODEL_VUPLUS_ARM
pilot = PILOT_AUTO;
#else
@@ -1472,114 +1577,159 @@ int CFrontend::setFrontend(const FrontendParameters *feparams, bool nowait)
break;
default:
INFO("[fe%d/%d] DEMOD: unknown FEC: %d\n", adapter, fenumber, fec_inner);
/* fall through */
/* fall through */
case FEC_AUTO:
fec = FEC_AUTO;
break;
}
switch(feparams->pilot)
{
case ZPILOT_ON:
pilot = PILOT_ON;
break;
case ZPILOT_OFF:
pilot = PILOT_OFF;
break;
case ZPILOT_AUTO:
default:
pilot = PILOT_AUTO;
break;
case ZPILOT_ON:
pilot = PILOT_ON;
break;
case ZPILOT_OFF:
pilot = PILOT_OFF;
break;
case ZPILOT_AUTO:
default:
pilot = PILOT_AUTO;
break;
}
struct dtv_property p[FE_MAX_PROPS];
memset(p, 0, sizeof(p));
struct dtv_properties cmdseq;
cmdseq.props = p;
cmdseq.num = 0;
p[cmdseq.num].cmd = DTV_CLEAR; cmdseq.num++;
int nrOfProps = 0;
switch (feparams->delsys)
{
case DVB_S:
case DVB_S2:
case DVB_S2X:
p[cmdseq.num].cmd = DTV_DELIVERY_SYSTEM, p[cmdseq.num].u.data = getFEDeliverySystem(feparams->delsys), cmdseq.num++;
if (config.diseqcType == DISEQC_UNICABLE)
p[cmdseq.num].cmd = DTV_FREQUENCY,
p[cmdseq.num].u.data = sendEN50494TuningCommand(feparams->frequency, currentToneMode == SEC_TONE_ON,
currentVoltage == SEC_VOLTAGE_18, !!config.uni_lnb), cmdseq.num++;
else if (config.diseqcType == DISEQC_UNICABLE2)
p[cmdseq.num].cmd = DTV_FREQUENCY,
p[cmdseq.num].u.data = sendEN50607TuningCommand(feparams->frequency, currentToneMode == SEC_TONE_ON,
currentVoltage == SEC_VOLTAGE_18, config.uni_lnb), cmdseq.num++;
else
p[cmdseq.num].cmd = DTV_FREQUENCY, p[cmdseq.num].u.data = feparams->frequency, cmdseq.num++;
p[cmdseq.num].cmd = DTV_MODULATION, p[cmdseq.num].u.data = feparams->modulation, cmdseq.num++;
p[cmdseq.num].cmd = DTV_SYMBOL_RATE, p[cmdseq.num].u.data = feparams->symbol_rate, cmdseq.num++;
p[cmdseq.num].cmd = DTV_INNER_FEC, p[cmdseq.num].u.data = fec, cmdseq.num++;
p[cmdseq.num].cmd = DTV_INVERSION, p[cmdseq.num].u.data = feparams->inversion, cmdseq.num++;
if (getFEDeliverySystem(feparams->delsys) == SYS_DVBS2)
if (feparams->delsys == DVB_S2 || feparams->delsys == DVB_S2X)
{
p[cmdseq.num].cmd = DTV_ROLLOFF, p[cmdseq.num].u.data = feparams->rolloff, cmdseq.num++;
p[cmdseq.num].cmd = DTV_PILOT, p[cmdseq.num].u.data = pilot, cmdseq.num++;
if (fe_can_multistream)
if (can_multistream)
{
#if (DVB_API_VERSION >= 5 && DVB_API_VERSION_MINOR >= 11)
p[cmdseq.num].cmd = DTV_STREAM_ID, p[cmdseq.num].u.data = feparams->plp_id, cmdseq.num++;
p[cmdseq.num].cmd = DTV_SCRAMBLING_SEQUENCE_INDEX, p[cmdseq.num].u.data = feparams->pls_code, cmdseq.num++;
#else
p[cmdseq.num].cmd = DTV_STREAM_ID, p[cmdseq.num].u.data = feparams->plp_id | (feparams->pls_code << 8) | (feparams->pls_mode << 26), cmdseq.num++;
#endif
nrOfProps = FE_DVBS2X_PROPS;
memcpy(cmdseq.props, dvbs2x_cmdargs, sizeof(dvbs2x_cmdargs));
cmdseq.props[MIS].u.data = feparams->plp_id | (feparams->pls_code << 8) | (feparams->pls_mode << 26);
}
p[cmdseq.num].cmd = DTV_ISDBT_SB_SEGMENT_IDX, p[cmdseq.num].u.data = (feparams->plp_id == NO_STREAM_ID_FILTER ? 0 : (0x80000000 | (T2MI_Default_Pid << 16) | feparams->plp_id)), cmdseq.num++;
else
{
nrOfProps = FE_DVBS2_PROPS;
memcpy(cmdseq.props, dvbs2_cmdargs, sizeof(dvbs2_cmdargs));
}
cmdseq.props[MODULATION].u.data = feparams->modulation;
cmdseq.props[ROLLOFF].u.data = feparams->rolloff;
cmdseq.props[PILOTS].u.data = pilot;
}
if (fe_can_multistream)
else
{
memcpy(cmdseq.props, dvbs_cmdargs, sizeof(dvbs_cmdargs));
nrOfProps = FE_DVBS_PROPS;
}
cmdseq.props[FREQUENCY].u.data = feparams->frequency;
cmdseq.props[SYMBOL_RATE].u.data = feparams->symbol_rate;
cmdseq.props[INNER_FEC].u.data = fec; /*_inner*/ ;
if (can_multistream)
INFO("[fe%d/%d] tuner pilot %d (feparams %d) streamid (%d/%d/%d)\n", adapter, fenumber, pilot, feparams->pilot, feparams->plp_id, feparams->pls_code, feparams->pls_mode );
else
INFO("[fe%d/%d] tuner pilot %d (feparams %d)\n", adapter, fenumber, pilot, feparams->pilot);
break;
case DVB_C:
p[cmdseq.num].cmd = DTV_DELIVERY_SYSTEM, p[cmdseq.num].u.data = getFEDeliverySystem(feparams->delsys), cmdseq.num++;
p[cmdseq.num].cmd = DTV_FREQUENCY, p[cmdseq.num].u.data = feparams->frequency, cmdseq.num++;
p[cmdseq.num].cmd = DTV_MODULATION, p[cmdseq.num].u.data = feparams->modulation, cmdseq.num++;
p[cmdseq.num].cmd = DTV_SYMBOL_RATE, p[cmdseq.num].u.data = feparams->symbol_rate, cmdseq.num++;
p[cmdseq.num].cmd = DTV_INNER_FEC, p[cmdseq.num].u.data = feparams->fec_inner, cmdseq.num++;
p[cmdseq.num].cmd = DTV_INVERSION, p[cmdseq.num].u.data = feparams->inversion, cmdseq.num++;
memcpy(cmdseq.props, dvbc_cmdargs, sizeof(dvbc_cmdargs));
nrOfProps = FE_DVBC_PROPS;
cmdseq.props[FREQUENCY].u.data = feparams->frequency;
cmdseq.props[MODULATION].u.data = feparams->modulation;
cmdseq.props[SYMBOL_RATE].u.data = feparams->symbol_rate;
cmdseq.props[INNER_FEC].u.data = fec_inner;
break;
case DVB_T:
case DVB_T2:
case DTMB:
p[cmdseq.num].cmd = DTV_DELIVERY_SYSTEM, p[cmdseq.num].u.data = getFEDeliverySystem(feparams->delsys), cmdseq.num++;
p[cmdseq.num].cmd = DTV_FREQUENCY, p[cmdseq.num].u.data = feparams->frequency, cmdseq.num++;
p[cmdseq.num].cmd = DTV_CODE_RATE_LP, p[cmdseq.num].u.data = feparams->code_rate_LP, cmdseq.num++;
p[cmdseq.num].cmd = DTV_CODE_RATE_HP, p[cmdseq.num].u.data = feparams->code_rate_HP, cmdseq.num++;
p[cmdseq.num].cmd = DTV_MODULATION, p[cmdseq.num].u.data = feparams->modulation, cmdseq.num++;
p[cmdseq.num].cmd = DTV_TRANSMISSION_MODE, p[cmdseq.num].u.data = feparams->transmission_mode, cmdseq.num++;
p[cmdseq.num].cmd = DTV_GUARD_INTERVAL, p[cmdseq.num].u.data = feparams->guard_interval, cmdseq.num++;
p[cmdseq.num].cmd = DTV_HIERARCHY, p[cmdseq.num].u.data = feparams->hierarchy, cmdseq.num++;
p[cmdseq.num].cmd = DTV_BANDWIDTH_HZ, p[cmdseq.num].u.data = getFEBandwidth(feparams->bandwidth), cmdseq.num++;
p[cmdseq.num].cmd = DTV_INVERSION, p[cmdseq.num].u.data = feparams->inversion, cmdseq.num++;
if (getFEDeliverySystem(feparams->delsys) == SYS_DVBT2)
{
#if defined DTV_STREAM_ID
p[cmdseq.num].cmd = DTV_STREAM_ID, p[cmdseq.num].u.data = feparams->plp_id, cmdseq.num++;
#elif defined DTV_DVBT2_PLP_ID
p[cmdseq.num].cmd = DTV_DVBT2_PLP_ID, p[cmdseq.num].u.data = feparams->plp_id, cmdseq.num++;
#endif
}
memcpy(cmdseq.props, dvbt_cmdargs, sizeof(dvbt_cmdargs));
nrOfProps = FE_DVBT_PROPS;
cmdseq.props[FREQUENCY].u.data = feparams->frequency;
cmdseq.props[MODULATION].u.data = feparams->modulation;
cmdseq.props[INVERSION].u.data = feparams->inversion;
cmdseq.props[CODE_RATE_HP].u.data = feparams->code_rate_HP;
cmdseq.props[CODE_RATE_LP].u.data = feparams->code_rate_LP;
cmdseq.props[TRANSMISSION_MODE].u.data = feparams->transmission_mode;
cmdseq.props[GUARD_INTERVAL].u.data = feparams->guard_interval;
cmdseq.props[HIERARCHY].u.data = feparams->hierarchy;
cmdseq.props[DELIVERY_SYSTEM].u.data = getFEDeliverySystem(feparams->delsys);
cmdseq.props[BANDWIDTH].u.data = getFEBandwidth(feparams->bandwidth);
break;
case DVB_T2:
memcpy(cmdseq.props, dvbt2_cmdargs, sizeof(dvbt2_cmdargs));
nrOfProps = FE_DVBT2_PROPS;
cmdseq.props[FREQUENCY].u.data = feparams->frequency;
cmdseq.props[MODULATION].u.data = feparams->modulation;
cmdseq.props[INVERSION].u.data = feparams->inversion;
cmdseq.props[CODE_RATE_HP].u.data = feparams->code_rate_HP;
cmdseq.props[CODE_RATE_LP].u.data = feparams->code_rate_LP;
cmdseq.props[TRANSMISSION_MODE].u.data = feparams->transmission_mode;
cmdseq.props[GUARD_INTERVAL].u.data = feparams->guard_interval;
cmdseq.props[HIERARCHY].u.data = feparams->hierarchy;
cmdseq.props[DELIVERY_SYSTEM].u.data = getFEDeliverySystem(feparams->delsys);
cmdseq.props[BANDWIDTH].u.data = getFEBandwidth(feparams->bandwidth);
cmdseq.props[PLP_ID].u.data = feparams->plp_id;
break;
default:
INFO("[fe%d/%d] unknown frontend type, exiting\n", adapter, fenumber);
return 0;
}
p[cmdseq.num].cmd = DTV_TUNE, cmdseq.num++;
if ((ioctl(fd, FE_SET_PROPERTY, &cmdseq)) < 0) {
ERROR("FE_SET_PROPERTY");
return 0;
return false;
}
if (config.diseqcType == DISEQC_UNICABLE)
cmdseq.props[FREQUENCY].u.data = sendEN50494TuningCommand(feparams->frequency,
currentToneMode == SEC_TONE_ON,
currentVoltage == SEC_VOLTAGE_18,
!!config.uni_lnb);
if (config.diseqcType == DISEQC_UNICABLE2)
cmdseq.props[FREQUENCY].u.data = sendEN50607TuningCommand(feparams->frequency,
currentToneMode == SEC_TONE_ON,
currentVoltage == SEC_VOLTAGE_18,
config.uni_lnb);
cmdseq.num += nrOfProps;
return true;
}
int CFrontend::setFrontend(const FrontendParameters *feparams, bool nowait)
{
struct dtv_property cmdargs[FE_COMMON_PROPS + FE_DVBT2_PROPS]; // WARNING: increase when needed more space
struct dtv_properties cmdseq;
#ifdef PEDANTIC_VALGRIND_SETUP
memset(&cmdargs, 0, sizeof(cmdargs));
memset(&cmdseq, 0, sizeof(cmdseq));
#endif
cmdseq.num = FE_COMMON_PROPS;
cmdseq.props = cmdargs;
tuned = false;
struct dvb_frontend_event ev;
{
// Erase previous events
while (1) {
if (ioctl(fd, FE_GET_EVENT, &ev) < 0)
break;
//printf("[fe%d/%d] DEMOD: event status %d\n", adapter, fenumber, ev.status);
}
}
if (!buildProperties(feparams, cmdseq, fe_can_multistream))
return 0;
{
//FE_TIMER_INIT();
//FE_TIMER_START();
if ((ioctl(fd, FE_SET_PROPERTY, &cmdseq)) < 0) {
ERROR("FE_SET_PROPERTY");
return false;
}
//FE_TIMER_STOP("FE_SET_PROPERTY took");
}
if (nowait)
return 0;
{

View File

@@ -426,20 +426,12 @@ 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 = (unsigned int) xmlGetNumericAttribute(node, "pli", 0);
if (feparams.plp_id == 0)
feparams.plp_id = NO_STREAM_ID_FILTER;
feparams.plp_id = xmlGetNumericAttribute(node, "pli", 0);
feparams.pls_mode = (fe_pls_mode_t) xmlGetNumericAttribute(node, "plm", 0);
if (feparams.pls_mode == 0)
feparams.pls_mode = PLS_Gold;
feparams.pls_code = xmlGetNumericAttribute(node, "plc", 0);
if (feparams.pls_code == 0)
feparams.pls_code = PLS_Default_Gold_Code;
if ((feparams.delsys == DVB_S2) && feparams.plp_id != NO_STREAM_ID_FILTER)
feparams.pls_code = 1;
if ((feparams.delsys == DVB_S2) && (feparams.pls_mode > 0) && (feparams.pls_code > 1))
feparams.delsys = DVB_S2X;
}
else if (CFrontend::isTerr(delsys)) {
@@ -452,9 +444,7 @@ void CServiceManager::ParseTransponders(xmlNodePtr node, t_satellite_position sa
feparams.code_rate_LP = (fe_code_rate_t) xmlGetNumericAttribute(node, "lp", 0);
feparams.guard_interval = (fe_guard_interval_t) xmlGetNumericAttribute(node, "gi", 0);
feparams.hierarchy = (fe_hierarchy_t) xmlGetNumericAttribute(node, "hi", 0);
feparams.plp_id = (unsigned int) xmlGetNumericAttribute(node, "pli", 0);
if (feparams.plp_id == 0)
feparams.plp_id = NO_STREAM_ID_FILTER;
feparams.plp_id = (uint8_t) xmlGetNumericAttribute(node, "pli", 0);
if (feparams.frequency < 1000*1000)
feparams.frequency = feparams.frequency*1000;
@@ -646,9 +636,9 @@ 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_Gold;
feparams.pls_code = PLS_Default_Gold_Code;
feparams.plp_id = 0; // NO_STREAM_ID_FILTER = ~0U, seems not suitable here
feparams.pls_mode = PLS_Root;
feparams.pls_code = 1;
if (CFrontend::isCable(delsys)) {
const char *system = xmlGetAttribute(tps, "system");
@@ -750,20 +740,12 @@ 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 = (unsigned int) xmlGetNumericAttribute(tps, "is_id", 0);
if (feparams.plp_id == 0)
feparams.plp_id = NO_STREAM_ID_FILTER;
feparams.plp_id = xmlGetNumericAttribute(tps, "is_id", 0);
feparams.pls_mode = (fe_pls_mode_t) xmlGetNumericAttribute(tps, "pls_mode", 0);
if (feparams.pls_mode == 0)
feparams.pls_mode = PLS_Gold;
feparams.pls_code = xmlGetNumericAttribute(tps, "pls_code", 0);
if (feparams.pls_code == 0)
feparams.pls_code = PLS_Default_Gold_Code;
if ((feparams.delsys == DVB_S2) && feparams.plp_id != NO_STREAM_ID_FILTER)
feparams.pls_code = 1;
if ((feparams.delsys == DVB_S2) && (feparams.pls_mode > 0) && (feparams.pls_code > 1))
feparams.delsys = DVB_S2X;
}
else if (CFrontend::isTerr(delsys)) {
@@ -804,11 +786,8 @@ void CServiceManager::ParseSatTransponders(delivery_system_t delsys, xmlNodePtr
xmlGetNumericAttribute(tps, "guard_interval", 0);
feparams.hierarchy = (fe_hierarchy_t)
xmlGetNumericAttribute(tps, "hierarchy", 0);
feparams.plp_id = (unsigned int)
feparams.plp_id = (uint8_t)
xmlGetNumericAttribute(tps, "plp_id", 0);
if (feparams.plp_id == 0)
feparams.plp_id = NO_STREAM_ID_FILTER;
if (feparams.frequency < 1000*1000)
feparams.frequency *= 1000;
}

View File

@@ -333,9 +333,9 @@ bool CNit::ParseSatelliteDescriptor(SatelliteDeliverySystemDescriptor * sd, Tran
memset(&feparams, 0, sizeof(feparams));
feparams.polarization = sd->getPolarization();
feparams.pilot = ZPILOT_AUTO;
feparams.plp_id = NO_STREAM_ID_FILTER;
feparams.pls_code = PLS_Default_Gold_Code;
feparams.pls_mode = PLS_Gold;
feparams.plp_id = 0;
feparams.pls_code = 1;
feparams.pls_mode = PLS_Root;
switch (modulation_system) {
case 0: // DVB-S
@@ -458,9 +458,7 @@ bool CNit::ParseTerrestrial2Descriptor(T2DeliverySystemDescriptor * sd, Transpor
feparams.delsys = DVB_T2;
feparams.inversion = INVERSION_AUTO;
feparams.plp_id = (unsigned int)sd->getPlpId();
if (feparams.plp_id == 0)
feparams.plp_id = NO_STREAM_ID_FILTER;
feparams.plp_id = sd->getPlpId();
feparams.code_rate_HP = CFrontend::getCodeRate(FEC_AUTO, DVB_T2);
feparams.code_rate_LP = CFrontend::getCodeRate(FEC_AUTO, DVB_T2);
feparams.modulation = CFrontend::getConstellation(QAM_AUTO);

View File

@@ -134,20 +134,6 @@ void transponder::dumpServiceXml(FILE * fd)
getFEParams()->modulation,
CFrontend::getXMLDeliverySystem(getFEParams()->delsys));
} else if (CFrontend::isSat(feparams.delsys)) {
if (getFEParams()->plp_id == NO_STREAM_ID_FILTER)
{
fprintf(fd, "\t\t<TS id=\"%04x\" on=\"%04x\" frq=\"%u\" inv=\"%hu\" sr=\"%u\" fec=\"%hu\" pol=\"%hu\" mod=\"%hu\" sys=\"%hu\">\n",
transport_stream_id, original_network_id,
getFEParams()->frequency,
getFEParams()->inversion,
getFEParams()->symbol_rate,
getFEParams()->fec_inner,
getFEParams()->polarization,
getFEParams()->modulation,
CFrontend::getXMLDeliverySystem(getFEParams()->delsys));
}
else
{
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,
@@ -160,25 +146,7 @@ void transponder::dumpServiceXml(FILE * fd)
getFEParams()->pls_code,
getFEParams()->pls_mode,
CFrontend::getXMLDeliverySystem(getFEParams()->delsys));
}
} else if (CFrontend::isTerr(feparams.delsys)) {
if (getFEParams()->plp_id == NO_STREAM_ID_FILTER)
{
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\" sys=\"%hu\">\n",
transport_stream_id, original_network_id,
getFEParams()->frequency,
getFEParams()->inversion,
getFEParams()->bandwidth,
getFEParams()->code_rate_HP,
getFEParams()->code_rate_LP,
getFEParams()->modulation,
getFEParams()->transmission_mode,
getFEParams()->guard_interval,
getFEParams()->hierarchy,
CFrontend::getXMLDeliverySystem(getFEParams()->delsys));
}
else
{
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",
transport_stream_id, original_network_id,
getFEParams()->frequency,
@@ -192,7 +160,6 @@ void transponder::dumpServiceXml(FILE * fd)
getFEParams()->hierarchy,
getFEParams()->plp_id,
CFrontend::getXMLDeliverySystem(getFEParams()->delsys));
}
}
}
@@ -207,9 +174,7 @@ void transponder::dump(std::string label)
getFEParams()->modulation,
getFEParams()->delsys);
} else if (CFrontend::isSat(feparams.delsys)) {
if (getFEParams()->plp_id == NO_STREAM_ID_FILTER)
{
printf("%s tp-id %016" PRIx64 " freq %d rate %d fec %d pol %d mod %d sys %d\n", label.c_str(),
printf("%s tp-id %016" PRIx64 " freq %d rate %d fec %d pol %d mod %d sys %d\n", label.c_str(),
transponder_id,
getFEParams()->frequency,
getFEParams()->symbol_rate,
@@ -217,37 +182,8 @@ void transponder::dump(std::string label)
getFEParams()->polarization,
getFEParams()->modulation,
getFEParams()->delsys);
}
else
{
printf("%s tp-id %016" PRIx64 " freq %d rate %d fec %d pol %d mod %d pli %u plc %u plm %u sys %d\n", label.c_str(),
transponder_id,
getFEParams()->frequency,
getFEParams()->symbol_rate,
getFEParams()->fec_inner,
getFEParams()->polarization,
getFEParams()->modulation,
getFEParams()->plp_id,
getFEParams()->pls_code,
getFEParams()->pls_mode,
getFEParams()->delsys);
}
} else if (CFrontend::isTerr(feparams.delsys)) {
if (getFEParams()->plp_id == NO_STREAM_ID_FILTER)
{
printf("%s tp-id %016" PRIx64 " freq %d bw %d coderate_HP %d coderate_LP %d const %d guard %d sys %d\n", label.c_str(),
transponder_id,
getFEParams()->frequency,
getFEParams()->bandwidth,
getFEParams()->code_rate_HP,
getFEParams()->code_rate_LP,
getFEParams()->modulation,
getFEParams()->guard_interval,
getFEParams()->delsys);
}
else
{
printf("%s tp-id %016" PRIx64 " freq %d bw %d coderate_HP %d coderate_LP %d const %d guard %d pli %u sys %d\n", label.c_str(),
printf("%s tp-id %016" PRIx64 " freq %d bw %d coderate_HP %d coderate_LP %d const %d guard %d pli %d delsys %d\n", label.c_str(),
transponder_id,
getFEParams()->frequency,
getFEParams()->bandwidth,
@@ -257,7 +193,6 @@ void transponder::dump(std::string label)
getFEParams()->guard_interval,
getFEParams()->plp_id,
getFEParams()->delsys);
}
}
}
@@ -289,20 +224,14 @@ std::string transponder::description()
if (CFrontend::isSat(feparams.delsys)) {
CFrontend::getDelSys(feparams.delsys, getFEParams()->fec_inner, getFEParams()->modulation, f, s, m);
if (getFEParams()->plp_id == NO_STREAM_ID_FILTER)
snprintf(buf, sizeof(buf), "%d %c %d %s %s %s", getFEParams()->frequency/1000, pol(getFEParams()->polarization), getFEParams()->symbol_rate/1000, f, s, m);
else
snprintf(buf, sizeof(buf), "%d %c %d %s %s %s (%u/%s/%s)", getFEParams()->frequency/1000, pol(getFEParams()->polarization), getFEParams()->symbol_rate/1000, f, s, m, getFEParams()->plp_id, getPLSCode(getFEParams()->pls_code).c_str(), getPLSMode(getFEParams()->pls_mode).c_str());
snprintf(buf, sizeof(buf), "%d %c %d %s %s %s (%d/%d/%s)", getFEParams()->frequency/1000, pol(getFEParams()->polarization), getFEParams()->symbol_rate/1000, f, s, m, getFEParams()->plp_id, getFEParams()->pls_code, getPLSMode(getFEParams()->pls_mode).c_str());
} else if (CFrontend::isCable(feparams.delsys)) {
CFrontend::getDelSys(feparams.delsys, getFEParams()->fec_inner, getFEParams()->modulation, f, s, m);
snprintf(buf, sizeof(buf), "%d %d %s %s %s ", getFEParams()->frequency/1000, getFEParams()->symbol_rate/1000, f, s, m);
} else if (CFrontend::isTerr(feparams.delsys)) {
CFrontend::getDelSys(feparams.delsys, getFEParams()->code_rate_HP, getFEParams()->modulation, f, s, m);
CFrontend::getDelSys(feparams.delsys, getFEParams()->code_rate_LP, getFEParams()->modulation, f2, s, m);
if (getFEParams()->plp_id == NO_STREAM_ID_FILTER)
snprintf(buf, sizeof(buf), "%d %d %s %s %s ", getFEParams()->frequency/1000, CFrontend::getFEBandwidth(getFEParams()->bandwidth)/1000, f, f2, m);
else
snprintf(buf, sizeof(buf), "%d %d %s %s %s %u ", getFEParams()->frequency/1000, CFrontend::getFEBandwidth(getFEParams()->bandwidth)/1000, f, f2, m, getFEParams()->plp_id);
snprintf(buf, sizeof(buf), "%d %d %s %s %s %d ", getFEParams()->frequency/1000, CFrontend::getFEBandwidth(getFEParams()->bandwidth)/1000, f, f2, m, getFEParams()->plp_id);
}
return std::string(buf);
@@ -323,15 +252,3 @@ std::string transponder::getPLSMode(const uint8_t pls_mode)
return "Root";
}
}
std::string transponder::getPLSCode(const uint32_t pls_code)
{
switch (pls_code) {
case 0x00:
return "Default_Gold_Code";
case 0x01:
return "Default_Root_Code";
default:
return "Default_Gold_Code";
}
}