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

Commit 1aaca57a authored by Henry Fang's avatar Henry Fang Committed by Automerger Merge Worker
Browse files

Merge "Add TvInputManager.Hardware overrideAudioSink with AudioDeviceInfo" am:...

Merge "Add TvInputManager.Hardware overrideAudioSink with AudioDeviceInfo" am: 764afbba am: f1cec5bb am: 8dd37561 am: 9aa0ab03

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1580304

Change-Id: Iffa89cf72325cae6649145d37d6700d087972c7e
parents 78e7b29c 9aa0ab03
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6384,6 +6384,7 @@ package android.media.tv {
  public static final class TvInputManager.Hardware {
    method public void overrideAudioSink(int, String, int, int, int);
    method public void overrideAudioSink(@NonNull android.media.AudioDeviceInfo, @IntRange(from=0) int, int, int);
    method public void setStreamVolume(float);
    method public boolean setSurface(android.view.Surface, android.media.tv.TvStreamConfig);
  }
+36 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.media.tv;

import android.annotation.CallbackExecutor;
import android.annotation.IntDef;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
@@ -27,6 +28,8 @@ import android.annotation.TestApi;
import android.content.Context;
import android.content.Intent;
import android.graphics.Rect;
import android.media.AudioDeviceInfo;
import android.media.AudioFormat.Encoding;
import android.media.PlaybackParams;
import android.media.tv.interactive.TvIAppManager;
import android.net.Uri;
@@ -60,6 +63,7 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.Executor;

/**
@@ -3221,6 +3225,16 @@ public final class TvInputManager {
            return false;
        }

        /**
         * Override default audio sink from audio policy.
         *
         * @param audioType device type of the audio sink to override with.
         * @param audioAddress device address of the audio sink to override with.
         * @param samplingRate desired sampling rate. Use default when it's 0.
         * @param channelMask desired channel mask. Use default when it's
         *        AudioFormat.CHANNEL_OUT_DEFAULT.
         * @param format desired format. Use default when it's AudioFormat.ENCODING_DEFAULT.
         */
        public void overrideAudioSink(int audioType, String audioAddress, int samplingRate,
                int channelMask, int format) {
            try {
@@ -3230,5 +3244,27 @@ public final class TvInputManager {
                throw new RuntimeException(e);
            }
        }

        /**
         * Override default audio sink from audio policy.
         *
         * @param device {@link android.media.AudioDeviceInfo} to use.
         * @param samplingRate desired sampling rate. Use default when it's 0.
         * @param channelMask desired channel mask. Use default when it's
         *        AudioFormat.CHANNEL_OUT_DEFAULT.
         * @param format desired format. Use default when it's AudioFormat.ENCODING_DEFAULT.
         */
        public void overrideAudioSink(@NonNull AudioDeviceInfo device,
                @IntRange(from = 0) int samplingRate,
                int channelMask, @Encoding int format) {
            Objects.requireNonNull(device);
            try {
                mInterface.overrideAudioSink(
                        AudioDeviceInfo.convertDeviceTypeToInternalDevice(device.getType()),
                        device.getAddress(), samplingRate, channelMask, format);
            } catch (RemoteException e) {
                throw new RuntimeException(e);
            }
        }
    }
}