summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2018-11-28 00:48:52 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-11-28 00:48:52 +0000
commit346638c6fd3d7d6d9c287e426063f0d6a3890743 (patch)
tree20737f0e7f617f0c701627bbdbd962f6a7ea1ac2
parent85cee730920142daf5875c89ec77b0ddddd78382 (diff)
parent78b1f623670259d22e620400b57684602cfb17f7 (diff)
downloadwilhelm-346638c6fd3d7d6d9c287e426063f0d6a3890743.tar.gz
Merge "Move JNI initialization for OpenSLES routing to system startup."
-rw-r--r--src/itf/IAndroidConfiguration.cpp44
1 files changed, 14 insertions, 30 deletions
diff --git a/src/itf/IAndroidConfiguration.cpp b/src/itf/IAndroidConfiguration.cpp
index 7bdb235..412ef70 100644
--- a/src/itf/IAndroidConfiguration.cpp
+++ b/src/itf/IAndroidConfiguration.cpp
@@ -23,6 +23,14 @@
#include <android_runtime/AndroidRuntime.h>
+extern jmethodID gMidAudioTrackRoutingProxy_ctor;
+extern jmethodID gMidAudioTrackRoutingProxy_release;
+extern jmethodID gMidAudioRecordRoutingProxy_ctor;
+extern jmethodID gMidAudioRecordRoutingProxy_release;
+
+extern jclass gClsAudioTrackRoutingProxy;
+extern jclass gClsAudioRecordRoutingProxy;
+
static SLresult IAndroidConfiguration_SetConfiguration(SLAndroidConfigurationItf self,
const SLchar *configKey,
const void *pConfigValue,
@@ -150,17 +158,11 @@ static SLresult AllocPlayerRoutingProxy(IAndroidConfiguration* iConfig, jobject*
JNIEnv* j_env = android::AndroidRuntime::getJNIEnv();
- // Get the constructor for (Java) AudioTrackRoutingProxy
- jclass clsAudioTrackRoutingProxy =
- j_env->FindClass("android/media/AudioTrackRoutingProxy");
- jmethodID midAudioTrackRoutingProxy_ctor =
- j_env->GetMethodID(clsAudioTrackRoutingProxy, "<init>", "(J)V");
-
j_env->ExceptionClear();
jobject localObjRef =
- j_env->NewObject(clsAudioTrackRoutingProxy,
- midAudioTrackRoutingProxy_ctor,
+ j_env->NewObject(gClsAudioTrackRoutingProxy,
+ gMidAudioTrackRoutingProxy_ctor,
(jlong)pAudioTrack /*audioTrackObjInLong*/);
*proxyObj = j_env->NewGlobalRef(localObjRef);
@@ -226,16 +228,10 @@ static SLresult AllocRecorderRoutingProxy(IAndroidConfiguration* iConfig, jobjec
JNIEnv* j_env = android::AndroidRuntime::getJNIEnv();
- // Get the constructor for (Java) AudioRecordRoutingProxy
- jclass clsAudioRecordRoutingProxy =
- j_env->FindClass("android/media/AudioRecordRoutingProxy");
- jmethodID midAudioRecordRoutingProxy_ctor =
- j_env->GetMethodID(clsAudioRecordRoutingProxy, "<init>", "(J)V");
-
j_env->ExceptionClear();
jobject localObjRef =
- j_env->NewObject(clsAudioRecordRoutingProxy,
- midAudioRecordRoutingProxy_ctor,
+ j_env->NewObject(gClsAudioRecordRoutingProxy,
+ gMidAudioRecordRoutingProxy_ctor,
(jlong)pAudioRecord /*audioRecordObjInLong*/);
*proxyObj = j_env->NewGlobalRef(localObjRef);
@@ -332,14 +328,8 @@ static SLresult IAndroidConfiguration_ReleaseJavaProxy(SLAndroidConfigurationItf
{
JNIEnv* j_env = android::AndroidRuntime::getJNIEnv();
- // Get the release method for (Java) AudioTrackRoutingProxy
- jclass clsAudioTrackRoutingProxy =
- j_env->FindClass("android/media/AudioTrackRoutingProxy");
- jmethodID midAudioTrackRoutingProxy_release =
- j_env->GetMethodID(clsAudioTrackRoutingProxy, "native_release", "()V");
-
j_env->ExceptionClear();
- j_env->CallVoidMethod(iConfig->mRoutingProxy, midAudioTrackRoutingProxy_release);
+ j_env->CallVoidMethod(iConfig->mRoutingProxy, gMidAudioTrackRoutingProxy_release);
if (j_env->ExceptionCheck()) {
SL_LOGE("Java exception releasing recorder routing object.");
result = SL_RESULT_INTERNAL_ERROR;
@@ -353,14 +343,8 @@ static SLresult IAndroidConfiguration_ReleaseJavaProxy(SLAndroidConfigurationItf
{
JNIEnv* j_env = android::AndroidRuntime::getJNIEnv();
- // Get the release method for (Java) AudioTrackRoutingProxy
- jclass clsAudioRecordRoutingProxy =
- j_env->FindClass("android/media/AudioRecordRoutingProxy");
- jmethodID midAudioRecordRoutingProxy_release =
- j_env->GetMethodID(clsAudioRecordRoutingProxy, "native_release", "()V");
-
j_env->ExceptionClear();
- j_env->CallVoidMethod(iConfig->mRoutingProxy, midAudioRecordRoutingProxy_release);
+ j_env->CallVoidMethod(iConfig->mRoutingProxy, gMidAudioRecordRoutingProxy_release);
if (j_env->ExceptionCheck()) {
SL_LOGE("Java exception releasing recorder routing object.");
result = SL_RESULT_INTERNAL_ERROR;