fix no more working tuner resource handling
[enigma2.git] / lib / service / servicedvb.cpp
index a8485fa4888c9cd4a7d6f706b3934fb8f2601e1a..307c317fecbcd55330f5b03f3ce34d1e4a94a320 100644 (file)
@@ -166,15 +166,25 @@ void PutSatelliteDataToDict(ePyObject &dict, eDVBFrontendParametersSatellite &fe
                default:
                case eDVBFrontendParametersSatellite::System::DVB_S: tmp="DVB-S"; break;
                case eDVBFrontendParametersSatellite::System::DVB_S2:
-                       switch(feparm.roll_off)
+                       switch(feparm.rolloff)
                        {
+                               default:
                                case eDVBFrontendParametersSatellite::RollOff::alpha_0_35: tmp="0.35"; break;
                                case eDVBFrontendParametersSatellite::RollOff::alpha_0_25: tmp="0.25"; break;
                                case eDVBFrontendParametersSatellite::RollOff::alpha_0_20: tmp="0.20"; break;
-                               default:
-                               case eDVBFrontendParametersSatellite::RollOff::alpha_auto: tmp="AUTO"; break;
                        }
                        PutToDict(dict, "roll off", tmp);
+                       if (feparm.modulation == eDVBFrontendParametersSatellite::Modulation::M8PSK)
+                       {
+                               switch(feparm.pilot)
+                               {
+                                       case eDVBFrontendParametersSatellite::Pilot::On: tmp="ON"; break;
+                                       case eDVBFrontendParametersSatellite::Pilot::Off: tmp="OFF"; break;
+                                       default:
+                                       case eDVBFrontendParametersSatellite::Pilot::Unknown: tmp="AUTO"; break;
+                               }
+                               PutToDict(dict, "pilot", tmp);
+                       }
                        tmp="DVB-S2";
                        break;
        }
@@ -668,7 +678,11 @@ eServiceFactoryDVB::eServiceFactoryDVB()
        
        eServiceCenter::getPrivInstance(sc);
        if (sc)
-               sc->addServiceFactory(eServiceFactoryDVB::id, this);
+       {
+               std::list<std::string> extensions;
+               extensions.push_back("ts");
+               sc->addServiceFactory(eServiceFactoryDVB::id, this, extensions);
+       }
 
        m_StaticServiceDVBInfo = new eStaticServiceDVBInformation;
        m_StaticServiceDVBBouquetInfo = new eStaticServiceDVBBouquetInformation;
@@ -1096,6 +1110,7 @@ void eDVBServicePlay::serviceEvent(int event)
                        else
                                m_event_handler.start(m_demux, sid);
                }
+               m_event((iPlayableService*)this, evTunedIn);
                break;
        }
        case eDVBServicePMTHandler::eventNoResources:
@@ -1216,8 +1231,8 @@ RESULT eDVBServicePlay::stop()
                        {
                                int perc = play_position * 100LL / length;
                        
-                                       /* only store last play position when between 5% and 95% */
-                               if ((5 < perc) && (perc < 95))
+                                       /* only store last play position when between 1% and 99% */
+                               if ((1 < perc) && (perc < 99))
                                        m_cue_entries.insert(cueEntry(play_position, 3)); /* last play position */
                        }
                        m_cuesheet_changed = 1;