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

Commit d83ce75e authored by PODISHETTY KUMAR's avatar PODISHETTY KUMAR Committed by Android (Google) Code Review
Browse files

Merge "Revert "Add (virtual) device ID to AudioPolicy/AudioMix"" into main

parents 9ab91206 a27f0bcb
Loading
Loading
Loading
Loading
+2 −5
Original line number Original line Diff line number Diff line
@@ -161,7 +161,6 @@ static struct {
    jfieldID mMixType;
    jfieldID mMixType;
    jfieldID mCallbackFlags;
    jfieldID mCallbackFlags;
    jfieldID mToken;
    jfieldID mToken;
    jfieldID mVirtualDeviceId;
} gAudioMixFields;
} gAudioMixFields;


static jclass gAudioFormatClass;
static jclass gAudioFormatClass;
@@ -2313,7 +2312,7 @@ static jint convertAudioMixFromNative(JNIEnv *env, jobject *jAudioMix, const Aud
    jstring deviceAddress = env->NewStringUTF(nAudioMix.mDeviceAddress.c_str());
    jstring deviceAddress = env->NewStringUTF(nAudioMix.mDeviceAddress.c_str());
    *jAudioMix = env->NewObject(gAudioMixClass, gAudioMixCstor, jAudioMixingRule, jAudioFormat,
    *jAudioMix = env->NewObject(gAudioMixClass, gAudioMixCstor, jAudioMixingRule, jAudioFormat,
                                nAudioMix.mRouteFlags, nAudioMix.mCbFlags, nAudioMix.mDeviceType,
                                nAudioMix.mRouteFlags, nAudioMix.mCbFlags, nAudioMix.mDeviceType,
                                deviceAddress, jBinderToken, nAudioMix.mVirtualDeviceId);
                                deviceAddress, jBinderToken);
    return AUDIO_JAVA_SUCCESS;
    return AUDIO_JAVA_SUCCESS;
}
}


@@ -2348,7 +2347,6 @@ static jint convertAudioMixToNative(JNIEnv *env, AudioMix *nAudioMix, const jobj
            aiBinder(AIBinder_fromJavaBinder(env, jToken), &AIBinder_decStrong);
            aiBinder(AIBinder_fromJavaBinder(env, jToken), &AIBinder_decStrong);
    nAudioMix->mToken = AIBinder_toPlatformBinder(aiBinder.get());
    nAudioMix->mToken = AIBinder_toPlatformBinder(aiBinder.get());


    nAudioMix->mVirtualDeviceId = env->GetIntField(jAudioMix, gAudioMixFields.mVirtualDeviceId);
    jint status = convertAudioMixingRuleToNative(env, jRule, &(nAudioMix->mCriteria));
    jint status = convertAudioMixingRuleToNative(env, jRule, &(nAudioMix->mCriteria));


    env->DeleteLocalRef(jRule);
    env->DeleteLocalRef(jRule);
@@ -3678,7 +3676,7 @@ int register_android_media_AudioSystem(JNIEnv *env)
        gAudioMixCstor =
        gAudioMixCstor =
                GetMethodIDOrDie(env, audioMixClass, "<init>",
                GetMethodIDOrDie(env, audioMixClass, "<init>",
                                 "(Landroid/media/audiopolicy/AudioMixingRule;Landroid/"
                                 "(Landroid/media/audiopolicy/AudioMixingRule;Landroid/"
                                 "media/AudioFormat;IIILjava/lang/String;Landroid/os/IBinder;I)V");
                                 "media/AudioFormat;IIILjava/lang/String;Landroid/os/IBinder;)V");
    }
    }
    gAudioMixFields.mRule = GetFieldIDOrDie(env, audioMixClass, "mRule",
    gAudioMixFields.mRule = GetFieldIDOrDie(env, audioMixClass, "mRule",
                                                "Landroid/media/audiopolicy/AudioMixingRule;");
                                                "Landroid/media/audiopolicy/AudioMixingRule;");
@@ -3691,7 +3689,6 @@ int register_android_media_AudioSystem(JNIEnv *env)
    gAudioMixFields.mMixType = GetFieldIDOrDie(env, audioMixClass, "mMixType", "I");
    gAudioMixFields.mMixType = GetFieldIDOrDie(env, audioMixClass, "mMixType", "I");
    gAudioMixFields.mCallbackFlags = GetFieldIDOrDie(env, audioMixClass, "mCallbackFlags", "I");
    gAudioMixFields.mCallbackFlags = GetFieldIDOrDie(env, audioMixClass, "mCallbackFlags", "I");
    gAudioMixFields.mToken = GetFieldIDOrDie(env, audioMixClass, "mToken", "Landroid/os/IBinder;");
    gAudioMixFields.mToken = GetFieldIDOrDie(env, audioMixClass, "mToken", "Landroid/os/IBinder;");
    gAudioMixFields.mVirtualDeviceId = GetFieldIDOrDie(env, audioMixClass, "mVirtualDeviceId", "I");


    jclass audioFormatClass = FindClassOrDie(env, "android/media/AudioFormat");
    jclass audioFormatClass = FindClassOrDie(env, "android/media/AudioFormat");
    gAudioFormatClass = MakeGlobalRefOrDie(env, audioFormatClass);
    gAudioFormatClass = MakeGlobalRefOrDie(env, audioFormatClass);
