88 Commits

Author SHA1 Message Date
Mike Lockwood
7d7fb63071 MTP: Add support for multiple properties in GetObjectPropList command
Change-Id: Ib469a6c8141937aaa3e811345056195117abb4b2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-02 08:16:12 -05:00
Mike Lockwood
9dfc7de2cc MTP: Make sure buffer is big enough before reading the data packet
Fixes buffer overflow when transferring large playlists.

Change-Id: I1b7feaf9e56d849e5b6609f0f68a6aa5a3ae1ea8
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-30 12:19:41 -05:00
Mike Lockwood
e3634c3a80 MTP: Fix typo in MtpServer::doGetObjectPropList
Change-Id: Ia5fec45a238c49a6797a4ac55457ddb5d6521408
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 18:45:25 -05:00
Mike Lockwood
44e82ddaec MTP: Implement GetPartialObject command
Allows host to read partial contents of files on the device

Change-Id: I74927f7394224d674e1d150a4b72a51d9358459b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 18:45:01 -05:00
Mike Lockwood
5b19af05f2 MTP: Use DateTime form in GetObjectPropDesc for date/time properties.
Change-Id: I5a3c0b07a9f2958b86947256606e6a824dbe93a6
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 18:38:55 -05:00
Mike Lockwood
5a2755d0c9 Rename MtpCursor to PtpCursor
Change-Id: I8ce257641388b195f3e17995d323355b19355dc1
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 12:25:49 -05:00
Mike Lockwood
d46c683f0e MTP: Remove static library build for linux host.
Change-Id: Iefdd386b91dba0579ca952aca40b7114535e1d4e
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 10:30:31 -05:00
Mike Lockwood
929b3da2fc PTP: Fix permissions problems with files imported via PTP
Change-Id: I630a89c67e5b3d6d0c29e6c257f84e1909fa4de2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-19 13:55:22 -05:00
Mike Lockwood
954c267725 PTP: Improve performance and reliability of file importing
Now the file copy is done completely within the media process
rather than pushing data to the client via ContProvider.openFile().

File system writes are now interleaved with USB reads, which allows us
to copy the data faster and prevents the camera from timing out during transfer.

File is automatically inserted in the media provider after a successful import
and a Uri is returned to the client.

BUG: 2994234

Change-Id: Ie75c63da76f623343d3d966c6a707aa1ae871972
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-19 11:30:10 -05:00
Mike Lockwood
413577d860 MTP: Fixes to allow file transfers > 4 gigabytes
BUG: 3198248

Change-Id: I6f11c79a19d7bdd63718a7370939124b1262d221
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-17 16:43:24 -05:00
Mike Lockwood
0b58c19840 MTP: Set correct format for abstract audio playlists
Fixes a bad interaction with the media scanner that could result in
playlists getting duplicated or deleted after rebooting.

BUG: 3175649

Change-Id: I970234e86b24ac17d069aca085683d988abc7881
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-17 15:42:09 -05:00
Mike Lockwood
e2ad6ec171 MTP: Partial implementation of the GetObjectPropList command
In this initial implementation we only support fetching one property at a time.
Support depth = 0 (single object) or depth = 1 (all objects in a directory)
Reimplemented GetObjectPropValue on top of GetObjectPropList, since the former
is a special case of the latter.

Change-Id: Ia76ee61741d6ee3902b5c5d9fc094cf86dfaf650
Signed-off-by: Mike Lockwood <lockwood@google.com>
2010-11-15 11:46:51 -05:00
Mike Lockwood
a108b2fdc1 MTP: Add missing call to closedir() in recursive delete code
BUG: 3185660

Change-Id: I3744d2cb193829d20a689af2aea50e8516779631
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-11 11:22:32 -05:00
Mike Lockwood
83cff86dcd MTP: Don't dump data packets twice in debug output.
Change-Id: I49b383d39aea101a58ae6902952ba91b44e7dc3b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-10 12:49:36 -05:00
Mike Lockwood
4a65e281fa Add support for range and enum forms in MTP ObjectPropDescs
Change-Id: I70809401e37a1cfb82f5dbf86947be7d9500ccf1
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-10 12:48:39 -05:00
Mike Lockwood
db7743128b MTP: Include size of 12 byte header in packet size for GetObject data packet
Fixes file transfer from device to host with libmtp.

