git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix DVB-T inversion
[enigma2.git]
/
lib
/
dvb
/
sec.cpp
diff --git
a/lib/dvb/sec.cpp
b/lib/dvb/sec.cpp
index 732946111cbf305b0fdb484675ddd7cce4ecf904..f24783c89fb7e62f0834f75461a893d740797be8 100644
(file)
--- a/
lib/dvb/sec.cpp
+++ b/
lib/dvb/sec.cpp
@@
-95,7
+95,7
@@
eDVBSatelliteEquipmentControl::eDVBSatelliteEquipmentControl(eSmartPtrList<eDVBR
int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite &sat, iDVBFrontend *fe, int frontend_id )
{
int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite &sat, iDVBFrontend *fe, int frontend_id )
{
- int ret=0;
+ int ret=0
, satcount=0
;
for (int idx=0; idx <= m_lnbidx; ++idx )
{
for (int idx=0; idx <= m_lnbidx; ++idx )
{
@@
-104,6
+104,8
@@
int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite
{
eDVBSatelliteDiseqcParameters &di_param = lnb_param.m_diseqc_parameters;
{
eDVBSatelliteDiseqcParameters &di_param = lnb_param.m_diseqc_parameters;
+ satcount += lnb_param.m_satellites.size();
+
std::map<int, eDVBSatelliteSwitchParameters>::iterator sit =
lnb_param.m_satellites.find(sat.orbital_position);
if ( sit != lnb_param.m_satellites.end())
std::map<int, eDVBSatelliteSwitchParameters>::iterator sit =
lnb_param.m_satellites.find(sat.orbital_position);
if ( sit != lnb_param.m_satellites.end())
@@
-138,20
+140,14
@@
int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite
csw |= band;
if ( di_param.m_diseqc_mode == eDVBSatelliteDiseqcParameters::V1_2 ) // ROTOR
csw |= band;
if ( di_param.m_diseqc_mode == eDVBSatelliteDiseqcParameters::V1_2 ) // ROTOR
- {
- rotor=true;
- if ( curRotorPos == sat.orbital_position )
- ret=20; // rotor on correct orbpos = prio 20
- else
- ret=10; // rotor must turn to correct orbpos = prio 10
- }
- else
- ret = 30; // no rotor = prio 30
+ rotor = true;
+
+ ret = 1000;
}
else
{
csw = band;
}
else
{
csw = band;
- ret =
40; // no diseqc = prio 40
+ ret =
2000;
}
if (linked_to != -1) // check for linked tuners..
}
if (linked_to != -1) // check for linked tuners..
@@
-221,6
+217,8
@@
int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite
}
}
}
}
}
}
+ if (ret && satcount)
+ ret -= (satcount-1);
return ret;
}
return ret;
}
@@
-504,7
+502,7
@@
RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
++loops;
for ( int i=0; i < di_param.m_repeats; ++i )
++loops;
for ( int i=0; i < di_param.m_repeats; ++i )
- loops *= 2;
+
loops *= 2;
for ( int i = 0; i < loops;) // fill commands...
{
for ( int i = 0; i < loops;) // fill commands...
{
@@
-522,10
+520,10
@@
RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
diseqc.data[2] = 0x38;
diseqc.data[3] = csw;
}
diseqc.data[2] = 0x38;
diseqc.data[3] = csw;
}
- else
+ else
// no committed command confed.. so send uncommitted..
{
{
- diseqc.data[2] = 0x
00
;
- diseqc.data[3] =
0x00
;
+ diseqc.data[2] = 0x
39
;
+ diseqc.data[3] =
ucsw
;
}
sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );
}
sec_sequence.push_back( eSecCommand(eSecCommand::SEND_DISEQC, diseqc) );