MTP device support
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Exaile |
Fix Released
|
Undecided
|
Dan O'Reilly |
Bug Description
I recently bought a Creative Zen, an [http://
I've knocked up a plugin derived from plugin.DeviceDriver that fetches the track list from the device and displays it in Exaile. No useful functionality so far, but it's a start.
I actually wrapped libmtp using ctypes to write the plugin (I created a C-like API and a slightly higher-level, more Pythonic API) before finding [https:/
Here's a quick brain dump of what I would ''like'' the plugin to do:
* Tag albums, artists or tracks for transfer to the Zen, even when the Zen is not connected.
* Queue transfers and copy in the background. Start transfer immediately (device connected), when device connects (after prompt) or manually after a "Transfer" button click on the device's panel.
* Remove albums, artists or tracks from device.
* Transfer album art.
And a list of things I think would be nice:
* Manage playlists.
* Display available space on device.
* Re-sync album art, i.e. after running the "Album Art Collector".
* Transfer ratings. (I don't personally use ratings but I'm sure some do.)
Ideally the plugin should expect multiple MTP devices to track transfers correctly but handling the first device is probably good enough for the vast majority of people. This implies devices may need registering (devices have a serial number and a nice name) before they can be used.
If multiple devices are supported the UI should simplify itself if Exaile only knows about one device.
I'll post progress to this ticket as and when I get the chance to work on the plugin.
This ticket was migrated from the old trac: re #489
Changed in exaile: | |
assignee: | nobody → oreilldf |
Changed in exaile: | |
status: | In Progress → Fix Committed |
Changed in exaile: | |
status: | Fix Committed → Fix Released |
Hey all,
I've done a little more work on this, using version 0.2 of PyMTP (not the same pymtp already uploaded here, this is a different project with the same name) that Nick Devito released last month. I updated transferring tracks to work with the new version of pymtp, improved the way tracks get tagged on the MTP device, added support for removing tracks, and added/changed a few other things as well. Error handling is still fairly minimal, but should be easier to implement with the new pymtp.
Also, The track display is a little screwy (viewing by Artist shows a bunch of phantom entries that change when depending on how you mouse over them and what parts of the tree are exanded, Album view is empty, and Genre view only shows one Unknown genre), but I'll try to get that straightened out. Obviously there's a whole lot of other stuff that needs to be added/fixed as well, but I thought I'd share what I have so others can comment or make additions themselves. Matt (Goodall, the original creator of this bug and author of the original exaile MTP plugin, I think?), if you're still out there working on it, let me know, we can touch base and pool resources if you're not too much further along in development.
Link for pymtp 0.2: http:// nick125. com/projects/ pymtp/
mtpdevice.py is attached, put in your ~/.exaile/plugins directory.