summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-12-07 17:11:07 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-12-07 17:11:07 -0800
commit79d8c23752e3004b62e513b2057a389346cdc335 (patch)
tree01a7b79ee08b509391541e516e96f4d2e4da51a4 /media
parent043b601774c0f302b73ed713772cd1bd62f43fe4 (diff)
parent98693f674125484de8873d969c209276a6dd604b (diff)
downloadframeworks_av-79d8c23752e3004b62e513b2057a389346cdc335.zip
frameworks_av-79d8c23752e3004b62e513b2057a389346cdc335.tar.gz
frameworks_av-79d8c23752e3004b62e513b2057a389346cdc335.tar.bz2
Merge "MTP: Host support for GetObjectPropsSupported and GetObjectPropDesc"
Diffstat (limited to 'media')
-rw-r--r--media/mtp/MtpDevice.cpp35
-rw-r--r--media/mtp/MtpDevice.h3
2 files changed, 38 insertions, 0 deletions
diff --git a/media/mtp/MtpDevice.cpp b/media/mtp/MtpDevice.cpp
index 416ebfe..a4d29a7 100644
--- a/media/mtp/MtpDevice.cpp
+++ b/media/mtp/MtpDevice.cpp
@@ -330,6 +330,23 @@ MtpObjectHandle MtpDevice::getStorageID(MtpObjectHandle handle) {
return -1;
}
+MtpObjectPropertyList* MtpDevice::getObjectPropsSupported(MtpObjectFormat format) {
+ Mutex::Autolock autoLock(mMutex);
+
+ mRequest.reset();
+ mRequest.setParameter(1, format);
+ if (!sendRequest(MTP_OPERATION_GET_OBJECT_PROPS_SUPPORTED))
+ return NULL;
+ if (!readData())
+ return NULL;
+ MtpResponseCode ret = readResponse();
+ if (ret == MTP_RESPONSE_OK) {
+ return mData.getAUInt16();
+ }
+ return NULL;
+
+}
+
MtpProperty* MtpDevice::getDevicePropDesc(MtpDeviceProperty code) {
Mutex::Autolock autoLock(mMutex);
@@ -348,6 +365,24 @@ MtpProperty* MtpDevice::getDevicePropDesc(MtpDeviceProperty code) {
return NULL;
}
+MtpProperty* MtpDevice::getObjectPropDesc(MtpObjectProperty code) {
+ Mutex::Autolock autoLock(mMutex);
+
+ mRequest.reset();
+ mRequest.setParameter(1, code);
+ if (!sendRequest(MTP_OPERATION_GET_OBJECT_PROP_DESC))
+ return NULL;
+ if (!readData())
+ return NULL;
+ MtpResponseCode ret = readResponse();
+ if (ret == MTP_RESPONSE_OK) {
+ MtpProperty* property = new MtpProperty;
+ property->read(mData);
+ return property;
+ }
+ return NULL;
+}
+
// reads the object's data and writes it to the specified file path
bool MtpDevice::readObject(MtpObjectHandle handle, const char* destPath, int group, int perm) {
LOGD("readObject: %s", destPath);
diff --git a/media/mtp/MtpDevice.h b/media/mtp/MtpDevice.h
index 21c85d5..6eba8c8 100644
--- a/media/mtp/MtpDevice.h
+++ b/media/mtp/MtpDevice.h
@@ -85,7 +85,10 @@ public:
MtpObjectHandle getParent(MtpObjectHandle handle);
MtpObjectHandle getStorageID(MtpObjectHandle handle);
+ MtpObjectPropertyList* getObjectPropsSupported(MtpObjectFormat format);
+
MtpProperty* getDevicePropDesc(MtpDeviceProperty code);
+ MtpProperty* getObjectPropDesc(MtpObjectProperty code);
bool readObject(MtpObjectHandle handle, const char* destPath, int group,
int perm);