diff options
author | Daichi Hirono <hirono@google.com> | 2016-01-11 13:33:41 +0900 |
---|---|---|
committer | Daichi Hirono <hirono@google.com> | 2016-01-12 12:14:30 +0900 |
commit | 2a9a43369b4717bcf6b372f6798f72e80e938e30 (patch) | |
tree | 5b0050d6d96ca7c9153acd304cd466b91e16a60f /media/jni/android_mtp_MtpDevice.cpp | |
parent | df7a1d69eab05f643bc7ec8bc43e93b441a5b7ad (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.cpp | 24 |
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, ¶meters); 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"); |