Merge branch 'bug_538_ignore_global_actions_in_standby'
[enigma2.git] / lib / service / servicedvbrecord.cpp
index 294315e9828d8b2045d16c6760ed20e035fdca65..419c26bab2149f2ac60fcd26a9841af88d56437f 100644 (file)
@@ -132,6 +132,8 @@ RESULT eDVBServiceRecord::prepare(const char *filename, time_t begTime, time_t e
                                meta.m_name = name;
                        if (descr)
                                meta.m_description = descr;
+                       if (tags)
+                               meta.m_tags = tags;
                        ret = meta.updateMeta(filename) ? -255 : 0;
                        if (!ret)
                        {
@@ -387,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)
@@ -491,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);
                }
        }
@@ -501,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()
@@ -546,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;
+}