Bug 219963 - Transfer Queue like in Amarok 1.4 (for iPod, MTP etc.)
Summary: Transfer Queue like in Amarok 1.4 (for iPod, MTP etc.)
Alias: None
Product: amarok
Classification: Applications
Component: Collections/Media Devices (show other bugs)
Version: 2.5-git
Platform: Ubuntu Linux
: NOR wishlist
Target Milestone: 2.6
Assignee: Amarok Developers
: 140541 (view as bug list)
Depends on:
Reported: 2009-12-24 15:52 UTC by Nicolas
Modified: 2012-04-15 15:43 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 2.6


Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas 2009-12-24 15:52:55 UTC
Version:           2.2.1 (using KDE 4.3.4)
OS:                Linux
Installed from:    Ubuntu Packages

In Amarok 2.2 i miss the transfer queue for the file-transfer to the iPod collection.
in the 2.2 Version i have to wait for transfer completed before i could send the next files to iPod collection.

in amarok 1.4 i could send files to iPod as often as i would, cause there was a transfer queue.

could this function implemented in Amarok 2.2, too?
Comment 1 Andreas Ermler 2010-04-08 17:57:44 UTC
I also miss the transfer queue. There are a couple of reasons for it:
- I don't see how much space is still left on the device
- I can't see how much MB and what and how many songs exactly I'm transferring
- I can't drag and drop from the playlist or the collection to the device
- I can't manage what songs I want to transfer, for example when I want to transfer a whole album or all the songs of an artist with the exception of one song, right now I have to pick every single song

I made a simple mockup for an transfer manager applet which I think would be really cool (I know it isn't pretty, I'm not an artist, but I hope my point gets across):
The "Copy", "Local Collection" and "USB-Device"-things are supposed to be drop down lists, where you can pick between "Copy" and "Move" on the left side and on the right side between the collections. I hope the rest is pretty self explanatory.
Comment 2 Tommaso Falchi Delitala 2011-02-06 14:54:38 UTC
I vote for this feature. It' really annoying to wait for the previous transfer to end, especially when you want to synchronize a lot of tracks to your player.

In my opinion this feature will become essential when transcoding to media devices is fully implemented. Tracks should be queued for transfer and transcoding should happen in background in order to preserve Amarok's usability.
Comment 3 Matěj Laitl 2011-12-11 01:24:27 UTC
This is a known problem - the biggest one is that you cannot copy more tracks while a transfer is already in progress. I will work on this for 2.6.

Also note that some of the inconveniences have already been addressed, for example the ability to drag'n'drop tracks from playlist.
Comment 4 Matěj Laitl 2012-02-05 21:34:02 UTC
*** Bug 140541 has been marked as a duplicate of this bug. ***
Comment 5 Matěj Laitl 2012-04-15 15:43:43 UTC
Git commit 9bfe431375630655047ea8681a12ff6bd5422839 by Matěj Laitl.
Committed on 15/04/2012 at 12:24.
Pushed by laitl into branch 'master'.

Complete iPod collection rewrite (also supports iPad, iPhone)

This is a result of 3-month effort to make Amarok iPod-like device
support future-proof and less buggy by using more modern MemoryMeta
framework to manage tracks internally.

The new plugin still uses libgpod [1] to access the devices and
supports all devices supported by it. The newest models may need the
infamous libashab.so library.

 * Small configuration dialog for iPods that shows troubleshooting information
   and allows to change iPod name.
 * Improved usability of iPod playlists: iPod collection automatically transfers
   tracks dropped to iPod playlists to iPod when it is needed.
 * Tracks can now be transcoded when transferring them to iPod.

 * optional libgpod dependency raised to 0.8.2 to support newest iPods.
 * Amarok now prevents accidental unmounting of iPods in (small) time-frames
   when iTunes database on iPod is not yet updated.
 * Amarok detects when iPod is to be ejected from system and gracefully
   disconnects it when it occurs.
 * Hitting the eject button on iPod collection ejects it also from the system.
 * iPod collection now detects whether iPod is safe to write and marks iPod
   as read-only if not. This prevents "iPod shows 0 tracks" problem.
 * Correct progress bar advancement when transferring tracks to iPod.
 * iPod Collection supports multiple simultaneous cancellable transfers.
 * Improved dialog to initialize iPod.

 * Detection and elimination of stale and orphaned iPod tracks now works
   correctly; users are notified about these when iPod is plugged in.
 * iPod playlists now work correctly.
 * Show correct error when transferring unsupported files to iPod.

