summaryrefslogtreecommitdiffstats
path: root/media/jni
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-08-02 10:52:20 -0400
committerMike Lockwood <lockwood@android.com>2010-08-02 10:52:20 -0400
commit7a047c89862febf63ce1bb5873179c7a2ff8d9d3 (patch)
treec50e1d6590d63ef25e3e4d64cf57f3b4376495ee /media/jni
parent59c777a24a2c639dfd84b7bf17e430e6d3424866 (diff)
downloadframeworks_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.cpp23
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");