diff options
| author | Mike Lockwood <lockwood@android.com> | 2010-06-08 07:33:14 -0400 |
|---|---|---|
| committer | Mike Lockwood <lockwood@android.com> | 2010-06-10 14:08:29 -0400 |
| commit | f724eed5669762fdb0071e11ab3b38de77dd5c33 (patch) | |
| tree | 79675b1cef6d007ce59d352502d45c616e2f73df /media | |
| parent | 1ac53c3087996bf6542109715a2598dfa56aa872 (diff) | |
| download | frameworks_base-f724eed5669762fdb0071e11ab3b38de77dd5c33.zip frameworks_base-f724eed5669762fdb0071e11ab3b38de77dd5c33.tar.gz frameworks_base-f724eed5669762fdb0071e11ab3b38de77dd5c33.tar.bz2 | |
MTP provider: Add columns for MTP ObjectInfo dataset to the MTP objects table
Signed-off-by: Mike Lockwood <lockwood@android.com>
Change-Id: Ife0563ad1c3b3dbc2461e1a9e784cbb4653b3435
Diffstat (limited to 'media')
| -rw-r--r-- | media/java/android/media/MtpCursor.java | 47 | ||||
| -rw-r--r-- | media/mtp/MtpCursor.cpp | 102 | ||||
| -rw-r--r-- | media/mtp/MtpObjectInfo.cpp | 13 |
3 files changed, 153 insertions, 9 deletions
diff --git a/media/java/android/media/MtpCursor.java b/media/java/android/media/MtpCursor.java index 67ca31b..baf3c12 100644 --- a/media/java/android/media/MtpCursor.java +++ b/media/java/android/media/MtpCursor.java @@ -126,18 +126,39 @@ public final class MtpCursor extends AbstractWindowedCursor { } /* Device Column IDs */ - private static final int DEVICE_ROW_ID = 1; + /* These must match the values in MtpCursor.cpp */ + private static final int DEVICE_ROW_ID = 1; private static final int DEVICE_MANUFACTURER = 2; private static final int DEVICE_MODEL = 3; /* Storage Column IDs */ + /* These must match the values in MtpCursor.cpp */ private static final int STORAGE_ROW_ID = 101; private static final int STORAGE_IDENTIFIER = 102; private static final int STORAGE_DESCRIPTION = 103; /* Object Column IDs */ - private static final int OBJECT_ROW_ID = 201; - private static final int OBJECT_NAME = 202; + /* These must match the values in MtpCursor.cpp */ + private static final int OBJECT_ROW_ID = 201; + private static final int OBJECT_STORAGE_ID = 202; + private static final int OBJECT_FORMAT = 203; + private static final int OBJECT_PROTECTION_STATUS = 204; + private static final int OBJECT_SIZE = 205; + private static final int OBJECT_THUMB_FORMAT = 206; + private static final int OBJECT_THUMB_SIZE = 207; + private static final int OBJECT_THUMB_WIDTH = 208; + private static final int OBJECT_THUMB_HEIGHT = 209; + private static final int OBJECT_IMAGE_WIDTH = 210; + private static final int OBJECT_IMAGE_HEIGHT = 211; + private static final int OBJECT_IMAGE_DEPTH = 212; + private static final int OBJECT_PARENT = 213; + private static final int OBJECT_ASSOCIATION_TYPE = 214; + private static final int OBJECT_ASSOCIATION_DESC = 215; + private static final int OBJECT_SEQUENCE_NUMBER = 216; + private static final int OBJECT_NAME = 217; + private static final int OBJECT_DATE_CREATED = 218; + private static final int OBJECT_DATE_MODIFIED = 219; + private static final int OBJECT_KEYWORDS = 220; private static HashMap<String, Integer> sDeviceProjectionMap; private static HashMap<String, Integer> sStorageProjectionMap; @@ -156,6 +177,26 @@ public final class MtpCursor extends AbstractWindowedCursor { sObjectProjectionMap = new HashMap<String, Integer>(); sObjectProjectionMap.put(Mtp.Object._ID, new Integer(OBJECT_ROW_ID)); + sObjectProjectionMap.put(Mtp.Object.STORAGE_ID, new Integer(OBJECT_STORAGE_ID)); + sObjectProjectionMap.put(Mtp.Object.FORMAT, new Integer(OBJECT_FORMAT)); + sObjectProjectionMap.put(Mtp.Object.PROTECTION_STATUS, new Integer(OBJECT_PROTECTION_STATUS)); + sObjectProjectionMap.put(Mtp.Object.SIZE, new Integer(OBJECT_SIZE)); + sObjectProjectionMap.put(Mtp.Object.THUMB_FORMAT, new Integer(OBJECT_THUMB_FORMAT)); + sObjectProjectionMap.put(Mtp.Object.THUMB_SIZE, new Integer(OBJECT_THUMB_SIZE)); + sObjectProjectionMap.put(Mtp.Object.THUMB_WIDTH, new Integer(OBJECT_THUMB_WIDTH)); + sObjectProjectionMap.put(Mtp.Object.THUMB_HEIGHT, new Integer(OBJECT_THUMB_HEIGHT)); + sObjectProjectionMap.put(Mtp.Object.IMAGE_WIDTH, new Integer(OBJECT_IMAGE_WIDTH)); + sObjectProjectionMap.put(Mtp.Object.IMAGE_HEIGHT, new Integer(OBJECT_IMAGE_HEIGHT)); + sObjectProjectionMap.put(Mtp.Object.IMAGE_DEPTH, new Integer(OBJECT_IMAGE_DEPTH)); + sObjectProjectionMap.put(Mtp.Object.PARENT, new Integer(OBJECT_PARENT)); + sObjectProjectionMap.put(Mtp.Object.ASSOCIATION_TYPE, new Integer(OBJECT_ASSOCIATION_TYPE)); + sObjectProjectionMap.put(Mtp.Object.ASSOCIATION_DESC, new Integer(OBJECT_ASSOCIATION_DESC)); + sObjectProjectionMap.put(Mtp.Object.SEQUENCE_NUMBER, new Integer(OBJECT_SEQUENCE_NUMBER)); + sObjectProjectionMap.put(Mtp.Object.NAME, new Integer(OBJECT_NAME)); + sObjectProjectionMap.put(Mtp.Object.DATE_CREATED, new Integer(OBJECT_DATE_CREATED)); + sObjectProjectionMap.put(Mtp.Object.DATE_MODIFIED, new Integer(OBJECT_DATE_MODIFIED)); + sObjectProjectionMap.put(Mtp.Object.KEYWORDS, new Integer(OBJECT_KEYWORDS)); + sObjectProjectionMap.put(Mtp.Object.NAME, new Integer(OBJECT_NAME)); } diff --git a/media/mtp/MtpCursor.cpp b/media/mtp/MtpCursor.cpp index 9c9ce64..42d9e38 100644 --- a/media/mtp/MtpCursor.cpp +++ b/media/mtp/MtpCursor.cpp @@ -29,18 +29,39 @@ namespace android { /* Device Column IDs */ +/* These must match the values in MtpCursor.java */ #define DEVICE_ROW_ID 1 #define DEVICE_MANUFACTURER 2 #define DEVICE_MODEL 3 /* Storage Column IDs */ +/* These must match the values in MtpCursor.java */ #define STORAGE_ROW_ID 101 #define STORAGE_IDENTIFIER 102 #define STORAGE_DESCRIPTION 103 /* Object Column IDs */ -#define OBJECT_ROW_ID 201 -#define OBJECT_NAME 202 +/* These must match the values in MtpCursor.java */ +#define OBJECT_ROW_ID 201 +#define OBJECT_STORAGE_ID 202 +#define OBJECT_FORMAT 203 +#define OBJECT_PROTECTION_STATUS 204 +#define OBJECT_SIZE 205 +#define OBJECT_THUMB_FORMAT 206 +#define OBJECT_THUMB_SIZE 207 +#define OBJECT_THUMB_WIDTH 208 +#define OBJECT_THUMB_HEIGHT 209 +#define OBJECT_IMAGE_WIDTH 210 +#define OBJECT_IMAGE_HEIGHT 211 +#define OBJECT_IMAGE_DEPTH 212 +#define OBJECT_PARENT 213 +#define OBJECT_ASSOCIATION_TYPE 214 +#define OBJECT_ASSOCIATION_DESC 215 +#define OBJECT_SEQUENCE_NUMBER 216 +#define OBJECT_NAME 217 +#define OBJECT_DATE_CREATED 218 +#define OBJECT_DATE_MODIFIED 219 +#define OBJECT_KEYWORDS 220 MtpCursor::MtpCursor(MtpClient* client, int queryType, int deviceID, int storageID, int objectID, int columnCount, int* columns) @@ -252,11 +273,10 @@ fail: bool MtpCursor::fillObject(CursorWindow* window, MtpDevice* device, MtpObjectHandle objectID, int row) { -LOGD("fillObject %d\n", objectID); - MtpObjectInfo* objectInfo = device->getObjectInfo(objectID); if (!objectInfo) return false; + // objectInfo->print(); if (!prepareRow(window)) { delete objectInfo; return false; @@ -268,17 +288,89 @@ LOGD("fillObject %d\n", objectID); if (!putLong(window, objectID, row, i)) goto fail; break; + case OBJECT_STORAGE_ID: + if (!putLong(window, objectInfo->mStorageID, row, i)) + goto fail; + break; + case OBJECT_FORMAT: + if (!putLong(window, objectInfo->mFormat, row, i)) + goto fail; + break; + case OBJECT_PROTECTION_STATUS: + if (!putLong(window, objectInfo->mProtectionStatus, row, i)) + goto fail; + break; + case OBJECT_SIZE: + if (!putLong(window, objectInfo->mCompressedSize, row, i)) + goto fail; + break; + case OBJECT_THUMB_FORMAT: + if (!putLong(window, objectInfo->mThumbFormat, row, i)) + goto fail; + break; + case OBJECT_THUMB_SIZE: + if (!putLong(window, objectInfo->mThumbCompressedSize, row, i)) + goto fail; + break; + case OBJECT_THUMB_WIDTH: + if (!putLong(window, objectInfo->mThumbPixWidth, row, i)) + goto fail; + break; + case OBJECT_THUMB_HEIGHT: + if (!putLong(window, objectInfo->mThumbPixHeight, row, i)) + goto fail; + break; + case OBJECT_IMAGE_WIDTH: + if (!putLong(window, objectInfo->mImagePixWidth, row, i)) + goto fail; + break; + case OBJECT_IMAGE_HEIGHT: + if (!putLong(window, objectInfo->mImagePixHeight, row, i)) + goto fail; + break; + case OBJECT_IMAGE_DEPTH: + if (!putLong(window, objectInfo->mImagePixDepth, row, i)) + goto fail; + break; + case OBJECT_PARENT: + if (!putLong(window, objectInfo->mParent, row, i)) + goto fail; + break; + case OBJECT_ASSOCIATION_TYPE: + if (!putLong(window, objectInfo->mAssociationType, row, i)) + goto fail; + break; + case OBJECT_ASSOCIATION_DESC: + if (!putLong(window, objectInfo->mAssociationDesc, row, i)) + goto fail; + break; + case OBJECT_SEQUENCE_NUMBER: + if (!putLong(window, objectInfo->mSequenceNumber, row, i)) + goto fail; + break; case OBJECT_NAME: if (!putString(window, objectInfo->mName, row, i)) goto fail; break; + case OBJECT_DATE_CREATED: + if (!putLong(window, objectInfo->mDateCreated, row, i)) + goto fail; + break; + case OBJECT_DATE_MODIFIED: + if (!putLong(window, objectInfo->mDateModified, row, i)) + goto fail; + break; + case OBJECT_KEYWORDS: + if (!putString(window, objectInfo->mKeywords, row, i)) + goto fail; + break; default: LOGE("fillStorage: unknown column %d\n", mColumns[i]); goto fail; } } - delete objectInfo; + delete objectInfo; return true; fail: diff --git a/media/mtp/MtpObjectInfo.cpp b/media/mtp/MtpObjectInfo.cpp index a0ee2b6..de0f54a 100644 --- a/media/mtp/MtpObjectInfo.cpp +++ b/media/mtp/MtpObjectInfo.cpp @@ -64,7 +64,7 @@ void MtpObjectInfo::read(MtpDataPacket& packet) { mProtectionStatus = packet.getUInt16(); mCompressedSize = packet.getUInt32(); mThumbFormat = packet.getUInt16(); - mCompressedSize = packet.getUInt32(); + mThumbCompressedSize = packet.getUInt32(); mThumbPixWidth = packet.getUInt32(); mThumbPixHeight = packet.getUInt32(); mImagePixWidth = packet.getUInt32(); @@ -92,6 +92,17 @@ void MtpObjectInfo::read(MtpDataPacket& packet) { void MtpObjectInfo::print() { LOGD("MtpObject Info %08X: %s\n", mHandle, mName); + LOGD(" mStorageID: %08X mFormat: %04X mProtectionStatus: %d\n", + mStorageID, mFormat, mProtectionStatus); + LOGD(" mCompressedSize: %d mThumbFormat: %04X mThumbCompressedSize: %d\n", + mCompressedSize, mFormat, mThumbCompressedSize); + LOGD(" mThumbPixWidth: %d mThumbPixHeight: %d\n", mThumbPixWidth, mThumbPixHeight); + LOGD(" mImagePixWidth: %d mImagePixHeight: %d mImagePixDepth: %d\n", + mImagePixWidth, mImagePixHeight, mImagePixDepth); + LOGD(" mParent: %08X mAssociationType: %04X mAssociationDesc: %04X\n", + mParent, mAssociationType, mAssociationDesc); + LOGD(" mSequenceNumber: %d mDateCreated: %d mDateModified: %d mKeywords: %s\n", + mSequenceNumber, mDateCreated, mDateModified, mKeywords); } } // namespace android |
