mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-29 00:11:08 +02:00
neutrino: -add unicabel menu option
Origin commit data
------------------
Branch: ni/coolstream
Commit: 7d550ed88e
Author: Jacek Jendrzej <overx300@gmail.com>
Date: 2013-01-08 (Tue, 08 Jan 2013)
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -1568,6 +1568,8 @@ satsetup.satellite Satellit
|
|||||||
satsetup.select_sat Auswahl Satellit
|
satsetup.select_sat Auswahl Satellit
|
||||||
satsetup.smatvremote SMATV Remote Tuning
|
satsetup.smatvremote SMATV Remote Tuning
|
||||||
satsetup.uncomm_input Uncommitted
|
satsetup.uncomm_input Uncommitted
|
||||||
|
satsetup.uni_settings Unicable Einstellungen
|
||||||
|
satsetup.unicable Unicable
|
||||||
satsetup.usals_repeat USALS wiederholen
|
satsetup.usals_repeat USALS wiederholen
|
||||||
satsetup.use_bat Benutze BAT
|
satsetup.use_bat Benutze BAT
|
||||||
satsetup.use_fta_flag nur FTA Kanäle
|
satsetup.use_fta_flag nur FTA Kanäle
|
||||||
@@ -1758,6 +1760,9 @@ timing.infobar_movieplayer Infobar (Filmwiedergabe)
|
|||||||
timing.infobar_radio Infobar (Radiobetrieb)
|
timing.infobar_radio Infobar (Radiobetrieb)
|
||||||
timing.menu Menü
|
timing.menu Menü
|
||||||
timing.numericzap Umschalten mit Zifferntasten
|
timing.numericzap Umschalten mit Zifferntasten
|
||||||
|
unicable.lnb Unicable Eingang
|
||||||
|
unicable.qrg Unicable Frequenz
|
||||||
|
unicable.scr Unicable SCR
|
||||||
upnpbrowser.head UPnP Browser
|
upnpbrowser.head UPnP Browser
|
||||||
upnpbrowser.noservers Kein UPnP-Server gefunden
|
upnpbrowser.noservers Kein UPnP-Server gefunden
|
||||||
upnpbrowser.rescan Neue Suche
|
upnpbrowser.rescan Neue Suche
|
||||||
|
@@ -1568,6 +1568,8 @@ satsetup.satellite Satellite
|
|||||||
satsetup.select_sat Select satellites
|
satsetup.select_sat Select satellites
|
||||||
satsetup.smatvremote SMATV Remote Tuning
|
satsetup.smatvremote SMATV Remote Tuning
|
||||||
satsetup.uncomm_input Uncommited input
|
satsetup.uncomm_input Uncommited input
|
||||||
|
satsetup.uni_settings Unicable Settings
|
||||||
|
satsetup.unicable Unicable
|
||||||
satsetup.usals_repeat USALS command repeat
|
satsetup.usals_repeat USALS command repeat
|
||||||
satsetup.use_bat Use BAT
|
satsetup.use_bat Use BAT
|
||||||
satsetup.use_fta_flag just free Channels
|
satsetup.use_fta_flag just free Channels
|
||||||
@@ -1758,6 +1760,9 @@ timing.infobar_movieplayer Infobar (movie mode)
|
|||||||
timing.infobar_radio Infobar (radio mode)
|
timing.infobar_radio Infobar (radio mode)
|
||||||
timing.menu Menu
|
timing.menu Menu
|
||||||
timing.numericzap Numeric Zap
|
timing.numericzap Numeric Zap
|
||||||
|
unicable.lnb Unicable Input
|
||||||
|
unicable.qrg Unicable Frequency
|
||||||
|
unicable.scr Unicable SCR
|
||||||
upnpbrowser.head UPnP Browser
|
upnpbrowser.head UPnP Browser
|
||||||
upnpbrowser.noservers No UPnP servers found
|
upnpbrowser.noservers No UPnP servers found
|
||||||
upnpbrowser.rescan Scan again
|
upnpbrowser.rescan Scan again
|
||||||
|
@@ -96,7 +96,8 @@ const CMenuOptionChooser::keyval SATSETUP_DISEQC_OPTIONS[SATSETUP_DISEQC_OPTION_
|
|||||||
{ DISEQC_1_1, LOCALE_SATSETUP_DISEQC11 },
|
{ DISEQC_1_1, LOCALE_SATSETUP_DISEQC11 },
|
||||||
/*{ DISEQC_1_2, LOCALE_SATSETUP_DISEQC12 },*/
|
/*{ DISEQC_1_2, LOCALE_SATSETUP_DISEQC12 },*/
|
||||||
{ DISEQC_ADVANCED, LOCALE_SATSETUP_DISEQC_ADVANCED },
|
{ DISEQC_ADVANCED, LOCALE_SATSETUP_DISEQC_ADVANCED },
|
||||||
{ SMATV_REMOTE_TUNING, LOCALE_SATSETUP_SMATVREMOTE }
|
{ DISEQC_UNICABLE, LOCALE_SATSETUP_UNICABLE }
|
||||||
|
// { SMATV_REMOTE_TUNING, LOCALE_SATSETUP_SMATVREMOTE }
|
||||||
};
|
};
|
||||||
|
|
||||||
#define SATSETUP_SCANTP_FEC_COUNT 21
|
#define SATSETUP_SCANTP_FEC_COUNT 21
|
||||||
@@ -268,6 +269,10 @@ int CScanSetup::exec(CMenuTarget* parent, const std::string &actionKey)
|
|||||||
{
|
{
|
||||||
return showScanMenuLnbSetup();
|
return showScanMenuLnbSetup();
|
||||||
}
|
}
|
||||||
|
else if(actionKey=="unisetup")
|
||||||
|
{
|
||||||
|
return showUnicableSetup();
|
||||||
|
}
|
||||||
else if(actionKey=="satfind")
|
else if(actionKey=="satfind")
|
||||||
{
|
{
|
||||||
return showScanMenuSatFind();
|
return showScanMenuSatFind();
|
||||||
@@ -481,7 +486,6 @@ void CScanSetup::addScanMenuFrontendSetup(CMenuWidget * setupMenu)
|
|||||||
setupMenu->addIntroItems();
|
setupMenu->addIntroItems();
|
||||||
|
|
||||||
int count = CFEManager::getInstance()->getFrontendCount();
|
int count = CFEManager::getInstance()->getFrontendCount();
|
||||||
|
|
||||||
CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_SATSETUP_FE_MODE, (int *)&femode, SATSETUP_FRONTEND_MODE, SATSETUP_FRONTEND_MODE_COUNT, allow_start && (count > 1), this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true);
|
CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_SATSETUP_FE_MODE, (int *)&femode, SATSETUP_FRONTEND_MODE, SATSETUP_FRONTEND_MODE_COUNT, allow_start && (count > 1), this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true);
|
||||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_FEMODE);
|
mc->setHint("", LOCALE_MENU_HINT_SCAN_FEMODE);
|
||||||
setupMenu->addItem(mc);
|
setupMenu->addItem(mc);
|
||||||
@@ -491,13 +495,14 @@ void CScanSetup::addScanMenuFrontendSetup(CMenuWidget * setupMenu)
|
|||||||
|
|
||||||
for(int i = 0; i < count; i++) {
|
for(int i = 0; i < count; i++) {
|
||||||
CFrontend * fe = CFEManager::getInstance()->getFE(i);
|
CFrontend * fe = CFEManager::getInstance()->getFE(i);
|
||||||
|
frontend_config_t & fe_config = fe->getConfig();
|
||||||
|
|
||||||
char tmp[32];
|
char tmp[32];
|
||||||
snprintf(tmp, sizeof(tmp), "config_frontend%d", i);
|
snprintf(tmp, sizeof(tmp), "config_frontend%d", i);
|
||||||
char name[255];
|
char name[255];
|
||||||
snprintf(name, sizeof(name), "%s %d: %s", g_Locale->getText(LOCALE_SATSETUP_FE_SETUP), i+1, fe->getInfo()->name);
|
snprintf(name, sizeof(name), "%s %d: %s", g_Locale->getText(LOCALE_SATSETUP_FE_SETUP), i+1, fe->getInfo()->name);
|
||||||
|
|
||||||
mf = new CMenuForwarderNonLocalized(name, ((i == 0) || (femode == CFEManager::FE_MODE_ALONE)), NULL, this, tmp,
|
mf = new CMenuForwarderNonLocalized(name, ((i == 0) || (femode == CFEManager::FE_MODE_ALONE) || (fe_config.diseqcType == DISEQC_UNICABLE && femode == CFEManager::FE_MODE_TWIN)), NULL, this, tmp,
|
||||||
(i == 0) ? CRCInput::RC_green : CRCInput::RC_yellow, (i == 0) ? NEUTRINO_ICON_BUTTON_GREEN : NEUTRINO_ICON_BUTTON_YELLOW);
|
(i == 0) ? CRCInput::RC_green : CRCInput::RC_yellow, (i == 0) ? NEUTRINO_ICON_BUTTON_GREEN : NEUTRINO_ICON_BUTTON_YELLOW);
|
||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_SETUP_FE);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_SETUP_FE);
|
||||||
setupMenu->addItem(mf);
|
setupMenu->addItem(mf);
|
||||||
@@ -551,11 +556,13 @@ int CScanSetup::showFrontendSetup(int number)
|
|||||||
setupMenu->setSelected(feselected);
|
setupMenu->setSelected(feselected);
|
||||||
setupMenu->addIntroItems();
|
setupMenu->addIntroItems();
|
||||||
|
|
||||||
CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_SATSETUP_DISEQC, (int *)&dmode, SATSETUP_DISEQC_OPTIONS, SATSETUP_DISEQC_OPTION_COUNT, allow_start, this, CRCInput::convertDigitToKey(shortcut++), "", true);
|
bool option_onoff = (number > 0 && fe_config.diseqcType == DISEQC_UNICABLE && femode == CFEManager::FE_MODE_TWIN) ? false : true;
|
||||||
|
|
||||||
|
CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_SATSETUP_DISEQC, (int *)&dmode, SATSETUP_DISEQC_OPTIONS, SATSETUP_DISEQC_OPTION_COUNT, allow_start && option_onoff, this, CRCInput::convertDigitToKey(shortcut++), "", true);
|
||||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCTYPE);
|
mc->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCTYPE);
|
||||||
setupMenu->addItem(mc);
|
setupMenu->addItem(mc);
|
||||||
|
|
||||||
ojDiseqcRepeats = new CMenuOptionNumberChooser(LOCALE_SATSETUP_DISEQCREPEAT, (int *)&fe_config.diseqcRepeats, (dmode != NO_DISEQC) && (dmode != DISEQC_ADVANCED), 0, 2, NULL);
|
ojDiseqcRepeats = new CMenuOptionNumberChooser(LOCALE_SATSETUP_DISEQCREPEAT, (int *)&fe_config.diseqcRepeats, (dmode != NO_DISEQC) && (dmode != DISEQC_ADVANCED) && (dmode != DISEQC_UNICABLE), 0, 2, NULL);
|
||||||
ojDiseqcRepeats->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCREPEAT);
|
ojDiseqcRepeats->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCREPEAT);
|
||||||
setupMenu->addItem(ojDiseqcRepeats);
|
setupMenu->addItem(ojDiseqcRepeats);
|
||||||
|
|
||||||
@@ -570,29 +577,32 @@ int CScanSetup::showFrontendSetup(int number)
|
|||||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_SATENABLE);
|
mc->setHint("", LOCALE_MENU_HINT_SCAN_SATENABLE);
|
||||||
satToSelect.addItem(mc);
|
satToSelect.addItem(mc);
|
||||||
}
|
}
|
||||||
CMenuForwarder * mf = new CMenuForwarder(LOCALE_SATSETUP_SELECT_SAT, true, NULL, &satToSelect, "", CRCInput::convertDigitToKey(shortcut++));
|
CMenuForwarder * mf = new CMenuForwarder(LOCALE_SATSETUP_SELECT_SAT, option_onoff, NULL, &satToSelect, "", CRCInput::convertDigitToKey(shortcut++));
|
||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_SATADD);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_SATADD);
|
||||||
setupMenu->addItem(mf);
|
setupMenu->addItem(mf);
|
||||||
|
|
||||||
//FIXME why fsatSetup not local variable ?
|
//FIXME why fsatSetup not local variable ?
|
||||||
fsatSetup = new CMenuForwarder(LOCALE_SATSETUP_SAT_SETUP, true, NULL, this, "satsetup", CRCInput::convertDigitToKey(shortcut++));
|
fsatSetup = new CMenuForwarder(LOCALE_SATSETUP_SAT_SETUP, option_onoff, NULL, this, "satsetup", CRCInput::convertDigitToKey(shortcut++));
|
||||||
fsatSetup->setHint("", LOCALE_MENU_HINT_SCAN_SATSETUP);
|
fsatSetup->setHint("", LOCALE_MENU_HINT_SCAN_SATSETUP);
|
||||||
setupMenu->addItem(fsatSetup);
|
setupMenu->addItem(fsatSetup);
|
||||||
|
|
||||||
|
uniSetup = new CMenuForwarder(LOCALE_SATSETUP_UNI_SETTINGS, (dmode == DISEQC_UNICABLE), NULL, this, "unisetup", CRCInput::convertDigitToKey(shortcut++));
|
||||||
|
setupMenu->addItem(uniSetup);
|
||||||
|
|
||||||
setupMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SATSETUP_EXTENDED_MOTOR));
|
setupMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SATSETUP_EXTENDED_MOTOR));
|
||||||
CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_MOTOR_SPEED, (int *)&fe_config.motorRotationSpeed, true, 0, 64, NULL);
|
CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_MOTOR_SPEED, (int *)&fe_config.motorRotationSpeed, option_onoff, 0, 64, NULL);
|
||||||
nc->setHint("", LOCALE_MENU_HINT_SCAN_MOTOR_SPEED);
|
nc->setHint("", LOCALE_MENU_HINT_SCAN_MOTOR_SPEED);
|
||||||
setupMenu->addItem(nc);
|
setupMenu->addItem(nc);
|
||||||
|
|
||||||
mc = new CMenuOptionChooser(LOCALE_EXTRA_ZAPIT_HVOLTAGE, (int *)&fe_config.highVoltage, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true);
|
mc = new CMenuOptionChooser(LOCALE_EXTRA_ZAPIT_HVOLTAGE, (int *)&fe_config.highVoltage, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, option_onoff);
|
||||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_MOTOR_18V);
|
mc->setHint("", LOCALE_MENU_HINT_SCAN_MOTOR_18V);
|
||||||
setupMenu->addItem(mc);
|
setupMenu->addItem(mc);
|
||||||
|
|
||||||
mc = new CMenuOptionChooser(LOCALE_SATSETUP_USE_USALS, &all_usals, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this);
|
mc = new CMenuOptionChooser(LOCALE_SATSETUP_USE_USALS, &all_usals, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, option_onoff, this);
|
||||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_USALSALL);
|
mc->setHint("", LOCALE_MENU_HINT_SCAN_USALSALL);
|
||||||
setupMenu->addItem(mc);
|
setupMenu->addItem(mc);
|
||||||
|
|
||||||
mf = new CMenuForwarder(LOCALE_MOTORCONTROL_HEAD, true, NULL, this, "satfind", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
|
mf = new CMenuForwarder(LOCALE_MOTORCONTROL_HEAD, option_onoff, NULL, this, "satfind", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
|
||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_SATFIND);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_SATFIND);
|
||||||
setupMenu->addItem(mf);
|
setupMenu->addItem(mf);
|
||||||
|
|
||||||
@@ -606,6 +616,35 @@ int CScanSetup::showFrontendSetup(int number)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CScanSetup::showUnicableSetup()
|
||||||
|
{
|
||||||
|
printf("[neutrino] CScanSetup call %s fe %d\n", __func__, fenumber);
|
||||||
|
|
||||||
|
int res = menu_return::RETURN_REPAINT;
|
||||||
|
CFrontend *fe = CFEManager::getInstance()->getFE(fenumber);
|
||||||
|
frontend_config_t &fe_config = fe->getConfig();
|
||||||
|
int unicable_scr = fe_config.uni_scr;
|
||||||
|
int unicable_qrg = fe_config.uni_qrg;
|
||||||
|
|
||||||
|
CMenuOptionNumberChooser *uniscr = new CMenuOptionNumberChooser(LOCALE_UNICABLE_SCR, &unicable_scr, true, 0, 7);
|
||||||
|
CIntInput *uniqrg = new CIntInput(LOCALE_UNICABLE_QRG, unicable_qrg, 4, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE);
|
||||||
|
|
||||||
|
CMenuWidget *uni_setup = new CMenuWidget(LOCALE_SATSETUP_UNI_SETTINGS, NEUTRINO_ICON_SETTINGS, width);
|
||||||
|
uni_setup->addIntroItems();
|
||||||
|
|
||||||
|
uni_setup->addItem(uniscr);
|
||||||
|
CMenuForwarder *mf = new CMenuForwarder(LOCALE_UNICABLE_QRG, true, uniqrg->getValue(), uniqrg);
|
||||||
|
uni_setup->addItem(mf);
|
||||||
|
res = uni_setup->exec(NULL, "");
|
||||||
|
delete uni_setup;
|
||||||
|
if (res) {
|
||||||
|
fe_config.uni_scr = unicable_scr;
|
||||||
|
fe_config.uni_qrg = unicable_qrg;
|
||||||
|
printf("%s: scr: %d qrg: %d\n", __func__, unicable_scr, unicable_qrg);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
int CScanSetup::showScanMenuLnbSetup()
|
int CScanSetup::showScanMenuLnbSetup()
|
||||||
{
|
{
|
||||||
printf("[neutrino] CScanSetup call %s fe %d\n", __FUNCTION__, fenumber);
|
printf("[neutrino] CScanSetup call %s fe %d\n", __FUNCTION__, fenumber);
|
||||||
@@ -783,18 +822,31 @@ int CScanSetup::showScanMenuSatFind()
|
|||||||
void CScanSetup::addScanMenuTempSat(CMenuWidget *temp_sat, sat_config_t & satconfig)
|
void CScanSetup::addScanMenuTempSat(CMenuWidget *temp_sat, sat_config_t & satconfig)
|
||||||
{
|
{
|
||||||
temp_sat->addIntroItems();
|
temp_sat->addIntroItems();
|
||||||
|
CMenuOptionNumberChooser *diseqc;
|
||||||
|
CMenuOptionNumberChooser *comm;
|
||||||
|
CMenuOptionNumberChooser *uncomm;
|
||||||
|
CMenuOptionNumberChooser *unilnb;
|
||||||
|
CMenuOptionNumberChooser *motor;
|
||||||
|
CMenuOptionChooser *usals;
|
||||||
|
CMenuForwarder *mf;
|
||||||
|
bool unicable = (dmode == DISEQC_UNICABLE);
|
||||||
|
|
||||||
CMenuOptionNumberChooser *diseqc = new CMenuOptionNumberChooser(LOCALE_SATSETUP_DISEQC_INPUT, &satconfig.diseqc, ((dmode != NO_DISEQC) && (dmode != DISEQC_ADVANCED)), -1, 15, NULL, 1, -1, LOCALE_OPTIONS_OFF);
|
if (!unicable) {
|
||||||
|
diseqc = new CMenuOptionNumberChooser(LOCALE_SATSETUP_DISEQC_INPUT, &satconfig.diseqc, ((dmode != NO_DISEQC) && (dmode != DISEQC_ADVANCED)), -1, 15, NULL, 1, -1, LOCALE_OPTIONS_OFF);
|
||||||
diseqc->setHint("", LOCALE_MENU_HINT_SCAN_DISEQC);
|
diseqc->setHint("", LOCALE_MENU_HINT_SCAN_DISEQC);
|
||||||
CMenuOptionNumberChooser *comm = new CMenuOptionNumberChooser(LOCALE_SATSETUP_COMM_INPUT, &satconfig.commited, dmode == DISEQC_ADVANCED, -1, 15, NULL, 1, -1, LOCALE_OPTIONS_OFF);
|
comm = new CMenuOptionNumberChooser(LOCALE_SATSETUP_COMM_INPUT, &satconfig.commited, dmode == DISEQC_ADVANCED, -1, 15, NULL, 1, -1, LOCALE_OPTIONS_OFF);
|
||||||
comm->setHint("", LOCALE_MENU_HINT_SCAN_COMMITED);
|
comm->setHint("", LOCALE_MENU_HINT_SCAN_COMMITED);
|
||||||
CMenuOptionNumberChooser *uncomm = new CMenuOptionNumberChooser(LOCALE_SATSETUP_UNCOMM_INPUT, &satconfig.uncommited, dmode == DISEQC_ADVANCED, -1, 15, NULL, 1, -1, LOCALE_OPTIONS_OFF);
|
uncomm = new CMenuOptionNumberChooser(LOCALE_SATSETUP_UNCOMM_INPUT, &satconfig.uncommited, dmode == DISEQC_ADVANCED, -1, 15, NULL, 1, -1, LOCALE_OPTIONS_OFF);
|
||||||
uncomm->setHint("", LOCALE_MENU_HINT_SCAN_UNCOMMITED);
|
uncomm->setHint("", LOCALE_MENU_HINT_SCAN_UNCOMMITED);
|
||||||
CMenuOptionNumberChooser *motor = new CMenuOptionNumberChooser(LOCALE_SATSETUP_MOTOR_POS, &satconfig.motor_position, true /*dmode == DISEQC_ADVANCED*/, 0, 64, NULL, 0, 0, LOCALE_OPTIONS_OFF);
|
motor = new CMenuOptionNumberChooser(LOCALE_SATSETUP_MOTOR_POS, &satconfig.motor_position, true /*dmode == DISEQC_ADVANCED*/, 0, 64, NULL, 0, 0, LOCALE_OPTIONS_OFF);
|
||||||
motor->setHint("", LOCALE_MENU_HINT_SCAN_MOTORPOS);
|
motor->setHint("", LOCALE_MENU_HINT_SCAN_MOTORPOS);
|
||||||
CMenuOptionChooser *usals = new CMenuOptionChooser(LOCALE_EXTRA_USE_GOTOXX, &satconfig.use_usals, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true /*dmode == DISEQC_ADVANCED*/);
|
usals = new CMenuOptionChooser(LOCALE_EXTRA_USE_GOTOXX, &satconfig.use_usals, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true /*dmode == DISEQC_ADVANCED*/);
|
||||||
usals->setHint("", LOCALE_MENU_HINT_SCAN_USEUSALS);
|
usals->setHint("", LOCALE_MENU_HINT_SCAN_USEUSALS);
|
||||||
|
}else{
|
||||||
|
if (satconfig.diseqc < 0)
|
||||||
|
satconfig.diseqc = 0;
|
||||||
|
unilnb = new CMenuOptionNumberChooser(LOCALE_UNICABLE_LNB, &satconfig.diseqc, true, 0, 1);
|
||||||
|
}
|
||||||
if(!satconfig.use_usals)
|
if(!satconfig.use_usals)
|
||||||
all_usals = 0;
|
all_usals = 0;
|
||||||
|
|
||||||
@@ -802,13 +854,17 @@ void CScanSetup::addScanMenuTempSat(CMenuWidget *temp_sat, sat_config_t & satcon
|
|||||||
CIntInput* lofH = new CIntInput(LOCALE_SATSETUP_LOFH, (int&) satconfig.lnbOffsetHigh, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE);
|
CIntInput* lofH = new CIntInput(LOCALE_SATSETUP_LOFH, (int&) satconfig.lnbOffsetHigh, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE);
|
||||||
CIntInput* lofS = new CIntInput(LOCALE_SATSETUP_LOFS, (int&) satconfig.lnbSwitch, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE);
|
CIntInput* lofS = new CIntInput(LOCALE_SATSETUP_LOFS, (int&) satconfig.lnbSwitch, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE);
|
||||||
|
|
||||||
|
if (!unicable) {
|
||||||
temp_sat->addItem(diseqc);
|
temp_sat->addItem(diseqc);
|
||||||
temp_sat->addItem(comm);
|
temp_sat->addItem(comm);
|
||||||
temp_sat->addItem(uncomm);
|
temp_sat->addItem(uncomm);
|
||||||
temp_sat->addItem(motor);
|
temp_sat->addItem(motor);
|
||||||
temp_sat->addItem(usals);
|
temp_sat->addItem(usals);
|
||||||
|
} else {
|
||||||
|
temp_sat->addItem(unilnb);
|
||||||
|
}
|
||||||
|
|
||||||
CMenuForwarder * mf = new CMenuDForwarder(LOCALE_SATSETUP_LOFL, true, lofL->getValue(), lofL);
|
mf = new CMenuDForwarder(LOCALE_SATSETUP_LOFL, true, lofL->getValue(), lofL);
|
||||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_LOFL);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_LOFL);
|
||||||
temp_sat->addItem(mf);
|
temp_sat->addItem(mf);
|
||||||
mf = new CMenuDForwarder(LOCALE_SATSETUP_LOFH, true, lofH->getValue(), lofH);
|
mf = new CMenuDForwarder(LOCALE_SATSETUP_LOFH, true, lofH->getValue(), lofH);
|
||||||
@@ -1110,26 +1166,50 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data*
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_SATSETUP_DISEQC)) {
|
else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_SATSETUP_DISEQC)) {
|
||||||
printf("[neutrino] CScanSetup::%s: diseqc %d \n", __FUNCTION__, dmode);
|
printf("[neutrino] CScanSetup::%s: diseqc %d fenumber %d\n", __FUNCTION__, dmode, fenumber);
|
||||||
//FIXME 2 frontends ??
|
CFrontend * fe = CFEManager::getInstance()->getFE(fenumber);
|
||||||
|
fe->setDiseqcType((diseqc_t) dmode);
|
||||||
|
|
||||||
|
if(femode != CFEManager::FE_MODE_ALONE)
|
||||||
|
CFEManager::getInstance()->saveSettings(true);
|
||||||
|
|
||||||
fautoScanAll->setActive(dmode != NO_DISEQC);
|
fautoScanAll->setActive(dmode != NO_DISEQC);
|
||||||
if(dmode == NO_DISEQC) {
|
uniSetup->setActive(dmode == DISEQC_UNICABLE);
|
||||||
|
if (dmode == NO_DISEQC || dmode == DISEQC_UNICABLE) {
|
||||||
ojDiseqcRepeats->setActive(false);
|
ojDiseqcRepeats->setActive(false);
|
||||||
|
if(frontendSetup){
|
||||||
|
if(femode == CFEManager::FE_MODE_TWIN && dmode == DISEQC_UNICABLE){
|
||||||
|
frontendSetup->setActive(true);
|
||||||
|
}
|
||||||
|
else if( femode != CFEManager::FE_MODE_ALONE){
|
||||||
|
frontendSetup->setActive(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(dmode < DISEQC_ADVANCED) {
|
else if(dmode < DISEQC_ADVANCED) {
|
||||||
ojDiseqcRepeats->setActive(true);
|
ojDiseqcRepeats->setActive(true);
|
||||||
|
if(frontendSetup && femode != CFEManager::FE_MODE_ALONE){
|
||||||
|
frontendSetup->setActive(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(dmode == DISEQC_ADVANCED) {
|
else if(dmode == DISEQC_ADVANCED) {
|
||||||
|
if(frontendSetup && femode != CFEManager::FE_MODE_ALONE){
|
||||||
|
frontendSetup->setActive(false);
|
||||||
|
}
|
||||||
ojDiseqcRepeats->setActive(true);
|
ojDiseqcRepeats->setActive(true);
|
||||||
}
|
}
|
||||||
CFrontend * fe = CFEManager::getInstance()->getFE(fenumber);
|
|
||||||
fe->setDiseqcType((diseqc_t) dmode);
|
|
||||||
}
|
}
|
||||||
else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_SATSETUP_FE_MODE)) {
|
else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_SATSETUP_FE_MODE)) {
|
||||||
printf("[neutrino] CScanSetup::%s: fe mode %d \n", __FUNCTION__, femode);
|
printf("[neutrino] CScanSetup::%s: fe mode %d \n", __FUNCTION__, femode);
|
||||||
/* cable dont have this menu */
|
/* cable dont have this menu */
|
||||||
if(frontendSetup)
|
bool twin_unicabel = false;
|
||||||
frontendSetup->setActive(femode == CFEManager::FE_MODE_ALONE);
|
if(frontendSetup){
|
||||||
|
CFrontend * fe = CFEManager::getInstance()->getLiveFE();
|
||||||
|
frontend_config_t & fe_config = fe->getConfig();
|
||||||
|
twin_unicabel = (femode == CFEManager::FE_MODE_TWIN && fe_config.diseqcType == DISEQC_UNICABLE);
|
||||||
|
frontendSetup->setActive(femode == CFEManager::FE_MODE_ALONE || twin_unicabel);
|
||||||
|
}
|
||||||
CFEManager::getInstance()->setMode((CFEManager::fe_mode_t) femode);
|
CFEManager::getInstance()->setMode((CFEManager::fe_mode_t) femode);
|
||||||
/* to copy settings from fe0 */
|
/* to copy settings from fe0 */
|
||||||
if(femode != CFEManager::FE_MODE_ALONE)
|
if(femode != CFEManager::FE_MODE_ALONE)
|
||||||
|
@@ -57,6 +57,7 @@ class CScanSetup : public CMenuTarget, public CChangeObserver
|
|||||||
CMenuForwarder *fautoScanAll;
|
CMenuForwarder *fautoScanAll;
|
||||||
CMenuForwarder *frontendSetup;
|
CMenuForwarder *frontendSetup;
|
||||||
CMenuForwarder *fsatSetup;
|
CMenuForwarder *fsatSetup;
|
||||||
|
CMenuForwarder *uniSetup;
|
||||||
CMenuOptionNumberChooser * ojDiseqcRepeats;
|
CMenuOptionNumberChooser * ojDiseqcRepeats;
|
||||||
CIntInput * nid;
|
CIntInput * nid;
|
||||||
CMenuOptionChooser * lcnhd;
|
CMenuOptionChooser * lcnhd;
|
||||||
@@ -84,6 +85,7 @@ class CScanSetup : public CMenuTarget, public CChangeObserver
|
|||||||
|
|
||||||
int showFrontendSetup(int number);
|
int showFrontendSetup(int number);
|
||||||
int showScanMenuLnbSetup();
|
int showScanMenuLnbSetup();
|
||||||
|
int showUnicableSetup();
|
||||||
int showScanMenuSatFind();
|
int showScanMenuSatFind();
|
||||||
void fillSatSelect(CMenuOptionStringChooser *select);
|
void fillSatSelect(CMenuOptionStringChooser *select);
|
||||||
void fillCableSelect(CMenuOptionStringChooser *select);
|
void fillCableSelect(CMenuOptionStringChooser *select);
|
||||||
|
@@ -1595,6 +1595,8 @@ typedef enum
|
|||||||
LOCALE_SATSETUP_SELECT_SAT,
|
LOCALE_SATSETUP_SELECT_SAT,
|
||||||
LOCALE_SATSETUP_SMATVREMOTE,
|
LOCALE_SATSETUP_SMATVREMOTE,
|
||||||
LOCALE_SATSETUP_UNCOMM_INPUT,
|
LOCALE_SATSETUP_UNCOMM_INPUT,
|
||||||
|
LOCALE_SATSETUP_UNI_SETTINGS,
|
||||||
|
LOCALE_SATSETUP_UNICABLE,
|
||||||
LOCALE_SATSETUP_USALS_REPEAT,
|
LOCALE_SATSETUP_USALS_REPEAT,
|
||||||
LOCALE_SATSETUP_USE_BAT,
|
LOCALE_SATSETUP_USE_BAT,
|
||||||
LOCALE_SATSETUP_USE_FTA_FLAG,
|
LOCALE_SATSETUP_USE_FTA_FLAG,
|
||||||
@@ -1785,6 +1787,9 @@ typedef enum
|
|||||||
LOCALE_TIMING_INFOBAR_RADIO,
|
LOCALE_TIMING_INFOBAR_RADIO,
|
||||||
LOCALE_TIMING_MENU,
|
LOCALE_TIMING_MENU,
|
||||||
LOCALE_TIMING_NUMERICZAP,
|
LOCALE_TIMING_NUMERICZAP,
|
||||||
|
LOCALE_UNICABLE_LNB,
|
||||||
|
LOCALE_UNICABLE_QRG,
|
||||||
|
LOCALE_UNICABLE_SCR,
|
||||||
LOCALE_UPNPBROWSER_HEAD,
|
LOCALE_UPNPBROWSER_HEAD,
|
||||||
LOCALE_UPNPBROWSER_NOSERVERS,
|
LOCALE_UPNPBROWSER_NOSERVERS,
|
||||||
LOCALE_UPNPBROWSER_RESCAN,
|
LOCALE_UPNPBROWSER_RESCAN,
|
||||||
|
@@ -1595,6 +1595,8 @@ const char * locale_real_names[] =
|
|||||||
"satsetup.select_sat",
|
"satsetup.select_sat",
|
||||||
"satsetup.smatvremote",
|
"satsetup.smatvremote",
|
||||||
"satsetup.uncomm_input",
|
"satsetup.uncomm_input",
|
||||||
|
"satsetup.uni_settings",
|
||||||
|
"satsetup.unicable",
|
||||||
"satsetup.usals_repeat",
|
"satsetup.usals_repeat",
|
||||||
"satsetup.use_bat",
|
"satsetup.use_bat",
|
||||||
"satsetup.use_fta_flag",
|
"satsetup.use_fta_flag",
|
||||||
@@ -1785,6 +1787,9 @@ const char * locale_real_names[] =
|
|||||||
"timing.infobar_radio",
|
"timing.infobar_radio",
|
||||||
"timing.menu",
|
"timing.menu",
|
||||||
"timing.numericzap",
|
"timing.numericzap",
|
||||||
|
"unicable.lnb",
|
||||||
|
"unicable.qrg",
|
||||||
|
"unicable.scr",
|
||||||
"upnpbrowser.head",
|
"upnpbrowser.head",
|
||||||
"upnpbrowser.noservers",
|
"upnpbrowser.noservers",
|
||||||
"upnpbrowser.rescan",
|
"upnpbrowser.rescan",
|
||||||
|
@@ -39,7 +39,8 @@ typedef enum {
|
|||||||
DISEQC_1_0,
|
DISEQC_1_0,
|
||||||
DISEQC_1_1,
|
DISEQC_1_1,
|
||||||
DISEQC_1_2,
|
DISEQC_1_2,
|
||||||
DISEQC_ADVANCED
|
DISEQC_ADVANCED,
|
||||||
|
DISEQC_UNICABLE
|
||||||
#if 0
|
#if 0
|
||||||
, DISEQC_2_0,
|
, DISEQC_2_0,
|
||||||
DISEQC_2_1,
|
DISEQC_2_1,
|
||||||
|
@@ -184,7 +184,6 @@ class CFrontend
|
|||||||
};
|
};
|
||||||
void configRotor(int _motorRotationSpeed, bool _highVoltage)
|
void configRotor(int _motorRotationSpeed, bool _highVoltage)
|
||||||
{ config.motorRotationSpeed = _motorRotationSpeed; config.highVoltage = _highVoltage; };
|
{ config.motorRotationSpeed = _motorRotationSpeed; config.highVoltage = _highVoltage; };
|
||||||
void configUnicable(int scr, int qrg) { config.uni_scr = scr; config.uni_qrg = qrg; };
|
|
||||||
|
|
||||||
frontend_config_t& getConfig() { return config; };
|
frontend_config_t& getConfig() { return config; };
|
||||||
void setConfig(frontend_config_t cfg) { setDiseqcType((diseqc_t) cfg.diseqcType); config = cfg; };
|
void setConfig(frontend_config_t cfg) { setDiseqcType((diseqc_t) cfg.diseqcType); config = cfg; };
|
||||||
|
@@ -34,6 +34,7 @@ typedef struct frontend_config {
|
|||||||
int diseqcType;
|
int diseqcType;
|
||||||
int uni_scr;
|
int uni_scr;
|
||||||
int uni_qrg;
|
int uni_qrg;
|
||||||
|
int uni_lnb;
|
||||||
int motorRotationSpeed;
|
int motorRotationSpeed;
|
||||||
int highVoltage;
|
int highVoltage;
|
||||||
} frontend_config_t;
|
} frontend_config_t;
|
||||||
|
@@ -70,7 +70,8 @@ typedef struct Zapit_config {
|
|||||||
int highVoltage;
|
int highVoltage;
|
||||||
int motorRotationSpeed;
|
int motorRotationSpeed;
|
||||||
int uni_scr;
|
int uni_scr;
|
||||||
int uni_qrg;
|
int uni_qrg; /* the unicable frequency in MHz */
|
||||||
|
int uni_lnb; /* the input (0/1) of a twin-position switch */
|
||||||
} t_zapit_config;
|
} t_zapit_config;
|
||||||
|
|
||||||
|
|
||||||
|
@@ -236,8 +236,12 @@ void CFEManager::saveSettings(bool write)
|
|||||||
INFO("fe%d", fe->fenumber);
|
INFO("fe%d", fe->fenumber);
|
||||||
if(fe->fenumber && mode != FE_MODE_ALONE) {
|
if(fe->fenumber && mode != FE_MODE_ALONE) {
|
||||||
CFrontend * fe0 = getFE(0);
|
CFrontend * fe0 = getFE(0);
|
||||||
fe->setConfig(fe0->getConfig());
|
|
||||||
fe->setSatellites(fe0->getSatellites());
|
fe->setSatellites(fe0->getSatellites());
|
||||||
|
//fe->setConfig(fe0->getConfig());
|
||||||
|
fe->config.diseqcType = fe0->config.diseqcType;
|
||||||
|
fe->config.diseqcRepeats = fe0->config.diseqcRepeats;
|
||||||
|
fe->config.motorRotationSpeed = fe0->config.motorRotationSpeed;
|
||||||
|
fe->config.highVoltage = fe0->config.highVoltage;
|
||||||
}
|
}
|
||||||
|
|
||||||
setConfigValue(fe, "diseqcType", fe_config.diseqcType);
|
setConfigValue(fe, "diseqcType", fe_config.diseqcType);
|
||||||
|
@@ -159,8 +159,9 @@ CFrontend::CFrontend(int Number, int Adapter)
|
|||||||
|
|
||||||
config.diseqcType = NO_DISEQC;
|
config.diseqcType = NO_DISEQC;
|
||||||
config.diseqcRepeats = 0;
|
config.diseqcRepeats = 0;
|
||||||
config.uni_scr = -1; /* the unicable SCR address, -1 == no unicable */
|
config.uni_scr = 0; /* the unicable SCR address 0-7 */
|
||||||
config.uni_qrg = 0; /* the unicable frequency in MHz, 0 == from spec */
|
config.uni_qrg = 0; /* the unicable frequency in MHz */
|
||||||
|
config.uni_lnb = 0; /* for two-position switches */
|
||||||
config.highVoltage = false;
|
config.highVoltage = false;
|
||||||
config.motorRotationSpeed = 0; //in 0.1 degrees per second
|
config.motorRotationSpeed = 0; //in 0.1 degrees per second
|
||||||
|
|
||||||
@@ -699,11 +700,11 @@ bool CFrontend::buildProperties(const FrontendParameters *feparams, struct dtv_p
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (config.uni_scr >= 0)
|
if (config.diseqcType == DISEQC_UNICABLE)
|
||||||
cmdseq.props[FREQUENCY].u.data = sendEN50494TuningCommand(feparams->dvb_feparams.frequency,
|
cmdseq.props[FREQUENCY].u.data = sendEN50494TuningCommand(feparams->dvb_feparams.frequency,
|
||||||
currentToneMode == SEC_TONE_ON,
|
currentToneMode == SEC_TONE_ON,
|
||||||
currentVoltage == SEC_VOLTAGE_18,
|
currentVoltage == SEC_VOLTAGE_18,
|
||||||
0); /* bank 0/1, like mini-diseqc a/b, not impl.*/
|
!!config.uni_lnb);
|
||||||
|
|
||||||
cmdseq.num += nrOfProps;
|
cmdseq.num += nrOfProps;
|
||||||
|
|
||||||
@@ -767,7 +768,7 @@ void CFrontend::secSetTone(const fe_sec_tone_mode_t toneMode, const uint32_t ms)
|
|||||||
if (currentToneMode == toneMode)
|
if (currentToneMode == toneMode)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (config.uni_scr >= 0) {
|
if (config.diseqcType == DISEQC_UNICABLE) {
|
||||||
/* this is too ugly for words. the "currentToneMode" is the only place
|
/* 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
|
where the global "highband" state is saved. So we need to fake it for
|
||||||
unicable and still set the tone on... */
|
unicable and still set the tone on... */
|
||||||
@@ -796,7 +797,7 @@ void CFrontend::secSetVoltage(const fe_sec_voltage_t voltage, const uint32_t ms)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
printf("[fe%d] voltage %s\n", fenumber, voltage == SEC_VOLTAGE_OFF ? "OFF" : voltage == SEC_VOLTAGE_13 ? "13" : "18");
|
printf("[fe%d] voltage %s\n", fenumber, voltage == SEC_VOLTAGE_OFF ? "OFF" : voltage == SEC_VOLTAGE_13 ? "13" : "18");
|
||||||
if (config.uni_scr >= 0) {
|
if (config.diseqcType == DISEQC_UNICABLE) {
|
||||||
/* see my comment in secSetTone... */
|
/* see my comment in secSetTone... */
|
||||||
currentVoltage = voltage; /* need to know polarization for unicable */
|
currentVoltage = voltage; /* need to know polarization for unicable */
|
||||||
fop(ioctl, FE_SET_VOLTAGE, SEC_VOLTAGE_13); /* voltage must not be 18V */
|
fop(ioctl, FE_SET_VOLTAGE, SEC_VOLTAGE_13); /* voltage must not be 18V */
|
||||||
@@ -854,6 +855,9 @@ void CFrontend::setDiseqcType(const diseqc_t newDiseqcType, bool force)
|
|||||||
case DISEQC_ADVANCED:
|
case DISEQC_ADVANCED:
|
||||||
INFO("fe%d: DISEQC_ADVANCED", fenumber);
|
INFO("fe%d: DISEQC_ADVANCED", fenumber);
|
||||||
break;
|
break;
|
||||||
|
case DISEQC_UNICABLE:
|
||||||
|
INFO("fe%d: DISEQC_UNICABLE", fenumber);
|
||||||
|
break;
|
||||||
#if 0
|
#if 0
|
||||||
case DISEQC_2_0:
|
case DISEQC_2_0:
|
||||||
INFO("DISEQC_2_0");
|
INFO("DISEQC_2_0");
|
||||||
@@ -870,7 +874,11 @@ void CFrontend::setDiseqcType(const diseqc_t newDiseqcType, bool force)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((force && (newDiseqcType != NO_DISEQC)) || ((config.diseqcType <= MINI_DISEQC)
|
if (newDiseqcType == DISEQC_UNICABLE) {
|
||||||
|
secSetTone(SEC_TONE_OFF, 0);
|
||||||
|
secSetVoltage(SEC_VOLTAGE_13, 0);
|
||||||
|
}
|
||||||
|
else if ((force && (newDiseqcType != NO_DISEQC)) || ((config.diseqcType <= MINI_DISEQC)
|
||||||
&& (newDiseqcType > MINI_DISEQC))) {
|
&& (newDiseqcType > MINI_DISEQC))) {
|
||||||
secSetTone(SEC_TONE_OFF, 15);
|
secSetTone(SEC_TONE_OFF, 15);
|
||||||
sendDiseqcPowerOn();
|
sendDiseqcPowerOn();
|
||||||
@@ -972,7 +980,14 @@ void CFrontend::setInput(t_satellite_position satellitePosition, uint32_t freque
|
|||||||
{
|
{
|
||||||
sat_iterator_t sit = satellites.find(satellitePosition);
|
sat_iterator_t sit = satellites.find(satellitePosition);
|
||||||
|
|
||||||
|
/* unicable uses diseqc parameter for input selection */
|
||||||
|
config.uni_lnb = sit->second.diseqc;
|
||||||
|
|
||||||
setLnbOffsets(sit->second.lnbOffsetLow, sit->second.lnbOffsetHigh, sit->second.lnbSwitch);
|
setLnbOffsets(sit->second.lnbOffsetLow, sit->second.lnbOffsetHigh, sit->second.lnbSwitch);
|
||||||
|
if (config.diseqcType == DISEQC_UNICABLE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
if (config.diseqcType != DISEQC_ADVANCED) {
|
if (config.diseqcType != DISEQC_ADVANCED) {
|
||||||
setDiseqc(sit->second.diseqc, polarization, frequency);
|
setDiseqc(sit->second.diseqc, polarization, frequency);
|
||||||
return;
|
return;
|
||||||
@@ -994,24 +1009,19 @@ void CFrontend::setInput(t_satellite_position satellitePosition, uint32_t freque
|
|||||||
uint32_t CFrontend::sendEN50494TuningCommand(const uint32_t frequency, const int high_band,
|
uint32_t CFrontend::sendEN50494TuningCommand(const uint32_t frequency, const int high_band,
|
||||||
const int horizontal, const int bank)
|
const int horizontal, const int bank)
|
||||||
{
|
{
|
||||||
uint32_t uni_qrgs[] = { 1284, 1400, 1516, 1632, 1748, 1864, 1980, 2096 };
|
uint32_t bpf = config.uni_qrg;
|
||||||
uint32_t bpf;
|
|
||||||
if (config.uni_qrg == 0)
|
|
||||||
bpf = uni_qrgs[config.uni_scr];
|
|
||||||
else
|
|
||||||
bpf = config.uni_qrg;
|
|
||||||
|
|
||||||
struct dvb_diseqc_master_cmd cmd = {
|
struct dvb_diseqc_master_cmd cmd = {
|
||||||
{0xe0, 0x10, 0x5a, 0x00, 0x00, 0x00}, 5
|
{0xe0, 0x10, 0x5a, 0x00, 0x00, 0x00}, 5
|
||||||
};
|
};
|
||||||
unsigned int t = (frequency / 1000 + bpf + 2) / 4 - 350;
|
unsigned int t = (frequency / 1000 + bpf + 2) / 4 - 350;
|
||||||
if (t < 1024 && config.uni_scr >= 0 && config.uni_scr < 8)
|
if (t < 1024 && config.uni_scr >= 0 && config.uni_scr < 8)
|
||||||
{
|
{
|
||||||
INFO("VOLT18=%d TONE_ON=%d, freq=%d bpf=%d ret=%d", currentVoltage == SEC_VOLTAGE_18, currentToneMode == SEC_TONE_ON, frequency, bpf, (t + 350) * 4000 - frequency);
|
uint32_t ret = (t + 350) * 4000 - frequency;
|
||||||
|
INFO("[unicable] 18V=%d TONE=%d, freq=%d qrg=%d scr=%d bank=%d ret=%d", currentVoltage == SEC_VOLTAGE_18, currentToneMode == SEC_TONE_ON, frequency, bpf, config.uni_scr, bank, ret);
|
||||||
if (!slave && info.type == FE_QPSK) {
|
if (!slave && info.type == FE_QPSK) {
|
||||||
cmd.msg[3] = (t >> 8) | /* highest 3 bits of t */
|
cmd.msg[3] = (t >> 8) | /* highest 3 bits of t */
|
||||||
(config.uni_scr << 5) | /* adress */
|
(config.uni_scr << 5) | /* adress */
|
||||||
(bank << 4) | /* not implemented yet */
|
(bank << 4) | /* input 0/1 */
|
||||||
(horizontal << 3) | /* horizontal == 0x08 */
|
(horizontal << 3) | /* horizontal == 0x08 */
|
||||||
(high_band) << 2; /* high_band == 0x04 */
|
(high_band) << 2; /* high_band == 0x04 */
|
||||||
cmd.msg[4] = t & 0xFF;
|
cmd.msg[4] = t & 0xFF;
|
||||||
@@ -1020,7 +1030,7 @@ uint32_t CFrontend::sendEN50494TuningCommand(const uint32_t frequency, const int
|
|||||||
sendDiseqcCommand(&cmd, 50); /* en50494 says: >2ms and < 60 ms */
|
sendDiseqcCommand(&cmd, 50); /* en50494 says: >2ms and < 60 ms */
|
||||||
fop(ioctl, FE_SET_VOLTAGE, SEC_VOLTAGE_13);
|
fop(ioctl, FE_SET_VOLTAGE, SEC_VOLTAGE_13);
|
||||||
}
|
}
|
||||||
return (t + 350) * 4000 - frequency;
|
return ret;
|
||||||
}
|
}
|
||||||
WARN("ooops. t > 1024? (%d) or uni_scr out of range? (%d)", t, config.uni_scr);
|
WARN("ooops. t > 1024? (%d) or uni_scr out of range? (%d)", t, config.uni_scr);
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -192,8 +192,6 @@ void CZapit::SaveSettings(bool write)
|
|||||||
configfile.setInt32("diseqcRepeats", live_fe->getDiseqcRepeats());
|
configfile.setInt32("diseqcRepeats", live_fe->getDiseqcRepeats());
|
||||||
configfile.setInt32("diseqcType", live_fe->getDiseqcType());
|
configfile.setInt32("diseqcType", live_fe->getDiseqcType());
|
||||||
configfile.setInt32("motorRotationSpeed", config.motorRotationSpeed);
|
configfile.setInt32("motorRotationSpeed", config.motorRotationSpeed);
|
||||||
configfile.setInt32("uni_scr", config.uni_scr);
|
|
||||||
configfile.setInt32("uni_qrg", config.uni_qrg);
|
|
||||||
#endif
|
#endif
|
||||||
if (configfile.getModifiedFlag())
|
if (configfile.getModifiedFlag())
|
||||||
configfile.saveConfig(CONFIGFILE);
|
configfile.saveConfig(CONFIGFILE);
|
||||||
@@ -309,8 +307,6 @@ void CZapit::LoadSettings()
|
|||||||
/* FIXME FE specific, to be removed */
|
/* FIXME FE specific, to be removed */
|
||||||
diseqcType = (diseqc_t)configfile.getInt32("diseqcType", NO_DISEQC);
|
diseqcType = (diseqc_t)configfile.getInt32("diseqcType", NO_DISEQC);
|
||||||
config.motorRotationSpeed = configfile.getInt32("motorRotationSpeed", 18); // default: 1.8 degrees per second
|
config.motorRotationSpeed = configfile.getInt32("motorRotationSpeed", 18); // default: 1.8 degrees per second
|
||||||
config.uni_scr = configfile.getInt32("uni_scr", -1);
|
|
||||||
config.uni_qrg = configfile.getInt32("uni_qrg", 0);
|
|
||||||
|
|
||||||
printf("[zapit.cpp] diseqc type = %d\n", diseqcType);
|
printf("[zapit.cpp] diseqc type = %d\n", diseqcType);
|
||||||
|
|
||||||
@@ -336,7 +332,6 @@ void CZapit::ConfigFrontend()
|
|||||||
if(!CFEManager::getInstance()->configExist()) {
|
if(!CFEManager::getInstance()->configExist()) {
|
||||||
INFO("New frontend config not exist");
|
INFO("New frontend config not exist");
|
||||||
fe->configRotor(config.motorRotationSpeed, config.highVoltage);
|
fe->configRotor(config.motorRotationSpeed, config.highVoltage);
|
||||||
fe->configUnicable(config.uni_scr, config.uni_qrg);
|
|
||||||
fe->setDiseqcType(diseqcType);
|
fe->setDiseqcType(diseqcType);
|
||||||
fe->setDiseqcRepeats(configfile.getInt32("diseqcRepeats", 0));
|
fe->setDiseqcRepeats(configfile.getInt32("diseqcRepeats", 0));
|
||||||
fe->setRotorSatellitePosition(configfile.getInt32("lastSatellitePosition", 0));
|
fe->setRotorSatellitePosition(configfile.getInt32("lastSatellitePosition", 0));
|
||||||
|
Reference in New Issue
Block a user