add missing qam64 for terrestrial
[enigma2.git] / lib / dvb / frontend.cpp
index eba474e8046d031060f643d214c60e9c84fe15f3..97d8553eb2f565fe8f67c1e17c3c4f74d2e459bd 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;
@@ -758,6 +765,9 @@ void fillDictWithTerrestrialData(PyObject *dict, const FRONTENDPARAMETERS &parm)
        case QAM_16:
                tmp = "QAM_16";
                break;
+       case QAM_64:
+               tmp = "QAM_64";
+               break;
        default:
        case QAM_AUTO:
                tmp = "QAM_AUTO";
@@ -800,6 +810,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;
@@ -1426,6 +1439,9 @@ RESULT eDVBFrontend::prepare_terrestrial(const eDVBFrontendParametersTerrestrial
        case eDVBFrontendParametersTerrestrial::Modulation::QAM16:
                parm_u_ofdm_constellation = QAM_16;
                break;
+       case eDVBFrontendParametersTerrestrial::Modulation::QAM64:
+               parm_u_ofdm_constellation = QAM_64;
+               break;
        default:
        case eDVBFrontendParametersTerrestrial::Modulation::Auto:
                parm_u_ofdm_constellation = QAM_AUTO;
@@ -1465,6 +1481,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 +1498,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 +1539,7 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where)
                        return -EINVAL;
                }
                res=prepare_sat(feparm);
+               m_sec->setRotorMoving(false);
                break;
        }
        case feCable: