small code cleanup, fix memleaks
[enigma2.git] / lib / service / servicedvbrecord.cpp
index 70783301730e2ad8f3daf5bbbb23a87ff762be14..419c26bab2149f2ac60fcd26a9841af88d56437f 100644 (file)
@@ -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;
+}