From 98693f674125484de8873d969c209276a6dd604b Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Tue, 7 Dec 2010 10:58:56 -0800 Subject: MTP: Host support for GetObjectPropsSupported and GetObjectPropDesc Change-Id: I6fd23587597fc68227dfb61118b097eda3e3e1d5 Signed-off-by: Mike Lockwood --- media/mtp/MtpDevice.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'media/mtp/MtpDevice.cpp') 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); -- cgit v1.1