only display missing codec warning when necessary (bixes bug #374)
[enigma2.git] / lib / service / servicedvbrecord.cpp
index 6978849202ce8483f111229fd1ac98f3e9cc180f..08cd24710e89e4978ed2b0f720f458eff5faaa72 100644 (file)
@@ -313,7 +313,7 @@ int eDVBServiceRecord::doRecord()
 
                        int timing_pid = -1, timing_pid_type = -1;
 
-                       eDebugNoNewLine("RECORD: have %d video stream(s)", program.videoStreams.size());
+                       eDebugNoNewLine("RECORD: have %zd video stream(s)", program.videoStreams.size());
                        if (!program.videoStreams.empty())
                        {
                                eDebugNoNewLine(" (");
@@ -335,7 +335,7 @@ int eDVBServiceRecord::doRecord()
                                }
                                eDebugNoNewLine(")");
                        }
-                       eDebugNoNewLine(", and %d audio stream(s)", program.audioStreams.size());
+                       eDebugNoNewLine(", and %zd audio stream(s)", program.audioStreams.size());
                        if (!program.audioStreams.empty())
                        {
                                eDebugNoNewLine(" (");
@@ -389,7 +389,7 @@ int eDVBServiceRecord::doRecord()
                        std::set_difference(
                                        m_pids_active.begin(), m_pids_active.end(),
                                        pids_to_record.begin(), pids_to_record.end(), 
-                                       std::inserter(new_pids, new_pids.begin())
+                                       std::inserter(obsolete_pids, obsolete_pids.begin())
                                        );
                        
                        for (std::set<int>::iterator i(new_pids.begin()); i != new_pids.end(); ++i)
@@ -493,8 +493,7 @@ void eDVBServiceRecord::gotNewEvent()
                        eDebug("getting PCR failed!");
                else
                {
-                       static int i;
-                       m_event_timestamps[/* event_id*/ ++i] = p;
+                       m_event_timestamps[event_id] = p;
                        eDebug("pcr of eit change: %llx", p);
                }
        }
@@ -503,6 +502,8 @@ void eDVBServiceRecord::gotNewEvent()
                eDebug("[eDVBServiceRecord] now running: %s (%d seconds)", event_now->getEventName().c_str(), event_now->getDuration());
        
        m_last_event_id = event_id;
+
+       m_event((iRecordableService*)this, evNewEventInfo);
 }
 
 void eDVBServiceRecord::saveCutlist()
@@ -548,3 +549,29 @@ void eDVBServiceRecord::saveCutlist()
        }
        
 }
+
+RESULT eDVBServiceRecord::subServices(ePtr<iSubserviceList> &ptr)
+{
+       ptr = this;
+       return 0;
+}
+
+int eDVBServiceRecord::getNumberOfSubservices()
+{
+       ePtr<eServiceEvent> evt;
+       if (!m_event_handler.getEvent(evt, 0))
+               return evt->getNumOfLinkageServices();
+       return 0;
+}
+
+RESULT eDVBServiceRecord::getSubservice(eServiceReference &sub, unsigned int n)
+{
+       ePtr<eServiceEvent> evt;
+       if (!m_event_handler.getEvent(evt, 0))
+       {
+               if (!evt->getLinkageService(sub, m_ref, n))
+                       return 0;
+       }
+       sub.type=eServiceReference::idInvalid;
+       return -1;
+}