summaryrefslogtreecommitdiffstats
path: root/media/jni/android_media_Utils.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-05-10 11:32:15 -0700
committerAndreas Huber <andih@google.com>2012-05-10 11:32:15 -0700
commitb842599e51e2d3611503c3c7db1111358f99186d (patch)
tree7816391f4463c33434983fa81763f17a18a2ca39 /media/jni/android_media_Utils.cpp
parenta25079e6bafcfd77135a852f0e838738d80606ef (diff)
downloadframeworks_base-b842599e51e2d3611503c3c7db1111358f99186d.zip
frameworks_base-b842599e51e2d3611503c3c7db1111358f99186d.tar.gz
frameworks_base-b842599e51e2d3611503c3c7db1111358f99186d.tar.bz2
Make sure crop rect information is visible from java.
Change-Id: Ib914de3d42349efcd7af301d43bec82a21d24ce5 related-to-bug: 6471684
Diffstat (limited to 'media/jni/android_media_Utils.cpp')
-rw-r--r--media/jni/android_media_Utils.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/media/jni/android_media_Utils.cpp b/media/jni/android_media_Utils.cpp
index a4d88ff..e35ace3 100644
--- a/media/jni/android_media_Utils.cpp
+++ b/media/jni/android_media_Utils.cpp
@@ -125,6 +125,19 @@ static jobject makeByteBufferObject(
return byteBufObj;
}
+static void SetMapInt32(
+ JNIEnv *env, jobject hashMapObj, jmethodID hashMapPutID,
+ const char *key, int32_t value) {
+ jstring keyObj = env->NewStringUTF(key);
+ jobject valueObj = makeIntegerObject(env, value);
+
+ jobject res = env->CallObjectMethod(
+ hashMapObj, hashMapPutID, keyObj, valueObj);
+
+ env->DeleteLocalRef(valueObj); valueObj = NULL;
+ env->DeleteLocalRef(keyObj); keyObj = NULL;
+}
+
status_t ConvertMessageToMap(
JNIEnv *env, const sp<AMessage> &msg, jobject *map) {
jclass hashMapClazz = env->FindClass("java/util/HashMap");
@@ -205,6 +218,41 @@ status_t ConvertMessageToMap(
break;
}
+ case AMessage::kTypeRect:
+ {
+ int32_t left, top, right, bottom;
+ CHECK(msg->findRect(key, &left, &top, &right, &bottom));
+
+ SetMapInt32(
+ env,
+ hashMap,
+ hashMapPutID,
+ StringPrintf("%s-left", key).c_str(),
+ left);
+
+ SetMapInt32(
+ env,
+ hashMap,
+ hashMapPutID,
+ StringPrintf("%s-top", key).c_str(),
+ top);
+
+ SetMapInt32(
+ env,
+ hashMap,
+ hashMapPutID,
+ StringPrintf("%s-right", key).c_str(),
+ right);
+
+ SetMapInt32(
+ env,
+ hashMap,
+ hashMapPutID,
+ StringPrintf("%s-bottom", key).c_str(),
+ bottom);
+ break;
+ }
+
default:
break;
}