- case iPlayableService::evEnd:
- assert(m_playlist); /* we need to have a playlist */
-
- /* at first, kill the running service */
- stopService();
-
- /* our running main service stopped. identify what to do next. */
-
- /* unless the playlist current position is invalid (because there was */
- /* playlist, for example when the service was engaged with playService */
- if (m_playlist->m_current != m_playlist->end())
- ++m_playlist->m_current;
-
- /* was the current service the last one? */
- if (m_playlist->m_current == m_playlist->end())
- {
- m_event(this, evPlaylistDone);
- break;
- }
-
- /* there is another service in the playlist. play it. */
- RESULT res;
- res = playService(*m_playlist->m_current);
- if (res)
- m_event(this, evPlayFailed);
- break;
- case iPlayableService::evStart:
- m_event(this, evNewService);
- break;
- case iPlayableService::evUpdatedEventInfo:
- m_event(this, evUpdatedEventInfo);
- break;
- case iPlayableService::evUpdatedInfo:
- m_event(this, evUpdatedInfo);
- break;
- default:
- break;