Change-Id: Ifb304c1f106e94b2710ee5c11816b83cf5f25478
Signed-off-by: Mike Lockwood <lockwood@google.com>
2010-10-11 17:33:52 -04:00
Mike Lockwood
e11eba3c8a MtpCursor: Fix long to int truncation bug
BUG: 2978335

Change-Id: I2491a2ce3b65afa272540090cabace52067b8534
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-28 09:14:50 -04:00
Mike Lockwood
ac745c1c6b MTP: Fix some warnings
Change-Id: I1302cacd1df885c770332cecaaea9f7c8ab97b88
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-25 21:38:13 -04:00
Mike Lockwood
a2a2128423 MTP: Include current property value in GetDevicePropDesc
Change-Id: I05125c79ad58b6f75734fcedcc8af9b689fa9ff3
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-25 21:21:05 -04:00
Mike Lockwood
564ff84321 MTP: Fix reading and writing device property descriptors
Change-Id: I8d9653ceedfed688addd6c4194c097d7090c3468
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-25 08:37:59 -04:00
Mike Lockwood
d3bfecb0c9 MTP: Reenable GetObjectPropValue and SetObjectPropValue
Windows no longer chokes now that we implement the minimum set of properties

BUG: 2869730

Change-Id: Ie8bd9107610b9b38f060ad8a2f05334a3b4aff9b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-23 23:04:28 -04:00
Mike Lockwood
9f67924862 MTP: Minor debug output cleanup
Change-Id: I1065179aa64f43c7d8067ccda249319a016840ab
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-23 22:32:05 -04:00
Mike Lockwood
ba7655432c MTP: Fix problems with signed ints in MtpCursor.cpp
BUG: 2978335

Change-Id: Ie9f3dea3b88b00a555e1ca3232f196e83ee7a6da
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-23 22:08:16 -04:00
Mike Lockwood
88fc2b85cb MTP: Fix typo that resulted in the MTP provider returning thumb format for object format
BUG: 2994234

Change-Id: I99574043d3e0b310b9b7246f89b5b4a1e14fb5a6
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-20 18:29:59 -04:00
Mike Lockwood
ccb6e96194 MTP: Delete all files and subdirectories when deleting directories.
Children are now recursively deleted from the database and filesystem.

Change-Id: Ifd9b48cbc34b84b8f5073f2493dfe9735fae5492
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-14 10:37:27 -04:00
Mike Lockwood
59e3f0db08 MTP: Implement support for getting/setting device properties
Added support for the "device friendly name" and "synchonization partner"
properties, which are required by Microsoft.

Change-Id: Ic0443333d75f7d98a2d902a790b9d505a56d4eef
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-02 14:59:26 -04:00
Mike Lockwood
2837eefc54 MTP: Send an Intent after an MTP session that resulted in media database modifications
Change-Id: Ib2796e9155350c67769502935a73cf98d6ae9c08
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-31 16:25:12 -04:00
Mike Lockwood
53b8f17376 MTP: Fix build break due to integer constant too large
Change-Id: Ia03ebe171d68bdfb04913abafc11dcb9c9071595
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-25 19:10:24 -04:00
Mike Lockwood
828d19dd96 MTP: work in progress on expanded property support
GetObjectPropValue and SetObjectPropValue are disabled until I figure out
why Windows doesn't like what I have done.

Change-Id: I74e945ef3ea031f6d46f4ebaa8df815da0a5c3ed
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-25 18:42:22 -04:00
Mike Lockwood
9e837861b2 MTP: Compatibility fixes for transferring strings
Change-Id: Ic06d754ee68b0389439cdc34f73adff0f2b33afa
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-18 13:31:46 -04:00
Mike Lockwood
33ea5a4e86 MTP: Fix wrong delete operator from previous change.
Change-Id: I64e8fdc610495f21060727b6bed42d1584833405
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-10 15:11:32 -04:00
Mike Lockwood
4b322ce4fb MTP: Push queries for supported formats and properties up to Java.
Change-Id: I4f117090340e3916afda3d194521a6092a672ddc
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-10 09:00:30 -04:00
Mike Lockwood
fb824581d7 MTP: turn off verbose logging
Change-Id: Ifd449c4e8c4aec6e5623869e86f8cbedd303972c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-10 06:45:46 -04:00
Mike Lockwood
97c8d9046e MTP: Fix reading and writing property descriptors
We were missing support for the group code, resulting in an off by 4 bytes problem.

