diff options
author | Andreas Huber <andih@google.com> | 2012-05-10 11:32:15 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-05-10 11:32:15 -0700 |
commit | b842599e51e2d3611503c3c7db1111358f99186d (patch) | |
tree | 7816391f4463c33434983fa81763f17a18a2ca39 /media/jni/android_media_Utils.cpp | |
parent | a25079e6bafcfd77135a852f0e838738d80606ef (diff) | |
download | frameworks_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.cpp | 48 |
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; } |