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

Matěj Laitl matej at laitl.cz
Wed Jul 25 10:31:35 UTC 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/105722/
-----------------------------------------------------------

Review request for Amarok, Bart Cerneels and Myriam Schweingruber.


Description
-------

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


This addresses bug 300189.
    https://bugs.kde.org/show_bug.cgi?id=300189


Diffs
-----

  src/EngineController.h 4851e2830977787521a041a74f7874bb92e0e647 
  src/EngineController.cpp 4f565141ecfe41af7fc66083981dea347ffc5ef5 
  src/MainWindow.h d49776476ce8b23013c1a8880a640d9aef35e817 
  src/MainWindow.cpp 7297559a363377f9b91129fb89b19895beaa02bc 
  src/core-impl/capabilities/multisource/MultiSourceCapabilityImpl.h 4a472c2072193f809b2c9b6dd06f7caa6df2b991 
  src/core-impl/capabilities/multisource/MultiSourceCapabilityImpl.cpp 28152e61c93ce3cdd2d5a26f8adf33c87571e245 
  src/core-impl/meta/multi/MultiTrack.h 63a8651628eb6335cd0a3e635150bfae95e83235 
  src/core-impl/meta/multi/MultiTrack.cpp e270d0a211dc1dd61575918c62279649e4e84f27 
  src/core-impl/meta/stream/Stream.cpp b0fcfad5808b9ae428cb6612bec1737b3af82d3b 
  src/core/capabilities/MultiSourceCapability.h 819a24ff79f8d741db30c34ed42a38610885bf4c 
  src/core/capabilities/MultiSourceCapability.cpp 4c46ff45f7f55c3460704f7058c9323a947529cc 
  src/services/lastfm/ScrobblerAdapter.h 613ad9973b0d768a0345acbe801a72e2652c9c90 
  src/services/lastfm/ScrobblerAdapter.cpp fa8635bb8c5492a2a434f6f947afa5f215124fee 
  src/statsyncing/ui/ChooseProvidersPage.ui PRE-CREATION 
  tests/core-impl/meta/multi/TestMetaMultiTrack.h 61e37627351163a7f2bbae729779900d2abb6ca9 
  tests/core-impl/meta/multi/TestMetaMultiTrack.cpp b9d64dee9f8f0880981550aab29b882c4b4bbc31 

Diff: http://git.reviewboard.kde.org/r/105722/diff/


Testing
-------


Thanks,

Matěj Laitl

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/amarok-devel/attachments/20120725/84f025db/attachment.html>


More information about the Amarok-devel mailing list