+void eDVBFrontend::setRotorData(int pos, int cmd)
+{
+ m_data[ROTOR_CMD] = cmd;
+ m_data[ROTOR_POS] = pos;
+ if ( m_data[SATPOS_DEPENDS_PTR] != -1 )
+ {
+ eDVBRegisteredFrontend *satpos_depends_to_fe = (eDVBRegisteredFrontend*) m_data[SATPOS_DEPENDS_PTR];
+ satpos_depends_to_fe->m_frontend->m_data[ROTOR_CMD] = cmd;
+ satpos_depends_to_fe->m_frontend->m_data[ROTOR_POS] = pos;
+ }
+ else
+ {
+ eDVBRegisteredFrontend *next = (eDVBRegisteredFrontend *)m_data[LINKED_NEXT_PTR];
+ while ( (int)next != -1 )
+ {
+ next->m_frontend->m_data[ROTOR_CMD] = cmd;
+ next->m_frontend->m_data[ROTOR_POS] = pos;
+ next = (eDVBRegisteredFrontend *)next->m_frontend->m_data[LINKED_NEXT_PTR];
+ }
+ eDVBRegisteredFrontend *prev = (eDVBRegisteredFrontend *)m_data[LINKED_PREV_PTR];
+ while ( (int)prev != -1 )
+ {
+ prev->m_frontend->m_data[ROTOR_CMD] = cmd;
+ prev->m_frontend->m_data[ROTOR_POS] = pos;
+ prev = (eDVBRegisteredFrontend *)prev->m_frontend->m_data[LINKED_PREV_PTR];
+ }
+ }
+}
+