summaryrefslogtreecommitdiffstats
path: root/core/jni/android_media_AudioRecord.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/jni/android_media_AudioRecord.cpp')
-rw-r--r--core/jni/android_media_AudioRecord.cpp61
1 files changed, 15 insertions, 46 deletions
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp
index 2b2bee9..df9f893 100644
--- a/core/jni/android_media_AudioRecord.cpp
+++ b/core/jni/android_media_AudioRecord.cpp
@@ -21,7 +21,7 @@
#include <inttypes.h>
#include <jni.h>
#include <JNIHelp.h>
-#include <android_runtime/AndroidRuntime.h>
+#include "core_jni_helpers.h"
#include <utils/Log.h>
#include <media/AudioRecord.h>
@@ -606,59 +606,28 @@ int register_android_media_AudioRecord(JNIEnv *env)
// Get the AudioRecord class
- jclass audioRecordClass = env->FindClass(kClassPathName);
- if (audioRecordClass == NULL) {
- ALOGE("Can't find %s", kClassPathName);
- return -1;
- }
+ jclass audioRecordClass = FindClassOrDie(env, kClassPathName);
// Get the postEvent method
- javaAudioRecordFields.postNativeEventInJava = env->GetStaticMethodID(
- audioRecordClass,
- JAVA_POSTEVENT_CALLBACK_NAME, "(Ljava/lang/Object;IIILjava/lang/Object;)V");
- if (javaAudioRecordFields.postNativeEventInJava == NULL) {
- ALOGE("Can't find AudioRecord.%s", JAVA_POSTEVENT_CALLBACK_NAME);
- return -1;
- }
+ javaAudioRecordFields.postNativeEventInJava = GetStaticMethodIDOrDie(env,
+ audioRecordClass, JAVA_POSTEVENT_CALLBACK_NAME,
+ "(Ljava/lang/Object;IIILjava/lang/Object;)V");
// Get the variables
// mNativeRecorderInJavaObj
- javaAudioRecordFields.nativeRecorderInJavaObj =
- env->GetFieldID(audioRecordClass,
- JAVA_NATIVERECORDERINJAVAOBJ_FIELD_NAME, "J");
- if (javaAudioRecordFields.nativeRecorderInJavaObj == NULL) {
- ALOGE("Can't find AudioRecord.%s", JAVA_NATIVERECORDERINJAVAOBJ_FIELD_NAME);
- return -1;
- }
+ javaAudioRecordFields.nativeRecorderInJavaObj = GetFieldIDOrDie(env,
+ audioRecordClass, JAVA_NATIVERECORDERINJAVAOBJ_FIELD_NAME, "J");
// mNativeCallbackCookie
- javaAudioRecordFields.nativeCallbackCookie = env->GetFieldID(
- audioRecordClass,
- JAVA_NATIVECALLBACKINFO_FIELD_NAME, "J");
- if (javaAudioRecordFields.nativeCallbackCookie == NULL) {
- ALOGE("Can't find AudioRecord.%s", JAVA_NATIVECALLBACKINFO_FIELD_NAME);
- return -1;
- }
+ javaAudioRecordFields.nativeCallbackCookie = GetFieldIDOrDie(env,
+ audioRecordClass, JAVA_NATIVECALLBACKINFO_FIELD_NAME, "J");
// Get the AudioAttributes class and fields
- jclass audioAttrClass = env->FindClass(kAudioAttributesClassPathName);
- if (audioAttrClass == NULL) {
- ALOGE("Can't find %s", kAudioAttributesClassPathName);
- return -1;
- }
- jclass audioAttributesClassRef = (jclass)env->NewGlobalRef(audioAttrClass);
- javaAudioAttrFields.fieldRecSource = env->GetFieldID(audioAttributesClassRef, "mSource", "I");
- javaAudioAttrFields.fieldFlags = env->GetFieldID(audioAttributesClassRef, "mFlags", "I");
- javaAudioAttrFields.fieldFormattedTags =
- env->GetFieldID(audioAttributesClassRef, "mFormattedTags", "Ljava/lang/String;");
- env->DeleteGlobalRef(audioAttributesClassRef);
- if (javaAudioAttrFields.fieldRecSource == NULL
- || javaAudioAttrFields.fieldFlags == NULL
- || javaAudioAttrFields.fieldFormattedTags == NULL) {
- ALOGE("Can't initialize AudioAttributes fields");
- return -1;
- }
+ jclass audioAttrClass = FindClassOrDie(env, kAudioAttributesClassPathName);
+ javaAudioAttrFields.fieldRecSource = GetFieldIDOrDie(env, audioAttrClass, "mSource", "I");
+ javaAudioAttrFields.fieldFlags = GetFieldIDOrDie(env, audioAttrClass, "mFlags", "I");
+ javaAudioAttrFields.fieldFormattedTags = GetFieldIDOrDie(env,
+ audioAttrClass, "mFormattedTags", "Ljava/lang/String;");
- return AndroidRuntime::registerNativeMethods(env,
- kClassPathName, gMethods, NELEM(gMethods));
+ return RegisterMethodsOrDie(env, kClassPathName, gMethods, NELEM(gMethods));
}
// ----------------------------------------------------------------------------