diff options
author | Mike Lockwood <lockwood@android.com> | 2010-08-02 10:52:20 -0400 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2010-08-02 10:52:20 -0400 |
commit | 7a047c89862febf63ce1bb5873179c7a2ff8d9d3 (patch) | |
tree | c50e1d6590d63ef25e3e4d64cf57f3b4376495ee /media/jni | |
parent | 59c777a24a2c639dfd84b7bf17e430e6d3424866 (diff) | |
download | frameworks_base-7a047c89862febf63ce1bb5873179c7a2ff8d9d3.zip frameworks_base-7a047c89862febf63ce1bb5873179c7a2ff8d9d3.tar.gz frameworks_base-7a047c89862febf63ce1bb5873179c7a2ff8d9d3.tar.bz2 |
MTP: Implement GetNumObjects
Change-Id: Iccc3a445f9a1eab7bb76eddd567c6a3a8f155b2b
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media/jni')
-rw-r--r-- | media/jni/android_media_MtpDatabase.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/media/jni/android_media_MtpDatabase.cpp b/media/jni/android_media_MtpDatabase.cpp index 9e1ede5..5ab0a55 100644 --- a/media/jni/android_media_MtpDatabase.cpp +++ b/media/jni/android_media_MtpDatabase.cpp @@ -39,6 +39,7 @@ using namespace android; static jmethodID method_beginSendObject; static jmethodID method_endSendObject; static jmethodID method_getObjectList; +static jmethodID method_getNumObjects; static jmethodID method_getObjectProperty; static jmethodID method_getObjectInfo; static jmethodID method_getObjectFilePath; @@ -80,6 +81,10 @@ public: MtpObjectFormat format, MtpObjectHandle parent); + virtual int getNumObjects(MtpStorageID storageID, + MtpObjectFormat format, + MtpObjectHandle parent); + virtual MtpResponseCode getObjectProperty(MtpObjectHandle handle, MtpObjectProperty property, MtpDataPacket& packet); @@ -164,15 +169,20 @@ MtpObjectHandleList* MyMtpDatabase::getObjectList(MtpStorageID storageID, MtpObjectHandleList* list = new MtpObjectHandleList(); jint* handles = env->GetIntArrayElements(array, 0); jsize length = env->GetArrayLength(array); -LOGD("getObjectList length: %d", length); - for (int i = 0; i < length; i++) { -LOGD("push: %d", handles[i]); + for (int i = 0; i < length; i++) list->push(handles[i]); - } env->ReleaseIntArrayElements(array, handles, 0); return list; } +int MyMtpDatabase::getNumObjects(MtpStorageID storageID, + MtpObjectFormat format, + MtpObjectHandle parent) { + JNIEnv* env = AndroidRuntime::getJNIEnv(); + return env->CallIntMethod(mDatabase, method_getNumObjects, + (jint)storageID, (jint)format, (jint)parent); +} + MtpResponseCode MyMtpDatabase::getObjectProperty(MtpObjectHandle handle, MtpObjectProperty property, MtpDataPacket& packet) { @@ -407,6 +417,11 @@ int register_android_media_MtpDatabase(JNIEnv *env) LOGE("Can't find getObjectList"); return -1; } + method_getNumObjects = env->GetMethodID(clazz, "getNumObjects", "(III)I"); + if (method_getNumObjects == NULL) { + LOGE("Can't find getNumObjects"); + return -1; + } method_getObjectProperty = env->GetMethodID(clazz, "getObjectProperty", "(II[J[C)I"); if (method_getObjectProperty == NULL) { LOGE("Can't find getObjectProperty"); |