3 #include <enigma_main.h>
4 #include <lib/base/i18n.h>
5 #include <lib/gui/eskin.h>
6 #include <lib/gui/ebutton.h>
7 #include <lib/gui/emessage.h>
8 #include <lib/gui/echeckbox.h>
9 #include <lib/gui/eprogress.h>
10 #include <lib/dvb/edvb.h>
11 #include <lib/dvb/dvbservice.h>
12 #include <lib/dvb/frontend.h>
13 #include <lib/dvb/dvbwidgets.h>
14 #include <lib/system/info.h>
16 eSatelliteConfigurationManager::eSatelliteConfigurationManager()
19 init_eSatelliteConfigurationManager();
22 void eSatelliteConfigurationManager::init_eSatelliteConfigurationManager()
24 lSatPos
= new eLabel(this);
25 lSatPos
->setName("lSatPos");
27 lLNB
= new eLabel(this);
28 lLNB
->setName("lLnb");
31 l22Khz
= new eLabel(this);
32 l22Khz
->setName("l22khz");
35 lVoltage
= new eLabel(this);
36 lVoltage
->setName("lVoltage");
39 scrollbar
= new eProgress(this);
40 scrollbar
->setName("scrollbar");
41 scrollbar
->setStart(0);
42 scrollbar
->setPerc(100);
44 button_close
=new eButton(this);
45 button_close
->setName("close");
46 CONNECT(button_close
->selected
, eSatelliteConfigurationManager::closePressed
);
48 button_new
=new eButton(this);
49 button_new
->setName("new");
51 CONNECT(button_new
->selected
, eSatelliteConfigurationManager::newPressed
);
53 button_erase
=new eButton(this,0,0);
54 button_erase
->setName("erase");
56 CONNECT(button_erase
->selected
, eSatelliteConfigurationManager::erasePressed
);
58 buttonWidget
=new eWidget(this);
59 buttonWidget
->setName("buttons");
61 combo_type
=new eComboBox(this, 7);
62 combo_type
->setName("type");
63 CONNECT(combo_type
->selchanged
, eSatelliteConfigurationManager::typeChanged
);
64 new eListBoxEntryText( *combo_type
, _("one single satellite"), (void*)0, 0, _("one directly connected LNB"));
65 new eListBoxEntryText( *combo_type
, _("2 satellites via Toneburst"), (void*)5, 0, _("2 LNBs via Toneburst Signal"));
66 new eListBoxEntryText( *combo_type
, _("2 satellites via 22Khz (only Highband)"), (void*)6, 0, _("2 LNBs via 22Khz Signal.. special for old analog switches"));
67 new eListBoxEntryText( *combo_type
, _("2 satellites via DiSEqC A/B"), (void*)1, 0, _("2 LNBs via DiSEqC"));
68 new eListBoxEntryText( *combo_type
, _("4 satellites via DiSEqC OPT A/B"), (void*)2, 0, _("4 LNBs via DiSEqC"));
69 new eListBoxEntryText( *combo_type
, _("many satellites via DiSEqC Rotor"), (void*)3, 0, _("1 LNB with DiSEqC Rotor"));
70 new eListBoxEntryText( *combo_type
, _("non-standard user defined configuration..."), (void*)4, 0, _("special"));
72 eSkin
*skin
=eSkin::getActive();
73 if (skin
->build(this, "eSatelliteConfigurationManager"))
74 eFatal("skin load of \"eSatelliteConfigurationManager\" failed");
76 eSize s
= buttonWidget
->getSize();
77 s
.setHeight( s
.height()*16 );
79 w_buttons
= new eWidget(buttonWidget
);
80 w_buttons
->resize( s
);
81 w_buttons
->move( ePoint(0,0) );
83 eTransponderList::getInstance()->reloadNetworks(); // load all networks from satellite.xml or cable.xml
84 createControlElements();
86 complexity
=checkComplexity();
87 combo_type
->setCurrent( (void*)complexity
, true );
89 for ( int i
= 0; i
< 17; i
++ )
96 CONNECT( eWidget::focusChanged
, eSatelliteConfigurationManager::focusChanged
);
101 void eSatelliteConfigurationManager::focusChanged( const eWidget
* focus
)
103 if ( focus
&& focus
->getName() == "satWidget" )
105 int old
= curScrollPos
;
106 for (unsigned int it
=0; it
< (sizeof(pageEnds
)/sizeof(int)); ++it
)
108 if ( focus
->getPosition().y() < pageEnds
[it
] )
115 if ( curScrollPos
!= old
)
117 w_buttons
->move( ePoint(0, -pageEnds
[curScrollPos
]) );
118 updateScrollbar(complexity
> 2 && complexity
< 5);
123 void eSatelliteConfigurationManager::typeChanged(eListBoxEntryText
* newtype
)
125 int newcomplexity
=(int)newtype
->getKey();
126 if ( newcomplexity
== complexity
)
128 // check if the new type is less complex than our current setup...
129 int newComp
= newcomplexity
> 4 ? 1 : newcomplexity
;
130 int oldComp
= checkComplexity();
133 if ( oldComp
> newComp
)
135 eMessageBox
mb(_("Configuration contains some elements\nwhich don't fit into new DiSEqC-Type. Drop these items?"), _("Change DiSEqC-Type..."), eMessageBox::iconWarning
|eMessageBox::btYes
|eMessageBox::btCancel
);
141 if (res
!= eMessageBox::btYes
)
143 combo_type
->setCurrent((void*)complexity
, false);
147 setComplexity(complexity
=newcomplexity
);
148 updateButtons(newcomplexity
);
151 void eSatelliteConfigurationManager::extSetComplexity(int complexity
)
153 combo_type
->setCurrent((void*)complexity
, true);
157 void eSatelliteConfigurationManager::setComplexity(int complexity
)
159 eDebug("setComplexitiy = %d", complexity
);
166 deleteSatellitesAbove(1);
167 while (eTransponderList::getInstance()->getLNBs().size() < 1)
168 createSatWidgets( createSatellite() );
169 for ( std::list
<eLNB
>::iterator
it( eTransponderList::getInstance()->getLNBs().begin() ); it
!= eTransponderList::getInstance()->getLNBs().end(); ++it
, ++i
)
170 setSimpleDiseqc(it
->getSatelliteList().first(), i
);
176 deleteSatellitesAbove(2);
177 while (eTransponderList::getInstance()->getLNBs().size() < 2)
178 createSatWidgets( createSatellite() );
179 for ( std::list
<eLNB
>::iterator
it( eTransponderList::getInstance()->getLNBs().begin() ); it
!= eTransponderList::getInstance()->getLNBs().end(); ++it
, ++i
)
181 setSimpleDiseqc( it
->getSatelliteList().first(), i
);
182 if ( complexity
== 6 )
183 entryMap
[it
->getSatelliteList().first()].hilo
->setCurrent(2-i
);
187 deleteSatellitesAbove(4);
188 while (eTransponderList::getInstance()->getLNBs().size() < 4)
189 createSatWidgets( createSatellite() );
190 for ( std::list
<eLNB
>::iterator
it( eTransponderList::getInstance()->getLNBs().begin() ); it
!= eTransponderList::getInstance()->getLNBs().end(); ++it
, ++i
)
191 setSimpleDiseqc(it
->getSatelliteList().first(), i
);
195 deleteSatellitesAbove(1);
197 if ( !eTransponderList::getInstance()->getLNBs().size() )
198 createSatWidgets( createSatellite() );
200 setSimpleDiseqc( eTransponderList::getInstance()->getLNBs().front().getSatelliteList().front(), 0 );
204 used
= eTransponderList::getInstance()->getLNBs().front().getSatelliteList().size();
205 createSatWidgets( createSatellite() );
207 while ( used
!= eTransponderList::getInstance()->getLNBs().front().getSatelliteList().size() );
217 int eSatelliteConfigurationManager::checkComplexity()
219 int c
=0, comp
=0, rcomp
=0;
220 for ( std::list
<eLNB
>::iterator
it( eTransponderList::getInstance()->getLNBs().begin() ); it
!= eTransponderList::getInstance()->getLNBs().end(); it
++)
222 if (it
->getSatelliteList().size() != 1)
225 if ( eTransponderList::getInstance()->getLNBs().size() > 1)
227 eDebug("complexity is 4 since lnb %d has more than one satellite, and we have more than one LNB.", c
);
230 eDebug("complexity is 3 since lnb %d has more than one satellite, and only one LNB exist.", c
);
234 int dc
=checkDiseqcComplexity(it
->getSatelliteList().first());
236 int tmp
= dc
> 4 ? 2 : dc
;
237 eDebug("LNB %d has %d", c
, dc
);
243 if ((comp
< 2) && c
>2)
245 if ((comp
< 1) && c
>1)
249 return rcomp
>4?rcomp
:comp
;
252 void eSatelliteConfigurationManager::updateButtons(int comp
)
254 if (comp
< 3 || comp
> 4)
260 lSatPos
->move( ePoint( 75, lSatPos
->getPosition().y() ) );
262 button_erase
->hide();
268 lSatPos
->move( ePoint( 0, lSatPos
->getPosition().y() ) );
274 button_erase
->show();
278 int eSatelliteConfigurationManager::checkDiseqcComplexity(eSatellite
*s
)
280 SatelliteEntry
*se
=0;
282 if (entryMap
.count(s
))
285 if (s
->getLNB()->getDiSEqC().DiSEqCMode
== eDiSEqC::NONE
&&
286 s
->getLNB()->getDiSEqC().MiniDiSEqCParam
== eDiSEqC::NO
&&
287 s
->getSwitchParams().HiLoSignal
== eSwitchParameter::ON
)
289 se
->description
->setText("22Khz On");
293 if (s
->getLNB()->getDiSEqC().DiSEqCMode
== eDiSEqC::NONE
&&
294 s
->getLNB()->getDiSEqC().MiniDiSEqCParam
== eDiSEqC::NO
&&
295 s
->getSwitchParams().HiLoSignal
== eSwitchParameter::OFF
)
297 se
->description
->setText("22Khz Off");
301 if ( s
->getLNB()->getLOFHi() != 10600000 ||
302 s
->getLNB()->getLOFLo() != 9750000 ||
303 s
->getLNB()->getLOFThreshold() != 11700000 )
305 eDebug("lof hi, lo or threshold changed");
308 if (s
->getSwitchParams().VoltageMode
!= eSwitchParameter::HV
)
310 eDebug("voltage mode unusual");
313 if (s
->getSwitchParams().HiLoSignal
!= eSwitchParameter::HILO
)
315 eDebug("sig22 mode unusual");
319 if (s
->getLNB()->getDiSEqC().DiSEqCMode
== eDiSEqC::NONE
)
321 switch (s
->getLNB()->getDiSEqC().MiniDiSEqCParam
)
325 se
->description
->setText("Toneburst A");
329 se
->description
->setText("Toneburst B");
333 se
->description
->setText(_("direct connection"));
338 if (s
->getLNB()->getDiSEqC().DiSEqCMode
> eDiSEqC::V1_0
)
340 eDebug("diseqc mode > 1.0");
344 if (s
->getLNB()->getDiSEqC().DiSEqCParam
> 3)
346 eDebug("unusual diseqc parameter");
352 switch (s
->getLNB()->getDiSEqC().DiSEqCParam
)
355 se
->description
->setText("DiSEqC AA");
358 se
->description
->setText("DiSEqC AB");
361 se
->description
->setText("DiSEqC BA");
364 se
->description
->setText("DiSEqC BB");
369 // we have simple 1.0
370 if (s
->getLNB()->getDiSEqC().DiSEqCParam
> 1)
373 if (s
->getLNB()->getDiSEqC().DiSEqCParam
)
379 void eSatelliteConfigurationManager::deleteSatellitesAbove(int n
)
381 // it's all about invalidating ptrlist's iterators on delete :/
385 for ( std::list
<eLNB
>::iterator
it( eTransponderList::getInstance()->getLNBs().begin() ); (it
!= eTransponderList::getInstance()->getLNBs().end()); ++it
)
386 for ( ePtrList
<eSatellite
>::iterator si
= it
->getSatelliteList().begin() ; si
!= it
->getSatelliteList().end(); si
++)
387 if ( it
->getSatelliteList().size() > 1 || index
++ >= n
)
389 delSatellite(si
, false, true);
396 eDVB::getInstance()->settings
->removeDVBBouquets();
397 eDVB::getInstance()->settings
->sortInChannels();
398 eDVB::getInstance()->settings
->saveBouquets();
405 void eSatelliteConfigurationManager::setSimpleDiseqc(eSatellite
*s
, int diseqcnr
)
407 eDebug("setSimpleDiSEqC %d", complexity
);
408 s
->getSwitchParams().VoltageMode
=eSwitchParameter::HV
;
409 eLNB
*lnb
=s
->getLNB();
410 lnb
->setDefaultOptions();
411 if ( complexity
== 6 )
413 lnb
->setLOFLo(10600000);
415 s
->getSwitchParams().HiLoSignal
=eSwitchParameter::ON
;
417 s
->getSwitchParams().HiLoSignal
=eSwitchParameter::OFF
;
420 s
->getSwitchParams().HiLoSignal
=eSwitchParameter::HILO
;
422 lnb
->getDiSEqC().MiniDiSEqCParam
=eDiSEqC::NO
;
423 switch (complexity
) // if we have diseqc at all
427 lnb
->getDiSEqC().MiniDiSEqCParam
=eDiSEqC::B
;
429 lnb
->getDiSEqC().MiniDiSEqCParam
=eDiSEqC::A
;
432 lnb
->getDiSEqC().DiSEqCParam
=0;
433 lnb
->getDiSEqC().DiSEqCMode
=eDiSEqC::NONE
;
436 lnb
->getDiSEqC().DiSEqCParam
=eDiSEqC::AA
+diseqcnr
;
437 lnb
->getDiSEqC().DiSEqCMode
=eDiSEqC::V1_1
;
439 lnb
->getDiSEqC().DiSEqCParam
=eDiSEqC::AA
;
440 lnb
->getDiSEqC().DiSEqCMode
=eDiSEqC::V1_2
;
444 lnb
->getDiSEqC().DiSEqCParam
=eDiSEqC::AA
+diseqcnr
;
445 lnb
->getDiSEqC().DiSEqCMode
=eDiSEqC::V1_0
;
448 lnb
->getDiSEqC().FastDiSEqC
=0;
449 lnb
->getDiSEqC().DiSEqCRepeats
=0;
450 lnb
->getDiSEqC().SeqRepeat
=0;
451 lnb
->getDiSEqC().SwapCmds
=0;
452 lnb
->getDiSEqC().uncommitted_cmd
=0;
453 lnb
->getDiSEqC().setRotorDefaultOptions();
456 eSatelliteConfigurationManager::~eSatelliteConfigurationManager()
462 eSatellite
*eSatelliteConfigurationManager::getSat4SatCombo( const eComboBox
*c
)
464 std::map
<eSatellite
*, SatelliteEntry
>::iterator
it ( entryMap
.begin() );
465 for ( ; it
!= entryMap
.end(); it
++)
466 if ( it
->second
.sat
== c
)
468 return it
!= entryMap
.end()?it
->first
:0;
471 eSatellite
*eSatelliteConfigurationManager::getSat4HiLoCombo( const eComboBox
*c
)
473 std::map
<eSatellite
*, SatelliteEntry
>::iterator
it ( entryMap
.begin() );
474 for ( ; it
!= entryMap
.end(); it
++)
475 if ( it
->second
.hilo
== c
)
477 return it
!= entryMap
.end()?it
->first
:0;
480 eSatellite
*eSatelliteConfigurationManager::getSat4VoltageCombo( const eComboBox
*c
)
482 std::map
<eSatellite
*, SatelliteEntry
>::iterator
it ( entryMap
.begin() );
483 for ( ; it
!= entryMap
.end(); it
++)
484 if ( it
->second
.voltage
== c
)
486 return it
!= entryMap
.end()?it
->first
:0;
489 eSatellite
*eSatelliteConfigurationManager::getSat4LnbButton( const eButton
*b
)
491 std::map
<eSatellite
*, SatelliteEntry
>::iterator
it ( entryMap
.begin() );
492 for ( ; it
!= entryMap
.end(); it
++)
493 if ( it
->second
.lnb
== b
)
495 return it
!= entryMap
.end()?it
->first
:0;
498 #define DESC_POS_X 330
500 #define LNB_POS_X 260
501 #define HILO_POS_X 330
502 #define VOLTAGE_POS_X 430
506 void eSatelliteConfigurationManager::cleanupWidgets()
508 for (std::list
<SatelliteEntry
*>::iterator
It( deleteEntryList
.begin() ); It
!= deleteEntryList
.end();)
512 (**It
).voltage
->hide();
514 (**It
).fixed
->hide();
515 (**It
).description
->hide();
518 delete (**It
).voltage
;
521 delete (**It
).description
;
523 // search Entry in Map;
524 std::map
< eSatellite
*, SatelliteEntry
>::iterator
it( entryMap
.begin() );
525 for ( ; it
!= entryMap
.end() && &it
->second
!= *It
; it
++)
528 if (it
!= entryMap
.end() )
529 entryMap
.erase( it
);
531 It
= deleteEntryList
.erase(It
);
535 void eSatelliteConfigurationManager::repositionWidgets()
538 int lnbcount
=0, y
=POS_Y
, satcount
=0, cnt
=0;
540 int tmp
= complexity
;
544 eWidget
*old
= focus
;
546 for ( std::list
<eLNB
>::iterator
it( eTransponderList::getInstance()->getLNBs().begin() ); it
!= eTransponderList::getInstance()->getLNBs().end(); it
++)
547 satcount
+= it
->getSatelliteList().size();
549 std::pair
<eSatellite
*,int> sats
[satcount
];
550 for ( std::list
<eLNB
>::iterator
it( eTransponderList::getInstance()->getLNBs().begin() ); it
!= eTransponderList::getInstance()->getLNBs().end(); it
++)
552 for ( ePtrList
<eSatellite
>::iterator
s ( it
->getSatelliteList().begin() ); s
!= it
->getSatelliteList().end(); s
++)
555 sats
[cnt
++].second
=lnbcount
;
561 while(cnt
< satcount
)
563 SatelliteEntry
& entry
= entryMap
[ sats
[cnt
].first
];
564 // search eComboBox for this eSatellite and move
568 entry
.voltage
->hide();
571 entry
.description
->hide();
573 entry
.sat
->move( ePoint((tmp
>2?SAT_POS_X
:55), y
) );
574 entry
.fixed
->move( ePoint(0, y
) );
575 entry
.description
->move( ePoint(DESC_POS_X
, y
) );
576 entry
.lnb
->move( ePoint(LNB_POS_X
, y
) );
577 entry
.lnb
->setText( eString().sprintf("%d", sats
[cnt
].second
) );
578 entry
.fixed
->setShortcut(eString().sprintf("%d", (y
- POS_Y
) / 40 + 1 ) );
579 entry
.fixed
->setShortcutPixmap(eString().sprintf("%d", (y
- POS_Y
) / 40 + 1 ));
581 entry
.hilo
->move( ePoint(HILO_POS_X
, y
) );
582 entry
.voltage
->move( ePoint(VOLTAGE_POS_X
, y
) );
585 if (tmp
>2) // user defined..
588 entry
.voltage
->show();
594 entry
.description
->show();
601 updateScrollbar(tmp
>2);
604 void eSatelliteConfigurationManager::createControlElements()
608 for ( std::list
<eLNB
>::iterator
it( eTransponderList::getInstance()->getLNBs().begin() ); it
!= eTransponderList::getInstance()->getLNBs().end(); it
++)
609 for ( ePtrList
<eSatellite
>::iterator
s ( it
->getSatelliteList().begin() ); s
!= it
->getSatelliteList().end(); s
++)
612 for (ePtrList
<eSatellite
>::iterator
it(sats
.begin()); it
!= sats
.end(); ++it
)
613 createSatWidgets(*it
);
616 void eSatelliteConfigurationManager::lnbSelected(eButton
* who
)
618 eWidget
*old
= focus
;
619 eDebug("lnb selected");
621 eLNBSetup
sel( getSat4LnbButton(who
), LCDTitle
, LCDElement
);
623 eLNBSetup
sel( getSat4LnbButton(who
) );
628 if ( sel
.exec() ) // the we must reposition widgets
640 void eSatelliteConfigurationManager::erasePressed()
643 if ( focus
&& focus
->getName() == "satWidget" )
645 s
= getSat4SatCombo( (eComboBox
*)focus
);
647 s
= getSat4HiLoCombo( (eComboBox
*)focus
);
649 s
= getSat4VoltageCombo( (eComboBox
*)focus
);
651 s
= getSat4LnbButton( (eButton
*)focus
);
654 eDebug("Widget not found");
657 eDebug("call delSatellite(s)");
658 focusNext(eWidget::focusDirN
);
663 void eSatelliteConfigurationManager::delSatellite( eSatellite
* s
, bool redraw
, bool atomic
)
666 eTransponderList::getInstance()->removeOrbitalPosition(s
->getOrbitalPosition());
669 eDVB::getInstance()->settings
->removeOrbitalPosition(s
->getOrbitalPosition());
670 eDVB::getInstance()->settings
->saveBouquets();
672 eLNB
* lnb
= s
->getLNB();
673 lnb
->deleteSatellite( s
);
674 // eDebug("Satellite is now removed");
675 if ( !lnb
->getSatelliteList().size() ) // the lnb that have no more satellites must be deleted
677 // eDebug("delete no more used lnb");
678 eTransponderList::getInstance()->getLNBs().remove( *s
->getLNB() );
681 // eDebug("do not delete lnb");
683 deleteEntryList
.push_back(&entryMap
[ s
]);
690 refresh
= new eTimer( eApp
);
691 CONNECT( refresh
->timeout
, eSatelliteConfigurationManager::repositionWidgets
);
693 refresh
->start(50, true );
696 void eSatelliteConfigurationManager::satChanged(eComboBox
* who
, eListBoxEntryText
*le
)
698 eSatellite
*s
=getSat4SatCombo( who
);
700 if ( le
->getKey() && le
->getText() )
702 // delete old orbital position services
703 if ((int)le
->getKey() != s
->getOrbitalPosition())
704 eDVB::getInstance()->settings
->removeOrbitalPosition(s
->getOrbitalPosition());
705 s
->setOrbitalPosition( (int) le
->getKey() );
706 s
->setDescription( le
->getText() );
708 else if (s
) // *delete* selected -->> satellite and empty lnbs were now deleted
712 void eSatelliteConfigurationManager::hiloChanged(eComboBox
* who
, eListBoxEntryText
*le
)
714 getSat4HiLoCombo(who
)->getSwitchParams().HiLoSignal
= (eSwitchParameter::SIG22
) (int) le
->getKey();
717 void eSatelliteConfigurationManager::voltageChanged(eComboBox
* who
, eListBoxEntryText
*le
)
719 getSat4VoltageCombo(who
)->getSwitchParams().VoltageMode
= (eSwitchParameter::VMODE
) (int) le
->getKey();
722 void eSatelliteConfigurationManager::closePressed()
724 eTransponderList::getInstance()->writeLNBData();
725 eConfig::getInstance()->flush();
729 eComboBox
* eSatelliteConfigurationManager::createSatWidgets( eSatellite
*s
)
735 eComboBox
* newSat
= new eComboBox(w_buttons
, 6, lSatPos
);
736 newSat
->setName("satWidget");
740 newSat
->resize(eSize(250, 30));
741 newSat
->setHelpText( _("press ok to select another satellite"));
744 if ( (err
= newSat
->setCurrent( (void*) s
->getOrbitalPosition() ) ) )
745 if (err
== eComboBox::E_COULDNT_FIND
) // hmm current entry not in Combobox... we add it manually
746 newSat
->setCurrent( new eListBoxEntryText( *newSat
, s
->getDescription(), (void*) s
->getOrbitalPosition() ) );
747 CONNECT( newSat
->selected_id
, eSatelliteConfigurationManager::addSatellitesToCombo
);
748 CONNECT( newSat
->selchanged_id
, eSatelliteConfigurationManager::satChanged
);
750 eButton
* b
= new eButton(w_buttons
, lLNB
);
752 b
->setName("satWidget");
755 b
->resize(eSize(60, 30));
756 b
->setHelpText( _("press ok to goto LNB config"));
757 CONNECT(b
->selected_id
, eSatelliteConfigurationManager::lnbSelected
);
759 sat
.fixed
=new eLabel(w_buttons
);
760 // sat.fixed->setText(eString().sprintf(_("Sat %d"), index));
762 sat
.fixed
->setShortcutFocus(sat
.sat
);
763 sat
.fixed
->resize(eSize(130, 30));
765 sat
.description
=new eLabel(w_buttons
);
766 sat
.description
->resize(eSize(245, 30));
768 eComboBox
*c
= new eComboBox(w_buttons
, 3, l22Khz
);
769 c
->setName("satWidget");
773 c
->resize( eSize( 90, 30 ) );
774 c
->setHelpText( _("press ok to select another 22kHz mode") );
775 new eListBoxEntryText( *c
, "Hi/Lo", (void*)eSwitchParameter::HILO
, 0, _("22kHz signal is automatically switched") );
776 new eListBoxEntryText( *c
, "On", (void*)eSwitchParameter::ON
, 0, _("22kHz is always enabled (high band)") );
777 new eListBoxEntryText( *c
, "Off", (void*)eSwitchParameter::OFF
, 0, _("22kHz is always disabled (low band)") );
778 c
->setCurrent( (void*) (int) s
->getSwitchParams().HiLoSignal
);
779 CONNECT( c
->selchanged_id
, eSatelliteConfigurationManager::hiloChanged
);
781 c
= new eComboBox(w_buttons
, 3, lVoltage
);
782 c
->setName("satWidget");
786 c
->resize( eSize( 90, 30 ) );
787 c
->setHelpText( _("press ok to select another LNB Voltage mode") );
788 new eListBoxEntryText( *c
, "H/V", (void*)eSwitchParameter::HV
, 0, _("Voltage is automatically changed") );
789 new eListBoxEntryText( *c
, "14V", (void*)eSwitchParameter::_14V
, 0, _("Voltage is always 14V (vertical)") );
790 new eListBoxEntryText( *c
, "18V", (void*)eSwitchParameter::_18V
, 0, _("Voltage is always 18V (horizontal)") );
791 new eListBoxEntryText( *c
, "off", (void*)eSwitchParameter::_0V
, 0, _("Voltage is always off") );
792 c
->setCurrent( (void*) (int) s
->getSwitchParams().VoltageMode
);
793 CONNECT( c
->selchanged_id
, eSatelliteConfigurationManager::voltageChanged
);
794 entryMap
.insert( std::pair
<eSatellite
*, SatelliteEntry
> ( s
, sat
) );
798 void eSatelliteConfigurationManager::addSatellitesToCombo(eButton
* btn
)
800 eComboBox
*combo
= (eComboBox
*) btn
;
801 if ( combo
->getCount() == 1 )
803 int opos
= (int) combo
->getCurrent()->getKey();
804 for (std::list
<tpPacket
>::const_iterator
i(eTransponderList::getInstance()->getNetworks().begin()); i
!= eTransponderList::getInstance()->getNetworks().end(); ++i
)
805 if ( i
->possibleTransponders
.size() && i
->orbital_position
!= opos
)
806 new eListBoxEntryText( *combo
, i
->name
, (void*) i
->orbital_position
);
810 void eSatelliteConfigurationManager::newPressed()
812 // here we must add the new Comboboxes and the button to the hash maps...
813 eComboBox
*newSat
= createSatWidgets(createSatellite());
821 eSatellite
*eSatelliteConfigurationManager::createSatellite()
823 std::list
<tpPacket
>::const_iterator
i( eTransponderList::getInstance()->getNetworks().begin());
824 // we search the next unused Satellite in list...
826 for (; i
!= eTransponderList::getInstance()->getNetworks().end(); ++i
)
828 std::map
< eSatellite
*, SatelliteEntry
> :: iterator
it ( entryMap
.begin() );
829 for ( ; it
!= entryMap
.end(); it
++)
831 if ( i
->orbital_position
== it
->first
->getOrbitalPosition() )
832 break; // test the next...
834 if ( it
== entryMap
.end() ) // all Entrys have been checked...
842 eMessageBox("No more unused satellites in satellites.xml. Please add a new satellite with possible transponder(s).","Could not add satellite." );
847 // if not in user-defined mode,
849 int tmp
= complexity
;
853 if ( (tmp
< 3) || !eTransponderList::getInstance()->getLNBs().size() ) // lnb list is empty ?
855 eTransponderList::getInstance()->getLNBs().push_back( eLNB(*eTransponderList::getInstance()) );
856 lnb
= &eTransponderList::getInstance()->getLNBs().back();
857 lnb
->setDefaultOptions();
859 else // we use the last lnb in the list for the new Satellite
860 lnb
= &eTransponderList::getInstance()->getLNBs().back();
862 eSatellite
*satellite
= lnb
->addSatellite( i
->orbital_position
);
863 satellite
->setDescription(i
->name
);
865 if ( (tmp
< 3) || !eTransponderList::getInstance()->getLNBs().size() ) // lnb list is empty ?
866 setSimpleDiseqc( satellite
, 0 );
868 eSwitchParameter
&sParams
= satellite
->getSwitchParams();
869 sParams
.VoltageMode
= eSwitchParameter::HV
;
870 sParams
.HiLoSignal
= eSwitchParameter::HILO
;
874 void eSatelliteConfigurationManager::updateScrollbar(int show
)
881 int total
=entryMap
.size()*40; // w_buttons->getSize().height();
882 if (total
< buttonWidget
->getSize().height())
883 total
=buttonWidget
->getSize().height();
886 int start
=-w_buttons
->getPosition().y()*100/total
;
887 int vis
=buttonWidget
->getSize().height()*100/total
;
888 scrollbar
->setParams(start
,vis
);
892 int eSatelliteConfigurationManager::eventHandler(const eWidgetEvent
&event
)
897 case eWidgetEvent::execBegin
:
898 w_buttons
->setLCD( LCDTitle
, LCDElement
);
901 case eWidgetEvent::evtAction
:
902 if (event
.action
== &i_focusActions
->left
)
903 focusNext(eWidget::focusDirW
);
904 else if (event
.action
== &i_focusActions
->right
)
905 focusNext(eWidget::focusDirE
);
906 else if (event
.action
== &i_focusActions
->up
)
907 focusNext(eWidget::focusDirN
);
908 else if (event
.action
== &i_focusActions
->down
)
909 focusNext(eWidget::focusDirS
);
911 return eWindow::eventHandler(event
);
914 return eWindow::eventHandler(event
);
920 eLNBSetup::eLNBSetup( eSatellite
* sat
, eWidget
* lcdTitle
, eWidget
* lcdElement
)
921 :sat(sat
), service(eServiceInterface::getInstance()->service
)
923 eSkin
*skin
=eSkin::getActive();
924 if (skin
->build(this, "eLNBSetup"))
925 eFatal("skin load of \"eLNBSetup\" failed");
926 LNBPage
= new eLNBPage( this, sat
);
927 DiSEqCPage
= new eDiSEqCPage( this, sat
);
929 DiSEqCPage
->setLCD( lcdTitle
, lcdElement
);
930 LNBPage
->setLCD( lcdTitle
, lcdElement
);
935 mp
.addPage(DiSEqCPage
);
936 // here we can not use the Makro CONNECT ... slot (*this, .... is here not okay..
937 LNBPage
->lnb_list
->selchanged
.connect( slot( *LNBPage
, &eLNBPage::lnbChanged
) );
938 LNBPage
->lnb_list
->selchanged
.connect( slot( *DiSEqCPage
, &eDiSEqCPage::lnbChanged
) );
939 // CONNECT( DiSEqCPage->next->selected, eLNBSetup::onNext );
940 CONNECT( LNBPage
->next
->selected
, eLNBSetup::onNext
);
941 CONNECT( DiSEqCPage
->prev
->selected
, eLNBSetup::onPrev
);
942 CONNECT( LNBPage
->save
->selected
, eLNBSetup::onSave
);
943 CONNECT( DiSEqCPage
->save
->selected
, eLNBSetup::onSave
);
947 void eLNBSetup::onSave()
949 eLNB
*p
= (eLNB
*) LNBPage
->lnb_list
->getCurrent()->getKey();
951 if ( !p
) // then we must create new LNB; (New is selected)
953 eTransponderList::getInstance()->getLNBs().push_back( eLNB( *eTransponderList::getInstance() ) ); // add new LNB
954 p
= &eTransponderList::getInstance()->getLNBs().back(); // get address from the new lnb
955 p
->getDiSEqC().setRotorDefaultOptions();
956 // eDebug("now we have a new LNB Created = %p", p );
959 eDebug("do not create LNB");*/
961 p
->setLOFLo( LNBPage
->lofL
->getNumber() * 1000 );
962 p
->setLOFHi( LNBPage
->lofH
->getNumber() * 1000 );
963 p
->setLOFThreshold( LNBPage
->threshold
->getNumber() * 1000 );
964 p
->setIncreasedVoltage( LNBPage
->increased_voltage
->isChecked() );
965 p
->set12VOut( LNBPage
->relais_12V_out
->isChecked() );
967 p
->getDiSEqC().MiniDiSEqCParam
= (eDiSEqC::tMiniDiSEqCParam
) (int) DiSEqCPage
->MiniDiSEqCParam
->getCurrent()->getKey();
968 p
->getDiSEqC().DiSEqCMode
= (eDiSEqC::tDiSEqCMode
) (int) DiSEqCPage
->DiSEqCMode
->getCurrent()->getKey();
969 p
->getDiSEqC().DiSEqCParam
= (int) DiSEqCPage
->DiSEqCParam
->getCurrent()->getKey();
970 p
->getDiSEqC().DiSEqCRepeats
= (int) DiSEqCPage
->DiSEqCRepeats
->getCurrent()->getKey();
971 p
->getDiSEqC().FastDiSEqC
= (int) DiSEqCPage
->FastDiSEqC
->isChecked();
972 p
->getDiSEqC().SeqRepeat
= DiSEqCPage
->SeqRepeat
->isChecked();
973 p
->getDiSEqC().SwapCmds
= DiSEqCPage
->SwapCmds
->isChecked();
974 p
->getDiSEqC().uncommitted_cmd
= (int)DiSEqCPage
->ucInput
->getCurrent()->getKey();
976 if ( p
!= sat
->getLNB() ) // the satellite must removed from the old lnb and inserts in the new
978 p
->addSatellite( sat
->getLNB()->takeSatellite( sat
) );
979 /* eDebug("remove satellite from lnb... now %i satellites left", sat->getLNB()->getSatelliteList().size() );
980 eDebug("added satellite to lnb... now %i satellites in lnb", p->getSatelliteList().size() ); */
982 if ( !sat
->getLNB()->getSatelliteList().size() ) // the lnb that have no more satellites must delete
984 // eDebug("delete no more used lnb");
985 eTransponderList::getInstance()->getLNBs().remove( *sat
->getLNB() );
988 eDebug("lnb not deleted");*/
990 // now we must set the LNB Pointer in eSatellite...
993 close(-1); // we must reposition control elements in eSatelliteConfigurationManager
996 close(0); // we must not reposition...
1000 eServiceInterface::getInstance()->stop();
1001 eFrontend::getInstance()->savePower();
1002 eZapMain::getInstance()->playService(service
, eZapMain::psDontAdd
|eZapMain::psSetMode
);
1005 eFrontend::getInstance()->InitDiSEqC();
1006 eTransponderList::getInstance()->writeLNBData();
1007 eConfig::getInstance()->flush();
1010 int eLNBSetup::eventHandler(const eWidgetEvent
&event
)
1014 case eWidgetEvent::execBegin
:
1016 LNBPage
->lnbChanged( LNBPage
->lnb_list
->getCurrent() ); // fake selchanged for initialize lofl, lofh, threshold...
1017 DiSEqCPage
->lnbChanged( LNBPage
->lnb_list
->getCurrent() ); // fake selchanged for initialize lofl, lofh, threshold...
1022 return eWindow::eventHandler(event
);
1025 struct eLNBPage::selectlnb
1030 selectlnb(const eLNB
* lnb
, eComboBox
* lb
): lnb(lnb
), lb(lb
)
1034 bool operator()(const eListBoxEntryText
& s
)
1036 if ( lnb
== (eLNB
*)s
.getKey() )
1038 lb
->setCurrent(&s
,true);
1045 eLNBPage::eLNBPage( eWidget
*parent
, eSatellite
* sat
)
1046 :eWidget(parent
), sat(sat
)
1049 LCDTitle
=parent
->LCDTitle
;
1050 LCDElement
=parent
->LCDElement
;
1052 lnb_list
= new eComboBox(this,8);
1053 lnb_list
->setName("lnblist");
1055 eLabel
*l
= new eLabel(this);
1056 l
->setName("lLofL");
1057 lofL
= new eNumber(this, 5, 0, 9, 1, 0, 0, l
); // todo descr label im skin mit name versehen für lcd anzeige
1058 lofL
->setName("lofL");
1060 l
= new eLabel(this);
1061 l
->setName("lLofH");
1062 lofH
= new eNumber(this, 5, 0, 9, 1, 0, 0, l
); // todo descr label im skin mit name versehen für lcd anzeige
1063 lofH
->setName("lofH");
1065 l
= new eLabel(this);
1066 l
->setName("lThreshold");
1067 threshold
= new eNumber(this, 5, 0 ,9, 1, 0, 0, l
);
1068 threshold
->setName("threshold");
1070 increased_voltage
= new eCheckbox( this );
1071 increased_voltage
->setName("increased_voltage");
1073 relais_12V_out
= new eCheckbox( this );
1074 relais_12V_out
->setName("relais_12V_out");
1076 save
= new eButton(this);
1077 save
->setName("save");
1079 next
= new eButton(this);
1080 next
->setName("next");
1082 eSkin
*skin
=eSkin::getActive();
1083 if (skin
->build(this, "eLNBPage"))
1084 eFatal("skin load of \"eLNBPage\" failed");
1089 for ( std::list
<eLNB
>::iterator
it( eTransponderList::getInstance()->getLNBs().begin() ); it
!= eTransponderList::getInstance()->getLNBs().end(); it
++)
1090 new eListBoxEntryText(*lnb_list
, eString().sprintf("LNB %i", i
++), (void*)&(*it
) );
1092 // fill with new lnbs
1094 new eListBoxEntryText(*lnb_list
, eString().sprintf("LNB %i", i
++), (void*) 0 );
1096 lnb_list
->forEachEntry( selectlnb( sat
->getLNB(), lnb_list
) );
1098 CONNECT( lofL
->selected
, eLNBPage::numSelected
);
1099 CONNECT( lofH
->selected
, eLNBPage::numSelected
);
1100 CONNECT( threshold
->selected
, eLNBPage::numSelected
);
1102 if ( eSystemInfo::getInstance()->getHwType() != eSystemInfo::DM7020
)
1103 relais_12V_out
->hide();
1104 // on exec we begin in eventHandler execBegin
1107 void eLNBPage::lnbChanged( eListBoxEntryText
*lnb
)
1114 if ( lnb
&& lnb
->getKey() )
1116 l1
= ((eLNB
*)lnb
->getKey())->getLOFLo();
1117 l2
= ((eLNB
*)lnb
->getKey())->getLOFHi();
1118 l3
= ((eLNB
*)lnb
->getKey())->getLOFThreshold();
1119 incVoltage
= ((eLNB
*)lnb
->getKey())->getIncreasedVoltage();
1120 relais12V
= ((eLNB
*)lnb
->getKey())->get12VOut();
1122 lofL
->setNumber( l1
/ 1000 );
1123 lofH
->setNumber( l2
/ 1000 );
1124 increased_voltage
->setCheck( incVoltage
);
1125 relais_12V_out
->setCheck( relais12V
);
1126 threshold
->setNumber( l3
/ 1000 );
1129 void eLNBPage::numSelected(int*)
1131 focusNext( eWidget::focusDirNext
);
1134 eDiSEqCPage::eDiSEqCPage( eWidget
*parent
, eSatellite
*sat
)
1135 :eWidget(parent
), sat(sat
)
1137 init_eDiSEqCPage(parent
, sat
);
1140 void eDiSEqCPage::init_eDiSEqCPage( eWidget
*parent
, eSatellite
*sat
)
1143 LCDTitle
=parent
->LCDTitle
;
1144 LCDElement
=parent
->LCDElement
;
1146 eLabel
*l
= new eLabel(this);
1147 l
->setName("lMiniDiSEqCPara");
1148 MiniDiSEqCParam
= new eComboBox( this, 4, l
);
1149 MiniDiSEqCParam
->setName("MiniDiSEqCParam");
1150 new eListBoxEntryText( *MiniDiSEqCParam
, _("None"), (void*)eDiSEqC::NO
, 0, _("sends no tone burst") );
1151 new eListBoxEntryText( *MiniDiSEqCParam
, "A", (void*)eDiSEqC::A
, 0, _("sends modulated tone burst") );
1152 new eListBoxEntryText( *MiniDiSEqCParam
, "B", (void*)eDiSEqC::B
, 0, _("sends unmodulated tone burst") );
1154 l
= new eLabel(this);
1155 l
->setName("lDiSEqCMode");
1156 DiSEqCMode
= new eComboBox( this, 4, l
);
1157 DiSEqCMode
->setName("DiSEqCMode");
1158 // *DiSEqCMode... here we use the operator eListBox* from eComboBox !
1159 new eListBoxEntryText( *DiSEqCMode
, "None", (void*)eDiSEqC::NONE
, 0, _("Disable DiSEqC") );
1160 new eListBoxEntryText( *DiSEqCMode
, "Version 1.0", (void*)eDiSEqC::V1_0
, 0, _("Use DiSEqC Version 1.0") );
1161 new eListBoxEntryText( *DiSEqCMode
, "Version 1.1", (void*)eDiSEqC::V1_1
, 0, _("Use DiSEqC Version 1.1") );
1162 new eListBoxEntryText( *DiSEqCMode
, "Version 1.2", (void*)eDiSEqC::V1_2
, 0, _("Use DiSEqC Version 1.2") );
1163 // no SMATV at the moment... we can do this when anyone ask...
1164 // new eListBoxEntryText( *DiSEqCMode, "SMATV", (void*)eDiSEqC::SMATV, 0, _("Use SMATV Remote Tuning") );
1166 lDiSEqCParam
= new eLabel(this);
1167 lDiSEqCParam
->setName("lDiSEqCParam");
1168 DiSEqCParam
= new eComboBox( this, 4, lDiSEqCParam
);
1169 DiSEqCParam
->setName("DiSEqCParam");
1170 new eListBoxEntryText( *DiSEqCParam
, "A/A", (void*)eDiSEqC::AA
, 0, _("sends DiSEqC cmd A/A") );
1171 new eListBoxEntryText( *DiSEqCParam
, "A/B", (void*)eDiSEqC::AB
, 0, _("sends DiSEqC cmd A/B") );
1172 new eListBoxEntryText( *DiSEqCParam
, "B/A", (void*)eDiSEqC::BA
, 0, _("sends DiSEqC cmd B/A") );
1173 new eListBoxEntryText( *DiSEqCParam
, "B/B", (void*)eDiSEqC::BB
, 0, _("sends DiSEqC cmd B/B") );
1174 new eListBoxEntryText( *DiSEqCParam
, "None", (void*)eDiSEqC::SENDNO
, 0, _("sends no committed DiSEqC cmd") );
1175 new eListBoxEntryText( *DiSEqCParam
, "1", (void*)0xF0, 0, _("sends switch cmd 1") );
1176 new eListBoxEntryText( *DiSEqCParam
, "2", (void*)0xF1, 0, _("sends switch cmd 2") );
1177 new eListBoxEntryText( *DiSEqCParam
, "3", (void*)0xF2, 0, _("sends switch cmd 3") );
1178 new eListBoxEntryText( *DiSEqCParam
, "4", (void*)0xF3, 0, _("sends switch cmd 4") );
1179 new eListBoxEntryText( *DiSEqCParam
, "5", (void*)0xF4, 0, _("sends switch cmd 5") );
1180 new eListBoxEntryText( *DiSEqCParam
, "6", (void*)0xF5, 0, _("sends switch cmd 6") );
1181 new eListBoxEntryText( *DiSEqCParam
, "7", (void*)0xF6, 0, _("sends switch cmd 7") );
1182 new eListBoxEntryText( *DiSEqCParam
, "8", (void*)0xF7, 0, _("sends switch cmd 8") );
1183 new eListBoxEntryText( *DiSEqCParam
, "9", (void*)0xF8, 0, _("sends switch cmd 9") );
1184 new eListBoxEntryText( *DiSEqCParam
, "10", (void*)0xF9, 0, _("sends switch cmd 10") );
1185 new eListBoxEntryText( *DiSEqCParam
, "11", (void*)0xFA, 0, _("sends switch cmd 11") );
1186 new eListBoxEntryText( *DiSEqCParam
, "12", (void*)0xFB, 0, _("sends switch cmd 12") );
1187 new eListBoxEntryText( *DiSEqCParam
, "13", (void*)0xFC, 0, _("sends switch cmd 13") );
1188 new eListBoxEntryText( *DiSEqCParam
, "14", (void*)0xFD, 0, _("sends switch cmd 14") );
1189 new eListBoxEntryText( *DiSEqCParam
, "15", (void*)0xFE, 0, _("sends switch cmd 15") );
1190 new eListBoxEntryText( *DiSEqCParam
, "16", (void*)0xFF, 0, _("sends switch cmd 16") );
1192 lDiSEqCRepeats
= new eLabel(this);
1193 lDiSEqCRepeats
->setName("lDiSEqCRepeats");
1194 DiSEqCRepeats
= new eComboBox( this, 4, lDiSEqCRepeats
);
1195 DiSEqCRepeats
->setName("DiSEqCRepeats");
1196 new eListBoxEntryText( *DiSEqCRepeats
, _("None"), (void*)0, 0, _("sends no DiSEqC repeats") );
1197 new eListBoxEntryText( *DiSEqCRepeats
, _("One"), (void*)1, 0, _("sends one repeat") );
1198 new eListBoxEntryText( *DiSEqCRepeats
, _("Two"), (void*)2, 0, _("sends two repeats") );
1199 new eListBoxEntryText( *DiSEqCRepeats
, _("Three"), (void*)3, 0, _("sends three repeats") );
1201 lucInput
= new eLabel(this);
1202 lucInput
->setName("lucInput");
1204 ucInput
= new eComboBox( this, 8, lucInput
);
1205 ucInput
->setName("ucInput");
1206 new eListBoxEntryText( *ucInput
, _("None"), (void*)0, 0, _("sends no uncommitted switch command") );
1207 new eListBoxEntryText( *ucInput
, _("Input 1"), (void*)240, 0, _("select uncommitted switch Input 1") );
1208 new eListBoxEntryText( *ucInput
, _("Input 2"), (void*)241, 0, _("select uncommitted switch Input 2") );
1209 new eListBoxEntryText( *ucInput
, _("Input 3"), (void*)242, 0, _("select uncommitted switch Input 3") );
1210 new eListBoxEntryText( *ucInput
, _("Input 4"), (void*)243, 0, _("select uncommitted switch Input 4") );
1211 new eListBoxEntryText( *ucInput
, _("Input 5"), (void*)244, 0, _("select uncommitted switch Input 5") );
1212 new eListBoxEntryText( *ucInput
, _("Input 6"), (void*)245, 0, _("select uncommitted switch Input 6") );
1213 new eListBoxEntryText( *ucInput
, _("Input 7"), (void*)246, 0, _("select uncommitted switch Input 7") );
1214 new eListBoxEntryText( *ucInput
, _("Input 8"), (void*)247, 0, _("select uncommitted switch Input 8") );
1215 new eListBoxEntryText( *ucInput
, _("Input 9"), (void*)248, 0, _("select uncommitted switch Input 9") );
1216 new eListBoxEntryText( *ucInput
, _("Input 10"), (void*)249, 0, _("select uncommitted switch Input 10") );
1217 new eListBoxEntryText( *ucInput
, _("Input 11"), (void*)250, 0, _("select uncommitted switch Input 11") );
1218 new eListBoxEntryText( *ucInput
, _("Input 12"), (void*)251, 0, _("select uncommitted switch Input 12") );
1219 new eListBoxEntryText( *ucInput
, _("Input 13"), (void*)252, 0, _("select uncommitted switch Input 13") );
1220 new eListBoxEntryText( *ucInput
, _("Input 14"), (void*)253, 0, _("select uncommitted switch Input 14") );
1221 new eListBoxEntryText( *ucInput
, _("Input 15"), (void*)254, 0, _("select uncommitted switch Input 15") );
1222 new eListBoxEntryText( *ucInput
, _("Input 16"), (void*)255, 0, _("select uncommitted switch Input 16") );
1224 SeqRepeat
= new eCheckbox(this);
1225 SeqRepeat
->setName("SeqRepeat");
1227 FastDiSEqC
= new eCheckbox(this);
1228 FastDiSEqC
->setName("FastDiSEqC");
1230 SwapCmds
= new eCheckbox(this);
1231 SwapCmds
->setName("SwapCmds");
1233 /* next = new eButton(this);
1234 next->setName("next");*/
1236 prev
= new eButton(this);
1237 prev
->setName("prev");
1239 save
= new eButton(this);
1240 save
->setName("save");
1242 eSkin
*skin
=eSkin::getActive();
1243 if (skin
->build(this, "eDiSEqCPage"))
1244 eFatal("skin load of \"eDiSEqCPage\" failed");
1246 CONNECT( DiSEqCMode
->selchanged
, eDiSEqCPage::DiSEqCModeChanged
);
1247 addActionMap(&i_focusActions
->map
);
1250 void eDiSEqCPage::numSelected(int*)
1252 focusNext( eWidget::focusDirNext
);
1255 void eDiSEqCPage::DiSEqCModeChanged( eListBoxEntryText
* e
)
1257 switch( (int) e
->getKey() )
1262 lDiSEqCRepeats
->show();
1263 DiSEqCRepeats
->show();
1268 lDiSEqCParam
->show();
1270 DiSEqCParam
->show();
1274 switch ( (int) e
->getKey() )
1280 DiSEqCParam
->hide();
1281 lDiSEqCParam
->hide();
1285 lDiSEqCRepeats
->hide();
1286 DiSEqCRepeats
->hide();
1290 case eDiSEqC::V1_2
: // hide nothing
1295 void eDiSEqCPage::lnbChanged( eListBoxEntryText
*lnb
)
1297 if ( lnb
&& lnb
->getKey() )
1299 eDiSEqC
&diseqc
= ((eLNB
*)lnb
->getKey())->getDiSEqC();
1300 DiSEqCMode
->setCurrent( (void*) (int) diseqc
.DiSEqCMode
);
1301 MiniDiSEqCParam
->setCurrent( (void*) diseqc
.MiniDiSEqCParam
);
1302 DiSEqCParam
->setCurrent( (void*) diseqc
.DiSEqCParam
);
1303 DiSEqCRepeats
->setCurrent( (void*) diseqc
.DiSEqCRepeats
);
1304 FastDiSEqC
->setCheck( (int) diseqc
.FastDiSEqC
);
1305 SeqRepeat
->setCheck( (int) diseqc
.SeqRepeat
);
1306 SwapCmds
->setCheck( (int) diseqc
.SwapCmds
);
1307 ucInput
->setCurrent( (void*) diseqc
.uncommitted_cmd
);
1311 DiSEqCMode
->setCurrent( 0 );
1312 DiSEqCParam
->setCurrent( 0 );
1313 MiniDiSEqCParam
->setCurrent( 0 );
1314 DiSEqCRepeats
->setCurrent( 0 );
1315 FastDiSEqC
->setCheck( 0 );
1316 SeqRepeat
->setCheck( 0 );
1317 SwapCmds
->setCheck( 0 );
1318 ucInput
->setCurrent( (void*) 0 );
1320 DiSEqCModeChanged( (eListBoxEntryText
*) DiSEqCMode
->getCurrent() );