mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 15:32:59 +02:00
- introduce triple tuner handling
Conflicts: src/gui/scan_setup.cpp
This commit is contained in:
@@ -2777,9 +2777,10 @@ tmdb.enabled TMDb-Unterstützung
|
|||||||
tmdb.head TMDb
|
tmdb.head TMDb
|
||||||
tmdb.read_data Suche TMDb-Daten ...
|
tmdb.read_data Suche TMDb-Daten ...
|
||||||
tunersetup.cable Kabel (DVB-C)
|
tunersetup.cable Kabel (DVB-C)
|
||||||
tunersetup.hybrid Hybrid (DVB-C/T/T2)
|
tunersetup.hybrid Hybrid (DVB-*)
|
||||||
tunersetup.mode Betriebsmodus
|
tunersetup.mode Betriebsmodus
|
||||||
tunersetup.power 5V-Versorgung bei DVB-T/T2 Kanälen
|
tunersetup.power 5V-Versorgung bei DVB-T/T2 Kanälen
|
||||||
|
tunersetup.sat Satellit (DVB-S/S2)
|
||||||
tunersetup.terr Terrestrisch (DVB-T/T2)
|
tunersetup.terr Terrestrisch (DVB-T/T2)
|
||||||
unicable.lnb Unicable Eingang
|
unicable.lnb Unicable Eingang
|
||||||
unicable.pin Unicable PIN
|
unicable.pin Unicable PIN
|
||||||
|
@@ -2777,9 +2777,10 @@ tmdb.enabled TMDb support
|
|||||||
tmdb.head TMDb
|
tmdb.head TMDb
|
||||||
tmdb.read_data Search TMDb data ...
|
tmdb.read_data Search TMDb data ...
|
||||||
tunersetup.cable Cable (DVB-C)
|
tunersetup.cable Cable (DVB-C)
|
||||||
tunersetup.hybrid Hybrid (DVB-C/T/T2)
|
tunersetup.hybrid Hybrid (DVB-*)
|
||||||
tunersetup.mode Operation mode
|
tunersetup.mode Operation mode
|
||||||
tunersetup.power 5V supply on DVB-T/T2 channels
|
tunersetup.power 5V supply on DVB-T/T2 channels
|
||||||
|
tunersetup.sat Satellite (DVB-S/S2)
|
||||||
tunersetup.terr Terrestrial (DVB-T/T2)
|
tunersetup.terr Terrestrial (DVB-T/T2)
|
||||||
unicable.lnb Unicable Input
|
unicable.lnb Unicable Input
|
||||||
unicable.pin Unicable PIN
|
unicable.pin Unicable PIN
|
||||||
|
@@ -376,12 +376,13 @@ const CMenuOptionChooser::keyval SATSETUP_FRONTEND_MODE[SATSETUP_FRONTEND_MODE_C
|
|||||||
{ CFrontend::FE_MODE_LINK_TWIN, LOCALE_SATSETUP_FE_MODE_LINK_TWIN }
|
{ CFrontend::FE_MODE_LINK_TWIN, LOCALE_SATSETUP_FE_MODE_LINK_TWIN }
|
||||||
};
|
};
|
||||||
|
|
||||||
#define FRONTEND_FORCE_MODE_COUNT 3
|
#define FRONTEND_FORCE_MODE_COUNT 4
|
||||||
const CMenuOptionChooser::keyval FRONTEND_FORCE_MODE[FRONTEND_FORCE_MODE_COUNT] =
|
const CMenuOptionChooser::keyval FRONTEND_FORCE_MODE[FRONTEND_FORCE_MODE_COUNT] =
|
||||||
{
|
{
|
||||||
{ 0, LOCALE_TUNERSETUP_HYBRID },
|
{ CFEManager::FE_FMODE_HYBRID, LOCALE_TUNERSETUP_HYBRID },
|
||||||
{ 1, LOCALE_TUNERSETUP_CABLE },
|
{ CFEManager::FE_FMODE_CABLE, LOCALE_TUNERSETUP_CABLE },
|
||||||
{ 2, LOCALE_TUNERSETUP_TERR }
|
{ CFEManager::FE_FMODE_TERR, LOCALE_TUNERSETUP_TERR },
|
||||||
|
{ CFEManager::FE_FMODE_SAT, LOCALE_TUNERSETUP_SAT }
|
||||||
};
|
};
|
||||||
|
|
||||||
#define SATSETUP_SCANTP_PLM_COUNT 4
|
#define SATSETUP_SCANTP_PLM_COUNT 4
|
||||||
@@ -621,7 +622,7 @@ int CScanSetup::showScanMenu()
|
|||||||
if (CFEManager::getInstance()->haveSat()) {
|
if (CFEManager::getInstance()->haveSat()) {
|
||||||
r_system = ALL_SAT;
|
r_system = ALL_SAT;
|
||||||
|
|
||||||
//settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SCANTS_PREVERENCES_RECEIVING_SYSTEM ));
|
settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_TUNERSETUP_SAT ));
|
||||||
|
|
||||||
satOnOff = new CMenuWidget(LOCALE_SATSETUP_SATELLITE, NEUTRINO_ICON_SETTINGS, width);
|
satOnOff = new CMenuWidget(LOCALE_SATSETUP_SATELLITE, NEUTRINO_ICON_SETTINGS, width);
|
||||||
|
|
||||||
@@ -636,18 +637,19 @@ int CScanSetup::showScanMenu()
|
|||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTO);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTO);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
|
|
||||||
//manual scan
|
|
||||||
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
|
||||||
addScanMenuManualScan(manualScan);
|
|
||||||
mf = new CMenuDForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", CRCInput::RC_yellow);
|
|
||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
|
||||||
settings->addItem(mf);
|
|
||||||
//auto scan all
|
//auto scan all
|
||||||
CMenuWidget * autoScanAll = new CMenuWidget(LOCALE_SATSETUP_AUTO_SCAN_ALL, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN_ALL);
|
CMenuWidget * autoScanAll = new CMenuWidget(LOCALE_SATSETUP_AUTO_SCAN_ALL, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN_ALL);
|
||||||
addScanMenuAutoScanAll(autoScanAll);
|
addScanMenuAutoScanAll(autoScanAll);
|
||||||
fautoScanAll = new CMenuDForwarder(LOCALE_SATSETUP_AUTO_SCAN_ALL, true /*(dmode != NO_DISEQC)*/, NULL, autoScanAll, "", CRCInput::RC_blue);
|
fautoScanAll = new CMenuDForwarder(LOCALE_SATSETUP_AUTO_SCAN_ALL, true /*(dmode != NO_DISEQC)*/, NULL, autoScanAll, "", CRCInput::RC_blue);
|
||||||
fautoScanAll->setHint("", LOCALE_MENU_HINT_SCAN_AUTOALL);
|
fautoScanAll->setHint("", LOCALE_MENU_HINT_SCAN_AUTOALL);
|
||||||
settings->addItem(fautoScanAll);
|
settings->addItem(fautoScanAll);
|
||||||
|
|
||||||
|
//manual scan
|
||||||
|
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
||||||
|
addScanMenuManualScan(manualScan);
|
||||||
|
mf = new CMenuDForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", CRCInput::RC_yellow);
|
||||||
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
||||||
|
settings->addItem(mf);
|
||||||
#ifdef ENABLE_FASTSCAN
|
#ifdef ENABLE_FASTSCAN
|
||||||
//fast scan
|
//fast scan
|
||||||
CMenuWidget * fastScanMenu = new CMenuWidget(LOCALE_SATSETUP_FASTSCAN_HEAD, NEUTRINO_ICON_SETTINGS, w, MN_WIDGET_ID_SCAN_FAST_SCAN);
|
CMenuWidget * fastScanMenu = new CMenuWidget(LOCALE_SATSETUP_FASTSCAN_HEAD, NEUTRINO_ICON_SETTINGS, w, MN_WIDGET_ID_SCAN_FAST_SCAN);
|
||||||
@@ -656,18 +658,21 @@ int CScanSetup::showScanMenu()
|
|||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_FAST);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_FAST);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
#endif
|
#endif
|
||||||
|
#if 0
|
||||||
//signal test
|
//signal test
|
||||||
CMenuWidget * sTest = new CMenuWidget(LOCALE_SCANTS_TEST, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
CMenuWidget * sTest = new CMenuWidget(LOCALE_SCANTS_TEST, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
||||||
addScanMenuManualScan(sTest, true);
|
addScanMenuManualScan(sTest, true);
|
||||||
mf = new CMenuDForwarder(LOCALE_SCANTS_TEST, true, NULL, sTest, "", CRCInput::RC_green);
|
mf = new CMenuDForwarder(LOCALE_SCANTS_TEST, true, NULL, sTest, "", CRCInput::RC_green);
|
||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_TEST);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_TEST);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
settings->addItem(GenericMenuSeparatorLine);
|
#endif
|
||||||
|
//settings->addItem(GenericMenuSeparatorLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CFEManager::getInstance()->haveCable()) {
|
if (CFEManager::getInstance()->haveCable()) {
|
||||||
r_system = ALL_CABLE;
|
r_system = ALL_CABLE;
|
||||||
|
|
||||||
|
settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_TUNERSETUP_CABLE ));
|
||||||
//tune timeout
|
//tune timeout
|
||||||
if(CFEManager::getInstance()->getFrontendCount() <= 1) {
|
if(CFEManager::getInstance()->getFrontendCount() <= 1) {
|
||||||
CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_FE_TIMEOUT, (int *)&zapitCfg.feTimeout, true, 6, 100);
|
CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_FE_TIMEOUT, (int *)&zapitCfg.feTimeout, true, 6, 100);
|
||||||
@@ -681,31 +686,34 @@ int CScanSetup::showScanMenu()
|
|||||||
char autoscan[64];
|
char autoscan[64];
|
||||||
std::string s_capt_part = g_Locale->getText(LOCALE_CABLESETUP_PROVIDER);
|
std::string s_capt_part = g_Locale->getText(LOCALE_CABLESETUP_PROVIDER);
|
||||||
snprintf(autoscan, 64, g_Locale->getText(LOCALE_SATSETUP_AUTO_SCAN), s_capt_part.c_str());
|
snprintf(autoscan, 64, g_Locale->getText(LOCALE_SATSETUP_AUTO_SCAN), s_capt_part.c_str());
|
||||||
bool have_sat = CFEManager::getInstance()->haveSat();
|
bool have_other = !CFEManager::getInstance()->cableOnly();
|
||||||
|
|
||||||
CMenuWidget * autoScan = new CMenuWidget(LOCALE_SERVICEMENU_SCANTS, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN);
|
CMenuWidget * autoScan = new CMenuWidget(LOCALE_SERVICEMENU_SCANTS, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN);
|
||||||
addScanMenuAutoScan(autoScan);
|
addScanMenuAutoScan(autoScan);
|
||||||
mf = new CMenuDForwarder(autoscan, true, NULL, autoScan, "", have_sat ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_red);
|
mf = new CMenuDForwarder(autoscan, true, NULL, autoScan, "", have_other ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_red);
|
||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTO);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTO);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
|
|
||||||
//manual scan
|
//manual scan
|
||||||
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
||||||
addScanMenuManualScan(manualScan);
|
addScanMenuManualScan(manualScan);
|
||||||
mf = new CMenuDForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", have_sat ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_yellow);
|
mf = new CMenuDForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", have_other ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_yellow);
|
||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
//simple cable scan
|
//simple cable scan
|
||||||
CMenuWidget * cableScan = new CMenuWidget(LOCALE_SATSETUP_CABLE, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_CABLE_SCAN);
|
CMenuWidget * cableScan = new CMenuWidget(LOCALE_SATSETUP_CABLE, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_CABLE_SCAN);
|
||||||
addScanMenuCable(cableScan);
|
addScanMenuCable(cableScan);
|
||||||
CMenuForwarder * fcableScan = new CMenuDForwarder(LOCALE_SATSETUP_CABLE, true, NULL, cableScan, "", have_sat ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_blue);
|
CMenuForwarder * fcableScan = new CMenuDForwarder(LOCALE_SATSETUP_CABLE, true, NULL, cableScan, "", have_other ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_blue);
|
||||||
fcableScan->setHint("", LOCALE_MENU_HINT_SCAN_CABLE_SIMPLE);
|
fcableScan->setHint("", LOCALE_MENU_HINT_SCAN_CABLE_SIMPLE);
|
||||||
settings->addItem(fcableScan);
|
settings->addItem(fcableScan);
|
||||||
settings->addItem(GenericMenuSeparatorLine);
|
//settings->addItem(GenericMenuSeparatorLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CFEManager::getInstance()->haveTerr()) {
|
if (CFEManager::getInstance()->haveTerr()) {
|
||||||
r_system = ALL_TERR;
|
r_system = ALL_TERR;
|
||||||
|
|
||||||
|
settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_TUNERSETUP_TERR ));
|
||||||
|
|
||||||
// tune timeout, "Setup tuner" is not shown for only one non-sat tuner
|
// tune timeout, "Setup tuner" is not shown for only one non-sat tuner
|
||||||
if (CFEManager::getInstance()->getFrontendCount() <= 1) {
|
if (CFEManager::getInstance()->getFrontendCount() <= 1) {
|
||||||
CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_FE_TIMEOUT, (int *)&zapitCfg.feTimeout, true, 6, 100);
|
CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_FE_TIMEOUT, (int *)&zapitCfg.feTimeout, true, 6, 100);
|
||||||
@@ -717,7 +725,7 @@ int CScanSetup::showScanMenu()
|
|||||||
char autoscan[64];
|
char autoscan[64];
|
||||||
std::string s_capt_part = g_Locale->getText(LOCALE_TERRESTRIALSETUP_PROVIDER);
|
std::string s_capt_part = g_Locale->getText(LOCALE_TERRESTRIALSETUP_PROVIDER);
|
||||||
snprintf(autoscan, 64, g_Locale->getText(LOCALE_SATSETUP_AUTO_SCAN), s_capt_part.c_str());
|
snprintf(autoscan, 64, g_Locale->getText(LOCALE_SATSETUP_AUTO_SCAN), s_capt_part.c_str());
|
||||||
bool have_other = ! CFEManager::getInstance()->terrOnly();
|
bool have_other = !CFEManager::getInstance()->terrOnly();
|
||||||
|
|
||||||
/* FIXME leak, satSelect added to both auto and manual scan, so one of them cannot be deleted */
|
/* FIXME leak, satSelect added to both auto and manual scan, so one of them cannot be deleted */
|
||||||
CMenuWidget * autoScan = new CMenuWidget(LOCALE_SERVICEMENU_SCANTS, NEUTRINO_ICON_SETTINGS, w, MN_WIDGET_ID_SCAN_AUTO_SCAN);
|
CMenuWidget * autoScan = new CMenuWidget(LOCALE_SERVICEMENU_SCANTS, NEUTRINO_ICON_SETTINGS, w, MN_WIDGET_ID_SCAN_AUTO_SCAN);
|
||||||
@@ -732,8 +740,11 @@ int CScanSetup::showScanMenu()
|
|||||||
mf = new CMenuForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", have_other ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_yellow);
|
mf = new CMenuForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", have_other ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_yellow);
|
||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
settings->addItem(GenericMenuSeparatorLine);
|
//settings->addItem(GenericMenuSeparatorLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SCANTS_PREVERENCES_RECEIVING_SYSTEM ));
|
||||||
|
|
||||||
//service select mode
|
//service select mode
|
||||||
mc = new CMenuOptionChooser(LOCALE_ZAPIT_SCANTYPE, (int *)&scansettings.scanType, SCANTS_ZAPIT_SCANTYPE, SCANTS_ZAPIT_SCANTYPE_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true);
|
mc = new CMenuOptionChooser(LOCALE_ZAPIT_SCANTYPE, (int *)&scansettings.scanType, SCANTS_ZAPIT_SCANTYPE, SCANTS_ZAPIT_SCANTYPE_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true);
|
||||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_SCANTYPE);
|
mc->setHint("", LOCALE_MENU_HINT_SCAN_SCANTYPE);
|
||||||
@@ -812,6 +823,7 @@ int CScanSetup::showScanMenuFrontendSetup()
|
|||||||
fe->isHybrid() ? g_Locale->getText(LOCALE_SCANTS_ACTHYBRID)
|
fe->isHybrid() ? g_Locale->getText(LOCALE_SCANTS_ACTHYBRID)
|
||||||
: fe->hasSat() ? g_Locale->getText(LOCALE_SCANTS_ACTSATELLITE)
|
: fe->hasSat() ? g_Locale->getText(LOCALE_SCANTS_ACTSATELLITE)
|
||||||
: fe->hasTerr() ? g_Locale->getText(LOCALE_SCANTS_ACTTERRESTRIAL)
|
: fe->hasTerr() ? g_Locale->getText(LOCALE_SCANTS_ACTTERRESTRIAL)
|
||||||
|
: fe->hasCable() ? g_Locale->getText(LOCALE_SCANTS_ACTCABLE)
|
||||||
: g_Locale->getText(LOCALE_SCANTS_ACTCABLE),
|
: g_Locale->getText(LOCALE_SCANTS_ACTCABLE),
|
||||||
fe->getName());
|
fe->getName());
|
||||||
|
|
||||||
@@ -1007,14 +1019,20 @@ int CScanSetup::showFrontendSetup(int number)
|
|||||||
|
|
||||||
msettings.Clear();
|
msettings.Clear();
|
||||||
|
|
||||||
if (fe->hasCable() && fe->hasTerr()) {
|
if (fe->isHybrid()) {
|
||||||
mc = new CMenuOptionChooser(LOCALE_TUNERSETUP_MODE, (int *)&fe_config.force_mode, FRONTEND_FORCE_MODE, FRONTEND_FORCE_MODE_COUNT, true, this);
|
int fm_count = 2;
|
||||||
|
if (fe->hasTerr())
|
||||||
|
fm_count = 3;
|
||||||
|
if (fe->hasSat())
|
||||||
|
fm_count = FRONTEND_FORCE_MODE_COUNT;
|
||||||
|
mc = new CMenuOptionChooser(LOCALE_TUNERSETUP_MODE, (int *)&fe_config.force_mode, FRONTEND_FORCE_MODE, fm_count, true, this);
|
||||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_FEMODE);
|
mc->setHint("", LOCALE_MENU_HINT_SCAN_FEMODE);
|
||||||
setupMenu->addItem(mc);
|
setupMenu->addItem(mc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fe->hasTerr()) {
|
if (fe->hasTerr()) {
|
||||||
tsp = new CMenuOptionChooser(LOCALE_TUNERSETUP_POWER, (int *)&fe_config.powered, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, fe_config.force_mode != 1, this);
|
bool tact = (fe_config.force_mode == CFEManager::FE_FMODE_TERR) || (fe_config.force_mode == CFEManager::FE_FMODE_HYBRID);
|
||||||
|
tsp = new CMenuOptionChooser(LOCALE_TUNERSETUP_POWER, (int *)&fe_config.powered, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, tact, this);
|
||||||
tsp->setHint("", LOCALE_MENU_HINT_SCAN_FEMODE);
|
tsp->setHint("", LOCALE_MENU_HINT_SCAN_FEMODE);
|
||||||
setupMenu->addItem(tsp);
|
setupMenu->addItem(tsp);
|
||||||
}
|
}
|
||||||
@@ -1995,12 +2013,13 @@ printf("[neutrino] CScanSetup::%s: logical numbers %d\n", __FUNCTION__, scansett
|
|||||||
else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_TUNERSETUP_MODE)) {
|
else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_TUNERSETUP_MODE)) {
|
||||||
CFrontend * fe = CFEManager::getInstance()->getFE(fenumber);
|
CFrontend * fe = CFEManager::getInstance()->getFE(fenumber);
|
||||||
frontend_config_t & fe_config = fe->getConfig();
|
frontend_config_t & fe_config = fe->getConfig();
|
||||||
if (fe->hasCable() && fe->hasTerr())
|
if (fe->isHybrid())
|
||||||
fe->forceDelSys(fe_config.force_mode);
|
fe->forceDelSys(fe_config.force_mode);
|
||||||
if (fe_config.force_mode == 1)
|
if (fe_config.force_mode == CFEManager::FE_FMODE_CABLE)
|
||||||
fe_config.powered = 0;
|
fe_config.powered = 0;
|
||||||
if (tsp)
|
if (tsp)
|
||||||
tsp->setActive(fe_config.force_mode != 1);
|
tsp->setActive(fe_config.force_mode != CFEManager::FE_FMODE_CABLE || fe_config.force_mode != CFEManager::FE_FMODE_SAT);
|
||||||
|
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
@@ -2807,6 +2807,7 @@ typedef enum
|
|||||||
LOCALE_TUNERSETUP_HYBRID,
|
LOCALE_TUNERSETUP_HYBRID,
|
||||||
LOCALE_TUNERSETUP_MODE,
|
LOCALE_TUNERSETUP_MODE,
|
||||||
LOCALE_TUNERSETUP_POWER,
|
LOCALE_TUNERSETUP_POWER,
|
||||||
|
LOCALE_TUNERSETUP_SAT,
|
||||||
LOCALE_TUNERSETUP_TERR,
|
LOCALE_TUNERSETUP_TERR,
|
||||||
LOCALE_UNICABLE_LNB,
|
LOCALE_UNICABLE_LNB,
|
||||||
LOCALE_UNICABLE_PIN,
|
LOCALE_UNICABLE_PIN,
|
||||||
|
@@ -2807,6 +2807,7 @@ const char * locale_real_names[] =
|
|||||||
"tunersetup.hybrid",
|
"tunersetup.hybrid",
|
||||||
"tunersetup.mode",
|
"tunersetup.mode",
|
||||||
"tunersetup.power",
|
"tunersetup.power",
|
||||||
|
"tunersetup.sat",
|
||||||
"tunersetup.terr",
|
"tunersetup.terr",
|
||||||
"unicable.lnb",
|
"unicable.lnb",
|
||||||
"unicable.pin",
|
"unicable.pin",
|
||||||
|
@@ -86,6 +86,12 @@ class CFEManager
|
|||||||
FE_MODE_TWIN,
|
FE_MODE_TWIN,
|
||||||
FE_MODE_ALONE
|
FE_MODE_ALONE
|
||||||
} fe_mode_t;
|
} fe_mode_t;
|
||||||
|
typedef enum {
|
||||||
|
FE_FMODE_HYBRID,
|
||||||
|
FE_FMODE_CABLE,
|
||||||
|
FE_FMODE_TERR,
|
||||||
|
FE_FMODE_SAT
|
||||||
|
} fe_fmode_t;
|
||||||
private:
|
private:
|
||||||
fe_map_t femap;
|
fe_map_t femap;
|
||||||
fe_mode_t mode;
|
fe_mode_t mode;
|
||||||
|
@@ -41,7 +41,7 @@
|
|||||||
#include <hardware/dmx.h>
|
#include <hardware/dmx.h>
|
||||||
#include <OpenThreads/ScopedLock>
|
#include <OpenThreads/ScopedLock>
|
||||||
|
|
||||||
static int fedebug = 0;
|
static int fedebug = 1;
|
||||||
static int unused_demux;
|
static int unused_demux;
|
||||||
static int noSameFE = 0;
|
static int noSameFE = 0;
|
||||||
extern Zapit_config zapitCfg;
|
extern Zapit_config zapitCfg;
|
||||||
@@ -218,28 +218,6 @@ bool CFEManager::loadSettings()
|
|||||||
config_exist = false;
|
config_exist = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int def_mode0 = CFrontend::FE_MODE_INDEPENDENT;
|
|
||||||
int def_modeX = CFrontend::FE_MODE_UNUSED;
|
|
||||||
if (cableOnly())
|
|
||||||
def_modeX = CFrontend::FE_MODE_INDEPENDENT;
|
|
||||||
|
|
||||||
int newmode = (fe_mode_t) configfile.getInt32("mode", -1);
|
|
||||||
if (newmode >= 0) {
|
|
||||||
INFO("old mode param: %d\n", newmode);
|
|
||||||
if (newmode == FE_MODE_LOOP) {
|
|
||||||
def_mode0 = CFrontend::FE_MODE_MASTER;
|
|
||||||
def_modeX = CFrontend::FE_MODE_LINK_LOOP;
|
|
||||||
} else if (newmode == FE_MODE_TWIN) {
|
|
||||||
def_mode0 = CFrontend::FE_MODE_MASTER;
|
|
||||||
def_modeX = CFrontend::FE_MODE_LINK_TWIN;
|
|
||||||
} else if (newmode == FE_MODE_ALONE) {
|
|
||||||
def_mode0 = CFrontend::FE_MODE_INDEPENDENT;
|
|
||||||
def_modeX = CFrontend::FE_MODE_INDEPENDENT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool fsat = true;
|
|
||||||
//bool fcable = true;
|
|
||||||
bool fterr = true;
|
|
||||||
for(fe_map_iterator_t it = femap.begin(); it != femap.end(); it++) {
|
for(fe_map_iterator_t it = femap.begin(); it != femap.end(); it++) {
|
||||||
CFrontend * fe = it->second;
|
CFrontend * fe = it->second;
|
||||||
frontend_config_t & fe_config = fe->getConfig();
|
frontend_config_t & fe_config = fe->getConfig();
|
||||||
@@ -263,41 +241,10 @@ bool CFEManager::loadSettings()
|
|||||||
|
|
||||||
fe->setRotorSatellitePosition(getConfigValue(fe, "lastSatellitePosition", 0));
|
fe->setRotorSatellitePosition(getConfigValue(fe, "lastSatellitePosition", 0));
|
||||||
|
|
||||||
/* default mode for first / next frontends */
|
if (fe->isHybrid())
|
||||||
int def_mode = def_modeX;
|
|
||||||
|
|
||||||
if (fe->hasCable() && fe->hasTerr())
|
|
||||||
fe->forceDelSys(fe_config.force_mode);
|
fe->forceDelSys(fe_config.force_mode);
|
||||||
|
|
||||||
if (fe->hasSat() && fsat) {
|
fe->setMode(getConfigValue(fe, "mode", CFrontend::FE_MODE_INDEPENDENT));
|
||||||
fsat = false;
|
|
||||||
def_mode = def_mode0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fe->hasCable()) {
|
|
||||||
#if 0
|
|
||||||
if (fcable) {
|
|
||||||
fcable = false;
|
|
||||||
def_mode = def_mode0;
|
|
||||||
}
|
|
||||||
if (def_mode > CFrontend::FE_MODE_INDEPENDENT)
|
|
||||||
def_mode = CFrontend::FE_MODE_INDEPENDENT;
|
|
||||||
#endif
|
|
||||||
def_mode = CFrontend::FE_MODE_INDEPENDENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fe->hasTerr()) {
|
|
||||||
if (fterr) {
|
|
||||||
fterr = false;
|
|
||||||
def_mode = def_mode0;
|
|
||||||
}
|
|
||||||
if (def_mode > CFrontend::FE_MODE_INDEPENDENT)
|
|
||||||
def_mode = CFrontend::FE_MODE_INDEPENDENT;
|
|
||||||
}
|
|
||||||
if (femap.size() == 1)
|
|
||||||
def_mode = CFrontend::FE_MODE_INDEPENDENT;
|
|
||||||
|
|
||||||
fe->setMode(getConfigValue(fe, "mode", def_mode));
|
|
||||||
fe->setMaster(getConfigValue(fe, "master", 0));
|
fe->setMaster(getConfigValue(fe, "master", 0));
|
||||||
|
|
||||||
char cfg_key[81];
|
char cfg_key[81];
|
||||||
@@ -590,25 +537,36 @@ CFrontend * CFEManager::getFrontend(CZapitChannel * channel)
|
|||||||
for(fe_map_iterator_t it = femap.begin(); it != femap.end(); it++) {
|
for(fe_map_iterator_t it = femap.begin(); it != femap.end(); it++) {
|
||||||
CFrontend * mfe = it->second;
|
CFrontend * mfe = it->second;
|
||||||
|
|
||||||
if (!mfe->supportsDelivery(channel->delsys))
|
// frontend activ
|
||||||
continue;
|
|
||||||
if (mfe->forcedDelivery(channel->delsys))
|
|
||||||
continue;
|
|
||||||
if (mfe->getMode() == CFrontend::FE_MODE_UNUSED || CFrontend::linked(mfe->getMode()))
|
if (mfe->getMode() == CFrontend::FE_MODE_UNUSED || CFrontend::linked(mfe->getMode()))
|
||||||
continue;
|
|
||||||
|
|
||||||
#if BOXMODEL_MULTIBOXSE
|
|
||||||
if ((mfe->hasCable() && SAT_POSITION_CABLE(satellitePosition)) || (mfe->hasTerr() && SAT_POSITION_TERR(satellitePosition)))
|
|
||||||
{
|
{
|
||||||
retfe = mfe;
|
FEDEBUG("frontend %d not activ, skipping...", mfe->fenumber);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
#endif
|
// frontend can requested delivery system
|
||||||
if (mfe->hasSat()) {
|
if (!mfe->supportsDelivery(channel->delsys))
|
||||||
|
{
|
||||||
|
FEDEBUG("frontend %d not support delsys, skipping...", mfe->fenumber);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// frontend is hybrid, check if delivery system is forced by user
|
||||||
|
if (mfe->isHybrid() && mfe->forcedDelivery(channel->delsys))
|
||||||
|
{
|
||||||
|
FEDEBUG("frontend %d not support delsys by user, skipping...", mfe->fenumber);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// frontend is sat, and requested position can be serviced
|
||||||
|
if (mfe->hasSat() && !SAT_POSITION_CABLE(satellitePosition) && !SAT_POSITION_TERR(satellitePosition)) {
|
||||||
satellite_map_t & satmap = mfe->getSatellites();
|
satellite_map_t & satmap = mfe->getSatellites();
|
||||||
sat_iterator_t sit = satmap.find(satellitePosition);
|
sat_iterator_t sit = satmap.find(satellitePosition);
|
||||||
if ((sit == satmap.end()) || !sit->second.configured)
|
if ((sit == satmap.end()) || !sit->second.configured)
|
||||||
|
{
|
||||||
|
FEDEBUG("frontend %d not support requested satpos, skipping...", mfe->fenumber);
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mfe->getMode() == CFrontend::FE_MODE_MASTER) {
|
if (mfe->getMode() == CFrontend::FE_MODE_MASTER) {
|
||||||
|
@@ -222,6 +222,9 @@ void CFrontend::getFEInfo(void)
|
|||||||
printf("[fe%d/%d] frontend fd %d type %d\n", adapter, fenumber, fd, info.type);
|
printf("[fe%d/%d] frontend fd %d type %d\n", adapter, fenumber, fd, info.type);
|
||||||
bool legacy = true;
|
bool legacy = true;
|
||||||
|
|
||||||
|
deliverySystemMask = UNKNOWN_DS;
|
||||||
|
forcedSystemMask = ALL_CABLE|ALL_TERR|ALL_SAT;
|
||||||
|
|
||||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||||
std::ifstream in;
|
std::ifstream in;
|
||||||
if (adapter == 0)
|
if (adapter == 0)
|
||||||
@@ -251,9 +254,6 @@ void CFrontend::getFEInfo(void)
|
|||||||
}
|
}
|
||||||
#endif // HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
#endif // HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||||
|
|
||||||
deliverySystemMask = UNKNOWN_DS;
|
|
||||||
forcedSystemMask = UNKNOWN_DS;
|
|
||||||
|
|
||||||
#if (DVB_API_VERSION >= 5) && (DVB_API_VERSION_MINOR >= 5)
|
#if (DVB_API_VERSION >= 5) && (DVB_API_VERSION_MINOR >= 5)
|
||||||
dtv_property prop[1];
|
dtv_property prop[1];
|
||||||
dtv_properties cmdseq;
|
dtv_properties cmdseq;
|
||||||
@@ -840,13 +840,16 @@ void CFrontend::forceDelSys(int i)
|
|||||||
{
|
{
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 1:
|
case 1:
|
||||||
forcedSystemMask = ALL_TERR;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
forcedSystemMask = ALL_CABLE;
|
forcedSystemMask = ALL_CABLE;
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
forcedSystemMask = ALL_TERR;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
forcedSystemMask = ALL_SAT;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
forcedSystemMask = UNKNOWN_DS;
|
forcedSystemMask = ALL_CABLE|ALL_TERR|ALL_SAT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2597,6 +2600,8 @@ bool CFrontend::hasTerr(void)
|
|||||||
|
|
||||||
bool CFrontend::isHybrid(void)
|
bool CFrontend::isHybrid(void)
|
||||||
{
|
{
|
||||||
|
if (hasSat() && hasCable() && hasTerr())
|
||||||
|
return true;
|
||||||
if (hasSat() && hasCable())
|
if (hasSat() && hasCable())
|
||||||
return true;
|
return true;
|
||||||
if (hasSat() && hasTerr())
|
if (hasSat() && hasTerr())
|
||||||
@@ -2620,7 +2625,8 @@ bool CFrontend::supportsDelivery(delivery_system_t delsys)
|
|||||||
|
|
||||||
bool CFrontend::forcedDelivery(delivery_system_t delsys)
|
bool CFrontend::forcedDelivery(delivery_system_t delsys)
|
||||||
{
|
{
|
||||||
return (forcedSystemMask & delsys) != 0;
|
printf("forcedDelivery: 0x%04x & 0x%04x = 0x%04x\n", forcedSystemMask, delsys, forcedSystemMask & delsys);
|
||||||
|
return (forcedSystemMask & delsys) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
delivery_system_t CFrontend::getCurrentDeliverySystem(void)
|
delivery_system_t CFrontend::getCurrentDeliverySystem(void)
|
||||||
|
Reference in New Issue
Block a user