diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index d5595f5d0..9eb0bae43 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1444,6 +1444,7 @@ menu.hint_scan_freq Geben Sie eine Transponder-Frequenz ein menu.hint_scan_fta Lassen Sie nur frei empfangbare (nicht-verschlüsselte) Programme suchen menu.hint_scan_gi Wählen Sie den Schutzintervall für diesen terrestrischen Kanal menu.hint_scan_hierarchy Wählen Sie die Hierarchie für diesen terrestrischen Kanal +menu.hint_scan_increased_voltage Erhöht 13/18 Spannung auf 13.5/18.5 menu.hint_scan_ladirection Wählen Sie ihre Breitengrad-Ausrichtung menu.hint_scan_latitude Geben Sie ihren Breitengrad ein menu.hint_scan_lnbconfig Konfigurieren Sie LNB-Parameter für diesen Satelliten @@ -2255,6 +2256,7 @@ satsetup.diseqc11 DiSEqC 1.1 satsetup.diseqc12 DiSEqC 1.2 satsetup.diseqc_advanced Erweiterte Auswahl satsetup.diseqc_com_uncom Committed/Uncommitted +satsetup.diseqc_increased_voltage Erhöhte Spannung 13.5/18.5 satsetup.diseqc_input DiSEqC Einspeisung satsetup.diseqc_order DiSEqC command order satsetup.diseqc_uncom_com Uncommitted/Committed diff --git a/data/locale/english.locale b/data/locale/english.locale index dd6100764..613a8bc15 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1444,6 +1444,7 @@ menu.hint_scan_freq Enter transponder frequency menu.hint_scan_fta Add only free-to-air (not-scrambled) channels menu.hint_scan_gi Select the guard interval for this terrestrial channel menu.hint_scan_hierarchy Select the hierarchy for this terrestrial channel +menu.hint_scan_increased_voltage Increase voltage from 13/18 to 13.5/18.5 menu.hint_scan_ladirection Select latitude direction menu.hint_scan_latitude Enter your latitude menu.hint_scan_lnbconfig Configure LNB parameters for this satellite @@ -2255,6 +2256,7 @@ satsetup.diseqc11 DiSEqC 1.1 satsetup.diseqc12 DiSEqC 1.2 satsetup.diseqc_advanced Advanced satsetup.diseqc_com_uncom Commited/Uncommited +satsetup.diseqc_increased_voltage Increased voltage 13.5/18.5 satsetup.diseqc_input DiSEqC input satsetup.diseqc_order DiSEqC command order satsetup.diseqc_uncom_com Uncommited/Commited diff --git a/src/gui/scan_setup.cpp b/src/gui/scan_setup.cpp index db1c2240d..278a64e56 100644 --- a/src/gui/scan_setup.cpp +++ b/src/gui/scan_setup.cpp @@ -1015,6 +1015,13 @@ int CScanSetup::showFrontendSetup(int number) dorder->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCORDER); setupMenu->addItem(dorder); + /* Increased voltage */ + increasedVoltage = new CMenuOptionChooser(LOCALE_SATSETUP_DISEQC_INCREASED_VOLTAGE, (int *)&fe_config.increased_voltage, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, + allow_moptions && (dmode == DISEQC_ADVANCED), + this, CRCInput::convertDigitToKey(shortcut++), "", true); + increasedVoltage->setHint("", LOCALE_MENU_HINT_SCAN_INCREASED_VOLTAGE); + setupMenu->addItem(increasedVoltage); + CMenuWidget * satToSelect = new CMenuWidget(LOCALE_SATSETUP_SELECT_SAT, NEUTRINO_ICON_SETTINGS, width); satToSelect->addIntroItems(); @@ -1866,6 +1873,7 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data* bool enable = (dmode < DISEQC_ADVANCED) && (dmode != NO_DISEQC); ojDiseqcRepeats->setActive(enable && !CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED); dorder->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && dmode == DISEQC_ADVANCED); + increasedVoltage->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && dmode == DISEQC_ADVANCED); } else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_SATSETUP_FE_MODE)) { printf("[neutrino] CScanSetup::%s: fe%d mode %d master %d\n", __FUNCTION__, fenumber, femode, femaster); @@ -1886,6 +1894,7 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data* dtype->setActive(femode != CFrontend::FE_MODE_UNUSED && femode != CFrontend::FE_MODE_LINK_LOOP); uniSetup->setActive(dmode == DISEQC_UNICABLE ? true : dmode == DISEQC_UNICABLE2 && femode != CFrontend::FE_MODE_UNUSED && femode != CFrontend::FE_MODE_LINK_LOOP); dorder->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && dmode == DISEQC_ADVANCED); + increasedVoltage->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && dmode == DISEQC_ADVANCED); fsatSelect->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED); fsatSetup->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED); bool enable = (dmode < DISEQC_ADVANCED) && (dmode != NO_DISEQC); diff --git a/src/gui/scan_setup.h b/src/gui/scan_setup.h index bb749eed1..6c33aecda 100644 --- a/src/gui/scan_setup.h +++ b/src/gui/scan_setup.h @@ -57,6 +57,7 @@ class CScanSetup : public CMenuTarget, public CChangeObserver CMenuForwarder *fsatSelect; CMenuOptionChooser * dtype; CMenuOptionChooser * dorder; + CMenuOptionChooser * increasedVoltage; CMenuOptionChooser * tsp; CMenuForwarder *uniSetup; CMenuOptionNumberChooser * ojDiseqcRepeats; diff --git a/src/system/locals.h b/src/system/locals.h index 30aa94b37..57d71f12b 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1471,6 +1471,7 @@ typedef enum LOCALE_MENU_HINT_SCAN_FTA, LOCALE_MENU_HINT_SCAN_GI, LOCALE_MENU_HINT_SCAN_HIERARCHY, + LOCALE_MENU_HINT_SCAN_INCREASED_VOLTAGE, LOCALE_MENU_HINT_SCAN_LADIRECTION, LOCALE_MENU_HINT_SCAN_LATITUDE, LOCALE_MENU_HINT_SCAN_LNBCONFIG, @@ -2282,6 +2283,7 @@ typedef enum LOCALE_SATSETUP_DISEQC12, LOCALE_SATSETUP_DISEQC_ADVANCED, LOCALE_SATSETUP_DISEQC_COM_UNCOM, + LOCALE_SATSETUP_DISEQC_INCREASED_VOLTAGE, LOCALE_SATSETUP_DISEQC_INPUT, LOCALE_SATSETUP_DISEQC_ORDER, LOCALE_SATSETUP_DISEQC_UNCOM_COM, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index a6a65a400..410429d13 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1471,6 +1471,7 @@ const char * locale_real_names[] = "menu.hint_scan_fta", "menu.hint_scan_gi", "menu.hint_scan_hierarchy", + "menu.hint_scan_increased_voltage", "menu.hint_scan_ladirection", "menu.hint_scan_latitude", "menu.hint_scan_lnbconfig", @@ -2282,6 +2283,7 @@ const char * locale_real_names[] = "satsetup.diseqc12", "satsetup.diseqc_advanced", "satsetup.diseqc_com_uncom", + "satsetup.diseqc_increased_voltage", "satsetup.diseqc_input", "satsetup.diseqc_order", "satsetup.diseqc_uncom_com", diff --git a/src/zapit/include/zapit/frontend_types.h b/src/zapit/include/zapit/frontend_types.h index 615d7703e..5d9c1662b 100644 --- a/src/zapit/include/zapit/frontend_types.h +++ b/src/zapit/include/zapit/frontend_types.h @@ -153,6 +153,7 @@ typedef struct frontend_config { int rotor_swap; int force_mode; int powered; + int increased_voltage; } frontend_config_t; #endif // __FRONTEND_TYPES_H__ diff --git a/src/zapit/include/zapit/satconfig.h b/src/zapit/include/zapit/satconfig.h index fdc0c0be4..4ebf32854 100644 --- a/src/zapit/include/zapit/satconfig.h +++ b/src/zapit/include/zapit/satconfig.h @@ -38,6 +38,7 @@ typedef struct sat_config { int input; int configured; int cable_nid; + int increased_voltage; delivery_system_t delsys; } sat_config_t; diff --git a/src/zapit/src/femanager.cpp b/src/zapit/src/femanager.cpp index 202dea536..2cb0a02b9 100644 --- a/src/zapit/src/femanager.cpp +++ b/src/zapit/src/femanager.cpp @@ -158,7 +158,7 @@ void CFEManager::setConfigValue(CFrontend * fe, const char * name, uint32_t val) configfile.setInt32(cfg_key, val); } -#define SATCONFIG_SIZE 12 +#define SATCONFIG_SIZE 13 void CFEManager::setSatelliteConfig(CFrontend * fe, sat_config_t &satconfig) { char cfg_key[81]; @@ -176,6 +176,7 @@ void CFEManager::setSatelliteConfig(CFrontend * fe, sat_config_t &satconfig) satConfig.push_back(satconfig.use_in_scan); satConfig.push_back(satconfig.use_usals); satConfig.push_back(satconfig.configured); + satConfig.push_back(satconfig.increased_voltage); sprintf(cfg_key, "fe%d_position_%d", fe->fenumber, satconfig.position); //INFO("set %s", cfg_key); @@ -202,6 +203,7 @@ bool CFEManager::getSatelliteConfig(CFrontend * fe, sat_config_t &satconfig) satconfig.use_in_scan = satConfig[i++]; satconfig.use_usals = satConfig[i++]; satconfig.configured = satConfig[i++]; + satconfig.increased_voltage = satConfig[i++]; return true; } return false; @@ -251,6 +253,7 @@ bool CFEManager::loadSettings() fe_config.uni_qrg = getConfigValue(fe, "uni_qrg", 0); fe_config.uni_pin = getConfigValue(fe, "uni_pin", -1); fe_config.diseqc_order = getConfigValue(fe, "diseqc_order", UNCOMMITED_FIRST); + fe_config.increased_voltage = getConfigValue(fe, "increased_voltage", 0); fe_config.use_usals = getConfigValue(fe, "use_usals", 0); fe_config.rotor_swap = getConfigValue(fe, "rotor_swap", 0); fe_config.force_mode = getConfigValue(fe, "force_mode", 0); @@ -316,6 +319,7 @@ bool CFEManager::loadSettings() satconfig.uncommited = -1; satconfig.motor_position = 0; satconfig.diseqc_order = 0; + satconfig.increased_voltage = 0; satconfig.lnbOffsetLow = 9750; satconfig.lnbOffsetHigh = 10600; satconfig.lnbSwitch = 11700; @@ -356,6 +360,7 @@ void CFEManager::saveSettings(bool write) setConfigValue(fe, "uni_qrg", fe_config.uni_qrg); setConfigValue(fe, "uni_pin", fe_config.uni_pin); setConfigValue(fe, "diseqc_order", fe_config.diseqc_order); + setConfigValue(fe, "increased_voltage", fe_config.increased_voltage); setConfigValue(fe, "use_usals", fe_config.use_usals); setConfigValue(fe, "rotor_swap", fe_config.rotor_swap); setConfigValue(fe, "lastSatellitePosition", fe->getRotorSatellitePosition()); diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp index 53f53ffe3..658293ae3 100644 --- a/src/zapit/src/frontend.cpp +++ b/src/zapit/src/frontend.cpp @@ -1470,6 +1470,12 @@ void CFrontend::secSetVoltage(const fe_sec_voltage_t voltage, const uint32_t ms) fop(ioctl, FE_SET_VOLTAGE, unicable_lowvolt); /* voltage must not be 18V */ return; } + //increased voltage only in advanced mode + if(config.diseqcType == DISEQC_ADVANCED && config.increased_voltage){ + if (fop(ioctl, FE_ENABLE_HIGH_LNB_VOLTAGE, voltage != SEC_VOLTAGE_OFF) < 0){ + if (zapit_debug) printf("[fe%d/%d] failed increased voltage %i\n",adapter ,fenumber,voltage != SEC_VOLTAGE_OFF); + } + } if (fop(ioctl, FE_SET_VOLTAGE, voltage) == 0) { currentVoltage = voltage;