switch (event)
{
case iPlayableService::evEnd:
- /* our running main service stopped. */
+ /* at first, kill the running service */
+ m_event(this, evStopService);
+ m_runningService = 0;
+ m_service_event_conn = 0;
+ /* our running main service stopped. remove it from playlist */
if (!m_playlist.empty())
m_playlist.erase(m_playlist.begin());
if (!m_playlist.empty())
RESULT eNavigation::playService(const eServiceReference &service)
{
+ assert(m_servicehandler);
RESULT res = m_servicehandler->play(service, m_runningService);
if (m_runningService)
{
RESULT eNavigation::connectEvent(const Slot2<void,eNavigation*,int> &event, ePtr<eConnection> &connection)
{
- connection = new eConnection(m_event.connect(event));
+ connection = new eConnection(this, m_event.connect(event));
return 0;
}
return p->unpause();
}
-eNavigation::eNavigation(iServiceHandler *serviceHandler)
+eNavigation::eNavigation(iServiceHandler *serviceHandler): ref(0)
{
+ assert(serviceHandler);
m_servicehandler = serviceHandler;
}