Patch: Adds preliminary ipod support to 0.2.99.1

Bug #331047 reported by andy_js
2
Affects Status Importance Assigned to Milestone
Exaile
Fix Released
Undecided
Unassigned

Bug Description

The patch adds support to the latest Exaile for multiple iPods with auto-detection.

Syncing/Downloading is not implemented (and I don't think sinking should be implemented personally: leave it to Conduit).

Playback works great and downloading tracks from the ipod should work but I've not tried it.

Auto-detection is not fully implemented so you must connect any ipods before starting Exaile, but its a start.

Revision history for this message
andy_js (andyjstormont) wrote :
Revision history for this message
reacocard (reacocard) wrote :

A few things I noticed:

1) You need to re-work your autodetection so that it uses the infrastructure established in xl/hal.py (see the massstorage plugin for an example).

2) You should pass the raw iPod name to the Device __init__ so it can handle name collisions for you (again, see massstorage).

3) I'm not entirely sure it's a good idea to actually unmount the iPod from inside Exaile, since the user might still want to do something with it (like transfer videos or pictures via another program), or the umount could fail unexpectedly causing Exaile to behave unexpectedly as disconnect() failed partway through. Perhaps this would be best left unimplemented for now, and revisited when we get a full device management UI (probably in 0.3.1).

Aside from those issues, the code looks very good.

Revision history for this message
andy_js (andyjstormont) wrote :

In response:

1. The patch now uses hal.py

2. The new patch more or less does this. If the ipod had no name (either its brand new, or just been restored)
    the name is set to "Apple iPod Music Player", just so a unnamed tab doesn't appear in Exaile.

3. I've removed the mount/unmount code because it broke the ProviderHandler way of doing things, so thats ok too.

Thanks.

Revision history for this message
reacocard (reacocard) wrote :

alright, i've committed your patch in r1786, with the following changes:

1) made your handler inherit from hal.Handler
2) added GPL license header

thanks a lot for contributing this!

Changed in exaile:
status: New → Fix Committed
reacocard (reacocard)
Changed in exaile:
milestone: none → 0.3.0
reacocard (reacocard)
Changed in exaile:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.