blob: d5ff6da64f1b3193a4f602af724ebbea28a74157 [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
29
30FEATURE fixes:
31
321. FEATURE: Make abstract playlists really become size -1 when created as
Linus Walleijfa4e9792006-08-27 20:15:38 +000033 the ones created on the device instead of the current 1 byte size.
Linus Walleijd5ad8852006-11-30 23:17:31 +000034 (Is this possible using enhanced commands? See TODO remarks in
35 the create_abstract_entity() function)
Linus Walleijfa4e9792006-08-27 20:15:38 +000036
Linus Walleijd5ad8852006-11-30 23:17:31 +0000372. FEATURE: Support playback and volume setting on devices that have it.
Linus Walleijee73ef22006-08-27 19:56:00 +000038 (I don't have one that does - Linus.)
Linus Walleijcf223e62006-06-19 09:31:53 +000039
Linus Walleijd5ad8852006-11-30 23:17:31 +0000403. FEATURE: Make an API that can return several devices and let the user
41 choose which one to operate, not just connect to the first one...
42
434. FEATURE: Support relevant events. MTP devices seen in existance provide
44 events for "object added" and "object deleted". These should result in
45 atleast a call to the flus_handles() function.