Linus Walleij | e8c5464 | 2006-03-28 09:45:00 +0000 | [diff] [blame] | 1 | TODO file: |
| 2 | ---------- |
| 3 | |
Linus Walleij | 0558ac5 | 2006-09-07 06:55:03 +0000 | [diff] [blame] | 4 | |
Linus Walleij | d5ad885 | 2006-11-30 23:17:31 +0000 | [diff] [blame] | 5 | SPEEDUP fixes: |
Linus Walleij | c374349 | 2006-09-04 17:37:19 +0000 | [diff] [blame] | 6 | |
Linus Walleij | d5ad885 | 2006-11-30 23:17:31 +0000 | [diff] [blame] | 7 | 1. SPEED: Cache the object info for all items on the device. |
| 8 | Right now, ptp_getobjectinfo() is called repeatedly on the same |
| 9 | objects during startup, track listing, file listing, playlist listing, |
| 10 | album listing and whatever we implement tomorrow. A lot of useless |
| 11 | communication can be saved by cacheing this info. Notice that this |
| 12 | needs to be updated whenever flush_handles() is called too. |
Linus Walleij | c374349 | 2006-09-04 17:37:19 +0000 | [diff] [blame] | 13 | |
Linus Walleij | d5ad885 | 2006-11-30 23:17:31 +0000 | [diff] [blame] | 14 | 2. SPEED: Cache the supported object properties at first read/startup. |
| 15 | then use the cache to check for supported props instead of calling |
| 16 | out to PTP with ptp_mtp_getobjectpropssupported() every time. |
| 17 | The cache would be an array of size params->deviceinfo.ImageFormats_len |
| 18 | with a list for each format of the properties it will support. Notice |
| 19 | that this needs to be updated whenever flush_handles() is called too. |
Linus Walleij | c374349 | 2006-09-04 17:37:19 +0000 | [diff] [blame] | 20 | |
Linus Walleij | d5ad885 | 2006-11-30 23:17:31 +0000 | [diff] [blame] | 21 | 3. SPEED: Cache track metadata, file metadata etc, perhaps this is not |
| 22 | desirable since the application using libmtp will do this anyway. |
Linus Walleij | 92fec47 | 2006-12-16 20:44:14 +0000 | [diff] [blame] | 23 | (libgphoto2 does it, see http://svn.sourceforge.net/viewvc/gphoto/trunk/libgphoto2/camlibs/ptp2/library.c?r1=9491&r2=9590) |
Linus Walleij | c374349 | 2006-09-04 17:37:19 +0000 | [diff] [blame] | 24 | |
Linus Walleij | d5ad885 | 2006-11-30 23:17:31 +0000 | [diff] [blame] | 25 | 4. SPEED: Whenever we add an object (file, track, playlist...) we |
| 26 | should only need to update the cache with relevant data. Atleast for |
| 27 | speed caches 1 and 2 above. |
| 28 | |
Linus Walleij | d5ad885 | 2006-11-30 23:17:31 +0000 | [diff] [blame] | 29 | FEATURE fixes: |
| 30 | |
| 31 | 1. FEATURE: Make abstract playlists really become size -1 when created as |
Linus Walleij | fa4e979 | 2006-08-27 20:15:38 +0000 | [diff] [blame] | 32 | the ones created on the device instead of the current 1 byte size. |
Linus Walleij | d5ad885 | 2006-11-30 23:17:31 +0000 | [diff] [blame] | 33 | (Is this possible using enhanced commands? See TODO remarks in |
| 34 | the create_abstract_entity() function) |
Linus Walleij | fa4e979 | 2006-08-27 20:15:38 +0000 | [diff] [blame] | 35 | |
Linus Walleij | d5ad885 | 2006-11-30 23:17:31 +0000 | [diff] [blame] | 36 | 2. FEATURE: Support playback and volume setting on devices that have it. |
Linus Walleij | ee73ef2 | 2006-08-27 19:56:00 +0000 | [diff] [blame] | 37 | (I don't have one that does - Linus.) |
Linus Walleij | cf223e6 | 2006-06-19 09:31:53 +0000 | [diff] [blame] | 38 | |
tedbullock | edde60b | 2007-03-09 09:02:08 +0000 | [diff] [blame] | 39 | 3. FEATURE: Support relevant events. MTP devices seen in existance provide |
Linus Walleij | d5ad885 | 2006-11-30 23:17:31 +0000 | [diff] [blame] | 40 | events for "object added" and "object deleted". These should result in |
| 41 | atleast a call to the flus_handles() function. |
Linus Walleij | a29ed2a | 2007-02-25 22:01:37 +0000 | [diff] [blame] | 42 | |
tedbullock | edde60b | 2007-03-09 09:02:08 +0000 | [diff] [blame] | 43 | 4. FEATURE: Have libmtp optionally create a folder hierarchy such as |
Linus Walleij | a29ed2a | 2007-02-25 22:01:37 +0000 | [diff] [blame] | 44 | /Album/Artist/Song.mp3 on the device. Currently it'll only put songs |
| 45 | into some /Music or /My Music folder if one exists. |
| 46 | |
tedbullock | edde60b | 2007-03-09 09:02:08 +0000 | [diff] [blame] | 47 | 5. FEATURE: Integrate libmtp with HAL / D-Bus so applications can dynamically |
| 48 | know when a device has been plugged in or removed. Need a mechanism to |
| 49 | connect a specific hal UDI. |
| 50 | |
| 51 | 6. FEATURE: Mechanism to retrieve the DevIcon.fil (Windows ICO format) and |
| 52 | DevLogo.fil (PNG Format) images from the device (if available). Convert |
| 53 | DevIcon.fil to something usable (PNG)? |
| 54 | (Does this belong directly in libmtp or in a layer above?) |
| 55 | |
tedbullock | edde60b | 2007-03-09 09:02:08 +0000 | [diff] [blame] | 56 | 9. FEATURE: Shared device access so that multiple client applications can have |
| 57 | an open connection to the device at the same time via a handle. For example, |
| 58 | it should be somehow possible to run mtp-detect at the same time as amarok or |
| 59 | mtpfs is connected to a device. This would require some form of resource |
| 60 | sharing. |
Linus Walleij | a29ed2a | 2007-02-25 22:01:37 +0000 | [diff] [blame] | 61 | |
Linus Walleij | 971914e | 2007-04-20 08:15:22 +0000 | [diff] [blame^] | 62 | 10.FEATURE: Support extracting the device icon so that userlevel apps can use |
| 63 | this to get a device representation. |
| 64 | |
Linus Walleij | a29ed2a | 2007-02-25 22:01:37 +0000 | [diff] [blame] | 65 | THOSE ARE ALREADY DONE: |
| 66 | |
| 67 | 1. FEATURE: Make an API that can return several devices and let the user |
| 68 | choose which one to operate, not just connect to the first one... |