From 3009f0b911e39d3b26c69bd7667d6444eacb9d11 Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Fri, 28 Mar 2014 16:02:26 -0700 Subject: Don't ignore return value of setAuxEffectSendLevel() Change-Id: I1383c913304430146e6f40d89df623dd0d582e50 --- core/jni/android_media_AudioTrack.cpp | 13 +++++++++---- media/java/android/media/AudioTrack.java | 8 ++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/core/jni/android_media_AudioTrack.cpp b/core/jni/android_media_AudioTrack.cpp index 79a46fa268d0..75cb21d2f5dd 100644 --- a/core/jni/android_media_AudioTrack.cpp +++ b/core/jni/android_media_AudioTrack.cpp @@ -888,17 +888,22 @@ static jint android_media_AudioTrack_get_min_buff_size(JNIEnv *env, jobject thi } // ---------------------------------------------------------------------------- -static void +static jint android_media_AudioTrack_setAuxEffectSendLevel(JNIEnv *env, jobject thiz, jfloat level ) { sp lpTrack = getAudioTrack(env, thiz); if (lpTrack == NULL ) { jniThrowException(env, "java/lang/IllegalStateException", "Unable to retrieve AudioTrack pointer for setAuxEffectSendLevel()"); - return; + return -1; } - lpTrack->setAuxEffectSendLevel(level); + status_t status = lpTrack->setAuxEffectSendLevel(level); + if (status != NO_ERROR) { + ALOGE("AudioTrack::setAuxEffectSendLevel() for level %g failed with status %d", + level, status); + } + return (jint) status; } // ---------------------------------------------------------------------------- @@ -954,7 +959,7 @@ static JNINativeMethod gMethods[] = { {"native_get_min_buff_size", "(III)I", (void *)android_media_AudioTrack_get_min_buff_size}, {"native_setAuxEffectSendLevel", - "(F)V", (void *)android_media_AudioTrack_setAuxEffectSendLevel}, + "(F)I", (void *)android_media_AudioTrack_setAuxEffectSendLevel}, {"native_attachAuxEffect", "(I)I", (void *)android_media_AudioTrack_attachAuxEffect}, }; diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index 40c6797b3e1e..57bc17135590 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -1321,7 +1321,7 @@ public class AudioTrack * * @param level send level scalar * @return error code or success, see {@link #SUCCESS}, - * {@link #ERROR_INVALID_OPERATION} + * {@link #ERROR_INVALID_OPERATION}, {@link #ERROR} */ public int setAuxEffectSendLevel(float level) { if (isRestricted()) { @@ -1337,8 +1337,8 @@ public class AudioTrack if (level > getMaxVolume()) { level = getMaxVolume(); } - native_setAuxEffectSendLevel(level); - return SUCCESS; + int err = native_setAuxEffectSendLevel(level); + return err == 0 ? SUCCESS : ERROR; } //--------------------------------------------------------- @@ -1508,7 +1508,7 @@ public class AudioTrack int sampleRateInHz, int channelConfig, int audioFormat); private native final int native_attachAuxEffect(int effectId); - private native final void native_setAuxEffectSendLevel(float level); + private native final int native_setAuxEffectSendLevel(float level); //--------------------------------------------------------- // Utility methods -- cgit v1.2.3-59-g8ed1b