[1] http://www.gtkpod.org/wiki/Libgpod
Related: bug 291722, bug 139454, bug 279797, bug 289304, bug 234876
DIGEST: Amarok's iPod support is completely rewritten fixing many bugs
        and adding features

M  +3    -2    CMakeLists.txt
M  +21   -0    ChangeLog
M  +2    -2    README
M  +1    -1    src/core-impl/collections/CMakeLists.txt
A  +80   -0    src/core-impl/collections/ipodcollection/CMakeLists.txt
A  +642  -0    src/core-impl/collections/ipodcollection/IpodCollection.cpp     [License: GPL (v2+)]
A  +260  -0    src/core-impl/collections/ipodcollection/IpodCollection.h     [License: GPL (v2+)]
A  +259  -0    src/core-impl/collections/ipodcollection/IpodCollectionFactory.cpp     [License: GPL (v2+)]
A  +93   -0    src/core-impl/collections/ipodcollection/IpodCollectionFactory.h     [License: GPL (v2+)]
A  +119  -0    src/core-impl/collections/ipodcollection/IpodCollectionLocation.cpp     [License: GPL (v2+)]
A  +74   -0    src/core-impl/collections/ipodcollection/IpodCollectionLocation.h     [License: GPL (v2+)]
A  +845  -0    src/core-impl/collections/ipodcollection/IpodMeta.cpp     [License: GPL (v2+)]
A  +327  -0    src/core-impl/collections/ipodcollection/IpodMeta.h     [License: GPL (v2+)]
A  +141  -0    src/core-impl/collections/ipodcollection/IpodMetaEditCapability.cpp     [License: GPL (v2+)]
A  +63   -0    src/core-impl/collections/ipodcollection/IpodMetaEditCapability.h     [License: GPL (v2+)]
A  +248  -0    src/core-impl/collections/ipodcollection/IpodPlaylist.cpp     [License: GPL (v2+)]
A  +113  -0    src/core-impl/collections/ipodcollection/IpodPlaylist.h     [License: GPL (v2+)]
A  +496  -0    src/core-impl/collections/ipodcollection/IpodPlaylistProvider.cpp     [License: GPL (v2+)]
A  +114  -0    src/core-impl/collections/ipodcollection/IpodPlaylistProvider.h     [License: GPL (v2+)]
A  +24   -0    src/core-impl/collections/ipodcollection/amarok_collection-ipodcollection.desktop
A  +1    -0    src/core-impl/collections/ipodcollection/config-ipodcollection.h.cmake
A  +414  -0    src/core-impl/collections/ipodcollection/jobs/IpodCopyTracksJob.cpp     [License: GPL (v2+)]
A  +108  -0    src/core-impl/collections/ipodcollection/jobs/IpodCopyTracksJob.h     [License: GPL (v2+)]
A  +69   -0    src/core-impl/collections/ipodcollection/jobs/IpodDeleteTracksJob.cpp     [License: GPL (v2+)]
A  +46   -0    src/core-impl/collections/ipodcollection/jobs/IpodDeleteTracksJob.h     [License: GPL (v2+)]
A  +83   -0    src/core-impl/collections/ipodcollection/jobs/IpodParseTracksJob.cpp     [License: GPL (v2+)]
A  +49   -0    src/core-impl/collections/ipodcollection/jobs/IpodParseTracksJob.h     [License: GPL (v2+)]
A  +33   -0    src/core-impl/collections/ipodcollection/jobs/IpodWriteDatabaseJob.cpp     [License: GPL (v2+)]
A  +37   -0    src/core-impl/collections/ipodcollection/jobs/IpodWriteDatabaseJob.h     [License: GPL (v2+)]
A  +205  -0    src/core-impl/collections/ipodcollection/support/IphoneMountPoint.cpp     [License: GPL (v2+)]
A  +53   -0    src/core-impl/collections/ipodcollection/support/IphoneMountPoint.h     [License: GPL (v2+)]
A  +229  -0    src/core-impl/collections/ipodcollection/support/IpodConfiguration.ui
A  +466  -0    src/core-impl/collections/ipodcollection/support/IpodDeviceHelper.cpp     [License: GPL (v2+)]
A  +102  -0    src/core-impl/collections/ipodcollection/support/IpodDeviceHelper.h     [License: GPL (v2+)]
A  +58   -0    src/core-impl/collections/ipodcollection/support/IpodTranscodeCapability.cpp     [License: GPL (v2+)]
A  +49   -0    src/core-impl/collections/ipodcollection/support/IpodTranscodeCapability.h     [License: GPL (v2+)]