X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c54ee36de25775299773381e9f15667659b3b6db..65a75b9655aa81b1a0c3e6ead3513af5b028cf80:/lib/nav/core.cpp diff --git a/lib/nav/core.cpp b/lib/nav/core.cpp index 45b4aa6f..062a7d00 100644 --- a/lib/nav/core.cpp +++ b/lib/nav/core.cpp @@ -4,9 +4,9 @@ void eNavigation::serviceEvent(iPlayableService* service, int event) { - if (service != m_runningService) + if (m_runningService && service != m_runningService) { - eDebug("nav: event for other service"); + eDebug("nav: event %d for other service", event); return; } m_event(event); @@ -59,13 +59,14 @@ RESULT eNavigation::stopService(void) /* check if there is a running service... */ if (!m_runningService) return 1; - /* send stop event */ - m_event(iPlayableService::evEnd); ePtr tmp = m_runningService; m_runningService=0; tmp->stop(); + /* send stop event */ + m_event(iPlayableService::evEnd); + /* kill service. */ m_service_event_conn = 0; return 0; @@ -95,8 +96,11 @@ RESULT eNavigation::stopRecordService(ePtr &service) if (it != m_recordings.end()) { m_recordings.erase(it); + /* send stop event */ + m_record_event(service, iRecordableService::evEnd); return 0; } + eDebug("try to stop non running recording!!"); // this should not happen return -1; }