void eDVBServiceStream::serviceEvent(int event) { eDebug("STREAM service event %d", event); switch (event) { case eDVBServicePMTHandler::eventTuned: { eDebug("tuned.."); m_tuned = 1; /* start feeding EIT updates */ ePtr<iDVBDemux> m_demux; if (!m_service_handler.getDataDemux(m_demux)) { eServiceReferenceDVB &ref = (eServiceReferenceDVB&) m_ref; int sid = ref.getParentServiceID().get(); if (!sid) sid = ref.getServiceID().get(); if ( ref.getParentTransportStreamID().get() && ref.getParentTransportStreamID() != ref.getTransportStreamID() ) m_event_handler.startOther(m_demux, sid); else m_event_handler.start(m_demux, sid); } if (m_state == stateRecording && m_want_record) doRecord(); break; } case eDVBServicePMTHandler::eventTuneFailed: { eDebug("stream failed to tune"); tuneFailed(); break; } case eDVBServicePMTHandler::eventNewProgramInfo: { if (m_state == stateIdle) doPrepare(); else if (m_want_record) /* doRecord can be called from Prepared and Recording state */ doRecord(); break; } case eDVBServicePMTHandler::eventMisconfiguration: tuneFailed(); break; case eDVBServicePMTHandler::eventNoResources: tuneFailed(); break; } }
void eDVBServiceStream::serviceEvent(int event) { eDebug("[eDVBServiceStream] STREAM service event %d", event); if(event == eDVBServicePMTHandler::eventTuneFailed || event == eDVBServicePMTHandler::eventMisconfiguration || event == eDVBServicePMTHandler::eventNoResources) eventUpdate(event); switch (event) { case eDVBServicePMTHandler::eventTuned: { eDebug("[eDVBServiceStream] tuned.. m_state %d m_want_record %d", m_state, m_want_record); m_tuned = 1; /* start feeding EIT updates */ ePtr<iDVBDemux> m_demux; if (!m_service_handler.getDataDemux(m_demux)) { eServiceReferenceDVB &ref = (eServiceReferenceDVB&) m_ref; m_event_handler.start(m_demux, ref); } if (m_state > stateIdle && m_want_record) doRecord(); break; } case eDVBServicePMTHandler::eventTuneFailed: { eDebug("stream failed to tune"); tuneFailed(); break; } case eDVBServicePMTHandler::eventNewProgramInfo: { if (m_state == stateIdle) doPrepare(); else if (m_want_record) /* doRecord can be called from Prepared and Recording state */ doRecord(); break; } case eDVBServicePMTHandler::eventMisconfiguration: tuneFailed(); break; case eDVBServicePMTHandler::eventNoResources: tuneFailed(); break; } if(event != eDVBServicePMTHandler::eventTuneFailed && event != eDVBServicePMTHandler::eventMisconfiguration && event != eDVBServicePMTHandler::eventNoResources) eventUpdate(event); }