blob: 0e17a624953b212669943585009ee73a1e978a5e [file] [log] [blame]
Linus Walleije8c54642006-03-28 09:45:00 +00001TODO file:
2----------
3
Linus Walleij0558ac52006-09-07 06:55:03 +00004
Linus Walleijd5ad8852006-11-30 23:17:31 +00005SPEEDUP fixes:
Linus Walleijc3743492006-09-04 17:37:19 +00006
Linus Walleijd5ad8852006-11-30 23:17:31 +000071. 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 Walleijc3743492006-09-04 17:37:19 +000013
Linus Walleijd5ad8852006-11-30 23:17:31 +0000142. 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 Walleijc3743492006-09-04 17:37:19 +000020
Linus Walleijd5ad8852006-11-30 23:17:31 +0000213. SPEED: Cache track metadata, file metadata etc, perhaps this is not
22 desirable since the application using libmtp will do this anyway.
Linus Walleij92fec472006-12-16 20:44:14 +000023 (libgphoto2 does it, see http://svn.sourceforge.net/viewvc/gphoto/trunk/libgphoto2/camlibs/ptp2/library.c?r1=9491&r2=9590)
Linus Walleijc3743492006-09-04 17:37:19 +000024
Linus Walleijd5ad8852006-11-30 23:17:31 +0000254. 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 Walleijd5ad8852006-11-30 23:17:31 +000029FEATURE fixes:
30
311. FEATURE: Make abstract playlists really become size -1 when created as
Linus Walleijfa4e9792006-08-27 20:15:38 +000032 the ones created on the device instead of the current 1 byte size.
Linus Walleijd5ad8852006-11-30 23:17:31 +000033 (Is this possible using enhanced commands? See TODO remarks in
34 the create_abstract_entity() function)
Linus Walleijfa4e9792006-08-27 20:15:38 +000035
Linus Walleijd5ad8852006-11-30 23:17:31 +0000362. FEATURE: Support playback and volume setting on devices that have it.
Linus Walleijee73ef22006-08-27 19:56:00 +000037 (I don't have one that does - Linus.)
Linus Walleijcf223e62006-06-19 09:31:53 +000038
tedbullockedde60b2007-03-09 09:02:08 +0000393. FEATURE: Support relevant events. MTP devices seen in existance provide
Linus Walleijd5ad8852006-11-30 23:17:31 +000040 events for "object added" and "object deleted". These should result in
41 atleast a call to the flus_handles() function.
Linus Walleija29ed2a2007-02-25 22:01:37 +000042
tedbullockedde60b2007-03-09 09:02:08 +0000434. FEATURE: Have libmtp optionally create a folder hierarchy such as
Linus Walleija29ed2a2007-02-25 22:01:37 +000044 /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
tedbullockedde60b2007-03-09 09:02:08 +0000475. 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
516. 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
tedbullockedde60b2007-03-09 09:02:08 +0000569. 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 Walleija29ed2a2007-02-25 22:01:37 +000061
Linus Walleij971914e2007-04-20 08:15:22 +00006210.FEATURE: Support extracting the device icon so that userlevel apps can use
63 this to get a device representation.
64
Linus Walleija29ed2a2007-02-25 22:01:37 +000065THOSE ARE ALREADY DONE:
66
671. 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...