StatSyncing GSoC week 9 (squashed commits, recent on top)

Review Request #105722 - Created July 25, 2012 and discarded

Information
Matěj Laitl
amarok
gsoc
300189
Reviewers
amarok
schweingruber, shanachie
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

Rewrite Last.fm ScrobblerAdapter

 * use new EngineController signals, don't track streams on its own
 * better error handling, use liblastfm 1.0 features
 * add delay before calling nowPlaying
 * call removeNowPlaying when it's appropriate
 * send much more detailed track info to Last.fm
 * Last.fm notifies us about suggested tag corrections; relay these to
   the user. (currently Components::logger()->longMessage(), will need
   something more persistent to be useful. Or Components::logger() must
   log into a file as A 1.4 did
 * prepare for split into ScrobblingService/Controller

EngineController: better docs for trackMetadataChanged() signal


ScrobblerAdapter, MainWindow: make banTrack() cleaner using loveTrack() example


EngineController: emit trackFinishedPlaying() in the middle of streams, too

This will be needed for cleaner Last.fm scrobbling. Also ensure that we
update length of just played track so that Last.fm knows whether it can
scrobble.

StatSyncing: ChooseProvidersPage.ui fixuifiles


ScrobblerAdapter: remove unused methods

  
Matěj Laitl
Review request changed

Status: Discarded

Change Summary:

GSoC 2012 has ended, I will post complete review when the code is seady for merging into master.
Loading...