+ long linked_prev_ptr=-1, linked_next_ptr=-1, linked_csw=-1, linked_ucsw=-1, linked_toneburst=-1,
+ fe_satpos_depends_ptr=-1, fe_rotor_pos=-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);
+ fe->getData(eDVBFrontend::SATPOS_DEPENDS_PTR, fe_satpos_depends_ptr);
+
+ // first we search the linkage base frontend and check if any tuner in prev direction is used
+ while (linked_prev_ptr != -1)
+ {
+ eDVBRegisteredFrontend *linked_fe = (eDVBRegisteredFrontend*) linked_prev_ptr;
+ if (linked_fe->m_inuse)
+ linked_in_use = true;
+ fe = linked_fe->m_frontend;
+ linked_fe->m_frontend->getData(eDVBFrontend::LINKED_PREV_PTR, (long&)linked_prev_ptr);
+ }
+
+ fe->getData(eDVBFrontend::ROTOR_POS, fe_rotor_pos);
+
+ // now check also the linked tuners is in use
+ while (!linked_in_use && linked_next_ptr != -1)
+ {
+ eDVBRegisteredFrontend *linked_fe = (eDVBRegisteredFrontend*) linked_next_ptr;
+ if (linked_fe->m_inuse)
+ linked_in_use = true;
+ linked_fe->m_frontend->getData(eDVBFrontend::LINKED_NEXT_PTR, (long&)linked_next_ptr);
+ }
+
+ // when a linked in use tuner is found we get the tuner data...
+ if (linked_in_use)
+ {
+ fe->getData(eDVBFrontend::CSW, linked_csw);
+ fe->getData(eDVBFrontend::UCSW, linked_ucsw);
+ fe->getData(eDVBFrontend::TONEBURST, linked_toneburst);
+ }