summaryrefslogtreecommitdiff
path: root/media/jni/android_mtp_MtpDevice.cpp
diff options
context:
space:
mode:
authorDaichi Hirono <hirono@google.com>2016-01-11 13:33:41 +0900
committerDaichi Hirono <hirono@google.com>2016-01-12 12:14:30 +0900
commit2a9a43369b4717bcf6b372f6798f72e80e938e30 (patch)
tree5b0050d6d96ca7c9153acd304cd466b91e16a60f /media/jni/android_mtp_MtpDevice.cpp
parentdf7a1d69eab05f643bc7ec8bc43e93b441a5b7ad (diff)
Reland "Add event parameters to MtpEvent."
The CL was previously reviewed at ag/842930. > We can obtain detailed information of MtpEvent from devices. e.g. object > handle of changed object. The CL adds the detailed information as > properties of MtpEvent class. > > BUG=26480986 Change-Id: I93afad9caf118d74cd0923d70242133c4fb2a648
Diffstat (limited to 'media/jni/android_mtp_MtpDevice.cpp')
-rw-r--r--media/jni/android_mtp_MtpDevice.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/media/jni/android_mtp_MtpDevice.cpp b/media/jni/android_mtp_MtpDevice.cpp
index 4aa12c2d6ffc..130dfe554f89 100644
--- a/media/jni/android_mtp_MtpDevice.cpp
+++ b/media/jni/android_mtp_MtpDevice.cpp
@@ -98,6 +98,9 @@ static jfieldID field_objectInfo_keywords;
// MtpEvent fields
static jfieldID field_event_eventCode;
+static jfieldID field_event_parameter1;
+static jfieldID field_event_parameter2;
+static jfieldID field_event_parameter3;
class JavaArrayWriter {
public:
@@ -573,13 +576,17 @@ static jobject android_mtp_MtpDevice_reap_event_request(JNIEnv *env, jobject thi
env->ThrowNew(clazz_io_exception, "");
return NULL;
}
- const int eventCode = device->reapEventRequest(seq);
+ uint32_t parameters[3];
+ const int eventCode = device->reapEventRequest(seq, &parameters);
if (eventCode <= 0) {
env->ThrowNew(clazz_operation_canceled_exception, "");
return NULL;
}
jobject result = env->NewObject(clazz_event, constructor_event);
env->SetIntField(result, field_event_eventCode, eventCode);
+ env->SetIntField(result, field_event_parameter1, static_cast<jint>(parameters[0]));
+ env->SetIntField(result, field_event_parameter2, static_cast<jint>(parameters[1]));
+ env->SetIntField(result, field_event_parameter3, static_cast<jint>(parameters[2]));
return result;
}
@@ -832,6 +839,21 @@ int register_android_mtp_MtpDevice(JNIEnv *env)
ALOGE("Can't find MtpObjectInfo.mEventCode");
return -1;
}
+ field_event_parameter1 = env->GetFieldID(clazz, "mParameter1", "I");
+ if (field_event_parameter1 == NULL) {
+ ALOGE("Can't find MtpObjectInfo.mParameter1");
+ return -1;
+ }
+ field_event_parameter2 = env->GetFieldID(clazz, "mParameter2", "I");
+ if (field_event_parameter2 == NULL) {
+ ALOGE("Can't find MtpObjectInfo.mParameter2");
+ return -1;
+ }
+ field_event_parameter3 = env->GetFieldID(clazz, "mParameter3", "I");
+ if (field_event_parameter3 == NULL) {
+ ALOGE("Can't find MtpObjectInfo.mParameter3");
+ return -1;
+ }
clazz_event = (jclass)env->NewGlobalRef(clazz);
clazz = env->FindClass("android/mtp/MtpDevice");