My GSoC Proposal: MTP Collection rewrite with emphasis on Android device support
Philipp Schmidt
philipp at schmidt-rheinhausen.de
Thu Apr 25 17:55:25 UTC 2013
Am Donnerstag, 25. April 2013, 17:53:16 schrieb Matěj Laitl:
> Hi all,
> this is a first draft of my GSoC project proposal. I'd be more than happy to
> see your comments, remarks, whether something is unclear or maybe where I'm
> too verbose.
Hi,
as the Maintainer of KIO-MTP I have some thoughts. And no, I think its best
not to use kio-mtp as a Backend for the reasons you have stated. There are
however some things that you may not be aware of (I do not know if you are
reading the libmtp mailinglist). I will only comment on the (lib)mtp specific
parts as I do not have deeper knowlegde of the inner workings of Amarok.
First off, using LIBMTP. While it currently is the best option to access
Devices directly it would be very good to design the Access in a way that
allows to also use a DBus Interface [1]. There are some Ideas on the ML about
that, sadly nothing specific yet. Basically Philip Langdale, the gvfs-mtp
developer, some of the LIBMTP devs and myself wanted to create something like
the "Windows" experience for MTP, where a daemon accesses the devices
centrally and provides access via DBus. This would
a) simplyfy simultaneous access from multiple applications as accessing a
device from a different application WILL force the previous connection to
close which can result for example in the following:
- you are copying some photos using kio-mtp and try to access your music:
boom, file transfer gone.
- The mtp stack of most samsung devices will freeze: You will need to unplug
and replug the device as they do not handle this situation at all. Yes that is
non-conforming behaviour but Samsung devices are the vast majority out there,
so even completely valid from a developers POV one of the reasons I won't
label the current kio-mtp 1.0.
So that will solve quite a lot of issues.
b) enable us to develop access libraries using Qt or GTK or whatever that
encapsulate the DBus calls and provide an API consistent with KDE, Gnome or
whatever. E.g. no more low level C calls in Qt4.
I will try to get some thoughts for the interface specifications under way
soon so your input in creating the part of the interface that provides access
for media players would be greatly appreciated. While such a daemon will
probably not be ready in time for GSOC creating the Backend in such a way that
adding support for synchronous or preferably asynchronous DBus access would be
a very good thing.
While it is safe to say that the low level interface will always be there, for
one for backwards compatibility but also console applications, but for gui
applications DBus is the way to go.
Cheers,
Philipp Schmidt
[1] http://sourceforge.net/mailarchive/forum.php?thread_name=CAKnu2Mqj-MTObET5V%3DOHN5cOaqrkzWB7QaKK-HPBn%2BtA0dngwg%40mail.gmail.com&forum_name=libmtp-discuss
More information about the Amarok-devel
mailing list