aboutsummaryrefslogtreecommitdiffstats
path: root/src/frontends/android/jni/libandroidbridge/android_jni.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontends/android/jni/libandroidbridge/android_jni.h')
-rw-r--r--src/frontends/android/jni/libandroidbridge/android_jni.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.h b/src/frontends/android/jni/libandroidbridge/android_jni.h
index b89fd3ad5..99c0bc2cd 100644
--- a/src/frontends/android/jni/libandroidbridge/android_jni.h
+++ b/src/frontends/android/jni/libandroidbridge/android_jni.h
@@ -122,4 +122,36 @@ static inline char *androidjni_convert_jstring(JNIEnv *env, jstring jstr)
return str;
}
+/**
+ * Converts the given Java byte array to a chunk
+ *
+ * @param env JNIEnv
+ * @param jbytearray Java byte array
+ * @return allocated chunk
+ */
+static inline chunk_t chunk_from_byte_array(JNIEnv *env, jbyteArray jbytearray)
+{
+ chunk_t chunk;
+
+ chunk = chunk_alloc((*env)->GetArrayLength(env, jbytearray));
+ (*env)->GetByteArrayRegion(env, jbytearray, 0, chunk.len, chunk.ptr);
+ return chunk;
+}
+
+/**
+ * Converts the given chunk to a Java byte array
+ *
+ * @param env JNIEnv
+ * @param chunk native chunk
+ * @return allocated Java byte array
+ */
+static inline jbyteArray byte_array_from_chunk(JNIEnv *env, chunk_t chunk)
+{
+ jbyteArray jbytearray;
+
+ jbytearray = (*env)->NewByteArray(env, chunk.len);
+ (*env)->SetByteArrayRegion(env, jbytearray, 0, chunk.len, chunk.ptr);
+ return jbytearray;
+}
+
#endif /** ANDROID_JNI_H_ @}*/