changes for identify -C and -T services
[enigma2.git] / lib / dvb / frontend.cpp
index eba474e8046d031060f643d214c60e9c84fe15f3..51d21105da4fd62e4e4be9d0aa5ee4bb84dacc6a 100644 (file)
@@ -292,7 +292,11 @@ RESULT eDVBFrontendParameters::getHash(unsigned long &hash) const
                return 0;
        }
        case iDVBFrontend::feCable:
+               hash = 0xFFFF0000;
+               return 0;
        case iDVBFrontend::feTerrestrial:
+               hash = 0xEEEE0000;
+               return 0;
        default:
                return -1;
        }
@@ -422,8 +426,11 @@ int eDVBFrontend::closeFrontend()
        if (m_fd >= 0)
        {
                eDebug("close frontend %d", m_fe);
+               m_tuneTimer->stop();
                setTone(iDVBFrontend::toneOff);
                setVoltage(iDVBFrontend::voltageOff);
+               if (m_sec)
+                       m_sec->setRotorMoving(false);
                ::close(m_fd);
                m_fd=-1;
                m_data[0] = m_data[1] = m_data[2] = -1;
@@ -800,6 +807,9 @@ void fillDictWithTerrestrialData(PyObject *dict, const FRONTENDPARAMETERS &parm)
        PutToDict(dict, "guard_interval", tmp);
        switch (parm_u_ofdm_hierarchy_information)
        {
+               case HIERARCHY_NONE:
+                       tmp = "HIERARCHY_NONE";
+                       break;
                case HIERARCHY_1:
                        tmp = "HIERARCHY_1";
                        break;
@@ -1465,6 +1475,9 @@ RESULT eDVBFrontend::prepare_terrestrial(const eDVBFrontendParametersTerrestrial
        }
        switch (feparm.hierarchy)
        {
+               case eDVBFrontendParametersTerrestrial::Hierarchy::HNone:
+                       parm_u_ofdm_hierarchy_information = HIERARCHY_NONE;
+                       break;
                case eDVBFrontendParametersTerrestrial::Hierarchy::H1:
                        parm_u_ofdm_hierarchy_information = HIERARCHY_1;
                        break;
@@ -1479,6 +1492,19 @@ RESULT eDVBFrontend::prepare_terrestrial(const eDVBFrontendParametersTerrestrial
                        parm_u_ofdm_hierarchy_information = HIERARCHY_AUTO;
                        break;
        }
+       switch (feparm.inversion)
+       {
+       case eDVBFrontendParametersTerrestrial::Inversion::On:
+               parm_inversion = INVERSION_ON;
+               break;
+       case eDVBFrontendParametersTerrestrial::Inversion::Off:
+               parm_inversion = INVERSION_OFF;
+               break;
+       default:
+       case eDVBFrontendParametersTerrestrial::Inversion::Unknown:
+               parm_inversion = INVERSION_AUTO;
+               break;
+       }
        return 0;
 }
 
@@ -1507,6 +1533,7 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where)
                        return -EINVAL;
                }
                res=prepare_sat(feparm);
+               m_sec->setRotorMoving(false);
                break;
        }
        case feCable: