Identifying iPod and iPhone-like devices using Solid (was: Amarok review request)

Matěj Laitl matej at laitl.cz
Wed Oct 26 14:05:33 UTC 2011


On 25. 10. 2011 Bart Cerneels wrote:
> Looks like quite a few pretty ugly hacks are needed for proper iP* detection
> with the current mediadevice codebase. In the near future (post 2.5
> release) we should together try to find a simpler and easier to maintain
> solution.

Thanks for your review, Bart.

I've looked around a bit and the situation seems rather sad:
 * solid knows nothing about media-player-info or usbmuxd and its udev 
PortableMediaPlayer implementation is just a stub [1], furthermore it doesn't 
even currently attach PortableMediaPlayer interface to relevant devices as it 
checks udev env ID_MEDIA_PLAYER against numeric 1 (gphoto remnant) [2,3], but 
media-player-info attaches normalised player name there.

[1] 
http://quickgit.kde.org/?p=kdelibs.git&a=blob&f=solid/solid/backends/udev/udevportablemediaplayer.cpp
[2] 
http://quickgit.kde.org/?p=kdelibs.git&a=blob&f=solid/solid/backends/udev/udevdevice.cpp
[3] 
http://quickgit.kde.org/?p=kdelibs.git&a=blob&f=solid/solid/backends/udev/udevmanager.cpp

In an ideal world (in my opinion):
 * PortableMediaPlayer::supportedProtocols() would return a list containing 
"ipod" for all iPod-like devices (it should just parse /usr/share/media-
player-info/${ID_MEDIA_PLAYER}.mpi)
 * PortableMediaPlayer::supportedDrivers() would return a list containing 
"usb" for traditional iPods and something like "usbmuxd" for iPhone-like 
devices. (this would be more tricky, but could use udev env USBMUX_SUPPORTED)

Another question would be how to access iPhone-like devices the best way once 
identified, but let's first solve identification.

Regards,
						Matěj Laitl aka strohel


More information about the Amarok-devel mailing list