Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 171dba2c authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge "Audio: add getters for port ID in AudioTrack and AudioRecord JNI"

parents f3867a70 2dc54839
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -841,6 +841,18 @@ static jint android_media_AudioRecord_get_active_microphones(JNIEnv *env,
    return jStatus;
}

// ----------------------------------------------------------------------------
static jint android_media_AudioRecord_get_port_id(JNIEnv *env,  jobject thiz) {
    sp<AudioRecord> lpRecorder = getAudioRecord(env, thiz);
    if (lpRecorder == NULL) {
        jniThrowException(env, "java/lang/IllegalStateException",
                          "Unable to retrieve AudioRecord pointer for getId()");
        return (jint)AUDIO_PORT_HANDLE_NONE;
    }
    return (jint)lpRecorder->getPortId();
}


// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
static const JNINativeMethod gMethods[] = {
@@ -883,6 +895,7 @@ static const JNINativeMethod gMethods[] = {
                                       (void *)android_media_AudioRecord_get_timestamp},
    {"native_get_active_microphones", "(Ljava/util/ArrayList;)I",
                                        (void *)android_media_AudioRecord_get_active_microphones},
    {"native_getPortId", "()I", (void *)android_media_AudioRecord_get_port_id},
};

// field names found in android/media/AudioRecord.java
+12 −1
Original line number Diff line number Diff line
@@ -1283,6 +1283,17 @@ static int android_media_AudioTrack_setPresentation(
    return (jint)lpTrack->selectPresentation((int)presentationId, (int)programId);
}

// ----------------------------------------------------------------------------
static jint android_media_AudioTrack_get_port_id(JNIEnv *env,  jobject thiz) {
    sp<AudioTrack> lpTrack = getAudioTrack(env, thiz);
    if (lpTrack == NULL) {
        jniThrowException(env, "java/lang/IllegalStateException",
                          "AudioTrack not initialized");
        return (jint)AUDIO_PORT_HANDLE_NONE;
    }
    return (jint)lpTrack->getPortId();
}

// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
static const JNINativeMethod gMethods[] = {
@@ -1354,6 +1365,7 @@ static const JNINativeMethod gMethods[] = {
            "(I)Landroid/media/VolumeShaper$State;",
                                        (void *)android_media_AudioTrack_get_volume_shaper_state},
    {"native_setPresentation", "(II)I", (void *)android_media_AudioTrack_setPresentation},
    {"native_getPortId", "()I", (void *)android_media_AudioTrack_get_port_id},
};


@@ -1379,7 +1391,6 @@ bool android_media_getIntConstantFromClass(JNIEnv* pEnv, jclass theClass, const
    }
}


// ----------------------------------------------------------------------------
int register_android_media_AudioTrack(JNIEnv *env)
{
+11 −11
Original line number Diff line number Diff line
@@ -16,16 +16,6 @@

package android.media;

import java.io.IOException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
import java.nio.ByteBuffer;
import java.util.Collection;
import java.util.Iterator;
import java.util.ArrayList;
import java.util.List;

import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.SystemApi;
@@ -39,13 +29,21 @@ import android.os.Message;
import android.os.PersistableBundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Log;
import android.util.Pair;

import com.android.internal.annotations.GuardedBy;

import java.io.IOException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * The AudioRecord class manages the audio resources for Java applications
 * to record audio from the audio input hardware of the platform. This is
@@ -1807,6 +1805,8 @@ public class AudioRecord implements AudioRouting
    private native final int native_get_active_microphones(
            ArrayList<MicrophoneInfo> activeMicrophones);

    private native int native_getPortId();

    //---------------------------------------------------------
    // Utility methods
    //------------------
+2 −0
Original line number Diff line number Diff line
@@ -3423,6 +3423,8 @@ public class AudioTrack extends PlayerBase
    private native @Nullable VolumeShaper.State native_getVolumeShaperState(int id);
    private native final int native_setPresentation(int presentationId, int programId);

    private native int native_getPortId();

    //---------------------------------------------------------
    // Utility methods
    //------------------