bool direct_connected = m_not_linked_slot_mask & slot_id;
int score=0, satcount=0;
long linked_prev_ptr=-1, linked_next_ptr=-1, linked_csw=-1, linked_ucsw=-1, linked_toneburst=-1,
bool direct_connected = m_not_linked_slot_mask & slot_id;
int score=0, satcount=0;
long linked_prev_ptr=-1, linked_next_ptr=-1, linked_csw=-1, linked_ucsw=-1, linked_toneburst=-1,
bool linked_in_use = false;
eSecDebugNoSimulate("direct_connected %d", !!direct_connected);
fe->getData(eDVBFrontend::LINKED_PREV_PTR, linked_prev_ptr);
fe->getData(eDVBFrontend::LINKED_NEXT_PTR, linked_next_ptr);
bool linked_in_use = false;
eSecDebugNoSimulate("direct_connected %d", !!direct_connected);
fe->getData(eDVBFrontend::LINKED_PREV_PTR, linked_prev_ptr);
fe->getData(eDVBFrontend::LINKED_NEXT_PTR, linked_next_ptr);
// first we search the linkage base frontend and check if any tuner in prev direction is used
while (linked_prev_ptr != -1)
// first we search the linkage base frontend and check if any tuner in prev direction is used
while (linked_prev_ptr != -1)
csw = di_param.m_committed_cmd,
ucsw = di_param.m_uncommitted_cmd,
csw = di_param.m_committed_cmd,
ucsw = di_param.m_uncommitted_cmd,
( diseqc && (ucsw != linked_ucsw || toneburst != linked_toneburst) ) ||
( rotor && rotor_pos != sat.orbital_position ) )
{
( diseqc && (ucsw != linked_ucsw || toneburst != linked_toneburst) ) ||
( rotor && rotor_pos != sat.orbital_position ) )
{
eSecDebugNoSimulate("ret2 %d", ret);
if (ret) // special case when this tuner is linked to a satpos dependent tuner
{
eSecDebugNoSimulate("ret2 %d", ret);
if (ret) // special case when this tuner is linked to a satpos dependent tuner
{
fe->getData(eDVBFrontend::SATPOS_DEPENDS_PTR, satpos_depends_ptr);
if (satpos_depends_ptr != -1)
{
eDVBRegisteredFrontend *satpos_depends_to_fe = (eDVBRegisteredFrontend*) satpos_depends_ptr;
fe->getData(eDVBFrontend::SATPOS_DEPENDS_PTR, satpos_depends_ptr);
if (satpos_depends_ptr != -1)
{
eDVBRegisteredFrontend *satpos_depends_to_fe = (eDVBRegisteredFrontend*) satpos_depends_ptr;
- long satpos_depends_rotor_pos;
- satpos_depends_to_fe->m_frontend->getData(eDVBFrontend::ROTOR_POS, satpos_depends_rotor_pos);
- if (!rotor || satpos_depends_rotor_pos == -1 /* we dont know the rotor position yet */
- || satpos_depends_rotor_pos != sat.orbital_position ) // not the same orbital position?
+ satpos_depends_to_fe->m_frontend->getData(eDVBFrontend::ROTOR_POS, rotor_pos);
+ if (!rotor || rotor_pos == -1 /* we dont know the rotor position yet */
+ || rotor_pos != sat.orbital_position ) // not the same orbital position?
if (satpos_depends_to_fe->m_inuse) // if the dependent frontend is in use?
{
if (!rotor || rotor_pos != sat.orbital_position) // new orbital position not equal to current orbital pos?
if (satpos_depends_to_fe->m_inuse) // if the dependent frontend is in use?
{
if (!rotor || rotor_pos != sat.orbital_position) // new orbital position not equal to current orbital pos?
}
}
else // current fe is dependent of another tuner ... (so this fe can't turn the rotor!)
{
// get current orb pos of the tuner with rotor connection
}
}
else // current fe is dependent of another tuner ... (so this fe can't turn the rotor!)
{
// get current orb pos of the tuner with rotor connection
- long satpos_depends_rotor_pos;
- satpos_depends_to_fe->m_frontend->getData(eDVBFrontend::ROTOR_POS, satpos_depends_rotor_pos);
- if (!rotor || satpos_depends_rotor_pos == -1 /* we dont know the rotor position yet */
- || satpos_depends_rotor_pos != sat.orbital_position ) // not the same orbital position?
+ satpos_depends_to_fe->m_frontend->getData(eDVBFrontend::ROTOR_POS, rotor_pos);
+ if (!rotor || rotor_pos == -1 /* we dont know the rotor position yet */
+ || rotor_pos != sat.orbital_position ) // not the same orbital position?
lnb_param.m_lof_hi : lnb_param.m_lof_lo;
int tuner_freq = abs(sat.frequency - lof);
if (tuner_freq < 900000 || tuner_freq > 2200000)
lnb_param.m_lof_hi : lnb_param.m_lof_lo;
int tuner_freq = abs(sat.frequency - lof);
if (tuner_freq < 900000 || tuner_freq > 2200000)