Complete iPod collection rewrite (also supports iPad, iPhone)
author Matěj Laitl
()
committer Matěj Laitl
()
commit 9bfe431375630655047ea8681a12ff6bd5422839
tree b130597f60642dc10b886703c356001caa7364e9
parent bf72e3f94c3c384f137f34ee13da5d0f66139e54
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.

FEATURES:
* 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.

CHANGES:
* 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.

BUGFIXES:
* 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

FEATURE: 291722
FEATURE: 139454
FEATURE: 219963
BUG: 279797
BUG: 289304
BUG: 234876
FIXED-IN: 2.6
DIGEST: Amarok's iPod support is completely rewritten fixing many bugs
and adding features
36 files changed:
CMakeLists.txt
ChangeLog
README
src/core-impl/collections/CMakeLists.txt
src/core-impl/collections/ipodcollection/CMakeLists.txt [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodCollection.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodCollection.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodCollectionFactory.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodCollectionFactory.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodCollectionLocation.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodCollectionLocation.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodMeta.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodMeta.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodMetaEditCapability.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodMetaEditCapability.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodPlaylist.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodPlaylist.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodPlaylistProvider.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/IpodPlaylistProvider.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/amarok_collection-ipodcollection.desktop [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/config-ipodcollection.h.cmake [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/jobs/IpodCopyTracksJob.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/jobs/IpodCopyTracksJob.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/jobs/IpodDeleteTracksJob.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/jobs/IpodDeleteTracksJob.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/jobs/IpodParseTracksJob.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/jobs/IpodParseTracksJob.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/jobs/IpodWriteDatabaseJob.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/jobs/IpodWriteDatabaseJob.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/support/IphoneMountPoint.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/support/IphoneMountPoint.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/support/IpodConfiguration.ui [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/support/IpodDeviceHelper.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/support/IpodDeviceHelper.h [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/support/IpodTranscodeCapability.cpp [ new file with mode 0644 ]
src/core-impl/collections/ipodcollection/support/IpodTranscodeCapability.h [ new file with mode 0644 ]