Change-Id: I4a640c67b8d36e1bd658b6185178a71966d4b0b6
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-09 14:49:28 -04:00
Mike Lockwood
d3793f38f9 MTP: Add debug code for printing names of MTP format and property codes.
Change-Id: Ia95ff014cec8720d01091fa30764011089076fe8
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-09 14:18:59 -04:00
Mike Lockwood
c642e8a44c MTP: Fix some typos
Change-Id: Ib31708c3a925e3c0ab8eea6922ab09e02b740936
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-09 14:17:52 -04:00
Mike Lockwood
9a2046fb5c MTP: Add support for syncing MTP playlists
MTP playlists now correspond to playlists in the media provider
(like those created by the Music app).

Change-Id: I085cb3cff003037ad62f0e297fb0cfd3047cb3a2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-03 15:36:22 -04:00
Mike Lockwood
7a047c8986 MTP: Implement GetNumObjects
Change-Id: Iccc3a445f9a1eab7bb76eddd567c6a3a8f155b2b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-02 10:52:20 -04:00
Mike Lockwood
59c777a24a Clean up MtpDatabase API.
Return MTP response codes instead of booleans for success or failure.
Remove some unused code.

Change-Id: I82ce80a4d7779233264e3caf139ebd0cece12f5c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-02 10:37:41 -04:00
Mike Lockwood
bb2b2a996b MTP host: Reduce buffer size for readObject so we don't clog our pipe.
Change-Id: I24d2b1551af5843e48c0a63b84925b3a6451e36a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-27 12:38:33 -04:00
Mike Lockwood
456d8e6e67 MTP: Turn off excessive logging
Change-Id: Ib0dd8cb99efa324d0b4e742bffeb913d6122ace2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-27 12:38:29 -04:00
Mike Lockwood
bc4cb0bc79 MTP host: Add support for reading files from an MTP device via ParcelFileDescriptor
Also added some support for sending files to the device that hasn't been debugged yet.
Add locking to MtpDevice to prevent it from attempting multiple transactions simultaneously.

Change-Id: I2b995ba0af086cc6920bd6b8c869f540ad78560a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-26 20:40:45 -04:00
Mike Lockwood
f78b26a572 MTP: Don't request thumbnails for folder objects in MtpCursor
Change-Id: I75a0a834ab746bed0a35883539c8dbc104789157
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-26 20:36:32 -04:00
Mike Lockwood
86187098ce MTP: Add hard coded support to recognize a couple MTP music players for testing purposes.
Change-Id: I2d09d78e83d13cfb3edff02372a6fc34b1e4d8b1
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-26 20:33:02 -04:00
Mike Lockwood
30881f68c9 Merge "MTP host fixes:" 2010-07-20 09:06:41 -07:00
Mike Lockwood
3c51d6a9ef MTP host fixes:
Add support for detecting android MTP devices
Fix problem reading data packet with header sent separately from payload.

Change-Id: I07b34af6783ebe2e63a317796ba0c8223df86edf
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-20 12:01:36 -04:00
Andy McFadden
aecf390618 Fix sim-eng build.
The LOCAL_PATH assignment was not available to the new host library
on simulator builds.

Change-Id: I7727f17ecc8f457f92bd6fa9ec13025dd8a56390
2010-07-20 08:18:43 -07:00
Mike Lockwood
108505b30f MTP: Remove race condition in initial device enumeration for host mode.
Change-Id: Iee01aaae3f8cca4234daa289bef6631da4d6c2b6
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-20 09:49:50 -04:00
Mike Lockwood
9bbc2ea9ad MTP: Fix problems reading and writing arrays in property values.
Change-Id: Idd53b63fd32698a3ffc90f174d16ae597b4feb36
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-20 09:49:50 -04:00
Mike Lockwood
bbd9f36efa MTP: add Linux host library for MTP/PTP host support.
Change-Id: Ie2ce60b957ee428a8e8db46a70c5a0ade8445007
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-20 09:49:50 -04:00