From 8692b9d82340aa5d023f8c26e374cfe2aa7b4240 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Mon, 4 Dec 2017 20:14:02 +0100 Subject: [PATCH 01/14] widget/hintbox.cpp: add explicit init of var picon Had some issues while compile with gcc 7.x. Exact data type was expected. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/882a4654a829453fc9b7df58407997fd7fb601f6 Author: Thilo Graf Date: 2017-12-04 (Mon, 04 Dec 2017) ------------------ This commit was generated by Migit --- src/gui/widget/hintbox.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gui/widget/hintbox.cpp b/src/gui/widget/hintbox.cpp index ec9cd854e..73142b895 100644 --- a/src/gui/widget/hintbox.cpp +++ b/src/gui/widget/hintbox.cpp @@ -265,6 +265,9 @@ void CHintBox::addHintItem(const std::string& Text, const int& text_mode, const /* set required font and line height */ Font* item_font = !font_text ? hb_font : font_text; + /* set picon */ + string picon = Picon; + /* pre define required info height depends of lines and minimal needed height*/ int line_breaks = CTextBox::getLines(Text); int h_font = item_font->getHeight(); @@ -276,7 +279,7 @@ void CHintBox::addHintItem(const std::string& Text, const int& text_mode, const int txt_mode = text_mode; /* remove CENTER mode if picon defined */ - if (!Picon.empty() && (txt_mode & CTextBox::CENTER)){ + if (!picon.empty() && (txt_mode & CTextBox::CENTER)){ txt_mode &= ~CTextBox::CENTER; } @@ -313,7 +316,7 @@ void CHintBox::addHintItem(const std::string& Text, const int& text_mode, const color_text); /* define picon and disable bg */ - info_box->setPicture(Picon); + info_box->setPicture(picon); info_box->doPaintBg(false); /* recalculate new hintbox dimensions and position*/ From 4630dc55d53b453dee58614f89c47bb56ab6b7ea Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 5 Dec 2017 12:34:10 +0100 Subject: [PATCH 02/14] yWeb Help: remove invalid help links Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/114cd36e55470934f053b23c4fc7efcbf75818b6 Author: Thilo Graf Date: 2017-12-05 (Tue, 05 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/y-web/Y_Info_Help.yhtm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/y-web/Y_Info_Help.yhtm b/data/y-web/Y_Info_Help.yhtm index d9cecd04d..17e9bf5a3 100644 --- a/data/y-web/Y_Info_Help.yhtm +++ b/data/y-web/Y_Info_Help.yhtm @@ -7,10 +7,10 @@ {=var-set:help_url=Help-Info-Hilfe=}{=var-set:menu={=L:info.help=}=}{=include-block:Y_Blocks.txt;work_menu=} From ff16cbbeb4337d9d3e19b99315607b75e8450e9c Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 6 Dec 2017 10:42:05 +0100 Subject: [PATCH 03/14] localize: try to fix different path to iso tab Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/3c859db7c4d34f13a5c07bb5099289e08d7caa4e Author: Thilo Graf Date: 2017-12-06 (Wed, 06 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/iso-codes/Makefile.am | 2 +- src/system/localize.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/data/iso-codes/Makefile.am b/data/iso-codes/Makefile.am index e5ddfc030..3a4cc9aad 100644 --- a/data/iso-codes/Makefile.am +++ b/data/iso-codes/Makefile.am @@ -1,4 +1,4 @@ -installdir = $(datadir)/iso-codes +installdir = $(DATADIR)/iso-codes install_DATA = \ iso-639.tab diff --git a/src/system/localize.cpp b/src/system/localize.cpp index 63f562437..fd0a9c516 100644 --- a/src/system/localize.cpp +++ b/src/system/localize.cpp @@ -48,8 +48,10 @@ #include #include +#define ISO_639_TAB DATADIR "/iso-codes/iso-639.tab" //static const char * iso639filename = "/usr/share/iso-codes/iso-639.tab"; -static const char * iso639filename = "/share/iso-codes/iso-639.tab"; +//static const char * iso639filename = "/share/iso-codes/iso-639.tab"; +static const char * iso639filename = ISO_639_TAB; #define DEFAULT_LOCALE "english" From 9915ec8785ab582cfae161af43919884d7a2a9f1 Mon Sep 17 00:00:00 2001 From: Frankenstone Date: Fri, 1 Dec 2017 19:13:35 +0100 Subject: [PATCH 04/14] fix frontend Uni2 / JESS (thx DboxOldie) Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/f3283ed362f1ee3df44540883dc17d6628c655d1 Author: Frankenstone Date: 2017-12-01 (Fri, 01 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/zapit/src/frontend.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp index a5093e668..73164bfb6 100644 --- a/src/zapit/src/frontend.cpp +++ b/src/zapit/src/frontend.cpp @@ -1400,7 +1400,7 @@ void CFrontend::secSetTone(const fe_sec_tone_mode_t toneMode, const uint32_t ms) if (currentToneMode == toneMode) return; - if (config.diseqcType == DISEQC_UNICABLE) { + if (config.diseqcType == DISEQC_UNICABLE || config.diseqcType == DISEQC_UNICABLE2) { /* this is too ugly for words. the "currentToneMode" is the only place where the global "highband" state is saved. So we need to fake it for unicable and still set the tone on... */ @@ -1429,7 +1429,7 @@ void CFrontend::secSetVoltage(const fe_sec_voltage_t voltage, const uint32_t ms) return; if (zapit_debug) printf("[fe%d] voltage %s\n", fenumber, voltage == SEC_VOLTAGE_OFF ? "OFF" : voltage == SEC_VOLTAGE_13 ? "13" : "18"); - if (config.diseqcType == DISEQC_UNICABLE && voltage != SEC_VOLTAGE_OFF) { + if (config.diseqcType == DISEQC_UNICABLE || config.diseqcType == DISEQC_UNICABLE2) { /* see my comment in secSetTone... */ currentVoltage = voltage; /* need to know polarization for unicable */ fop(ioctl, FE_SET_VOLTAGE, unicable_lowvolt); /* voltage must not be 18V */ From b684d8dce660d95a19038435bc45b064c7ea5d9f Mon Sep 17 00:00:00 2001 From: TangoCash Date: Sun, 3 Dec 2017 17:59:08 +0100 Subject: [PATCH 05/14] fix DVB-T2 transponders Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/8ba4a585543b074ec78d2d1206c91a4a91ed2711 Author: TangoCash Date: 2017-12-03 (Sun, 03 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/zapit/src/frontend.cpp | 8 ++++---- src/zapit/src/getservices.cpp | 13 +++++++------ src/zapit/src/transponder.cpp | 14 +++++++++----- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp index 73164bfb6..b40c99b25 100644 --- a/src/zapit/src/frontend.cpp +++ b/src/zapit/src/frontend.cpp @@ -147,9 +147,9 @@ static const struct dtv_property dvbt2_cmdargs[] = { { DTV_GUARD_INTERVAL, {}, { GUARD_INTERVAL_AUTO}, 0}, { DTV_HIERARCHY, {}, { HIERARCHY_AUTO }, 0}, #if defined DTV_STREAM_ID - { DTV_STREAM_ID, {}, { 0 } ,0}, + { DTV_STREAM_ID, {}, { NO_STREAM_ID_FILTER } ,0}, #elif defined DTV_DVBT2_PLP_ID - { DTV_DVBT2_PLP_ID, {}, { 0 } ,0}, + { DTV_DVBT2_PLP_ID, {}, { NO_STREAM_ID_FILTER } ,0}, #endif { DTV_TUNE, {}, { 0 }, 0} }; @@ -1802,8 +1802,8 @@ int CFrontend::setParameters(transponder *TP, bool nowait) break; } - printf("[fe%d] tune to %d %s %s %s %s srate %d (tuner %d offset %d timeout %d)\n", fenumber, freq, s, m, f, - feparams.polarization & 1 ? "V/R" : "H/L", feparams.symbol_rate, feparams.frequency, freq_offset, TIMEOUT_MAX_MS); + 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); setFrontend(&feparams, nowait); return tuned; diff --git a/src/zapit/src/getservices.cpp b/src/zapit/src/getservices.cpp index 3b2d233d3..d53f02bc3 100644 --- a/src/zapit/src/getservices.cpp +++ b/src/zapit/src/getservices.cpp @@ -380,6 +380,7 @@ void CServiceManager::ParseTransponders(xmlNodePtr node, t_satellite_position sa t_original_network_id original_network_id = xmlGetNumericAttribute(node, "on", 16); feparams.frequency = xmlGetNumericAttribute(node, "frq", 0); feparams.inversion = (fe_spectral_inversion) xmlGetNumericAttribute(node, "inv", 0); + feparams.plp_id = (uint8_t) xmlGetNumericAttribute(node, "pli", 0); const char *system = xmlGetAttribute(node, "sys"); if (system) { @@ -397,7 +398,7 @@ void CServiceManager::ParseTransponders(xmlNodePtr node, t_satellite_position sa feparams.delsys = DVB_C; } else if (CFrontend::isTerr(delsys)) { - feparams.delsys = DVB_T; + feparams.delsys = delsys; } } @@ -426,8 +427,8 @@ void CServiceManager::ParseTransponders(xmlNodePtr node, t_satellite_position sa feparams.guard_interval = (fe_guard_interval_t) xmlGetNumericAttribute(node, "gi", 0); feparams.hierarchy = (fe_hierarchy_t) xmlGetNumericAttribute(node, "hi", 0); - if (feparams.frequency > 1000*1000) - feparams.frequency = feparams.frequency/1000; //transponderlist was read from tuxbox + if (feparams.frequency < 1000*1000) + feparams.frequency = feparams.frequency*1000; } else if (CFrontend::isCable(delsys)) { feparams.fec_inner = (fe_code_rate_t) xmlGetNumericAttribute(node, "fec", 0); @@ -728,7 +729,7 @@ void CServiceManager::ParseSatTransponders(delivery_system_t delsys, xmlNodePtr } } else { // Set some sane defaults. - feparams.delsys = DVB_T; + feparams.delsys = DVB_T2; } feparams.bandwidth = (fe_bandwidth_t) xmlGetNumericAttribute(tps, "bandwidth", 0); @@ -746,8 +747,8 @@ void CServiceManager::ParseSatTransponders(delivery_system_t delsys, xmlNodePtr xmlGetNumericAttribute(tps, "hierarchy", 0); feparams.plp_id = (uint8_t) xmlGetNumericAttribute(tps, "plp_id", 0); - if (feparams.frequency > 1000*1000) - feparams.frequency /= 1000; // old transponder list + if (feparams.frequency < 1000*1000) + feparams.frequency *= 1000; } else /* we'll probably crash sooner or later, so write to STDERR... */ fprintf(stderr, "[getservices] %s: unknown delivery system %d!\n", __func__, delsys); diff --git a/src/zapit/src/transponder.cpp b/src/zapit/src/transponder.cpp index 9ad962dc0..5e0e24264 100644 --- a/src/zapit/src/transponder.cpp +++ b/src/zapit/src/transponder.cpp @@ -62,7 +62,8 @@ 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) <= 100) + (abs((int) getFEParams()->frequency - (int)t.getFEParams()->frequency) <= 100) && + (getFEParams()->plp_id == t.getFEParams()->plp_id) ); } @@ -98,7 +99,8 @@ bool transponder::compare(const transponder& t) const (getFEParams()->code_rate_LP == t.getFEParams()->code_rate_LP || getFEParams()->code_rate_LP == FEC_AUTO || t.getFEParams()->code_rate_LP == FEC_AUTO) && (getFEParams()->modulation == t.getFEParams()->modulation || - getFEParams()->modulation == QAM_AUTO || t.getFEParams()->modulation == QAM_AUTO) + getFEParams()->modulation == QAM_AUTO || t.getFEParams()->modulation == QAM_AUTO) && + (getFEParams()->plp_id == t.getFEParams()->plp_id) ); } @@ -127,7 +129,7 @@ void transponder::dumpServiceXml(FILE * fd) getFEParams()->modulation, CFrontend::getXMLDeliverySystem(getFEParams()->delsys)); } else if (CFrontend::isTerr(feparams.delsys)) { - fprintf(fd, "\t\t\n", + fprintf(fd, "\t\t\n", transport_stream_id, original_network_id, getFEParams()->frequency, getFEParams()->inversion, @@ -138,6 +140,7 @@ void transponder::dumpServiceXml(FILE * fd) getFEParams()->transmission_mode, getFEParams()->guard_interval, getFEParams()->hierarchy, + getFEParams()->plp_id, CFrontend::getXMLDeliverySystem(getFEParams()->delsys)); } } @@ -162,7 +165,7 @@ void transponder::dump(std::string label) getFEParams()->modulation, getFEParams()->delsys); } else if (CFrontend::isTerr(feparams.delsys)) { - printf("%s tp-id %016" PRIx64 " freq %d bw %d coderate_HP %d coderate_LP %d const %d guard %d %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, @@ -170,6 +173,7 @@ void transponder::dump(std::string label) getFEParams()->code_rate_LP, getFEParams()->modulation, getFEParams()->guard_interval, + getFEParams()->plp_id, getFEParams()->delsys); } } @@ -209,7 +213,7 @@ std::string transponder::description() } 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); - snprintf(buf, sizeof(buf), "%d %d %s %s %s ", getFEParams()->frequency, CFrontend::getFEBandwidth(getFEParams()->bandwidth)/1000, f, f2, m); + snprintf(buf, sizeof(buf), "%d %d %s %s %s %d ", getFEParams()->frequency, CFrontend::getFEBandwidth(getFEParams()->bandwidth)/1000, f, f2, m, getFEParams()->plp_id); } return std::string(buf); From f1cde66135596be50caf86aee26d96982db1af24 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Mon, 4 Dec 2017 09:46:04 +0100 Subject: [PATCH 06/14] add DVB-S2X support Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/4e65f22bdf994f1c1fef1f7c9b04a538fd26d7bf Author: TangoCash Date: 2017-12-04 (Mon, 04 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- data/locale/deutsch.locale | 7 +++++ data/locale/english.locale | 7 +++++ src/gui/scan.cpp | 4 +++ src/gui/scan_setup.cpp | 34 ++++++++++++++++++++++++ src/system/locals.h | 7 +++++ src/system/locals_intern.h | 7 +++++ src/system/settings.cpp | 8 ++++++ src/system/settings.h | 4 +++ src/zapit/include/zapit/frontend_c.h | 2 ++ src/zapit/include/zapit/frontend_types.h | 11 +++++++- src/zapit/src/frontend.cpp | 30 ++++++++++++++++++--- src/zapit/src/getservices.cpp | 14 ++++++++++ src/zapit/src/transponder.cpp | 15 ++++++++--- 13 files changed, 142 insertions(+), 8 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index e893c24e9..fce9fbe63 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -536,6 +536,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 diff --git a/data/locale/english.locale b/data/locale/english.locale index 094a43057..938c2d9da 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -536,6 +536,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 diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index e679b4ba0..2dbaa6f16 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -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()); diff --git a/src/gui/scan_setup.cpp b/src/gui/scan_setup.cpp index 373b6dbac..f2bafaa27 100644 --- a/src/gui/scan_setup.cpp +++ b/src/gui/scan_setup.cpp @@ -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()); } } diff --git a/src/system/locals.h b/src/system/locals.h index 1648baea4..d1260c9ef 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -563,6 +563,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, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index b187b33f2..61003a67d 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -563,6 +563,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", diff --git a/src/system/settings.cpp b/src/system/settings.cpp index 8546a2f8c..7e289071f 100644 --- a/src/system/settings.cpp +++ b/src/system/settings.cpp @@ -146,6 +146,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); @@ -164,6 +167,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; @@ -204,6 +208,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); @@ -222,6 +229,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); diff --git a/src/system/settings.h b/src/system/settings.h index c16086540..7242b221a 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -1001,6 +1001,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; @@ -1019,6 +1022,7 @@ class CScanSettings int terrestrial_TP_hierarchy; int terrestrial_TP_transmit_mode; int terrestrial_TP_delsys; + std::string terrestrial_TP_pli; CScanSettings(); diff --git a/src/zapit/include/zapit/frontend_c.h b/src/zapit/include/zapit/frontend_c.h index 012b87605..7ae2597fb 100644 --- a/src/zapit/include/zapit/frontend_c.h +++ b/src/zapit/include/zapit/frontend_c.h @@ -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); diff --git a/src/zapit/include/zapit/frontend_types.h b/src/zapit/include/zapit/frontend_types.h index b4763ae43..615d7703e 100644 --- a/src/zapit/include/zapit/frontend_types.h +++ b/src/zapit/include/zapit/frontend_types.h @@ -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 { diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp index b40c99b25..94d08341f 100644 --- a/src/zapit/src/frontend.cpp +++ b/src/zapit/src/frontend.cpp @@ -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(); @@ -1269,6 +1290,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)); @@ -1802,8 +1824,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; diff --git a/src/zapit/src/getservices.cpp b/src/zapit/src/getservices.cpp index d53f02bc3..e0382ff13 100644 --- a/src/zapit/src/getservices.cpp +++ b/src/zapit/src/getservices.cpp @@ -415,6 +415,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)) { // @@ -615,6 +620,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) { @@ -706,6 +715,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"); diff --git a/src/zapit/src/transponder.cpp b/src/zapit/src/transponder.cpp index 5e0e24264..8b5af8d89 100644 --- a/src/zapit/src/transponder.cpp +++ b/src/zapit/src/transponder.cpp @@ -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\n", + fprintf(fd, "\t\t\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\n", From 516f48b50bc1339612063b0a80af8e0ea300792d Mon Sep 17 00:00:00 2001 From: TangoCash Date: Mon, 4 Dec 2017 09:46:04 +0100 Subject: [PATCH 07/14] workaround for T2 resolution display Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/7b47ab46d38d951f0ec837468578601d02325f65 Author: TangoCash Date: 2017-12-04 (Mon, 04 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/zapit/src/channel.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/zapit/src/channel.cpp b/src/zapit/src/channel.cpp index 17c0cf2b8..fd8ccb586 100644 --- a/src/zapit/src/channel.cpp +++ b/src/zapit/src/channel.cpp @@ -204,7 +204,10 @@ bool CZapitChannel::isUHD() { switch(serviceType) { case 0x1f: - return true; + if (delsys == DVB_T2) + return false; + else + return true; case ST_DIGITAL_TELEVISION_SERVICE: case 0x19: { @@ -226,6 +229,11 @@ bool CZapitChannel::isUHD() bool CZapitChannel::isHD() { switch(serviceType) { + case 0x1f: + if (delsys == DVB_T2) + return true; + else + return false; case 0x11: case 0x19: //printf("[zapit] HD channel: %s type 0x%X\n", name.c_str(), serviceType); return true; From be316544b862c953d9f30c77ea91766e595451cb Mon Sep 17 00:00:00 2001 From: TangoCash Date: Mon, 4 Dec 2017 09:46:04 +0100 Subject: [PATCH 08/14] add PLI/PLC/PLM to manual transponder selection Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/15e49f9d02901d8a9d04a292fa4c07713ddf1e28 Author: TangoCash Date: 2017-12-04 (Mon, 04 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/zapit/include/zapit/transponder.h | 1 + src/zapit/src/transponder.cpp | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/zapit/include/zapit/transponder.h b/src/zapit/include/zapit/transponder.h index 7dd2962e4..7d894e854 100644 --- a/src/zapit/include/zapit/transponder.h +++ b/src/zapit/include/zapit/transponder.h @@ -48,6 +48,7 @@ public: void ddump(std::string label = "tp"); static char pol(unsigned char pol); std::string description(void); + std::string getPLSMode(const uint8_t pls_mode); delivery_system_t getDelSys(void) { return feparams.delsys; } t_transport_stream_id getTransportStreamId(void) { return transport_stream_id; } diff --git a/src/zapit/src/transponder.cpp b/src/zapit/src/transponder.cpp index 8b5af8d89..6a3046f4e 100644 --- a/src/zapit/src/transponder.cpp +++ b/src/zapit/src/transponder.cpp @@ -215,7 +215,7 @@ std::string transponder::description() if (CFrontend::isSat(feparams.delsys)) { CFrontend::getDelSys(feparams.delsys, getFEParams()->fec_inner, getFEParams()->modulation, f, s, m); - snprintf(buf, sizeof(buf), "%d %c %d %s %s %s ", getFEParams()->frequency/1000, pol(getFEParams()->polarization), getFEParams()->symbol_rate/1000, f, s, m); + 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); @@ -227,3 +227,19 @@ std::string transponder::description() return std::string(buf); } + +std::string transponder::getPLSMode(const uint8_t pls_mode) +{ + switch (pls_mode) { + case 0x00: + return "Root"; + case 0x01: + return "Gold"; + case 0x02: + return "Combo"; + case 0x03: + return "Unknown"; + default: + return "Root"; + } +} From 01ec4491a03c722b32b3235ec7e897625a762577 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Mon, 4 Dec 2017 09:46:04 +0100 Subject: [PATCH 09/14] show PLI/PLC/PLM while scanning Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/5a6df22226894687a23c81fcf77f912b732f8066 Author: TangoCash Date: 2017-12-04 (Mon, 04 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/scan.cpp | 6 +++--- src/zapit/include/zapit/transponder.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index 2dbaa6f16..f4c912a93 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -192,7 +192,7 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) hheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]->getHeight(); mheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); fw = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getWidth(); - width = w_max(fw * 42, 0); + width = w_max(fw * 52, 0); int tmp = (BAR_WIDTH + 4 + 7 * fw) * 2 + fw + 40; /* that's from the crazy calculation in showSNR() */ if (width < tmp) width = w_max(tmp, 0); @@ -427,9 +427,9 @@ neutrino_msg_t CScanTs::handleMsg(neutrino_msg_t msg, neutrino_msg_data_t data) CFrontend::getDelSys(feparams->delsys, feparams->fec_inner, feparams->modulation, f, s, m); uint32_t freq = feparams->frequency/1000; if (CFrontend::isSat(feparams->delsys)) - snprintf(buffer,sizeof(buffer), "%u %c %d %s %s %s", freq, transponder::pol(feparams->polarization), feparams->symbol_rate/1000, f, s, m); + 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 - snprintf(buffer,sizeof(buffer), "%u %d %s %s", freq, feparams->symbol_rate/1000, s, m); + snprintf(buffer,sizeof(buffer), "%u %d %s %s %d", freq, feparams->symbol_rate/1000, s, m, feparams->plp_id); paintLine(xpos2, ypos_frequency, w - (7*fw), buffer); } break; diff --git a/src/zapit/include/zapit/transponder.h b/src/zapit/include/zapit/transponder.h index 7d894e854..e76181c3b 100644 --- a/src/zapit/include/zapit/transponder.h +++ b/src/zapit/include/zapit/transponder.h @@ -48,7 +48,7 @@ public: void ddump(std::string label = "tp"); static char pol(unsigned char pol); std::string description(void); - std::string getPLSMode(const uint8_t pls_mode); + static std::string getPLSMode(const uint8_t pls_mode); delivery_system_t getDelSys(void) { return feparams.delsys; } t_transport_stream_id getTransportStreamId(void) { return transport_stream_id; } From 55f16184c34c7b5dd51bb6c3f9e3d99b1f9399f8 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Mon, 4 Dec 2017 09:54:34 +0100 Subject: [PATCH 10/14] update scan infos Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/67b8037caace142b736bbf730c8a13036668cd89 Author: TangoCash Date: 2017-12-04 (Mon, 04 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/gui/scan.cpp | 19 +++++++++++++++---- src/zapit/src/transponder.cpp | 2 +- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index f4c912a93..46d9aee29 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -422,14 +422,25 @@ neutrino_msg_t CScanTs::handleMsg(neutrino_msg_t msg, neutrino_msg_data_t data) case NeutrinoMessages::EVT_SCAN_REPORT_FREQUENCYP: { FrontendParameters *feparams = (FrontendParameters*) data; - const char *f, *s, *m; + const char *f, *f2, *s, *m; - CFrontend::getDelSys(feparams->delsys, feparams->fec_inner, feparams->modulation, f, s, m); uint32_t freq = feparams->frequency/1000; if (CFrontend::isSat(feparams->delsys)) - 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()); + { + CFrontend::getDelSys(feparams->delsys, feparams->fec_inner, feparams->modulation, f, s, m); + 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)) + { + CFrontend::getDelSys(feparams->delsys, feparams->fec_inner, feparams->modulation, f, s, m); + snprintf(buffer,sizeof(buffer), "%u %d %s %s %s ", freq, feparams->symbol_rate/1000, f, s, m); + } else - snprintf(buffer,sizeof(buffer), "%u %d %s %s %d", freq, feparams->symbol_rate/1000, s, m, feparams->plp_id); + { + 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); + 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, w - (7*fw), buffer); } break; diff --git a/src/zapit/src/transponder.cpp b/src/zapit/src/transponder.cpp index 6a3046f4e..41dff0a1c 100644 --- a/src/zapit/src/transponder.cpp +++ b/src/zapit/src/transponder.cpp @@ -222,7 +222,7 @@ std::string transponder::description() } 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); - snprintf(buf, sizeof(buf), "%d %d %s %s %s %d ", getFEParams()->frequency, 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); From 80cddcb4bb4f6788b96d62d4abbe9bab24e4104d Mon Sep 17 00:00:00 2001 From: TangoCash Date: Mon, 4 Dec 2017 22:30:41 +0100 Subject: [PATCH 11/14] fix scannit Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/434a9b95fdbed03057995818227926b1d6bb2fc1 Author: TangoCash Date: 2017-12-04 (Mon, 04 Dec 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/zapit/src/scannit.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/zapit/src/scannit.cpp b/src/zapit/src/scannit.cpp index b16a3c83c..8270d6373 100644 --- a/src/zapit/src/scannit.cpp +++ b/src/zapit/src/scannit.cpp @@ -333,6 +333,9 @@ bool CNit::ParseSatelliteDescriptor(SatelliteDeliverySystemDescriptor * sd, Tran memset(&feparams, 0, sizeof(feparams)); feparams.polarization = sd->getPolarization(); feparams.pilot = ZPILOT_AUTO; + feparams.plp_id = 0; + feparams.pls_code = 1; + feparmas.pls_mode = 0; switch (modulation_system) { case 0: // DVB-S From ec453da6e517b937a9877d00213d419a4e351d7f Mon Sep 17 00:00:00 2001 From: vanhofen Date: Mon, 4 Dec 2017 22:30:41 +0100 Subject: [PATCH 12/14] zapit/scannit: fix typo in last commit Signed-off-by: Thilo Graf 'last commit' = 7b75b1d9dbc856d4547168ef35084e45304b5e6f Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/c58122162384b70e159051b35d6ea2da00baef14 Author: vanhofen Date: 2017-12-04 (Mon, 04 Dec 2017) Origin message was: ------------------ - zapit/scannit: fix typo in last commit Signed-off-by: Thilo Graf 'last commit' = 7b75b1d9dbc856d4547168ef35084e45304b5e6f ------------------ This commit was generated by Migit --- src/zapit/src/scannit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zapit/src/scannit.cpp b/src/zapit/src/scannit.cpp index 8270d6373..4100cc926 100644 --- a/src/zapit/src/scannit.cpp +++ b/src/zapit/src/scannit.cpp @@ -335,7 +335,7 @@ bool CNit::ParseSatelliteDescriptor(SatelliteDeliverySystemDescriptor * sd, Tran feparams.pilot = ZPILOT_AUTO; feparams.plp_id = 0; feparams.pls_code = 1; - feparmas.pls_mode = 0; + feparams.pls_mode = PLS_Root; switch (modulation_system) { case 0: // DVB-S From 2925427a7592c5d7a9b750b744e8dcd7f83d3f26 Mon Sep 17 00:00:00 2001 From: Frankenstone Date: Mon, 4 Dec 2017 22:30:41 +0100 Subject: [PATCH 13/14] osd_setup.cpp: fix colormenu shadow Signed-off-by: Thilo Graf alpha was bounded to menue head alpha Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/5955e2b80a401528028fc17e0938e89d39a8868b Author: Frankenstone Date: 2017-12-04 (Mon, 04 Dec 2017) ------------------ This commit was generated by Migit --- src/gui/osd_setup.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index aec366533..04c1faf5b 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -782,7 +782,7 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) CColorChooser* chFootTextcolor = new CColorChooser(LOCALE_COLORMENU_TEXTCOLOR, &t.menu_Foot_Text_red, &t.menu_Foot_Text_green, &t.menu_Foot_Text_blue, NULL, colorSetupNotifier); CColorChooser* chShadowColor = new CColorChooser(LOCALE_COLORMENU_SHADOW_COLOR, &t.shadow_red, &t.shadow_green, &t.shadow_blue, - &t.menu_Head_alpha, colorSetupNotifier); + &t.shadow_alpha, colorSetupNotifier); menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORMENUSETUP_MENUHEAD)); From 7bc6dceca8b9d234c0bce90d8ddf63e48c1c43c9 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Thu, 7 Dec 2017 00:02:20 +0100 Subject: [PATCH 14/14] fix cable nit Signed-off-by: Thilo Graf This should fix possible unintended multiple scans. Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/29cce3fca8d2013eedc7097ec4273cc0e10b18ec Author: TangoCash Date: 2017-12-07 (Thu, 07 Dec 2017) ------------------ This commit was generated by Migit --- src/zapit/src/transponder.cpp | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/zapit/src/transponder.cpp b/src/zapit/src/transponder.cpp index 41dff0a1c..1fde68857 100644 --- a/src/zapit/src/transponder.cpp +++ b/src/zapit/src/transponder.cpp @@ -50,24 +50,33 @@ transponder::transponder() bool transponder::operator==(const transponder& t) const { - if (!CFrontend::isTerr(feparams.delsys)) + if (CFrontend::isSat(feparams.delsys)) return ( - (satellitePosition == t.satellitePosition) && - //(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) && - (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) && + (satellitePosition == t.satellitePosition) && + //(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) && + (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)) + return ((satellitePosition == t.satellitePosition) && //(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) <= 100) && (getFEParams()->plp_id == t.getFEParams()->plp_id) - ); + ); + else + return ( + (satellitePosition == t.satellitePosition) && + //(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) + ); } bool transponder::compare(const transponder& t) const