MultiTrack, EngineController: Fix MultiTrack API
In previous API, the only way to get next track url is multiTrack->next(), which also advances the current index. EngineController doesn't work this way, it needs to know next url in the slotAboutToFinish(), but only should only advance the index in slotNewTrackPlaying() (because aboutToFinish() may be even emitted multiple times etc). Correct the api so that the only non-const method is setSource( int index ). Also change m_multiSource handling in EngineController so that it is created and destroyed in slotNewTrackPlaying(), which is a correct place to do that. Also contains clean-ups to the MultiTrack classes. This change fixes a bug for MultiTrack streams where metadata wouldn't be updated because EngineController thinks different source is playing. Therefore I think it fixes bug 300189. Reporters, please reopen the bug if this patch doesn't fix the bug and provide full `amarok --debug` output in that case. BUG: 300189 FIXED-IN: 2.7
parent
66c00165
Please register or sign in to comment