+1 −2
Original line number Original line Diff line number Diff line
@@ -5453,8 +5453,7 @@ public class AudioManager {
            String regId = service.registerAudioPolicy(policy.getConfig(), policy.cb(),
            String regId = service.registerAudioPolicy(policy.getConfig(), policy.cb(),
                    policy.hasFocusListener(), policy.isFocusPolicy(), policy.isTestFocusPolicy(),
                    policy.hasFocusListener(), policy.isFocusPolicy(), policy.isTestFocusPolicy(),
                    policy.isVolumeController(),
                    policy.isVolumeController(),
                    projection == null ? null : projection.getProjection(),
                    projection == null ? null : projection.getProjection());
                    policy.getAttributionSource());
            if (regId == null) {
            if (regId == null) {
                return ERROR;
                return ERROR;
            } else {
            } else {
+2 −2
Original line number Original line Diff line number Diff line
@@ -789,7 +789,7 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection,
        private @NonNull AudioRecord buildAudioPlaybackCaptureRecord() {
        private @NonNull AudioRecord buildAudioPlaybackCaptureRecord() {
            AudioMix audioMix = mAudioPlaybackCaptureConfiguration.createAudioMix(mFormat);
            AudioMix audioMix = mAudioPlaybackCaptureConfiguration.createAudioMix(mFormat);
            MediaProjection projection = mAudioPlaybackCaptureConfiguration.getMediaProjection();
            MediaProjection projection = mAudioPlaybackCaptureConfiguration.getMediaProjection();
            AudioPolicy audioPolicy = new AudioPolicy.Builder(/*context=*/ mContext)
            AudioPolicy audioPolicy = new AudioPolicy.Builder(/*context=*/ null)
                    .setMediaProjection(projection)
                    .setMediaProjection(projection)
                    .addMix(audioMix).build();
                    .addMix(audioMix).build();


@@ -853,7 +853,7 @@ public class AudioRecord implements AudioRouting, MicrophoneDirection,
                    .setFormat(mFormat)
                    .setFormat(mFormat)
                    .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK)
                    .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK)
                    .build();
                    .build();
            AudioPolicy audioPolicy = new AudioPolicy.Builder(mContext).addMix(audioMix).build();
            AudioPolicy audioPolicy = new AudioPolicy.Builder(null).addMix(audioMix).build();
            if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) {
            if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) {
                throw new UnsupportedOperationException("Error: could not register audio policy");
                throw new UnsupportedOperationException("Error: could not register audio policy");
            }
            }
+1 −2
Original line number Original line Diff line number Diff line
@@ -1353,8 +1353,7 @@ public class AudioTrack extends PlayerBase
                    .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK)
                    .setRouteFlags(AudioMix.ROUTE_FLAG_LOOP_BACK)
                    .build();
                    .build();
            AudioPolicy audioPolicy =
            AudioPolicy audioPolicy =
                    new AudioPolicy.Builder(/*context=*/ mContext).addMix(audioMix).build();
                    new AudioPolicy.Builder(/*context=*/ null).addMix(audioMix).build();

            if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) {
            if (AudioManager.registerAudioPolicyStatic(audioPolicy) != 0) {
                throw new UnsupportedOperationException("Error: could not register audio policy");
                throw new UnsupportedOperationException("Error: could not register audio policy");
            }
            }
+1 −3
Original line number Original line Diff line number Diff line
@@ -18,7 +18,6 @@ package android.media;


import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothDevice;
import android.content.ComponentName;
import android.content.ComponentName;
import android.content.AttributionSource;
import android.media.AudioAttributes;
import android.media.AudioAttributes;
import android.media.AudioDeviceAttributes;
import android.media.AudioDeviceAttributes;
import android.media.AudioFormat;
import android.media.AudioFormat;
@@ -362,8 +361,7 @@ interface IAudioService {
    String registerAudioPolicy(in AudioPolicyConfig policyConfig,
    String registerAudioPolicy(in AudioPolicyConfig policyConfig,
            in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy,
            in IAudioPolicyCallback pcb, boolean hasFocusListener, boolean isFocusPolicy,
            boolean isTestFocusPolicy,
            boolean isTestFocusPolicy,
            boolean isVolumeController, in IMediaProjection projection,
            boolean isVolumeController, in IMediaProjection projection);
            in AttributionSource attributionSource);


    oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb);
    oneway void unregisterAudioPolicyAsync(in IAudioPolicyCallback pcb);


Loading